FHEM - Anwendungen > Solaranlagen

Leistungsprognose für Wechselrichter

(1/267) > >>

ch.eick:
EDIT: Ich habe noch mal eine sehr schöne Grafik raus gesucht

Hallo zusammen,
ich habe mal diesen Post zum Anlass genommen die Leistungsprognose auch ohne Kostal Plenticore vorzustellen.


--- Zitat von: sky64 am 17 Januar 2021, 19:40:06 ---Ja, Danke. Das ist sehr umfangreich.
Ich habe das schon mal versucht zu lesen, aber viele Sachen habe ich noch nicht verstanden.
Ich weiß das ich als nächstes mit DBlog anfangen muss.
Ohne zumindest etwas Verständnis was und wie das funktioniert geht es nicht wenn ich es für mich anpassen will.

--- Ende Zitat ---
Du würdest nur die Prognose verwenden.
- DbLog für die große Datenmenge des WR
- DWD_Forecast für das Wetter
- in der 99_myUtils die Solar_* Funktionen
  Diese trägt ebenfalls in DbLog die Prognose Werte ein.
- Anpassung wäre Notwendig, wo die PV_Anlage_1_config bei Dir herkommt, was Du jedoch zu beginn genau so übernehmen könntest
- Zum Testen kannst Du einen Aufruf wie diesen verwenden. Siehe auch einzel Tests im Wiki.

--- Code: ---1) LogDB - ist der Name Deines DbLog Devices
2) LogDBRep_delete_PV_Forecast - Ist ein DbRep Device, das alte Forecasts in der DbLog löscht, bevor die neuen geschrieben werden.
3) PV_Anlage_1 ist der Name Deines WR, damit der Forecast in der Datenbank zu diesem Device Werte hinzufügen kann. Das wären readings mit Solar_*
4) Solar_Calculation_fc[0-2] Das wäre der reading name, mit 0 für heute und 1 für morgen
5) DWD_Forecast ist der Name des DWD Device
6) [0-1] 0 für heute und 1 für morgen

{Solar_forecast("LogDB","LogDBRep_delete_PV_Forecast","PV_Anlage_1","Solar_Calculation_fc","DWD_Forecast",0)}

--- Ende Code ---
Der Umweg über die DbLog hat den Hintergrund, dass bereits heute, für morgen, die Diagramm Werte des Forecast eingetragen werden.
Im WR wirst Du auch ein reading Solar_Calculation finden, das jeweils den aktuelle Forecast für die Stunde beinhaltet. Dazu muss Solar_forecast() natürlich stündlich aktualisiert werden.


VG
   Christian

sky64:
Vielen Dank, werde mich mal daran versuchen
Mfg Ron

ch.eick:

--- Zitat von: sky64 am 18 Januar 2021, 17:33:07 ---Vielen Dank, werde mich mal daran versuchen

--- Ende Zitat ---
Gerne, je mehr es nutzen, umso besser wird es getestet.
Ich denke das Bild spricht für sich, der Tag war jedoch auch ein Volltreffer vom DWD :-)

sky64:
Hallo ch.eick

So, die ersten Sachen sind eingestellt. War wie vermutet (befürchtet) natürlich nicht so einfach, da z.B. für das dblog noch einige Sachen beachtet werden müssen und auch nicht 100%ig im Wiki beschrieben ist (z.B. das man ja auch dem MySql auch die Datenbank anlegen muss).
Da mussten erst mal die 15 Jahre alten und nicht mehr verwendeten MySQL-Grundlagen wieder ausgegraben werden ...
Aus diesem Grund heißt mein dblog auch "logdb" und nicht "LogDb" wie bei dir, aber das ist ja nur eine Kleinigkeit.
Außerdem muss man natürlich für alle anderen Devices das Log in die DB abdrehen.
Habe nebenbei eine Menge über "Komfortfunktioen" im FHEM gelernt.
Das Debuging im zentralen fhem.log ist schon wieder schwieriger weil da auch haufen Müll kommt.


Auf jeden Fall habe ich jetzt :

