76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

Begonnen von DS_Starter, 11 Februar 2024, 14:11:00

Vorheriges Thema - Nächstes Thema

DS_Starter

Moin,

ZitatIch würde mir wünschen das der Battery_ChargeOptTargetPower immer wieder neu berechnet wird auf Basis des aktuellen Ladezustands und der aktuellen Prognose. So das wenn der Akku entgegen der Prognose nicht geladen wurde (hoher Verbrauch/geringe PV) die nachfolgenden Stunden eine höhere Leistung bekommen.
Genauso ist es bereits implementiert. Es schützt allerdings nicht davor am Anfang des Tages geringer als möglich zu laden (in Umsetzung des Ansatzes "so gering wie möglich") wenn die Kalkulation von genügendem Überschuß "weiter hinten" ausgeht, der dann aber nicht eintritt.

Dein Debug sieht erstmal sehr gut aus:

2025.09.12 00:07:19 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 09, Start SoC: 3168 Wh, Surplus: 1007 Wh (9 hours), OptTargetPower: 602 W, safety: 20 %
2025.09.12 00:07:19 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 10, Start SoC: 3168 Wh, Surplus: 918 Wh (10 hours), OptTargetPower: 541 W, safety: 20 %
2025.09.12 00:07:19 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 11, Start SoC: 3709 Wh, Surplus: 1261 Wh (8 hours), OptTargetPower: 596 W, safety: 20 %
2025.09.12 00:07:19 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 12, Start SoC: 4305 Wh, Surplus: 2000 Wh (6 hours), OptTargetPower: 675 W, safety: 20 %
2025.09.12 00:07:19 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 13, Start SoC: 4980 Wh, Surplus: 2000 Wh (5 hours), OptTargetPower: 648 W, safety: 20 %
2025.09.12 00:07:19 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 14, Start SoC: 5628 Wh, Surplus: 2000 Wh (4 hours), OptTargetPower: 616 W, safety: 20 %
2025.09.12 00:07:19 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 15, Start SoC: 6244 Wh, Surplus: 2000 Wh (3 hours), OptTargetPower: 574 W, safety: 20 %
2025.09.12 00:07:19 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 16, Start SoC: 6818 Wh, Surplus: 2000 Wh (2 hours), OptTargetPower: 517 W, safety: 20 %
2025.09.12 00:07:19 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 17, Start SoC: 7335 Wh, Surplus: 2000 Wh (1 hours), OptTargetPower: 414 W, safety: 20 %
2025.09.12 00:07:19 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 18, Start SoC: 7680 Wh, Surplus: 2000 Wh (1 hours), OptTargetPower: 500 W, safety: 20 %
2025.09.12 00:07:19 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 19, Start SoC: 7680 Wh, Surplus: 1911 Wh (7 hours), OptTargetPower: 500 W, safety: 20 %

Es ist sehr gut zu sehen, wie deine Batterie bis 18:00 (ca. 18:00 ist sie dann voll) recht gleichmäßig aufgeladen wird und am Ende rein kalkulatorisch voll sein wird. Das sieht gut aus. Der gleichmäßige surplus auf 2000W über eine recht lange Zeit kommt sicherlich von dem gesetzten "pinmax". Also insgesamt völlig io. Nun ist es natürlich so, dass die Kalkulation davon ausgeht die OptTargetPower von z.B. 602W wird als Minimumleistung konstant in der Stunde in die Bat geladen. In der Realität kann sie auch mal geringer ausfallen (kein PV wegen Wolken, mehr Verbrauch usw.). Da denke ich darüber nach wie ich das verbessern, Tendiere aber jetzt schon dazu den default Safety Betrag von 20% auf 50% zu heben wie bei der anderen Optimierung.

ZitatIch hab mir nun die Grobstrategie von OptTargetPower nochmals durchgelesen. Damit sollte doch die Ladeleistung gleichmäßig über alle verfügbaren Stunden mit genügend Überschuss verteilt werden.
Ja, das zeigt das Debug auch wie zu sehen ist. Das klappt natürlich nicht immer so schön, je nach Verteilung des (prognostizierten) Überschusses über den Tag.

ZitatWarum sehe ich dann so unterschiedliche Werte wie hier? OptTargetPower ist immer deutlich niedriger wenn ChargeUnrestricted gesetzt ist!?!
Kann ich dir nicht beantworten. Beide Optimierungsstrategien werden intern durch verschiedene Subs mit unterschiedlichen Optimierungszielen berechnet.

ZitatWann wird denn OptTargetPower bestimmt? Nur einmal am Tag, oder bei jeder Berechnung wieder neu?
Mit jedem Zyklus erneuet. D.h. die Werte im Debug werden sich ständig an die realen Gegebenheiten anpassen. Wenn du in eine für dich kritische Tageszeit kommst, kannst du das Debug erneut starten und in der Auswertung sieht man wieder die Zusammenhänge.

ZitatOptTargetPower sollte bei jeder Berechnung wieder neu bestimmt werden, so das nach aktuellen Akku Ladezustand und der Rest-Tagesprognose der Akku noch voll (inkl safety) werden kann. Falls nichtmehr möglich sollte auf pinmax gestellt werden. Damit wird er zwar am Ende des Tages immer auf pinmax stehen, da ja die safety Energie nicht reinpasst, aber da sollter er auch schon voll sein und somit eh keine Ladung mehr erfolgen.
So ist es auch implementiert, wobei pinmax ein begrenzender Faktor ist (wie im Debug zu sehen) und am Ende des Tages; wenn kein Überschuß mehr oder die Bat voll ist; OTP auf setupBatteryDevXX->pinreduced und ggf. die Fallbacks gesetzt wird wie ich schon erläuterte.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Gisbert

Hallo Heiko,

die letzte Änderung, die shiftx im Energy flow Diagram betrifft, hat funktioniert.

Mir ist jetzt aber aufgefallen, dass im Attribut
graphicControl
beamWidth=100 hourCount=20 energyUnit=kWh spaceSize=10 headerDetail=all
beamWidth nicht so funktioniert, wie ich es erwarte. Die Balkenbreite ändert sich nicht, egal ob ich 20 oder 100 eingebe, oder diesen Part lösche. Die Breite der Balken ist dabei unterschiedlich breit, demnach also dynamisch.
Hab ich was übersehen?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

DS_Starter

ZitatbeamWidth nicht so funktioniert, wie ich es erwarte. Die Balkenbreite ändert sich nicht, egal ob ich 20 oder 100 eingebe, oder diesen Part lösche.
Kann ich so nicht bestätigen. Klappt bei mir im Browser einwandfrei. Anbei ein Beispiel mit beamWidth=80.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

@Hadl, Parallix,

ich habe einen Fehler in der Berechnungslogik von Battery_ChargeOptTargetPower_XX erkannt und beseitigt.
Ich habe zwar sehr kontinuierlich den PV-Überschuß neu berechnet, aber bzgl. SoC fehlte der Abgleich von Prognose und Ist-SoC.
Das habbe ich jetzt korrigiert und ins contrib geladen.

Morgen wird man mehr sehen, aber das Log zeigt schon die Verbesserung. Damit dürfte sich das Problem von Hadl auch weitgehend erledigt haben.

2025.09.12 15:44:28.058 1: SolCast DEBUG> ChargeOTP - maximum OptTargetPower Bat 01: 3706 W, number relevant values: 1
2025.09.12 15:44:28.058 1: SolCast DEBUG> ChargeOTP - The limit for grid feed-in is 4800 W
2025.09.12 15:44:28.059 1: SolCast DEBUG> ChargeOTP - NOTE: The hours printed below are the estimated number of hours on the current day with at least the respective PV surplus.
2025.09.12 15:44:28.059 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 16, Start SoC: 25290 Wh, Surplus: 3706 Wh (1 hours), OptTargetPower: 3706 W, safety: 20 %
2025.09.12 15:44:28.059 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 17, Start SoC: 28416 Wh, Surplus: 986 Wh (1 hours), OptTargetPower: 1000 W, safety: 20 %
2025.09.12 15:44:28.060 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 18, Start SoC: 28416 Wh, Surplus: 400 Wh (2 hours), OptTargetPower: 1000 W, safety: 20 %
2025.09.12 15:44:28.060 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 19, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 1000 W, safety: 20 %
2025.09.12 15:44:28.060 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 20, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 1000 W, safety: 20 %
2025.09.12 15:44:28.061 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 21, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 1000 W, safety: 20 %
2025.09.12 15:44:28.061 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 22, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 1000 W, safety: 20 %
2025.09.12 15:44:28.061 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 23, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 1000 W, safety: 20 %
2025.09.12 15:44:28.062 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 24, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 1000 W, safety: 20 %

