76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

Parallix

#6945
Zitat von: 300P am 12 September 2026, 18:18:23Ich hatte es irrtümlich schon mal bei "ausgegrauten" Symbolen auch schon mal gedacht bzw. angebracht....aber das war es dann wohl nicht also ->> auf Heikos Reaktion warten...
Ja, und für Heiko hier noch direkt etwas an Zusatzinfo:
  • KI-Features in SF wurden meinerseits nicht aktiviert
  • Die PV-Erzeugungsprognose funktioniert soweit einwandfrei. Der Absolutwert der Abweichung liegt in aller Regel unter 10%.
  • Jetzt, nachdem die Sonne untergegangen ist, ändert sich der seltsame SoC-Forecast nicht: Aktuell haben die BATs eine SoC von 70% und morgen früh direkt um 8:00 Uhr sind's schon 100% :o
FHEM auf Debian/Testing BananaPro in täglich aktualisierter Version - AVM: 7490 (7.62) und 7591 (8.25) - 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

#6946
@Parallix, welche Ladestrategie ist eingestellt (Schlüssel loadStrategy)?


ZitatPS: Die Rückmeldungen zum Lade-Controller werde ich in den nächsten zwei Wochen angehen.
Das läuft bei seit mehreren Wochen sehr gut.
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

Möglicherweise habe ich einen kleinen Bug gefunden.
Version 2.10.3 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

Parallix

#6948
Zitat von: DS_Starter am 12 September 2026, 23:47:19Möglicherweise habe ich einen kleinen Bug gefunden.
...
Danke für die schnelle Rückmeldung. Leider bleibt die Ausgabe inhaltlich unverändert:

Wetterbedingt ist heute hier bei uns ein wirklich schlechter Tag in Bezug auf die PV-Erzeugung prognostiziert. Mit Erzeugungswerten von [0.2, 0,6, 0.9] kWh für die Bins [8:00, 9:00, 10:00] decke ich im besten Fall gerade einmal meine Hauslast.

Trotz einem Start-SoC von gerade einmal 33% jetzt um 7:56 Uhr prognostiziert SF für das Ende des aktuellen und aller folgenden Bins einen SoC von 100%.  :o 

Übrigens bestimmt SF aktuell (8:09 Uhr) auch die optimalen Ladeleistungen nicht korrekt. Lt. aktueller Empfehlung sollen 73W für jede meiner zwei BATs ausreichen um das eingestellte Ladeziel (100%) von aktuell 33% aus zu erreichen.  :o 
FHEM auf Debian/Testing BananaPro in täglich aktualisierter Version - AVM: 7490 (7.62) und 7591 (8.25) - 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

300P

Also bei mir sieht (trotz des sch... Wetters) in der Grafik (bei / für mich) alles okay aus:
Screenshot
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP| ESP32_AI_on_the_Edge|ESP32CAM usw.

Parallix

#6950
Zitat von: 300P am 13 September 2026, 09:02:48Also bei mir sieht (trotz des sch... Wetters) in der Grafik (bei / für mich) alles okay aus:
Screenshot
Wenn's so bei mir aussähe, wäre ich auch zufrieden. Anbei meine Grafik.

PS: Kann ich die PV-Erzeugungsgrafik eigentlich auch so erstellen lassen, dass zwei Tage im Voraus angezeigt werden. Das wäre praktisch, da dann schnell abgelesen werden können, ob mein EV heute, morgen oder übermorgen ohne Netzbezug geladen werden könnte.
FHEM auf Debian/Testing BananaPro in täglich aktualisierter Version - AVM: 7490 (7.62) und 7591 (8.25) - 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

#6951
Moin,

bei mir ebenfalls ok. Ich hatte auch vor dem kleinen Fix keine Beschwerden bei mir.
Die Wetterverhältnisse sind bei uns heute auch nicht gut. Die SOC-Prognose ist dennoch realistisch.

Also nochmal die Frage welche Ladestrategie ist eingestellt?  Bzw. zeige uns mal bitte das/die Attr ctrlBatSocManagementXX.
Weiterhin wäre es dann sicherlich sinnvoll, ctrlDebug=batteryManagement mitlaufen zulassen, um mal ein paar Anhaltspunkte zu bekommen was die Bat-Steuerung so "denkt".

Deine Anzeige sind kWh? Aus dem unteren Balkendiagramm werde ich nicht schlau. Was ist dort dargestellt?