* logdb
* LogDBRep_delete_PV_Forecast
* PV_Anlage_1_config
* DWD_Forecast
* die beiden Funktionen "Solar_forecast" und "Solar_plain" in der "99_myUtils.pm"
In den Readings vom DWD_Forecast  sind Werte drin.
Ein erster Test liefert auch Zahlen:

--- Code: ---fhem> {Solar_plain(45,0,"2021-01-19 15:00:00")}
3.60852722543291
fhem> {Solar_plain(45,0,"2021-01-19 18:00:00")}
0.001

--- Ende Code ---

Beim nächsten Test hänge ich allerdings, denn ich habe eigentlich kein "PV_Anlage_1 "
Also habe ich eine Dummy "PV_Anlage_1 " erstellt.
Aber hier fehlt vermutlich noch etwas, den mit

--- Code: ---fhem> {Solar_forecast("logdb","LogDBRep_delete_PV_Forecast","PV_Anlage_1","Solar_Calculation_fc","DWD_Forecast",1)}

--- Ende Code ---
erhalte ich im Log :

--- Code: ---2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 07:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 08:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 09:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 10:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 11:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 12:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 13:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 14:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 15:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 16:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 17:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 18:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 19:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:

--- Ende Code ---

Es werden aber keine Solar-Readings erstellt.
Muss ich die vorher noch anlegen? Im Wiki habe ich für die Kostal-Anlage PV_Anlage_1 aber auch nicht gefunden.
Nur den Verweis im DbLogInclude.
Und das immer Value: 0 kommt ist sicher auch nicht richtig.

Mit global verbose 4  steht sowas im Log:

--- Code: ---2021.01.19 18:39:12 4: DbRep LogDBRep_delete_PV_Forecast - -------- New selection ---------
2021.01.19 18:39:12 4: DbRep LogDBRep_delete_PV_Forecast - Command: sqlCmd DELETE FROM history WHERE DEVICE='PV_Anlage_1' AND READING='Solar_Calculation_fc1' AND TIMESTAMP>='2021-01-20 07:00:00'
2021.01.19 18:39:12 4: DbRep LogDBRep_delete_PV_Forecast - Timestamp begin human readable: not set
2021.01.19 18:39:12 4: DbRep LogDBRep_delete_PV_Forecast - Timestamp end human readable: not set
2021.01.19 18:39:12 4: BlockingCall (sqlCmd_DoParse): created child (22554), uses telnetPort to connect back
2021.01.19 18:39:12 4: Solar_SolarRadiation   :  0 0
2021.01.19 18:39:12 3: get Astro text SunAz 2021-01-20 07:00:00 : 109.6
2021.01.19 18:39:12 3: get Astro text SunAlt 2021-01-20 07:00:00 : -10
2021.01.19 18:39:12 3: Solar_plain: azimuth = 109.6, orientation=-1.22870706506562, elevation=-0.174532253560458, angle=0.733035464953923
2021.01.19 18:39:12 3: Solar_plain: factor = 0.001
2021.01.19 18:39:12 4: plain/direction        :  42/0 >>> 0.001
2021.01.19 18:39:12 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 07:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:39:12 4: Solar_Plain            : 0.001
2021.01.19 18:39:12 4: Solar_SolarRadiation   : 0
2021.01.19 18:39:12 4: Solar_Cloud            : 77
2021.01.19 18:39:12 4: cloudk                 : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Cloud : 0.846
2021.01.19 18:39:12 4: Solar_Rain             : 12
2021.01.19 18:39:12 4: raink                  : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Rain  : 0.976
2021.01.19 18:39:12 4: Solar_Temp             : 14.6
2021.01.19 18:39:12 4: tempk                  : -0.39 25
2021.01.19 18:39:12 4: Solar_Correction_Temp  : 1.041
2021.01.19 18:39:12 4: 1 7 0 0
2021.01.19 18:39:12 4: Solar_SolarRadiation   :  0 0
2021.01.19 18:39:12 3: get Astro text SunAz 2021-01-20 08:00:00 : 120.9
2021.01.19 18:39:12 3: get Astro text SunAlt 2021-01-20 08:00:00 : -1.1
2021.01.19 18:39:12 3: Solar_plain: azimuth = 120.9, orientation=-1.03148561854231, elevation=-0.0191985478916504, angle=0.733035464953923
2021.01.19 18:39:12 3: Solar_plain: factor = 0.001
2021.01.19 18:39:12 4: plain/direction        :  42/0 >>> 0.001
2021.01.19 18:39:12 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 08:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:39:12 4: Solar_Plain            : 0.001
2021.01.19 18:39:12 4: Solar_SolarRadiation   : 0
2021.01.19 18:39:12 4: Solar_Cloud            : 77
2021.01.19 18:39:12 4: cloudk                 : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Cloud : 0.846
2021.01.19 18:39:12 4: Solar_Rain             : 12
2021.01.19 18:39:12 4: raink                  : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Rain  : 0.976
2021.01.19 18:39:12 4: Solar_Temp             : 15
2021.01.19 18:39:12 4: tempk                  : -0.39 25
2021.01.19 18:39:12 4: Solar_Correction_Temp  : 1.039
2021.01.19 18:39:12 4: 1 8 0 0
2021.01.19 18:39:12 4: Solar_SolarRadiation   :  0 0
2021.01.19 18:39:12 3: get Astro text SunAz 2021-01-20 09:00:00 : 132.9
2021.01.19 18:39:12 3: get Astro text SunAlt 2021-01-20 09:00:00 : 6.3
2021.01.19 18:39:12 3: Solar_plain: azimuth = 132.9, orientation=-0.822046914269757, elevation=0.109955319743089, angle=0.733035464953923
2021.01.19 18:39:12 3: Solar_plain: factor = 0.001
2021.01.19 18:39:12 4: plain/direction        :  42/0 >>> 0.001
2021.01.19 18:39:12 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 09:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:39:12 4: Solar_Plain            : 0.001
2021.01.19 18:39:12 4: Solar_SolarRadiation   : 0
2021.01.19 18:39:12 4: Solar_Cloud            : 78
2021.01.19 18:39:12 4: cloudk                 : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Cloud : 0.844
2021.01.19 18:39:12 4: Solar_Rain             : 12
2021.01.19 18:39:12 4: raink                  : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Rain  : 0.976
2021.01.19 18:39:12 4: Solar_Temp             : 15.6
2021.01.19 18:39:12 4: tempk                  : -0.39 25
2021.01.19 18:39:12 4: Solar_Correction_Temp  : 1.037
2021.01.19 18:39:12 4: 1 9 0 0
2021.01.19 18:39:12 4: Solar_SolarRadiation   :  0 0
2021.01.19 18:39:12 3: get Astro text SunAz 2021-01-20 10:00:00 : 145.7
2021.01.19 18:39:12 3: get Astro text SunAlt 2021-01-20 10:00:00 : 12.3
2021.01.19 18:39:12 3: Solar_plain: azimuth = 145.7, orientation=-0.598645629712371, elevation=0.214674671879363, angle=0.733035464953923
2021.01.19 18:39:12 3: Solar_plain: factor = 3.2783741916608
2021.01.19 18:39:12 4: plain/direction        :  42/0 >>> 3.278
2021.01.19 18:39:12 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 10:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:39:12 4: Solar_Plain            : 3.278
2021.01.19 18:39:12 4: Solar_SolarRadiation   : 0
2021.01.19 18:39:12 4: Solar_Cloud            : 78
2021.01.19 18:39:12 4: cloudk                 : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Cloud : 0.844
2021.01.19 18:39:12 4: Solar_Rain             : 12
2021.01.19 18:39:12 4: raink                  : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Rain  : 0.976
2021.01.19 18:39:12 4: Solar_Temp             : 16.1
2021.01.19 18:39:12 4: tempk                  : -0.39 25
2021.01.19 18:39:12 4: Solar_Correction_Temp  : 1.035
2021.01.19 18:39:12 4: 1 10 0 0
2021.01.19 18:39:12 4: Solar_SolarRadiation   :  0 0
2021.01.19 18:39:12 3: get Astro text SunAz 2021-01-20 11:00:00 : 159.6
2021.01.19 18:39:12 3: get Astro text SunAlt 2021-01-20 11:00:00 : 16.3
2021.01.19 18:39:12 3: Solar_plain: azimuth = 159.6, orientation=-0.356045797263334, elevation=0.284487573303547, angle=0.733035464953923
2021.01.19 18:39:12 3: Solar_plain: factor = 2.88788364649468
2021.01.19 18:39:12 4: plain/direction        :  42/0 >>> 2.888
2021.01.19 18:39:12 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 11:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:39:12 4: Solar_Plain            : 2.888
2021.01.19 18:39:12 4: Solar_SolarRadiation   : 0
2021.01.19 18:39:12 4: Solar_Cloud            : 81
2021.01.19 18:39:12 4: cloudk                 : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Cloud : 0.838
2021.01.19 18:39:12 4: Solar_Rain             : 12
2021.01.19 18:39:12 4: raink                  : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Rain  : 0.976
2021.01.19 18:39:12 4: Solar_Temp             : 16.8
2021.01.19 18:39:12 4: tempk                  : -0.39 25
2021.01.19 18:39:12 4: Solar_Correction_Temp  : 1.032
2021.01.19 18:39:12 4: 1 11 0 0
2021.01.19 18:39:12 4: Solar_SolarRadiation   :  0 0
2021.01.19 18:39:12 3: get Astro text SunAz 2021-01-20 12:00:00 : 174.2
2021.01.19 18:39:12 3: get Astro text SunAlt 2021-01-20 12:00:00 : 18.4
2021.01.19 18:39:12 3: Solar_plain: azimuth = 174.2, orientation=-0.101228707065066, elevation=0.321139346551243, angle=0.733035464953923
2021.01.19 18:39:12 3: Solar_plain: factor = 2.74433223543208
2021.01.19 18:39:12 4: plain/direction        :  42/0 >>> 2.744
2021.01.19 18:39:12 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 12:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:39:12 4: Solar_Plain            : 2.744
2021.01.19 18:39:12 4: Solar_SolarRadiation   : 0
2021.01.19 18:39:12 4: Solar_Cloud            : 80
2021.01.19 18:39:12 4: cloudk                 : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Cloud : 0.840
2021.01.19 18:39:12 4: Solar_Rain             : 12
2021.01.19 18:39:12 4: raink                  : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Rain  : 0.976
2021.01.19 18:39:12 4: Solar_Temp             : 17.5
2021.01.19 18:39:12 4: tempk                  : -0.39 25
2021.01.19 18:39:12 4: Solar_Correction_Temp  : 1.029
2021.01.19 18:39:12 4: 1 12 0 0
2021.01.19 18:39:12 4: Solar_SolarRadiation   :  0 0
2021.01.19 18:39:12 3: get Astro text SunAz 2021-01-20 13:00:00 : 189
2021.01.19 18:39:12 3: get Astro text SunAlt 2021-01-20 13:00:00 : 18.1
2021.01.19 18:39:12 3: Solar_plain: azimuth = 189, orientation=0.157079028204412, elevation=0.315903378944429, angle=0.733035464953923
2021.01.19 18:39:12 3: Solar_plain: factor = 2.76515203658699
2021.01.19 18:39:12 4: plain/direction        :  42/0 >>> 2.765
2021.01.19 18:39:12 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 13:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:39:12 4: Solar_Plain            : 2.765
2021.01.19 18:39:12 4: Solar_SolarRadiation   : 0
2021.01.19 18:39:12 4: Solar_Cloud            : 80
2021.01.19 18:39:12 4: cloudk                 : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Cloud : 0.840
2021.01.19 18:39:12 4: Solar_Rain             : 12
2021.01.19 18:39:12 4: raink                  : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Rain  : 0.976
2021.01.19 18:39:12 4: Solar_Temp             : 17.8
2021.01.19 18:39:12 4: tempk                  : -0.39 25
2021.01.19 18:39:12 4: Solar_Correction_Temp  : 1.028
2021.01.19 18:39:12 4: 1 13 0 0
:
:
2021.01.19 18:39:12 4: Connection accepted from telnetPort_127.0.0.1_59734
2021.01.19 18:39:12 4: DbRep LogDBRep_delete_PV_Forecast - database user for operation: fhemuser
2021.01.19 18:39:12 4: DbRep LogDBRep_delete_PV_Forecast - SQL execute: DELETE FROM history WHERE DEVICE='PV_Anlage_1' AND READING='Solar_Calculation_fc1' AND TIMESTAMP>='2021-01-20 07:00:00';
2021.01.19 18:39:12 3: DbRep LogDBRep_delete_PV_Forecast - Number of entries processed in db fhem: 13 by DELETE