LG,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Hallo Chris,

das ist aber auch kein Problem mit DWD OpenData, sondern soweit ich sehen kann beide Dinge eine Sache für den SVG Thread.
Bitte poste es dort nochmal, gehört wirklich nicht hierher. Bitte um Verständnis.

LG,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Burny4600

Zitat von: DS_Starter am 12 September 2025, 16:15:15das ist aber auch kein Problem mit DWD OpenData, sondern soweit ich sehen kann beide Dinge eine Sache für den SVG Thread.
Bitte poste es dort nochmal, gehört wirklich nicht hierher. Bitte um Verständnis.

Kein Problem. Werde ich gleich machen.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

Gisbert

Zitat von: DS_Starter am 12 September 2025, 11:40:39
ZitatbeamWidth nicht so funktioniert, wie ich es erwarte. Die Balkenbreite ändert sich nicht, egal ob ich 20 oder 100 eingebe, oder diesen Part lösche.
Kann ich so nicht bestätigen. Klappt bei mir im Browser einwandfrei. Anbei ein Beispiel mit beamWidth=80.

Hallo Heiko,
dachte ich mir schon, danke fürs Nachschauen. Vermutlich grätscht der an und für sich schöne flex Style dazwischen, der leider nicht mehr maintdained wird.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Heatseeker

Moin,

Bei mir läuft der forecast schon seit langer Zeit sehr zuverlässig und nutze diesen z.B. um meinen Akku schonend prognosebasiert zu laden.

Nun bekomme ich demnächst einen neuen Zählermodul eingebaut (Huawei Emma) wegen einer Installation der wallbox, und ich weiß noch nicht ob ich die Kommunikation zu diesem ebenfalls so schnell aufgebaut bekomme.
Kann ich den forecast auch ohne lernen etc laufen lassen? Die Daten stimmen ja inzwischen sehr gut. Aber ich befürchte wenn ich dann dauerhaft null Einspeisung habe, geht mir meine ganzen angelernten Korrektur faktoren flöten....


DS_Starter

ZitatKann ich den forecast auch ohne lernen etc laufen lassen?
Ja, das geht natürlich:

set ... pvCorrectionFactor_Auto noLearning

LG,
Heiko
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Hadl

Zitat von: DS_Starter am 12 September 2025, 09:01:39Nun ist es natürlich so, dass die Kalkulation davon ausgeht die OptTargetPower von z.B. 602W wird als Minimumleistung konstant in der Stunde in die Bat geladen. In der Realität kann sie auch mal geringer ausfallen (kein PV wegen Wolken, mehr Verbrauch usw.). Da denke ich darüber nach wie ich das verbessern, Tendiere aber jetzt schon dazu den default Safety Betrag von 20% auf 50% zu heben wie bei der anderen Optimierung.
Ein gewisser safety Betrag ist gut, mir kommt 50% aber schon zu viel vor. Ich denke wir sollten lieber versuchen an der Strategie zu arbeiten um nach einem ungeplanten Energiemangel die hoffentlich noch verfügbare Energie am Rest des Tages zu nutzen.
Nach alldem was ich hier verstehe hätte eigentlich das hier nicht auftreten dürfen. Warscheinlich wird das durch deinen SOC fix behoben.

Zitat von: DS_Starter am 12 September 2025, 09:01:39
ZitatWarum sehe ich dann so unterschiedliche Werte wie hier? OptTargetPower ist immer deutlich niedriger wenn ChargeUnrestricted gesetzt ist!?!
Kann ich dir nicht beantworten. Beide Optimierungsstrategien werden intern durch verschiedene Subs mit unterschiedlichen Optimierungszielen berechnet.

Ich hab mir dazu mal den Code angesehen und folgendes gefunden:
$crel = Battery_ChargeUnrestricted
          $socwh   += $crel       ? ($fceff > 0 ? $fceff * STOREFFDEF : $fceff / STOREFFDEF) :
                      ($fceff > 0 ? 0 : $fceff / STOREFFDEF);                                    # PV Überschuß (d.h. Aufladung) nur einbeziehen wenn Ladefreigabe