ZitatPS: Kann ich die PV-Erzeugungsgrafik eigentlich auch so erstellen lassen, dass zwei Tage im Voraus angezeigt werden.
Nein, es wird max. ein 24h-Fenster abgeboten. Man kann es mit graphicControl->hourCount verkleinern. 
Kleiner Kniff...mit graphicShowNight=01 werden die Nachtstunden ausgeblendet und synchronisiert was das Stundenfenster streckt, aber es bleiben 24 in Summe.
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

#6952
Zitat von: DS_Starter am 13 September 2026, 09:50:38Moin,

bei mir ebenfalls ok. Ich hatte auch vor dem kleinen Fix keine Beschwerden bei mir.
Die Wetterverhältnisse sind bei uns heute auch nicht gut. Die SOC-Prognose ist dennoch realistisch.
Vor meinem Urlaub (im August) war auch alles in Ordnung, jedenfalls habe ich nichts seltsames gesichtet, was aber auch daran gelegen haben kann, dass der SOC meiner BATs zum Tagesstart zumeist noch bei ca. 70% lag.
 
Bis auf ein einspielen von freigegebenen Updates (und Dein gestriges Update von SF im Contrib) habe ich zwischenzeitlich auch nichts verändert.

ZitatAlso nochmal die Frage welche Ladestrategie ist eingestellt?  Bzw. zeige uns mal bitte das/die Attr ctrlBatSocManagementXX.
Sorry, hätte ich eigentlich längst machen sollen. Hier die für beide BATs identischen Einstellungen:
lowSoc=5
upSoC=80
maxSoC=100
careCycle=1
loadAbort=100:686:100
loadStrategy=optPower
loadTarget=95
safetyMargin=0:0
weightOwnUse=95
stepSoC=5
Battery_OptimumTargetSoC_01 und Battery_OptimumTargetSoC_02 stehen aktuell bei mir beide auf 100%

Vielleicht liegt es an meiner möglicherweise untypischen Einstellung von  careCycle und stepSoC? Aufgrund meines Ladecontrollers wäre aus meiner Sicht  careCycle=5 und stepSoC=20 sinnvoll. SF lässt leider aber nur einen stepSoC in [0,5] zu.


ZitatWeiterhin wäre es dann sicherlich sinnvoll, ctrlDebug=batteryManagement mitlaufen zulassen, um mal ein paar Anhaltspunkte zu bekommen was die Bat-Steuerung so "denkt".
Schalte ich jetzt ein.
FHEM auf Debian/Testing BananaPro in täglich aktualisierter Version - AVM: 7490 (7.62) und 7591 (8.25) - 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

ZitatAufgrund meines Ladecontrollers wäre aus meiner Sicht  careCycle=7 und stepSoC=20 sinnvoll.
Das Produkt aus careCycle * stepSoC soll 100 ergeben (siehe Commandref). Das ist bei dir übrigens mit careCycle=1 und stepSoC=5 nicht der Fall, d.h. die Bat sollte lt. Vorgabe täglich den maxSoC erreichen.

Trotzdem komme ich immer noch nicht mit deinem unteren Balkendiagramm klar. Dort werden doch keine Batterie % dargestellt?
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

#6954
Zitat von: DS_Starter am 13 September 2026, 10:30:15
ZitatAufgrund meines Ladecontrollers wäre aus meiner Sicht  careCycle=7 und stepSoC=20 sinnvoll.
Das Produkt aus careCycle * stepSoC soll 100 ergeben (siehe Commandref). Das ist bei dir übrigens mit careCycle=1 und stepSoC=5 nicht der Fall, d.h. die Bat sollte lt. Vorgabe täglich den maxSoC erreichen.
Ja, dort steht "soll", aber nicht "muss". Wie in meinem Beitrag oben ergänzt hat dies auch einen Grund. Wenn das "soll" aber ein "muss" ist, so wäre eine erweiterter Einstellbereich für stepSoC (siehe meine Ergänzung oben) sehr hilfreich.
Edit: Noch besser wäre es (bei einem "muss") natürlich, wenn stepSoC direkt aus dem careCycle abgeleitet würde, oder?

ZitatTrotzdem komme ich immer noch nicht mit deinem unteren Balkendiagramm klar. Dort werden doch keine Batterie % dargestellt?
Ja, das ist richtig, da ich die Grafik nicht überfrachten möchte. Bei den grünen BAT-Symbole wird aktuell SoC-Prognose 100% angezeigt und beim jeweils ersten davon (aktuelles Bin) zusätzlich SoC-Aktuell 44%
FHEM auf Debian/Testing BananaPro in täglich aktualisierter Version - AVM: 7490 (7.62) und 7591 (8.25) - 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