--- Ende Code ---

Das PV_Anlage_1_config hat (ich habe nur eine Ausrichtung):

--- Code: ---   TYPE       dummy
   READINGS:
     2021-01-19 17:31:17   Battery_Total_Power 5200
     2020-09-11 07:36:39   Forecast_Station Zscherben
     2021-01-19 17:33:14   forecast_cloudk 20
     2021-01-19 17:33:21   forecast_cloudk_base 0
     2021-01-19 17:32:56   forecast_factor 1
     2021-01-19 17:34:07   forecast_raink  20
     2021-01-19 17:34:19   forecast_raink_base 0
     2021-01-19 17:34:34   forecast_tempk  39
     2021-01-19 17:34:53   forecast_tempk_base 25
     2021-01-19 17:32:02   module_1_count  22
     2021-01-19 17:31:04   module_1_direction 0
     2021-01-19 17:31:29   module_1_name   South
     2021-01-19 17:32:37   module_1_plain  42
     2021-01-19 17:32:23   module_1_power  305

--- Ende Code ---

Ich hoffe du kannst mit den Logs etwas anfangen.

Gruß Ron


ch.eick:
Hallo Ron


--- Zitat von: sky64 am 21 Januar 2021, 07:24:27 ---da z.B. für das dblog noch einige Sachen beachtet werden müssen und auch nicht 100%ig im Wiki beschrieben ist (z.B. das man ja auch dem MySql auch die Datenbank anlegen muss).
Da mussten erst mal die 15 Jahre alten und nicht mehr verwendeten MySQL-Grundlagen wieder ausgegraben werden ...
Aus diesem Grund heißt mein dblog auch "logdb" und nicht "LogDb" wie bei dir, aber das ist ja nur eine Kleinigkeit.
Außerdem muss man natürlich für alle anderen Devices das Log in die DB abdrehen.