...
sub __batChargeOptTargetPower {
...
          my $runwh       = defined $hsurp->{$shod}{$sbn}{fcnextwh} ?                                            # Auswahl des zu verwenden Prognose-SOC (Wh)
                            $hsurp->{$shod}{$sbn}{fcnextwh} :
                            $hsurp->{$shod}{$sbn}{socwh};
...
          my $runwhneed   = $sbatinstcap - $runwh;
          my $needraw     = $sphrs ? $runwhneed / $sphrs : $runwhneed;                                           # Ladeleistung initial

Es sieht also so aus als ob die Abhängigkeit $crel => §socwh => $runwh => $runwhneed => $needraw die Beobachtung erklären könnte.
Wenn die Strategien wirklich unabhängig sein sollen, sollten wir auch die Abhängigkeiten dazwischen entfernen. Sprich $socwh für beide Fälle individuell berechnen mit der Annahme das diese Strategie auch genutzt wird.

Zitat von: DS_Starter am 12 September 2025, 16:10:07ich habe einen Fehler in der Berechnungslogik von Battery_ChargeOptTargetPower_XX erkannt und beseitigt.
Ich habe zwar sehr kontinuierlich den PV-Überschuß neu berechnet, aber bzgl. SoC fehlte der Abgleich von Prognose und Ist-SoC.
Das habbe ich jetzt korrigiert und ins contrib geladen.

Herzlichen Dank, ich werds gleich mal aktualisieren und sehen wie's läuft

LG
Hadl
FHEM: Rpi 5 + SSD / WR: Fronius Symo Gen24 10.0 Plus + BYD HVS 7.7, Fronius Symo Gen24 12.0 SC (60%) PV: (Ost=3.5 West=6.6 Nord=9.9 Ost=4.5) / Homematic BidCoS / Shelly / Viessmann

Hadl

Ich hab die neue Version angetestet. Als erste Auffälligkeit hab ich das Battery_ChargeOptTargetPower_01 zweimal direkt hintereinander geschrieben wird. Einmal mit nem echten Wert, einmal ohne Wert. Siehe screenshot vom Eventlog
Du darfst diesen Dateianhang nicht ansehen.

Im Ergebnis steht dann nur die Einheit ohne Wert im Reading
Du darfst diesen Dateianhang nicht ansehen.

Hier der debug dazu:
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 SoC Step1 - basics -> Battery share factor of total capacity: 1
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 SoC Step1 - basics -> Expected energy for charging raw: 64192 Wh
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 SoC Step1 - basics -> Expected energy for charging after application Share factor: 64192 Wh
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 SoC Step1 - compare with SoC history -> preliminary new Target: 35 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 SoC Step2 - basics -> Energy expected for charging: 64192 Wh, need until maxsoc: 438 Wh
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 SoC Step2 - calc care SoC -> docare: 0, care SoC: 35 %, use preliminary Target: 35 % (care SoC calculation & activation postponed to after 13.09.2025 17:59:00)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 SoC Step3 - basics -> cantarget: -736 %, newtarget: -736 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 SoC Step3 - charging probability -> docare: 0, Target: 35 % (new target < current Target SoC 40)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 SoC Step4 - basics -> docare: 0, lowSoc: 40 %, upSoc: 60 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 SoC Step4 - observe low/up limits -> Target: 40 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 SoC Step5 - rounding the SoC to steps of 5 % -> Target: 40 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 SoC Step6 - force charging request: no (Battery is sufficiently charged)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> ChargeMgmt - Inverter 'Fronius_Symo1' cap: 10000 W, Power limit: 100 % -> Pmax eff: 10000 W
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> ChargeMgmt - Inverter 'Fronius_Symo2' cap: 12000 W, Power limit: 100 % -> Pmax eff: 12000 W
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> ChargeMgmt - Summary Power limit of all Inverter (except feed 'grid'): 22000 W
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> ChargeMgmt - The limit for grid feed-in is: 18800 W
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeMgmt - General load termination condition: 0
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeMgmt - control time Slot - Slot start: 00:00, Slot end: 23:59
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeMgmt - Installed Battery capacity: 7680 Wh, Percentage of total capacity: 100.0 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeMgmt - The PV generation, consumption and surplus listed below are based on the battery's share of total installed capacity!
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR - used safety margin: 50 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/00 -> 0 (CurrSoc: 74.3 %, SoCfc: 5457 Wh, whneed: 1974, pvfc: 0, rodpvfc: 71123, confcss: 6707, SurpDay: 64416 Wh, CurrPV: 0 W, CurrCons: 297 W, Limit: 22000 W, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/01 -> 0 (SoCfc: 68.0 % / 5219 Wh, whneed: 2223, pvfc: 0, rodpvfc: 71123, confcss: 6493, SurpDay: 64630 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/02 -> 0 (SoCfc: 64.9 % / 4986 Wh, whneed: 2461, pvfc: 0, rodpvfc: 71123, confcss: 6283, SurpDay: 64840 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/03 -> 0 (SoCfc: 61.9 % / 4752 Wh, whneed: 2694, pvfc: 0, rodpvfc: 71123, confcss: 6072, SurpDay: 65051 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/04 -> 0 (SoCfc: 58.9 % / 4525 Wh, whneed: 2928, pvfc: 0, rodpvfc: 71123, confcss: 5868, SurpDay: 65255 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/05 -> 0 (SoCfc: 55.9 % / 4294 Wh, whneed: 3155, pvfc: 0, rodpvfc: 71123, confcss: 5660, SurpDay: 65463 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/06 -> 0 (SoCfc: 52.5 % / 4032 Wh, whneed: 3386, pvfc: 18, rodpvfc: 71105, confcss: 5406, SurpDay: 65699 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/07 -> 0 (SoCfc: 52.5 % / 4032 Wh, whneed: 3648, pvfc: 988, rodpvfc: 70117, confcss: 4444, SurpDay: 65673 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/08 -> 0 (SoCfc: 52.5 % / 4032 Wh, whneed: 3648, pvfc: 4180, rodpvfc: 65937, confcss: 3434, SurpDay: 62503 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/09 -> 0 (SoCfc: 52.5 % / 4032 Wh, whneed: 3648, pvfc: 3261, rodpvfc: 62676, confcss: 3096, SurpDay: 59580 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/10 -> 0 (SoCfc: 52.5 % / 4032 Wh, whneed: 3648, pvfc: 5527, rodpvfc: 57149, confcss: 2756, SurpDay: 54393 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/11 -> 0 (SoCfc: 52.5 % / 4032 Wh, whneed: 3648, pvfc: 4344, rodpvfc: 52805, confcss: 2358, SurpDay: 50447 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/12 -> 0 (SoCfc: 52.5 % / 4032 Wh, whneed: 3648, pvfc: 13472, rodpvfc: 39333, confcss: 1632, SurpDay: 37701 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/13 -> 0 (SoCfc: 52.5 % / 4032 Wh, whneed: 3648, pvfc: 8675, rodpvfc: 30658, confcss: 919, SurpDay: 29739 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/14 -> 0 (SoCfc: 52.5 % / 4032 Wh, whneed: 3648, pvfc: 9719, rodpvfc: 20939, confcss: 320, SurpDay: 20619 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/15 -> 0 (SoCfc: 52.5 % / 4032 Wh, whneed: 3648, pvfc: 8800, rodpvfc: 12139, confcss: 0, SurpDay: 12139 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/16 -> 1 (SoCfc: 75.9 % / 5832 Wh, whneed: 3648, pvfc: 6890, rodpvfc: 5249, confcss: 0, SurpDay: 5249 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/17 -> 1 (SoCfc: 99.4 % / 7632 Wh, whneed: 1848, pvfc: 3475, rodpvfc: 1774, confcss: 0, SurpDay: 1774 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/18 -> 0 (SoCfc: 99.4 % / 7632 Wh, whneed: 48, pvfc: 1561, rodpvfc: 213, confcss: 0, SurpDay: 213 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/19 -> 1 (SoCfc: 98.3 % / 7553 Wh, whneed: 48, pvfc: 213, rodpvfc: 0, confcss: 0, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/20 -> 1 (SoCfc: 92.1 % / 7075 Wh, whneed: 127, pvfc: 0, rodpvfc: 0, confcss: 0, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/21 -> 1 (SoCfc: 88.0 % / 6759 Wh, whneed: 605, pvfc: 0, rodpvfc: 0, confcss: 0, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/22 -> 1 (SoCfc: 84.0 % / 6453 Wh, whneed: 921, pvfc: 0, rodpvfc: 0, confcss: 0, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 13/23 -> 1 (SoCfc: 79.9 % / 6140 Wh, whneed: 1227, pvfc: 0, rodpvfc: 0, confcss: 0, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/00 -> 0 (SoCfc: 76.7 % / 5891 Wh, whneed: 1540, pvfc: 0, roTomPV: 66960, roTomCON: 9528, SurpDay: 57432 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/01 -> 0 (SoCfc: 73.6 % / 5653 Wh, whneed: 1789, pvfc: 0, roTomPV: 66960, roTomCON: 9314, SurpDay: 57646 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/02 -> 0 (SoCfc: 70.6 % / 5420 Wh, whneed: 2027, pvfc: 0, roTomPV: 66960, roTomCON: 9104, SurpDay: 57856 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/03 -> 0 (SoCfc: 67.5 % / 5186 Wh, whneed: 2260, pvfc: 0, roTomPV: 66960, roTomCON: 8893, SurpDay: 58067 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/04 -> 0 (SoCfc: 64.6 % / 4959 Wh, whneed: 2494, pvfc: 0, roTomPV: 66960, roTomCON: 8689, SurpDay: 58271 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/05 -> 0 (SoCfc: 61.6 % / 4728 Wh, whneed: 2721, pvfc: 0, roTomPV: 66960, roTomCON: 8481, SurpDay: 58479 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/06 -> 0 (SoCfc: 58.0 % / 4456 Wh, whneed: 2952, pvfc: 9, roTomPV: 66951, roTomCON: 8227, SurpDay: 58724 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/07 -> 0 (SoCfc: 52.1 % / 4004 Wh, whneed: 3224, pvfc: 555, roTomPV: 66396, roTomCON: 7265, SurpDay: 59131 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/08 -> 0 (SoCfc: 52.1 % / 4004 Wh, whneed: 3676, pvfc: 2830, roTomPV: 63566, roTomCON: 6255, SurpDay: 57311 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/09 -> 0 (SoCfc: 52.1 % / 4004 Wh, whneed: 3676, pvfc: 3580, roTomPV: 59986, roTomCON: 5917, SurpDay: 54069 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/10 -> 0 (SoCfc: 52.1 % / 4004 Wh, whneed: 3676, pvfc: 3409, roTomPV: 56577, roTomCON: 5577, SurpDay: 51000 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/11 -> 0 (SoCfc: 52.1 % / 4004 Wh, whneed: 3676, pvfc: 11318, roTomPV: 45259, roTomCON: 5179, SurpDay: 40080 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/12 -> 0 (SoCfc: 52.1 % / 4004 Wh, whneed: 3676, pvfc: 8947, roTomPV: 36312, roTomCON: 4453, SurpDay: 31859 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/13 -> 0 (SoCfc: 52.1 % / 4004 Wh, whneed: 3676, pvfc: 9958, roTomPV: 26354, roTomCON: 3740, SurpDay: 22614 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/14 -> 0 (SoCfc: 52.1 % / 4004 Wh, whneed: 3676, pvfc: 6813, roTomPV: 19541, roTomCON: 3141, SurpDay: 16400 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/15 -> 0 (SoCfc: 52.1 % / 4004 Wh, whneed: 3676, pvfc: 10252, roTomPV: 9289, roTomCON: 2737, SurpDay: 6552 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/16 -> 1 (SoCfc: 75.6 % / 5804 Wh, whneed: 3676, pvfc: 3326, roTomPV: 5963, roTomCON: 2217, SurpDay: 3746 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/17 -> 1 (SoCfc: 99.0 % / 7604 Wh, whneed: 1876, pvfc: 4068, roTomPV: 1895, roTomCON: 1893, SurpDay: 2 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/18 -> 1 (SoCfc: 100.0 % / 7680 Wh, whneed: 76, pvfc: 1696, roTomPV: 199, roTomCON: 1555, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/19 -> 1 (SoCfc: 98.8 % / 7586 Wh, whneed: 0, pvfc: 199, roTomPV: 0, roTomCON: 1271, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/20 -> 1 (SoCfc: 92.6 % / 7108 Wh, whneed: 94, pvfc: 0, roTomPV: 0, roTomCON: 841, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/21 -> 1 (SoCfc: 88.4 % / 6792 Wh, whneed: 572, pvfc: 0, roTomPV: 0, roTomCON: 557, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/22 -> 1 (SoCfc: 84.5 % / 6486 Wh, whneed: 888, pvfc: 0, roTomPV: 0, roTomCON: 282, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 14/23 -> 1 (SoCfc: 80.4 % / 6173 Wh, whneed: 1194, pvfc: 0, roTomPV: 0, roTomCON: 0, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/00 -> 0 (SoCfc: 77.1 % / 5924 Wh, whneed: 1507, pvfc: 0, roTomPV: 60658, roTomCON: 9528, SurpDay: 51130 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/01 -> 0 (SoCfc: 74.0 % / 5686 Wh, whneed: 1756, pvfc: 0, roTomPV: 60658, roTomCON: 9314, SurpDay: 51344 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/02 -> 0 (SoCfc: 71.0 % / 5453 Wh, whneed: 1994, pvfc: 0, roTomPV: 60658, roTomCON: 9104, SurpDay: 51554 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/03 -> 0 (SoCfc: 68.0 % / 5219 Wh, whneed: 2227, pvfc: 0, roTomPV: 60658, roTomCON: 8893, SurpDay: 51765 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/04 -> 0 (SoCfc: 65.0 % / 4992 Wh, whneed: 2461, pvfc: 0, roTomPV: 60658, roTomCON: 8689, SurpDay: 51969 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/05 -> 0 (SoCfc: 62.0 % / 4761 Wh, whneed: 2688, pvfc: 0, roTomPV: 60658, roTomCON: 8481, SurpDay: 52177 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/06 -> 0 (SoCfc: 58.3 % / 4479 Wh, whneed: 2919, pvfc: 0, roTomPV: 60658, roTomCON: 8227, SurpDay: 52431 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/07 -> 0 (SoCfc: 54.6 % / 4192 Wh, whneed: 3201, pvfc: 704, roTomPV: 59954, roTomCON: 7265, SurpDay: 52689 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/08 -> 0 (SoCfc: 51.5 % / 3956 Wh, whneed: 3488, pvfc: 798, roTomPV: 59156, roTomCON: 6255, SurpDay: 52901 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/09 -> 0 (SoCfc: 51.5 % / 3956 Wh, whneed: 3724, pvfc: 2910, roTomPV: 56246, roTomCON: 5917, SurpDay: 50329 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/10 -> 0 (SoCfc: 51.5 % / 3956 Wh, whneed: 3724, pvfc: 3732, roTomPV: 52514, roTomCON: 5577, SurpDay: 46937 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/11 -> 0 (SoCfc: 51.5 % / 3956 Wh, whneed: 3724, pvfc: 7041, roTomPV: 45473, roTomCON: 5179, SurpDay: 40294 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/12 -> 0 (SoCfc: 51.5 % / 3956 Wh, whneed: 3724, pvfc: 8389, roTomPV: 37084, roTomCON: 4453, SurpDay: 32631 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/13 -> 0 (SoCfc: 51.5 % / 3956 Wh, whneed: 3724, pvfc: 10730, roTomPV: 26354, roTomCON: 3740, SurpDay: 22614 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/14 -> 0 (SoCfc: 51.5 % / 3956 Wh, whneed: 3724, pvfc: 10262, roTomPV: 16092, roTomCON: 3141, SurpDay: 12951 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/15 -> 0 (SoCfc: 51.5 % / 3956 Wh, whneed: 3724, pvfc: 7581, roTomPV: 8511, roTomCON: 2737, SurpDay: 5774 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/16 -> 1 (SoCfc: 74.9 % / 5756 Wh, whneed: 3724, pvfc: 4530, roTomPV: 3981, roTomCON: 2217, SurpDay: 1764 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/17 -> 1 (SoCfc: 98.4 % / 7556 Wh, whneed: 1924, pvfc: 2362, roTomPV: 1619, roTomCON: 1893, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/18 -> 1 (SoCfc: 100.0 % / 7680 Wh, whneed: 124, pvfc: 1429, roTomPV: 190, roTomCON: 1555, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/19 -> 1 (SoCfc: 98.6 % / 7576 Wh, whneed: 0, pvfc: 190, roTomPV: 0, roTomCON: 1271, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/20 -> 1 (SoCfc: 92.4 % / 7098 Wh, whneed: 104, pvfc: 0, roTomPV: 0, roTomCON: 841, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/21 -> 1 (SoCfc: 88.3 % / 6782 Wh, whneed: 582, pvfc: 0, roTomPV: 0, roTomCON: 557, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/22 -> 1 (SoCfc: 84.3 % / 6476 Wh, whneed: 898, pvfc: 0, roTomPV: 0, roTomCON: 282, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeUR 15/23 -> 1 (SoCfc: 80.2 % / 6163 Wh, whneed: 1204, pvfc: 0, roTomPV: 0, roTomCON: 0, SurpDay: 0 Wh, inTime: 1)
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> ChargeOTP - maximum OptTargetPower Bat 01: 500 W, number relevant values: 11
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> ChargeOTP - The limit for grid feed-in is 18800 W
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> ChargeOTP - NOTE: The hours printed below are the estimated number of hours on the current day with at least the respective PV surplus.
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 01, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 500 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 02, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 500 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 03, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 500 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 04, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 500 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 05, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 500 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 06, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 500 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 07, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 500 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 08, Start SoC: 4032 Wh, Surplus: 26 Wh (11 hours), OptTargetPower: 26 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 09, Start SoC: 4058 Wh, Surplus: 2000 Wh (9 hours), OptTargetPower: 483 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 10, Start SoC: 4541 Wh, Surplus: 2000 Wh (8 hours), OptTargetPower: 471 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 11, Start SoC: 5012 Wh, Surplus: 2000 Wh (7 hours), OptTargetPower: 457 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 12, Start SoC: 5469 Wh, Surplus: 2000 Wh (6 hours), OptTargetPower: 442 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 13, Start SoC: 5911 Wh, Surplus: 2000 Wh (5 hours), OptTargetPower: 425 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 14, Start SoC: 6336 Wh, Surplus: 2000 Wh (4 hours), OptTargetPower: 403 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 15, Start SoC: 6739 Wh, Surplus: 2000 Wh (3 hours), OptTargetPower: 376 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 16, Start SoC: 7115 Wh, Surplus: 2000 Wh (2 hours), OptTargetPower: 339 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 17, Start SoC: 7454 Wh, Surplus: 2000 Wh (1 hours), OptTargetPower: 271 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 18, Start SoC: 7680 Wh, Surplus: 2000 Wh (1 hours), OptTargetPower: 500 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 19, Start SoC: 7632 Wh, Surplus: 1223 Wh (10 hours), OptTargetPower: 6 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 20, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 500 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 21, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 500 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 22, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 500 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 23, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 500 W, safety: 20 %
2025.09.13 00:26:29 1: PV_SolarForecast DEBUG> Bat 01 ChargeOTP - hod: 24, Start SoC: - Wh, Surplus: 0 Wh , OptTargetPower: 500 W, safety: 20 %

zusammen mit diesem Perl Fehler:
2025.09.13 00:00:04 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/76_SolarForecast.pm line 11960.
und diesem, der aber warscheinlich nicht damit zusammenhängt:
2025.09.12 23:40:54 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/76_SolarForecast.pm line 11516.
FHEM: Rpi 5 + SSD / WR: Fronius Symo Gen24 10.0 Plus + BYD HVS 7.7, Fronius Symo Gen24 12.0 SC (60%) PV: (Ost=3.5 West=6.6 Nord=9.9 Ost=4.5) / Homematic BidCoS / Shelly / Viessmann

DS_Starter

#3971
Guten Morgen,

@Hadl, da hatte ich nur vergessen die aktuellste Entwicklungsversion ins contrib zu laden. Gerne nochmal laden.

Heute sieht man im Debug auch mehr. Bei mir schaut es nun so aus für den heutigen Tag:

2025.09.13 08:23:24.989 1: SolCast DEBUG> ChargeOTP - maximum OptTargetPower Bat 01: 2720 W, number relevant values: 8
2025.09.13 08:23:24.989 1: SolCast DEBUG> ChargeOTP - The limit for grid feed-in is 4800 W
2025.09.13 08:23:24.989 1: SolCast DEBUG> ChargeOTP - NOTE: The hours printed below are the estimated number of hours on the current day with at least the respective PV surplus.
2025.09.13 08:23:24.990 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 09, Start SoC: 19891 Wh, Surplus: 992 Wh (8 hrs), OTP: 992 W, safety: 20 %
2025.09.13 08:23:24.990 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 10, Start SoC: 20883 Wh, Surplus: 1337 Wh (7 hrs), OTP: 1291 W, safety: 20 %
2025.09.13 08:23:24.990 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 11, Start SoC: 22174 Wh, Surplus: 1393 Wh (6 hrs), OTP: 1248 W, safety: 20 %
2025.09.13 08:23:24.991 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 12, Start SoC: 23422 Wh, Surplus: 2617 Wh (2 hrs), OTP: 2617 W, safety: 20 %
2025.09.13 08:23:24.991 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 13, Start SoC: 26039 Wh, Surplus: 2720 Wh (1 hrs), OTP: 2720 W, safety: 20 %
2025.09.13 08:23:24.991 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 14, Start SoC: 24694 Wh, Surplus: 1828 Wh (5 hrs), OTP: 893 W, safety: 20 %
2025.09.13 08:23:24.992 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 15, Start SoC: 25587 Wh, Surplus: 1854 Wh (4 hrs), OTP: 849 W, safety: 20 %
2025.09.13 08:23:24.992 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 16, Start SoC: 26436 Wh, Surplus: 2887 Wh (1 hrs), OTP: 2376 W, safety: 20 %
2025.09.13 08:23:24.992 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 17, Start SoC: 28416 Wh, Surplus: 2433 Wh (3 hrs), OTP: 1000 W, safety: 20 %
2025.09.13 08:23:24.993 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 18, Start SoC: 28416 Wh, Surplus: 232 Wh (9 hrs), OTP: 1000 W, safety: 20 %
2025.09.13 08:23:24.993 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 19, Start SoC: - Wh, Surplus: 0 Wh , OTP: 1000 W, safety: 20 %
2025.09.13 08:23:24.993 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 20, Start SoC: - Wh, Surplus: 0 Wh , OTP: 1000 W, safety: 20 %
2025.09.13 08:23:24.994 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 21, Start SoC: - Wh, Surplus: 0 Wh , OTP: 1000 W, safety: 20 %
2025.09.13 08:23:24.994 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 22, Start SoC: - Wh, Surplus: 0 Wh , OTP: 1000 W, safety: 20 %
2025.09.13 08:23:24.994 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 23, Start SoC: - Wh, Surplus: 0 Wh , OTP: 1000 W, safety: 20 %
2025.09.13 08:23:24.995 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 24, Start SoC: - Wh, Surplus: 0 Wh , OTP: 1000 W, safety: 20 %
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Parallix

#3972
Gestern habe ich mich daran gemacht, Anforderungen, zu denen SF beitragen könnte oder jetzt bereits schon kann, einmal aufzuschreiben und werde mich die nächsten Tage daran machen, Strategien zu entwickeln, wie die Anforderungen befriedigt werden können. Es wäre super, wenn Ihr alle mal über meine Liste schauen würdet und mir sicherlich noch fehlende Punkte nennt, sodass ich diese dann noch in die Liste aufnehmen kann.
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.60) und 7591 (8.20) - Goodwe: GW25K-ET (DSP V10 / ARM V12) - Trina TSM 405: (#East, #South, #West) = (12,16,12) - BYD: 2 x HVS 7.7 (BMS V3.31-B, BMU V3.26-B) - EnOcean - Z-Wave - FS20/HMS

DS_Starter

#3973
Ich habe noch etwas weitergefeilt.
Über die prognostizierte benötigte Ladeleistung des (Rest)Tages wird die Summe ermittelt und darüber ein benötigter Durchschnitt mit den noch verfügbaren Ladestunden gebildet.
Im Log "average" -> dieser Wert wird für die aktuelle Stunde mit der zunächst ermittelten Mindestladeleistung verglichen und der Maximalwert beider Werte als Target-Leistung verwendet. Im Beispiel "OTP: 1829 W", dieser Wert findet sich auch im Reading Battery_ChargeOptTargetPower_XX wieder:

2025.09.13 10:55:46.863 1: SolCast DEBUG> ChargeOTP - max OTP Bat 01: 2846 W, sum need: 10972 Wh, number hrs: 6, average: 1829 W
2025.09.13 10:55:46.863 1: SolCast DEBUG> ChargeOTP - The limit for grid feed-in is 4800 W
2025.09.13 10:55:46.864 1: SolCast DEBUG> ChargeOTP - NOTE: The hours listed below are the estimated number of hours remaining on the current day with at least the respective PV surplus.
2025.09.13 10:55:46.864 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 11, Start SoC: 20460 Wh, Surplus: 1438 Wh (5 hrs), OTP: 1829 W, safety: 20 %
2025.09.13 10:55:46.864 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 12, Start SoC: 21754 Wh, Surplus: 1320 Wh (6 hrs), OTP: 1320 W, safety: 20 %
2025.09.13 10:55:46.865 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 13, Start SoC: 23074 Wh, Surplus: 1965 Wh (3 hrs), OTP: 1965 W, safety: 20 %
2025.09.13 10:55:46.865 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 14, Start SoC: 25028 Wh, Surplus: 1673 Wh (4 hrs), OTP: 1016 W, safety: 20 %
2025.09.13 10:55:46.865 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 15, Start SoC: 26044 Wh, Surplus: 3336 Wh (1 hrs), OTP: 2846 W, safety: 20 %
2025.09.13 10:55:46.866 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 16, Start SoC: 28030 Wh, Surplus: 2892 Wh (1 hrs), OTP: 463 W, safety: 20 %
2025.09.13 10:55:46.866 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 17, Start SoC: 28416 Wh, Surplus: 2280 Wh (2 hrs), OTP: 1000 W, safety: 20 %
2025.09.13 10:55:46.866 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 18, Start SoC: 28416 Wh, Surplus: 226 Wh (7 hrs), OTP: 1000 W, safety: 20 %
2025.09.13 10:55:46.867 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 19, Start SoC: - Wh, Surplus: 0 Wh , OTP: 1000 W, safety: 20 %
2025.09.13 10:55:46.867 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 20, Start SoC: - Wh, Surplus: 0 Wh , OTP: 1000 W, safety: 20 %
2025.09.13 10:55:46.867 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 21, Start SoC: - Wh, Surplus: 0 Wh , OTP: 1000 W, safety: 20 %
2025.09.13 10:55:46.868 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 22, Start SoC: - Wh, Surplus: 0 Wh , OTP: 1000 W, safety: 20 %
2025.09.13 10:55:46.868 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 23, Start SoC: - Wh, Surplus: 0 Wh , OTP: 1000 W, safety: 20 %
2025.09.13 10:55:46.868 1: SolCast DEBUG> Bat 01 ChargeOTP - hod: 24, Start SoC: - Wh, Surplus: 0 Wh , OTP: 1000 W, safety: 20 %

Warum das Ganze?
Es wird bei der benötigten Ladeleistung von einer gleichbleibenden Mindestladeleistung von X W über eine Stunde ausgegangen um die benötigte Ladeenergie für diese Stunde zu erreichen. D.h. man begrenzt die Ladeleistung praktisch im Inverter.
Allerdings wird dieser Idealzustand innerhalb der Stunde nur bei sehr stabilen Verhältnissen zutreffen. Real wird es auch Zeiten innerhalb der aktuellen Stunde geben, dass die min. Ladeleistung nicht erreicht wird. Sei es weil eine Wolke vor der Sonne ist oder der Wasserkocher angeschaltet wurde. Andererseits gibt es wahrscheinlich auch Zeiten mit höhrem Überschuß als kalkuliert was zu einer ausgleichenden Ladung führen kann sofern die Ladeleistung nicht auf das Minimum begrenzt ist.
Die Überhöhung des Targets auf den benötigten Durchschnittswert wirkt diesem Effekt entgegen. Liegt die berechnete Mindestladeleistung über dem kalkulierten Durchschnitt, wird dieser Wert als Target im Reading verwendet.

Update liegt im contrib.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

MartinD

#3974
Vielen Dank an DS_Starter für die Arbeit!
Ich benutze hier:
SolarForecast
FVERSION 76_SolarForecast.pm 30261 2025-09-08 19:45:04Z DS_Starter

und

70_SolarEdgeAPI.pm 22510 2020-08-01 10:19:18Z pizmus

Eigentlich ist das Einrichten sehr gut und ausführlich in Wiki beschrieben, dennoch habe ich Problem mit Einrichten:

setupInverterDev01 ist bei mir:
attr SolCast setupInverterDev01 MD_SolarEdge  pvOut=status-load_power:kW pvIn=Leistung_vom_Dach:W etotal=Energie_Smartmeter:kWh capacity=10000 strings=MD_SolarEdge

in MD_SolarEdge ist:
Leistung_vom_Dach {sprintf("%.2f", (ReadingsNum ('MD_SolarEdge' ,'status-pv_power',0)*1000))} ---> abreitet korrekt
und
Energie_Smartmeter {sprintf("%.2f", ReadingsNum ('Energiemessung_Smart' ,'kWh',0))} ---> abreitet korrekt

Bei dieser Konfiguration wird der Input von PV dauerhaft positiv angezeigt (auch Nachts, wenn Leistung_vom_Dach=0 ist)

wenn ich pvIn und pvOut tausche (pvIn=status-load_power und pvOut=Leistung_vom_Dach) wird der Wert scheibar korrekt ausgewertet,
aber die Berechnungen (Vorhersage und Ertrag) stimmen gar nicht.

Stehe nun komplett auf dem Schlauch, vielleicht kann mir jemand einen Denk-Schubser geben.

Hier noch der list:
Internals:
   FUUID      6728845d-f33f-84ec-49b9-c1050f7c54d9b548
   FVERSION   76_SolarForecast.pm:v1.58.1-s30261/2025-09-08
   LCACHEFILE last write time: 15:03:08 whole Operating Memory
   MODE       Automatic / Event-controlled - next planned Cycletime: 15:08:33
   MODEL      OpenMeteoDWDAPI
   NAME       SolCast
   NOTIFYDEV  SolarEdge,Schaltaktor_Garage,Schaltdose_Fernseh_Kueche_IP_kaputt,Messdose_Keller_Jola_IP,Schaltdose_Waschkuche_IP,Multimessdose_2B28FC_IP,Leistungmessung_Shelly,Schaltdose_Trockner_IP,Kaffeemaschine,MD_SolarEdge
   NR         403
   NTFY_ORDER 50-SolCast
   STATE      updated
   TYPE       SolarForecast
   WEATHERMODEL OpenMeteoDWDAPI
   eventCount 2202
   HELPER:
     FW         WEB
     PACKAGE    FHEM::SolarForecast
     S10DONE    1
     SPGDETAIL  SolCast
     SPGDEV     SolCast
     SPGROOM    Solar
     VERSION    1.58.1
     VERSION_API unused
     VERSION_CTZ 1.0.0
     VERSION_ErrCodes 1.3.9
     VERSION_SMUtils 1.28.3
     GMFRUNNING:
       abortFn    FHEM::SolarForecast::_abortGetMessageFile
       bc_pid     16720
       finishFn   FHEM::SolarForecast::_processMessageFile
       fn         FHEM::SolarForecast::_retrieveMessageFile
       loglevel   3
       pid        DEAD:31083
       telnet     telnetForBlockingFn_1757705164.96685_127.0.0.1_52208
       terminated 1
       timeout    30
       abortArg:
       arg:
         block      1
         name       SolCast
         tsnext     1757771188.8422
   Helper:
     DBLOG:
       Today_PVforecast:
         mozart4_DbLog:
           TIME       1757760085.69278
           VALUE      13046
       Tomorrow_PVforecast:
         mozart4_DbLog:
           TIME       1757768422.39032
           VALUE      18950
   OLDREADINGS:
   READINGS:
     2025-09-13 15:07:23   Battery_ChargeOptTargetPower_01 5000 W
     2025-09-13 15:07:23   Battery_ChargeRecommended_01 0
     2025-09-13 15:07:23   Battery_ChargeRequest_01 0
     2025-09-13 15:07:23   Battery_ChargeUnrestricted_01 0
     2025-09-13 15:07:23   Battery_OptimumTargetSoC_01 10 %
     2025-09-13 15:07:23   Current_AutarkyRate 96 %
     2025-09-13 15:07:23   Current_BatCharge_01 100 %
     2025-09-13 15:07:23   Current_Consumption 229 W
     2025-09-13 15:07:23   Current_GridConsumption 9 W
     2025-09-13 15:07:23   Current_GridFeedIn 0 W
     2025-09-13 15:07:23   Current_PV      220 W
     2025-09-13 15:07:23   Current_PowerBatIn_01 0 W
     2025-09-13 15:07:23   Current_PowerBatOut_01 0 W
     2025-09-13 15:07:23   Current_SelfConsumption 220 W
     2025-09-13 15:07:23   Current_SelfConsumptionRate 100 %
     2025-09-13 15:07:23   Current_Surplus 0 W
     2025-09-13 08:36:17   Error           malformed JSON string received
     2025-09-13 08:36:17   Errorcode       9000
     2025-09-13 15:00:00   LastHourGridconsumptionReal 399 Wh
     2025-09-13 15:00:00   LastHourPVforecast 2065 Wh
     2025-09-13 15:00:00   LastHourPVreal  100 Wh
     2025-09-13 15:07:23   NextHours_Sum01_PVforecast 132 Wh
     2025-09-13 15:07:23   NextHours_Sum02_PVforecast 584 Wh
     2025-09-13 15:07:23   NextHours_Sum03_PVforecast 1675 Wh
     2025-09-13 15:07:23   NextHours_Sum04_ConsumptionForecast 653 Wh
     2025-09-13 15:07:23   NextHours_Sum04_PVforecast 2015 Wh
     2025-09-13 15:07:23   RestOfDayConsumptionForecast 1872 Wh
     2025-09-13 15:07:23   RestOfDayPVforecast 2075 Wh
     2025-09-13 00:59:49   Today_Hour01_BatIn_01 0 Wh
     2025-09-13 00:59:49   Today_Hour01_BatOut_01 377 Wh
     2025-09-13 00:59:49   Today_Hour01_GridConsumption 258 Wh
     2025-09-13 00:59:49   Today_Hour01_GridFeedIn 258 Wh
     2025-09-13 00:59:49   Today_Hour01_PVreal 100 Wh
     2025-09-13 01:59:49   Today_Hour02_BatIn_01 0 Wh
     2025-09-13 01:59:49   Today_Hour02_BatOut_01 400 Wh
     2025-09-13 01:59:49   Today_Hour02_GridConsumption 274 Wh
     2025-09-13 01:59:49   Today_Hour02_GridFeedIn 274 Wh
     2025-09-13 01:59:49   Today_Hour02_PVreal 0 Wh
     2025-09-13 02:59:50   Today_Hour03_BatIn_01 0 Wh
     2025-09-13 02:59:50   Today_Hour03_BatOut_01 380 Wh
     2025-09-13 02:59:50   Today_Hour03_GridConsumption 270 Wh
     2025-09-13 02:59:50   Today_Hour03_GridFeedIn 270 Wh
     2025-09-13 02:59:50   Today_Hour03_PVreal 100 Wh
     2025-09-13 03:59:49   Today_Hour04_BatIn_01 0 Wh
     2025-09-13 03:59:49   Today_Hour04_BatOut_01 397 Wh
     2025-09-13 03:59:49   Today_Hour04_GridConsumption 264 Wh
     2025-09-13 03:59:49   Today_Hour04_GridFeedIn 264 Wh
     2025-09-13 03:59:49   Today_Hour04_PVreal 0 Wh
     2025-09-13 04:59:50   Today_Hour05_BatIn_01 0 Wh
     2025-09-13 04:59:50   Today_Hour05_BatOut_01 398 Wh
     2025-09-13 04:59:50   Today_Hour05_GridConsumption 266 Wh
     2025-09-13 04:59:50   Today_Hour05_GridFeedIn 266 Wh
     2025-09-13 04:59:50   Today_Hour05_PVreal 100 Wh
     2025-09-13 05:59:51   Today_Hour06_BatIn_01 0 Wh
     2025-09-13 05:59:51   Today_Hour06_BatOut_01 378 Wh
     2025-09-13 05:59:51   Today_Hour06_GridConsumption 275 Wh
     2025-09-13 05:59:51   Today_Hour06_GridFeedIn 275 Wh
     2025-09-13 05:59:51   Today_Hour06_PVreal 0 Wh
     2025-09-13 06:59:50   Today_Hour07_BatIn_01 0 Wh
     2025-09-13 06:59:50   Today_Hour07_BatOut_01 403 Wh
     2025-09-13 06:59:50   Today_Hour07_GridConsumption 204 Wh
     2025-09-13 06:59:50   Today_Hour07_GridFeedIn 204 Wh
     2025-09-13 06:59:50   Today_Hour07_PVreal 100 Wh
     2025-09-13 07:59:50   Today_Hour08_BatIn_01 0 Wh
     2025-09-13 07:59:50   Today_Hour08_BatOut_01 349 Wh
     2025-09-13 07:59:50   Today_Hour08_GridConsumption 253 Wh
     2025-09-13 07:59:50   Today_Hour08_GridFeedIn 253 Wh
     2025-09-13 07:59:50   Today_Hour08_PVforecast 86 Wh
     2025-09-13 07:59:50   Today_Hour08_PVreal 0 Wh
     2025-09-13 08:59:53   Today_Hour09_BatIn_01 0 Wh
     2025-09-13 08:59:53   Today_Hour09_BatOut_01 328 Wh
     2025-09-13 08:59:53   Today_Hour09_GridConsumption 376 Wh
     2025-09-13 08:59:53   Today_Hour09_GridFeedIn 376 Wh
     2025-09-13 08:59:53   Today_Hour09_PVforecast 129 Wh
     2025-09-13 08:59:53   Today_Hour09_PVreal 200 Wh
     2025-09-13 09:59:51   Today_Hour10_BatIn_01 727 Wh
     2025-09-13 09:59:51   Today_Hour10_BatOut_01 8 Wh
     2025-09-13 09:59:51   Today_Hour10_GridConsumption 156 Wh
     2025-09-13 09:59:51   Today_Hour10_GridFeedIn 156 Wh
     2025-09-13 09:59:51   Today_Hour10_PVforecast 461 Wh
     2025-09-13 09:59:51   Today_Hour10_PVreal 100 Wh
     2025-09-13 10:59:50   Today_Hour11_BatIn_01 1895 Wh
     2025-09-13 10:59:50   Today_Hour11_BatOut_01 0 Wh
     2025-09-13 10:59:50   Today_Hour11_GridConsumption 163 Wh
     2025-09-13 10:59:50   Today_Hour11_GridFeedIn 163 Wh
     2025-09-13 10:59:50   Today_Hour11_PVforecast 303 Wh
     2025-09-13 10:59:50   Today_Hour11_PVreal 0 Wh
     2025-09-13 11:59:49   Today_Hour12_BatIn_01 3226 Wh
     2025-09-13 11:59:49   Today_Hour12_BatOut_01 80 Wh
     2025-09-13 11:59:49   Today_Hour12_GridConsumption 914 Wh
     2025-09-13 11:59:49   Today_Hour12_GridFeedIn 914 Wh
     2025-09-13 11:59:49   Today_Hour12_PVforecast 3236 Wh
     2025-09-13 11:59:49   Today_Hour12_PVreal 200 Wh
     2025-09-13 12:59:49   Today_Hour13_BatIn_01 645 Wh
     2025-09-13 12:59:49   Today_Hour13_BatOut_01 12 Wh
     2025-09-13 12:59:49   Today_Hour13_GridConsumption 241 Wh
     2025-09-13 12:59:49   Today_Hour13_GridFeedIn 241 Wh
     2025-09-13 12:59:49   Today_Hour13_PVforecast 1981 Wh
     2025-09-13 12:59:49   Today_Hour13_PVreal 0 Wh
     2025-09-13 13:59:49   Today_Hour14_BatIn_01 77 Wh
     2025-09-13 13:59:49   Today_Hour14_BatOut_01 73 Wh
     2025-09-13 13:59:49   Today_Hour14_GridConsumption 774 Wh
     2025-09-13 13:59:49   Today_Hour14_GridFeedIn 774 Wh
     2025-09-13 13:59:49   Today_Hour14_PVforecast 2697 Wh
     2025-09-13 13:59:49   Today_Hour14_PVreal 100 Wh
     2025-09-13 14:59:49   Today_Hour15_BatIn_01 54 Wh
     2025-09-13 14:59:49   Today_Hour15_BatOut_01 52 Wh
     2025-09-13 14:59:49   Today_Hour15_GridConsumption 399 Wh
     2025-09-13 14:59:49   Today_Hour15_GridFeedIn 399 Wh
     2025-09-13 14:59:49   Today_Hour15_PVforecast 2065 Wh
     2025-09-13 14:59:49   Today_Hour15_PVreal 100 Wh
     2025-09-13 15:07:23   Today_Hour16_BatIn_01 0 Wh
     2025-09-13 15:07:23   Today_Hour16_BatOut_01 0 Wh
     2025-09-13 15:07:23   Today_Hour16_GridConsumption 31 Wh
     2025-09-13 15:07:23   Today_Hour16_GridFeedIn 31 Wh
     2025-09-13 15:07:23   Today_Hour16_PVforecast 100 Wh
     2025-09-13 15:07:23   Today_Hour16_PVreal 0 Wh
     2025-09-13 15:07:23   Today_Hour17_PVforecast 337 Wh
     2025-09-13 15:07:23   Today_Hour18_PVforecast 1201 Wh
     2025-09-13 15:07:23   Today_Hour19_PVforecast 381 Wh
     2025-09-13 15:07:23   Today_Hour20_PVforecast 69 Wh
     2025-09-13 15:07:23   Today_MaxPVforecast 3236 Wh
     2025-09-13 15:07:23   Today_MaxPVforecastTime 2025-09-13 11:00:00
     2025-09-13 15:07:23   Today_PVforecast 13046 Wh
     2025-09-13 15:07:23   Today_PVreal    1100 Wh
     2025-09-13 15:07:23   Today_SunRise   07:04
     2025-09-13 15:07:23   Today_SunSet    19:52
     2025-09-13 15:07:23   Tomorrow_ConsumptionForecast 5115 Wh
     2025-09-13 15:07:23   Tomorrow_PVforecast 18950 Wh
     2025-09-13 15:07:23   Tomorrow_SunRise 07:05
     2025-09-13 15:07:23   Tomorrow_SunSet 19:50
     2025-09-13 15:07:23   consumer01      name='Schaltaktor_Garage' state='off' mode='can' planningstate='finished'
     2025-09-13 15:07:23   consumer01_currentPower 0 W
     2025-09-13 15:07:23   consumer01_planned_start 13.09.2025 08:50:14
     2025-09-13 15:07:23   consumer01_planned_stop 13.09.2025 10:51:39
     2025-09-13 15:07:23   consumer02      name='Messdose im Keller' state='off' mode='can' planningstate='finished'
     2025-09-13 15:07:23   consumer02_currentPower 0 W
     2025-09-13 15:07:23   consumer02_planned_start 13.09.2025 08:50:14
     2025-09-13 15:07:23   consumer02_planned_stop 13.09.2025 09:52:07
     2025-09-13 15:07:23   consumer03      name='Warmwassergerät' state='off' mode='can' planningstate='finished'
     2025-09-13 15:07:23   consumer03_currentPower 0 W
     2025-09-13 15:07:23   consumer03_planned_start 13.09.2025 11:01:00
     2025-09-13 15:07:23   consumer03_planned_stop 13.09.2025 15:02:42
     2025-09-13 15:07:23   consumer04      name='Waschmaschine' state='off' mode='can' planningstate='noSchedule'
     2025-09-13 15:07:23   consumer04_currentPower 0 W
     2025-09-13 15:07:23   consumer05      name='Fernsehschrank WZ' state='off' mode='can' planningstate='noSchedule'
     2025-09-13 15:07:23   consumer05_currentPower 0 W
     2025-09-13 15:07:23   consumer06      name='Backofen' state='unknown' mode='can' planningstate='planned'
     2025-09-13 15:07:23   consumer06_currentPower 7.1 W
     2025-09-13 15:07:23   consumer06_planned_start 13.09.2025 14:45:11
     2025-09-13 15:07:23   consumer06_planned_stop 13.09.2025 17:45:11
     2025-09-13 15:07:23   consumer07      name='Trockner' state='off' mode='can' planningstate='noSchedule'
     2025-09-13 15:07:23   consumer07_currentPower 0 W
     2025-09-13 15:07:23   consumer08      name='Spülmaschine_und_Wasserkocher' state='unknown' mode='can' planningstate='planned'
     2025-09-13 15:07:23   consumer08_currentPower 9.6 W
     2025-09-13 15:07:23   consumer08_planned_start 13.09.2025 14:45:11
     2025-09-13 15:07:23   consumer08_planned_stop 13.09.2025 17:45:11
     2025-09-13 15:07:23   consumer09      name='Kaffeemaschine' state='on' mode='can' planningstate='noSchedule'
     2025-09-13 15:07:23   consumer09_currentPower 0.2 W
     2025-09-13 15:07:23   nextCycletime   15:08:33
     2025-09-13 14:56:52   nextRadiationAPICall nach 13.09.2025 15:11:52
     2025-09-13 09:00:04   pvCorrectionFactor_09 0.72 (automatic - old factor: 0.69, Sun Alt range: 15, Cloud range: 100, Days in range: 20)
     2025-09-13 10:00:05   pvCorrectionFactor_10 0.93 (automatic - old factor: 0.74, Sun Alt range: 20, Cloud range: 100, Days in range: 7)
     2025-09-13 12:00:04   pvCorrectionFactor_12 0.25 (automatic - old factor: 1.00, Sun Alt range: 35, Cloud range: 45, Days in range: 1)
     2025-09-13 14:00:05   pvCorrectionFactor_14 0.19 (automatic - old factor: 0.94, Sun Alt range: 40, Cloud range: 80, Days in range: 2)
     2025-09-13 15:00:05   pvCorrectionFactor_15 0.15 (automatic - old factor: 0.88, Sun Alt range: 40, Cloud range: 90, Days in range: 2)
     2025-09-13 15:07:23   pvCorrectionFactor_Auto on_complex_ai
     2025-09-13 15:07:23   special_todayConsumptionForecastDay 5127 Wh
     2025-09-13 15:07:24   state           updated
Attributes:
   DbLogInclude Today_PVforecast,Tomorrow_PVforecast
   aiControl  aiTrainStart=2
   comment    geladen_total
chargestatus
Inverter war:
MQTT2_inverter_HM_800 etotal=YieldTotal:kWh pvOut=P_AC:W capacity=800
MQTT2_inverter_HM_800=0.8

SetupMeter war:
Energiemessung_Smart gcon=Leistung:W contotal=kWh:kWh gfeedin=-gcon feedtotal=Energiemessung_Smart:kWh conprice=price:0.32€ feedprice=0.1269:€

Neu seit 12.8.2025
SolarEdge gcon=M_AC_POWER:W contotal=I_AC_Energy_WH:kWh gcon=-gfeedin feedtotal=M_Exported:kWh conprice=0.36:€ feedprice=0.078:€
   consumer01 Schaltaktor_Garage type=charger power=1 mode=can icon=hue_room_carport@yellow on=on off=off pcurr=Leistung etotal=kWh:kWh swstate=state:on:off
   consumer02 Schaltdose_Fernseh_Kueche_IP_kaputt  type=other power=1 mode=can icon=message_socket_unknown@yellow on=on off=off pcurr=Leistung etotal=kWh:kWh swstate=state:on:off
   consumer03 Messdose_Keller_Jola_IP type=heater power=2000 mode=can on=on off=off etotal=kWh:kWh pcurr=power:W icon=sani_buffer_temp_all@yellow swstate=state:on:off
   consumer04 Schaltdose_Waschkuche_IP:Waschmaschine type=noSchedule power=1000 mode=can on=on off=off etotal=kWh:kWh pcurr=power:W icon=scene_laundry_room@yellow  swstate=state:on:off
   consumer05 Multimessdose_2B28FC_IP:Fernsehschrank+WZ type=noSchedule power=500 mode=can on=on off=off etotal=kWh:kWh pcurr=power:W icon=it_television@yellow swstate=state:on:off
   consumer06 Leistungmessung_Shelly:Backofen type=dishwasher power=500 mode=can pcurr=Blindleistung_L2:W icon=scene_baking_oven@yellow
   consumer07 Schaltdose_Trockner_IP:Trockner type=noSchedule power=500 mode=can on=on off=off etotal=kWh:kWh pcurr=power:W icon=scene_clothes_dryer@yellow swstate=state:on:off
   consumer08 Leistungmessung_Shelly:Spülmaschine_und_Wasserkocher type=dishwasher power=500 mode=can  pcurr=Blindleistung_L1:W icon=scene_dishwasher@yellow
   consumer09 Kaffeemaschine type=noSchedule power=900  pcurr=Leistung:W on=on off=off etotal=kWh icon=senseo_icon@yellow swstate=state:on:off
   ctrlBatSocManagement01 lowSoc=10 upSoC=50 maxSoC=98 careCycle=20
   ctrlLanguage DE
   ctrlSpecialReadings todayConsumptionForecastDay
   event-on-change-reading .*
   flowGraphicControl strokeconsumerdyncol=1
   graphicBeam1Content pvReal
   graphicControl hourCount=24 layoutType=double
   graphicHeaderOwnspec #
AutarkyRate:Current_AutarkyRate
Surplus:Current_Surplus
current&nbsp;Gridconsumption:Current_GridConsumption
:
#
CO&nbsp;until&nbsp;sunset:statistic_todayConForecastTillSunset
Verbrauchsprognose&nbsp;f&uuml;r&nbsp;Heute:special_todayConsumptionForecastDay
Day&nbsp;After&nbsp;Tommorow:statistic_dayAfterTomorrowPVforecast
:
:
#Battery
in&nbsp;today:Speicher_laden_daily@MD_SolarEdge
out&nbsp;today:Speicher_entladen_daily@MD_SolarEdge
in/out&nbsp;current:Speicher@MD_SolarEdge

:
:
#Settings
Autocorrection:pvCorrectionFactor_Auto : : :
Consumer<br>Replanning:consumerNewPlanning : : :
Consumer<br>Quickstart:consumerImmediatePlanning : : :
Weather:graphicShowWeather : : :
History:graphicHistoryHour : : :
ShowNight:graphicShowNight : : :
Debug:ctrlDebug : : :
   graphicHeaderOwnspecValForm {
'Speicher_laden_daily' =>  '(sprintf "%.3f", ($VALUE / 1))." kWh"',
'Speicher_entladen_daily' =>  '(sprintf "%.3f", ($VALUE / 1))." kWh"',
'Speicher' =>  '(sprintf "%.3f", ($VALUE / 1000))." kW"',
}
   graphicHistoryHour 1
   graphicShowNight 0
   graphicShowWeather 1
   room       Solar
   setupBatteryDev01 MD_SolarEdge  pin=Speicher:W  pout=-pin poutmax=5000 pinmax=5000 charge=status-storage_level cap=dailyStorage-7B083F14-fullPackEnergyAvailable:kWh intotal=storage-7B083F14-lifeTimeEnergyCharged:Wh outtotal=storage-7B083F14-lifeTimeEnergyDischarged:Wh
   setupInverterDev01 MD_SolarEdge  pvIn=status-load_power:kW pvOut=Leistung_vom_Dach:W etotal=Energie_Smartmeter:kWh capacity=10000 strings=MD_SolarEdge
   setupInverterStrings MD_SolarEdge
   setupMeterDev SolarEdge gcon=M_Leistung_Smartmeter:W contotal=I_AC_Energy_WH:kWh gfeedin=-gcon feedtotal=I_AC_Energy_WH:kWh conprice=0.36:€ feedprice=0.078:€
   setupRadiationAPI OpenMeteoDWD-API
   setupStringAzimuth MD_SolarEdge=0
   setupStringDeclination MD_SolarEdge=38
   setupStringPeak MD_SolarEdge=7.03
   setupWeatherDev1 OpenMeteoDWD-API
   verbose    1

Mit besten Grüßen

Martin