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

Ich glaube auch das Hadl ...

ZitatDas sieht man bei mir immer früh, wenn in der Nacht der Akku unter 40% sinkt.

den lowSoC bei 40% gesetzt hat und der WR diese 40% immer halten will. Vermutlich als Ausfallreserve.
Wenn das so ist und das BMS 40% hält, braucht Hadl im Modul nur z.B. lowSoC=10 einstellen (oder leicht über dem Wert den die Batterie haben muß!). Und dann noch upSoC=40.
Dann würde es bereits passen.
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 31 Oktober 2025, 14:18:23Ja, da streiten sich die Gelehrten.  ;)
Was hältst du davon wenn wir beide Varianten mal ein paar Tage laufen lassen und dann die Verläufe vergleichen?
Zitat von: DS_Starter am 31 Oktober 2025, 14:18:23Warum die zweite Variante problematisch ist
- Sie bindet min($mid,$cap) an die Skalierung durch Restminuten, also wird $cap zunächst an $mid begrenzt und dann erneut verglichen — das erzeugt unnötige/fehlerhafte Doppelbegrenzung.
- Sie kann zu inkonsistenten Beiträgen führen und ist schwer zu lesen/zu debuggen.
Das sehe ich ein. Am Ergebniss kann sich aber dadurch nichts verändern, denn wenn wenn die Stunde "00" erkannt wird ist im Anschluss $cap auf jedem Fall kleiner als $mid. Dadurch wird $cap wird auch verwendet. Also egal ob weil nicht mehr überschuss da ist, oder weil wir nicht schneller laden brauchen, wird nur die Energie der Rest-Stunde in die Energie-Summe genommen.
            $cap = min ($mid, $cap) / 60 * (60 - int $minute) if ($nhr eq '00');     # Restkapazität der aktuellen Stunde mit Restzeit gewichten
            $charged += $mid < $cap ? $mid : $cap;
Aber ja, ist warscheinlich wirklich schwer zu lesen. Ich denke so wird's klarer und führ auch zum richtigen Ergebniss:
            if ($nhr eq '00') { $charged += min ($mid, $cap) / 60 * (60 - int $minute);}     # Restkapazität der aktuellen Stunde mit Restzeit gewichten
            else              { $charged += min ($mid, $cap);}                               # Zukünftige Stunden haben die Leistung über die ganze Stunde verfügbar

Am Ende hat mein Akku den SOC nach oben korrigiert, aber über den Tag hatte ich damit nen super gleichmäßigen Verlauf!
Du darfst diesen Dateianhang nicht ansehen.

Viele Grüße

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

DS_Starter

#4397
ZitatWas hältst du davon wenn wir beide Varianten mal ein paar Tage laufen lassen und dann die Verläufe vergleichen?
Kannst du gerne machen.
Ich muß aber mal weiter vorankommen. Die Version hat nun schon so viele nützliche Erweiterungen erhalten, dass sie ins Repo gehört und es wieder einen eindeutigen Aufsetzpunkt gibt.
Spätestens morgen Abend will ich das erledigen.

Und bitte denke daran ... wir wollen nicht in Schönheit sterben sondern lediglich eine Batterie sinnvoll laden.
In Zeiten mit durchschnittlich mehr Überschuß als benötigt wird, werden die Leistungsvorgaben über weite Strecken gleichmäßig verlaufen. Jetzt wollen wir die Batterien voll bekommen und die Ladebeschränkungen werden sich eher volatil zu den sich verändernden Überschüssen verhalten. 

Das sieht man übrigens auch in deinem Plot. Du brauchst über weite Strecken den Überschuß nicht zu laden solange dein Ladebedarf im Verhältnis zu deinem Überschuß recht klein ist.
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,
liege ich eigentlich mit meiner Vermutung in #4395 richtig?
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

Wolle02

Moin Heiko, ich habe hier ein kleines "Schönheitsproblem". Als ich letztens das SF Modul auf eine andere Fhem Instanz umgezogen habe, habe ich vergessen auf der alten Fhem-Instanz im SF-Modul (habe ich jetzt ein paar Tage parallel laufen lassen) die Consumerdefinitionen zu löschen (die hatte ich ich bereits zur neuen Fhem-Instanz umgezogen).
Das hatte zur Folge, dass SF mir in meiner alten Fhem-Instanz das Log-File dermaßen voll geschrieben hat, dass es auf eine Größe von über 10 GB angewachsen ist und mir den Browser zum Absturz gebracht hat.