--- Ende Zitat ---
Okay, ich stimme zu, dass das recht komplex werden kann. Deshalb habe ich mich da auch weitestgehend raus gehalten und mich auf die Unterstützung im Forum verlassen.


--- Zitat ---Auf jeden Fall habe ich jetzt :

* logdb
* LogDBRep_delete_PV_Forecast
* PV_Anlage_1_config
* DWD_Forecast
* die beiden Funktionen "Solar_forecast" und "Solar_plain" in der "99_myUtils.pm"
In den Readings vom DWD_Forecast  sind Werte drin.

--- Ende Zitat ---
Wenn Dein Wechselrichter anders als PV_Anlage_1 heißt, muss der Name natürlich überall geändert werden.
Durch die Funktionen werden mit setreading dann die berechneten Werte dort hinein geschrieben, also sollte es auch ein Dummy tun. Das habe ich so gemacht, damit bei jedem WR der Forecast direkt zugeordnet wird und auch in der Datenbank der selbe Devicename eingetragen wird. Das erleichtert das Abrufen des Forecast zusammen mit anderen readings des WR.


--- Zitat ---Ein erster Test liefert auch Zahlen:

--- Code: ---fhem> {Solar_plain(45,0,"2021-01-19 15:00:00")}
3.60852722543291
fhem> {Solar_plain(45,0,"2021-01-19 18:00:00")}
0.001

--- Ende Code ---

--- Ende Zitat ---
Das sieht schon mal sehr gut aus, um 18:00 Uhr ist die Sonne bereits untergegangen und die Funktion liefert ein 0.001 zurück, wodurch die Solar_Calculation quasi Null wird.


--- Zitat ---Beim nächsten Test hänge ich allerdings, denn ich habe eigentlich kein "PV_Anlage_1 "
Also habe ich eine Dummy "PV_Anlage_1 " erstellt.       <<<<< Da gehen die setreading dann rein (s.o.)
Aber hier fehlt vermutlich noch etwas, den mit