#6955
ZitatJa, dort steht "soll", aber nicht "muss". Wie in meinem Beitrag oben ergänzt hat dies auch einen Grund. Wenn das "soll" aber ein "muss" ist, so wäre eine erweiterter Einstellbereich für stepSoC (siehe meine Ergänzung oben) sehr hilfreich.
Ich habe es mir nochmal angeschaut. Ein "muss" Kriterium an dieser Stelle wäre richtig und ich werde einen Check einbauen.
Ein erweiterter stepSoC-Bereich wäre auch möglich, allerdings nur in validen Schritten zur Einhaltung der beschriebenen Bedingung (siehe Anhang).
Gebrochene Zahlenwerte sind mathematisch zwar möglich, sind in diesem Kontext aber inhaltlich und bezüglich der Benutzerfreundlichkeit/Gebrauchstauglichkeit nicht zielführend.
Eine automatische Ableitung beider Werte voneinander wäre nur machbar wenn einer der Parameter "führend" wäre. Aber da der User unterschiedliche Präferenzen haben kann, ist im Modul nur ein Überprüfung der Gesamtbedingung sinnvoll.

Die Fehleinstellung ist höchstwahrscheinlich die eigentliche Ursache bei dir. Stelle die Werte so ein, dass die Bedingung erfüllt wird und dann schauen wir nochmal.
Ich kümmere mich um eine Anpassung im Modul wie gerade analysiert.
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

Zitat von: DS_Starter am 13 September 2026, 11:47:46
ZitatJa, dort steht "soll", aber nicht "muss". Wie in meinem Beitrag oben ergänzt hat dies auch einen Grund. Wenn das "soll" aber ein "muss" ist, so wäre eine erweiterter Einstellbereich für stepSoC (siehe meine Ergänzung oben) sehr hilfreich.
Ich habe es mir nochmal angeschaut. Ein "muss" Kriterium an dieser Stelle wäre richtig und ich werde einen Check einbauen.
Ein erweiterter stepSoC-Bereich wäre auch möglich, allerdings nur in validen Schritten zur Einhaltung der beschriebenen Bedingung (siehe Anhang).
Gebrochene Zahlenwerte sind mathematisch zwar möglich, sind in diesem Kontext aber inhaltlich und bezüglich der Benutzerfreundlichkeit/Gebrauchstauglichkeit nicht zielführend.
Eine automatische Ableitung beider Werte voneinander wäre nur machbar wenn einer der Parameter "führend" wäre. Aber da der User unterschiedliche Präferenzen haben kann, ist im Modul nur ein Überprüfung der Gesamtbedingung sinnvoll.

Die Fehleinstellung ist höchstwahrscheinlich die eigentliche Ursache bei dir. Stelle die Werte so ein, dass die Bedingung erfüllt wird und dann schauen wir nochmal.
Ich kümmere mich um eine Anpassung im Modul wie gerade analysiert.
Am einfachsten wäre es jetzt für mich es wohl erst einmal mit careCycle=0 zu versuchen. stepSoC kommt dann keine Bedeutung mehr zu, oder?

Übrigens: Nachkommastellen machen bei careCycle wirklich keinen Sinn. Etwas anders sieht es bei stepSoC aus. Statt zu prüfen wäre es aus meiner Sicht aber sicherer, den Wert via stepSoC = 100/careCycle zu berechnen.
FHEM auf Debian/Testing BananaPro in täglich aktualisierter Version - AVM: 7490 (7.62) und 7591 (8.25) - 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

lawern

Hallo DS_Starter,

ich verwende SolarForecast 2.10.2 auf einem ziemlich betagten Raspberry Pi 2 mit
knapp 1 GB RAM. Bei mir hat der OOM-Killer FHEM in zwei Wochen 21 Mal abgeschossen,
und beim Suchen bin ich über eine Stelle im Modul gestolpert, die den Speicherbedarf
kurzzeitig verdoppelt. Auf normaler Hardware merkt das vermutlich keiner.

Nach dem Training holt aiFinishTrain das Modell über readCacheFile wieder in den
Elternprozess rein (2.10.2, Zeilen 11930 und 11942):