Fehlermeldungen sind natürlich ok und auch gewollt, aber kannst du das eventl. so abfangen, dass dieses massive Verhalten nicht auftritt? Eine einmalige Meldung im Log würde ja ausreichen und dann noch ein Hinweis bei PlantControl, dann sollte ja allem Genüge getan sein.

DS_Starter

Moin,
naja es kommt auf die Meldungen an. Normalerweise ist es schwierig Logmeldungen von bestimmten Zuständen nur einmal auszugeben wenn diese Zustände permanent vorliegen. Dann müßte man ja ein internes Protokoll mitlaufen lassen welche Meldung schon ausgegeben wurde und wann.

Ich vermute es geht um Meldungen wie "The device 'xxxx' doesn't exist or is not a valid device" oder?

 
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

Wolle02

Zitat von: DS_Starter am 01 November 2025, 08:09:18Ich vermute es geht um Meldungen wie "The device 'xxxx' doesn't exist or is not a valid device" oder?


Ja, so in der Art:

2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Waschmaschine' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Waschmaschine' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Waschmaschine' doesn't exist or is not a valid device.. Please check device names in consumer '01' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Waschmaschine' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Waschmaschine' doesn't exist or is not a valid device.. Please check device names in consumer '01' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Waschmaschine' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Waschmaschine' doesn't exist or is not a valid device.. Please check device names in consumer '01' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Waschmaschine' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Waschmaschine' doesn't exist or is not a valid device.. Please check device names in consumer '01' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Keller_Luftentfeuchter' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Keller_Luftentfeuchter' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Keller_Luftentfeuchter' doesn't exist or is not a valid device.. Please check device names in consumer '03' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Keller_Luftentfeuchter' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Keller_Luftentfeuchter' doesn't exist or is not a valid device.. Please check device names in consumer '03' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Keller_Luftentfeuchter' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Keller_Luftentfeuchter' doesn't exist or is not a valid device.. Please check device names in consumer '03' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Keller_Luftentfeuchter' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Keller_Luftentfeuchter' doesn't exist or is not a valid device.. Please check device names in consumer '03' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Fernseher' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Fernseher' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Fernseher' doesn't exist or is not a valid device.. Please check device names in consumer '04' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Fernseher' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Fernseher' doesn't exist or is not a valid device.. Please check device names in consumer '04' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Fernseher' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Fernseher' doesn't exist or is not a valid device.. Please check device names in consumer '04' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Fernseher' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Fernseher' doesn't exist or is not a valid device.. Please check device names in consumer '04' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Trockner' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Trockner' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Trockner' doesn't exist or is not a valid device.. Please check device names in consumer '05' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Trockner' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Trockner' doesn't exist or is not a valid device.. Please check device names in consumer '05' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Trockner' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Trockner' doesn't exist or is not a valid device.. Please check device names in consumer '05' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Trockner' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Trockner' doesn't exist or is not a valid device.. Please check device names in consumer '05' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_IT' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_IT' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_IT' doesn't exist or is not a valid device.. Please check device names in consumer '06' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_IT' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_IT' doesn't exist or is not a valid device.. Please check device names in consumer '06' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_IT' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_IT' doesn't exist or is not a valid device.. Please check device names in consumer '06' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_IT' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_IT' doesn't exist or is not a valid device.. Please check device names in consumer '06' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Backofen' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Backofen' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Backofen' doesn't exist or is not a valid device.. Please check device names in consumer '07' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Backofen' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Backofen' doesn't exist or is not a valid device.. Please check device names in consumer '07' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Backofen' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Backofen' doesn't exist or is not a valid device.. Please check device names in consumer '07' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Backofen' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Backofen' doesn't exist or is not a valid device.. Please check device names in consumer '07' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Microwelle' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Microwelle' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Microwelle' doesn't exist or is not a valid device.. Please check device names in consumer '08' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Microwelle' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Microwelle' doesn't exist or is not a valid device.. Please check device names in consumer '08' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Microwelle' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Microwelle' doesn't exist or is not a valid device.. Please check device names in consumer '08' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Microwelle' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Microwelle' doesn't exist or is not a valid device.. Please check device names in consumer '08' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Spuelmaschine' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Spuelmaschine' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Spuelmaschine' doesn't exist or is not a valid device.. Please check device names in consumer '09' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Spuelmaschine' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Spuelmaschine' doesn't exist or is not a valid device.. Please check device names in consumer '09' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Spuelmaschine' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Spuelmaschine' doesn't exist or is not a valid device.. Please check device names in consumer '09' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Spuelmaschine' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Spuelmaschine' doesn't exist or is not a valid device.. Please check device names in consumer '09' attribute
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Waschmaschine' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_Waschmaschine' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Keller_Luftentfeuchter' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_Keller_Luftentfeuchter' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Fernseher' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_Fernseher' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Trockner' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_Trockner' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_IT' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_IT' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Backofen' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_Backofen' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Microwelle' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_Microwelle' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Spuelmaschine' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_Spuelmaschine' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Waschmaschine' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_Waschmaschine' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Keller_Luftentfeuchter' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_Keller_Luftentfeuchter' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Fernseher' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_Fernseher' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Trockner' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_Trockner' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_IT' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_IT' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Backofen' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_Backofen' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Microwelle' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_Microwelle' is invalid. The 'on'-state can't be identified.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The device 'Shelly_Spuelmaschine' doesn't exist or is not a valid device.
2025.10.31 23:59:59 1: PV_Vorhersage - ERROR - The consumer device 'Shelly_Spuelmaschine' is invalid. The 'on'-state can't be identified.