--- Code: ---fhem> {Solar_forecast("logdb","LogDBRep_delete_PV_Forecast","PV_Anlage_1","Solar_Calculation_fc","DWD_Forecast",1)}

--- Ende Code ---
erhalte ich im Log :

--- Code: ---2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 07:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:29:34 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 08:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:

--- Ende Code ---

--- Ende Zitat ---

--- Zitat ---Nur den Verweis im DbLogInclude.
Und das immer Value: 0 kommt ist sicher auch nicht richtig.

--- Ende Zitat ---
Ohne DbLogInclude werden nur die Solar_Calculation_fc* Werte in die Datenbank geschrieben.
Schau bitte mal nach, ob Du im DWD_Forecast Device auch für fc[0|1] die rad1h Werte hast.
Nicht alle Stationen liefern diesen Wert.


--- Zitat ---Es werden aber keine Solar-Readings erstellt.
Muss ich die vorher noch anlegen? Im Wiki habe ich für die Kostal-Anlage PV_Anlage_1 aber auch nicht gefunden.

--- Ende Zitat ---

--- Code: ---{ fhem "setreading PV_Anlage_1 Solar_SolarRadiation  0"}

--- Ende Code ---
Das sollte ein reading anlegen und wird so auch im Solar_forecast() als Kommando abgesetzt.


Ich schreibe mal einige Bemerkungen zwischen die Log Zeilen

Mit global verbose 4  steht sowas im Log:

--- Code: ---2021.01.19 18:39:12 4: DbRep LogDBRep_delete_PV_Forecast - -------- New selection ---------
2021.01.19 18:39:12 4: DbRep LogDBRep_delete_PV_Forecast - Command: sqlCmd DELETE FROM history WHERE DEVICE='PV_Anlage_1' AND READING='Solar_Calculation_fc1' AND TIMESTAMP>='2021-01-20 07:00:00'
2021.01.19 18:39:12 4: DbRep LogDBRep_delete_PV_Forecast - Timestamp begin human readable: not set
2021.01.19 18:39:12 4: DbRep LogDBRep_delete_PV_Forecast - Timestamp end human readable: not set
2021.01.19 18:39:12 4: BlockingCall (sqlCmd_DoParse): created child (22554), uses telnetPort to connect back
>>>Das löschen der Vorherigen Forecasts für heute und morgen sollte somit klappen.

2021.01.19 18:39:12 4: Solar_SolarRadiation   :  0 0
>>>Aus dem DWD Device ist um 8:00 Uhr rad1h auf 0

2021.01.19 18:39:12 3: get Astro text SunAz 2021-01-20 07:00:00 : 109.6
2021.01.19 18:39:12 3: get Astro text SunAlt 2021-01-20 07:00:00 : -10
>>>Das ist die Sonnenposition vom Astro Device

2021.01.19 18:39:12 3: Solar_plain: azimuth = 109.6, orientation=-1.22870706506562, elevation=-0.174532253560458, angle=0.733035464953923
2021.01.19 18:39:12 3: Solar_plain: factor = 0.001
>>>Die Winkelkorrektur ist bei dem tiefen Sonnenstand noch in einem ungültigen Bereich und gibt als Faktor 0.001 zurück.

2021.01.19 18:39:12 4: plain/direction        :  42/0 >>> 0.001
Das ist die Dachneigung und Ausrichtung, die bei dem Sonnenstand zum Faktor 0.001 führt und somit kein Ertrag zu erwarten ist.