if ($cachename eq 'aitrained') {
    my ($err, $objref) = fileRetrieve ($file);        # 11930
    ...
    $data{$name}{aidectree}{aitrained} = $objref;     # 11942

Das fileRetrieve baut das neue Modell erstmal komplett auf, und solange hängt das alte
ja noch über aitrained dran. Weg ist es erst mit der Zuweisung in Zeile 11942. Heißt:
kurzzeitig liegen zwei komplette Modelle im RAM.

Bei mir macht das ordentlich was aus, weil das Ding im Speicher viel dicker ist, als
die Datei vermuten lässt:

Datei AItra_SolarForecast_Forecast:   8,59 MB
nach Storable-retrieve im RAM:       46,9 MB
(10 Bäume, Baum 1 hat 8591 Knoten, aiRulesNumber 65460)

Und weil Perl freigegebenen Speicher nicht wieder ans System zurückgibt,
bleibt die Spitze dann für immer stehen.

Zum Nachstellen hab ich das Modell in einem kleinen eigenen Skript viermal
hintereinander geladen: Einmal in der Reihenfolge wie im Modul, einmal mit vorherigem
Freigeben. RSS nach jedem Durchlauf:

                                 Start   Zyklus 1  Zyklus 2  Zyklus 3  Zyklus 4
Reihenfolge wie im Modul        5,5 MB    52,5      99,4      99,5      99,5
altes Objekt vorher freigeben   5,5 MB    52,5      52,6      52,6      52,6

Der Unterschied ist genau ein Modell.

Mein Vorschlag wäre eine Zeile vor dem fileRetrieve:

delete $data{$name}{aidectree}{aitrained} if -s $file;

Das -s $file soll nur verhindern, dass das alte Modell wegfliegt, wenn gar keine Datei
zum Nachladen da ist.

Eingebaut hab ich es bei mir schon und mitgeschrieben, was der Speicher beim
nächtlichen Training macht (RSS plus ausgelagerte Seiten, alle 5 Minuten ein
Messpunkt). Sprung jeweils in der Trainingsnacht:

vorher:   +46,6 MB  /  +22,0 MB  /  +20,3 MB
nachher:   +1,9 MB  /   +1,7 MB

Die Stufe ist damit weg.

Ganz aus dem Schneider bin ich allerdings noch nicht, bei mir wächst FHEM trotzdem
weiter. Das hat nach allem, was ich bisher gemessen habe, aber eine andere Ursache und
nichts mit dieser Stelle zu tun. Falls ich da was übersehe, sag gern Bescheid.

Danke jedenfalls für das Modul, ich nutze es sehr gerne.

Viele Grüße
Lars

DS_Starter

ZitatStatt zu prüfen wäre es aus meiner Sicht aber sicherer, den Wert via stepSoC = 100/careCycle zu berechnen.
Ja, aber nur wenn careCycle ein "führender" Wert ist. Manch einem User ist stepSoC zu granulareren Nutzung (Schrittweite) des optimalen SoC wichtiger und für ihn stepSoC der "führende" Wert und möchte diesen vorgeben. careCycle richtet sich dann danach, d.h.  careCycle = 100/stepSoC.
Da ich die Präferenz des Users nicht kenne, prüfe ich nur die Einhaltung der Abhängigkeit. Das reicht.

@Lars,
danke für den Hinweis, schaue ich mir an und übernehme den Fix wenn nichts dagegen spricht.
Zur Info ... aidectree wird mit Umstellung (irgendwann  ;) ) auf AI::FANN für die PV Prognose ausgebaut.
Das nur nebenbei.

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

300P

Zitat von: Parallix am 13 September 2026, 09:39:03
Zitat von: 300P am 13 September 2026, 09:02:48Also bei mir sieht (trotz des sch... Wetters) in der Grafik (bei / für mich) alles okay aus:
Screenshot
Wenn's so bei mir aussähe, wäre ich auch zufrieden. Anbei meine Grafik.

PS: Kann ich die PV-Erzeugungsgrafik eigentlich auch so erstellen lassen, dass zwei Tage im Voraus angezeigt werden. Das wäre praktisch, da dann schnell abgelesen werden können, ob mein EV heute, morgen oder übermorgen ohne Netzbezug geladen werden könnte.

PS:
Für mich sind diese Batterien in der angehängten Grafik doch auch "ausgegraut".....oder habe ich es mit den Augen.
Das erste Grün ist strahlend grün - danach sind dann (für mich) alle "ausgegraut"....... :o
Du darfst diesen Dateianhang nicht ansehen.


Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP| ESP32_AI_on_the_Edge|ESP32CAM usw.