Nur halt 1000-fach.

DS_Starter

Ok, verstehe. Ich denke dafür könnte ich eine Lösung implementieren.
Melde mich wieder dazu.
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 31 Oktober 2025, 18:40:09@Hadl,
liege ich eigentlich mit meiner Vermutung in #4395 richtig?
Ja, habe bei meinem Wechselrichter 5% Minimum eingestellt. Wenn's durch Selbstentladung nochmal 2% darunter geht würde mit Netzstrom nachgeladen.
In SF hab ich LowSoc von 40% eingestellt. Darunter sperre ich optionale Verbraucher wie Boiler und lade mit fast maximaler Leistung aus Überschuss. Ziel ist es möglichst schnell wieder für Notstrom Energie zu haben oder auf mal nen größeren Verbrauch - wie mittags kochen und waschen gleichzeitig - decken zu können.

Heute Nacht wurde der Akku wegen hohen Verbrauch gestern Abend leer. So sieht's dann mit dieser Einstellung aus.
Du darfst diesen Dateianhang nicht ansehen.
Ich nutze nun meinen Code mit dem If Else. Scheint gut zu funktionieren!

Bin sehr zufrieden mit dem Verlauf.

Man sieht aber auch schön wie OPT eine schöne sinnvolle Leistung (braun) berechnen würde. Die ich aber erst ab 40% nutze.

Viele Grüße

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

DS_Starter

@Wolle02, ich habe eine Lösung für das Problem eingebaut. Solche Meldungen kommen nun im Abstand von 10 Minuten wenn der Zustand nicht beseitigt wird.

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

DS_Starter

@Hadl,

passt ja, kannst mal weiter berichten.

ZitatIn SF hab ich LowSoc von 40% eingestellt. Darunter sperre ich optionale Verbraucher wie Boiler und lade mit fast maximaler Leistung aus Überschuss. Ziel ist es möglichst schnell wieder für Notstrom Energie zu haben oder auf mal nen größeren Verbrauch - wie mittags kochen und waschen gleichzeitig - decken zu können.
Ok, dann habe ich richtig vermutet. Das ist allerdings nicht die Itention von lowSoC. Das soll wirklich einen untersten (physikalisch sinnvollen) Wert darstellen.
Besser wäre es m.M. nach wenn du upSoC auf 40% setzen würdest. Gerade im Winter bei (zu) wenig erwarten Überschuß wird deine Bat über Battery_OptimumTargetSoC_XX auf 40% gehalten. Wenn am nächsten Tag mehr PV erwartet wird, wird der SoC weiter reduziert um Platz für neue Energieladung zu schaffen.
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

Wolle02

Zitat von: DS_Starter am 01 November 2025, 14:30:04@Wolle02, ich habe eine Lösung für das Problem eingebaut. Solche Meldungen kommen nun im Abstand von 10 Minuten wenn der Zustand nicht beseitigt wird.

Liegt im contrib.

Vielen Dank. Wegen mir hätte auch eine Meldung alle Stunde oder einmal am Tag gereicht.  ;)

DS_Starter

@all,

die Version 1.60.0 ist eingecheckt und morgen früh im Update enthalten.

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 01 November 2025, 14:40:37Ok, dann habe ich richtig vermutet. Das ist allerdings nicht die Itention von lowSoC. Das soll wirklich einen untersten (physikalisch sinnvollen) Wert darstellen.
Besser wäre es m.M. nach wenn du upSoC auf 40% setzen würdest. Gerade im Winter bei (zu) wenig erwarten Überschuß wird deine Bat über Battery_OptimumTargetSoC_XX auf 40% gehalten. Wenn am nächsten Tag mehr PV erwartet wird, wird der SoC weiter reduziert um Platz für neue Energieladung zu schaffen.
OK, dann stell ich das mal um. mein lowSoC sind dann die 5% die auch im Wechselrichter sind und meinen upSoC stelle ich auf 20%
Die 20% hatte ich im vergangenen Winter - allerdings noch mit kleinerer PV Erzeugung - auch eingestellt als ich den Akku über mehrer Tage am Stück nie voll gebracht hatte um den Akku zu schonen indem er meistens zwischen 20% - 80% SOC ist. Ich beobachte mal, wenn der Wert gut ausschaut könnte ich ja die Entladeleistung auf 0 Begrenzen wenn ich unter OptimumTargetSoC komme.
Die Plätzchenbackzeit steht ja an, und da könnte es bei mir mit Überschuss schon eng werden ;)

Gibt es auch einen Wert wo ich meine 40% hinterlegen kann, also die Menge an Energie die ich beim Laden möglichst schnell ohne Leistungslimitierung und ohne optionale Lasten erreichen will, jedoch den Akku durchaus darunter entladen lasse, falls notwendig. Die 40% dürfen auch durchaus so wie OptimumTargetSoC steigen, damit nicht meine optionalen Lasten den Akku bei schlechten Tagen auf 40% halten. Wobei ich mit achieveable=0 die Lasten auch ausschalte, somit sollte der Akku dann trotzdem noch fast voll werden.

Ich lass meine Anpassungen morgen nochmal laufen, es soll ein sehr PV schwacher Tag werden. Mal schaun wie sie sich da machen!

Am Montag stell ich wieder auf dein aktuelles Script um und poste hier die Vergleiche! Evtl. Kann auch jemand seine Ladekurven mit aktuellen Script reinstellen, dann können wir die gleichen Tage vergleichen.
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

#4409
@Hadl,

in der Iteration hatte ich noch ein Gap entdeckt. Bislang wurde das initiale High durch den max Cap, d.h. den größten vorkommenden Stundenwert bestimmt

my $high = max map { $hsurp->{$_}{surplswh} } @hods;
Das reicht aber eigentlich nur als Start wenn Ereq kleiner als ein einzelner (Stunden)-Slot ist, weil die Suche sonst nie genug Spielraum hat.

Besser ist es hier von $remainingSurp als initial $high auszugehen, wobei hier die aktuelle Stunde auch zeitgewichtet ist. Das gilt für den Fall der Zielerreichbarkeit.
Wenn das Ziel nicht erreichbar ist, erreicht die Iteration nicht das geforderte eps und bei Erreichen von max_iter abgebrochen. Der zurück gegebene Werte ist (nahe) dem maximalen Stundenslot. D.h. bei Nichterreichbarkeit ist eine Iteration nicht zielführend da kein Ergebnis vor Zwangsabbruch geliefert werden kann. Deswegen wird in diesem Fall der maximal verfügbare Stundeslot geliefert:

  my $high     = $remainingSurp;                                    # Summe aller verbleibenden Tagesüberschüsse auf Stundenbasis inkl. Gewichtung Stunde 00         
  my $eps      = 0.5;                                               # minimale Genauigkeit in Wh  (1e-3)
  my $max_iter = 100;                                               # Zwangsabbruch nach X Durchläufen
  my $loop     = 0;
   
  if (!$achievable) {
      my $max_cap = max map { defined $hsurp->{$_}{nhr} && $hsurp->{$_}{nhr} eq '00'
                              ? int($replacement)
                              : $hsurp->{$_}{surplswh} // 0
                            } @hods;
                       
      return { ph => (sprintf "%.0f", $max_cap), iterations => $loop, blur => (sprintf "%.4f", 0) };
  }

Ja, schauen wir mal. Bei mir ist aktuell auch nicht viel los mit PV. Ich simuliere indem ich das Ladeziel runtersetze z.B. auf 30%. Das wirkt vergleichbar auf die Ladesteuerung.

ZitatGibt es auch einen Wert wo ich meine 40% hinterlegen kann, also die Menge an Energie die ich beim Laden möglichst schnell ohne Leistungslimitierung und ohne optionale Lasten erreichen will, jedoch den Akku durchaus darunter entladen lasse, falls notwendig. Die 40% dürfen auch durchaus so wie OptimumTargetSoC steigen, damit nicht meine optionalen Lasten den Akku bei schlechten Tagen auf 40% halten. Wobei ich mit achieveable=0 die Lasten auch ausschalte, somit sollte der Akku dann trotzdem noch fast voll werden.
Aktuell gibt es lowSoC, upSoC und maxSoc. Weitere Features müssten erst eingebaut und gemanaged werden.

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