2021.01.19 18:39:12 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 07:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
>>> Für 7:00 Uhr Null Ertrag in die Datenbank schreiben
# Jetzt kommen noch die Detail
2021.01.19 18:39:12 4: Solar_Plain            : 0.001
2021.01.19 18:39:12 4: Solar_SolarRadiation   : 0
2021.01.19 18:39:12 4: Solar_Cloud            : 77
2021.01.19 18:39:12 4: cloudk                 : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Cloud : 0.846
2021.01.19 18:39:12 4: Solar_Rain             : 12
2021.01.19 18:39:12 4: raink                  : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Rain  : 0.976
2021.01.19 18:39:12 4: Solar_Temp             : 14.6
2021.01.19 18:39:12 4: tempk                  : -0.39 25
2021.01.19 18:39:12 4: Solar_Correction_Temp  : 1.041
2021.01.19 18:39:12 4: 1 7 0 0
>>> 1 ist Deine Ausrichtung, da Du nur eine Hst, bleibt es hier immer bei 1
>>> 7 => 07:00 Uhr
>>> 0 ist der SolarRadiation Wert
>>> 0 ist die Summe der SolarCalculation

>>> Das PV_Anlage_1 Device erhält nur readings für die aktuelle Stunde des Forecast, alle anderen Werte stehen in der Datenbank

# Nun kommt der Lauf für 8:00 Uhr
2021.01.19 18:39:12 4: Solar_SolarRadiation   :  0 0
2021.01.19 18:39:12 3: get Astro text SunAz 2021-01-20 08:00:00 : 120.9
2021.01.19 18:39:12 3: get Astro text SunAlt 2021-01-20 08:00:00 : -1.1
2021.01.19 18:39:12 3: Solar_plain: azimuth = 120.9, orientation=-1.03148561854231, elevation=-0.0191985478916504, angle=0.733035464953923
2021.01.19 18:39:12 3: Solar_plain: factor = 0.001
2021.01.19 18:39:12 4: plain/direction        :  42/0 >>> 0.001
2021.01.19 18:39:12 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 08:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:39:12 4: Solar_Plain            : 0.001
2021.01.19 18:39:12 4: Solar_SolarRadiation   : 0
2021.01.19 18:39:12 4: Solar_Cloud            : 77
2021.01.19 18:39:12 4: cloudk                 : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Cloud : 0.846
2021.01.19 18:39:12 4: Solar_Rain             : 12
2021.01.19 18:39:12 4: raink                  : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Rain  : 0.976
2021.01.19 18:39:12 4: Solar_Temp             : 15
2021.01.19 18:39:12 4: tempk                  : -0.39 25
2021.01.19 18:39:12 4: Solar_Correction_Temp  : 1.039
2021.01.19 18:39:12 4: 1 8 0 0

2021.01.19 18:39:12 4: Solar_SolarRadiation   :  0 0
2021.01.19 18:39:12 3: get Astro text SunAz 2021-01-20 09:00:00 : 132.9
2021.01.19 18:39:12 3: get Astro text SunAlt 2021-01-20 09:00:00 : 6.3
2021.01.19 18:39:12 3: Solar_plain: azimuth = 132.9, orientation=-0.822046914269757, elevation=0.109955319743089, angle=0.733035464953923
2021.01.19 18:39:12 3: Solar_plain: factor = 0.001
2021.01.19 18:39:12 4: plain/direction        :  42/0 >>> 0.001
2021.01.19 18:39:12 3: DbLog logdb -> added by addCacheLine - TS: 2021-01-20 09:00:00, Device: PV_Anlage_1, Type: addlog, Event: Solar_Calculation_fc1: 0, Reading: Solar_Calculation_fc1, Value: 0, Unit:
2021.01.19 18:39:12 4: Solar_Plain            : 0.001
2021.01.19 18:39:12 4: Solar_SolarRadiation   : 0
2021.01.19 18:39:12 4: Solar_Cloud            : 78
2021.01.19 18:39:12 4: cloudk                 : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Cloud : 0.844
2021.01.19 18:39:12 4: Solar_Rain             : 12
2021.01.19 18:39:12 4: raink                  : -0.2 0
2021.01.19 18:39:12 4: Solar_Correction_Rain  : 0.976
2021.01.19 18:39:12 4: Solar_Temp             : 15.6
2021.01.19 18:39:12 4: tempk                  : -0.39 25
2021.01.19 18:39:12 4: Solar_Correction_Temp  : 1.037
2021.01.19 18:39:12 4: 1 9 0 0
[/quote]

>>> Meine Vermutung ist, das im DWD Device keine rad1h Werte geliefert wurden.

VG
   Christian
--- Ende Code ---

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln