76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

300P

Vorhanden ist es  :)

update zeigte es als geladen an

2026.07.27 08:12:44 1: UPD www/images/openautomation/scene_power_grid_crossed.svg
2026.07.27 08:12:44 1: UPD www/images/openautomation/scene_power_grid_crossed_red.svg
2026.07.27 08:12:44 1: saving fhem.cfg
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.

DS_Starter

#6736
Ach Mist, da fehlt eins.
Habe es hier angehängt. Stelle ich noch in mein contrib.

Edit: in meinem contrib im Unterordner Icons ist dieses Icon mit drin. Ich kümmere mich noch darum, dass es eingecheckt wird.
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

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.

DS_Starter

@all,
die V 2.9.2 ist eingecheckt und morgen früh im Update enthalten.
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

#6739
Hallo zusammen,

bereits vor längerer (langer ;) ) Zeit hatte ich angekündigt, eine Pflegemöglichkeit für die gespeicherten Energiewerte in pvCircular bereitzustellen. Diese Werte sind insbesondere für die Legacy-Verbrauchsprognose relevant. Ausreißer oder fehlerhaft gespeicherte Werte können das Leben schwer machen. Man kann sie nun ebenfalls mit "set ... reset ..." managen:

circularData   
Mit den nachfolgenden Argumenten können die Array-Werte von 'con_all' oder 'gcons_a' im Circular-Cache manipuliert werden:
    searchValue - sucht den Zahlenwert im Schlüssel (con_all | gcons_a). Mögliche Vergleichsoperatoren sind: > | >= | == | <= | < (Findings sind im Logfile)
    Die Angabe von hod (Stunde) und wday (Wochentagskürzel) ist optional. Fehlen sie, wird über alle Stunden bzw. alle Wochentage gesucht.
    Beispiele: 1.) searchValue=con_all>1500 2.) searchValue=gcons_a==0 hod=05 3.) searchValue=con_all>=1000 hod=05 wday=Mo
    delValue - löscht den Zahlenwert im Schlüssel (con_all | gcons_a). Mögliche Vergleichsoperatoren sind: > | >= | == | <= | < (Löschbestätigung im Logfile)
    Die Angabe von hod und wday ist optional. Fehlen sie, wird über alle Stunden bzw. alle Wochentage gelöscht.
    Beispiele: 1.) delValue=con_all>2000 2.) delValue=gcons_a==500 hod=02 wday=Do 3.) delValue=con_all==0 hod=05
    setValue - setzt bzw. ändert den Wert an einer bestimmten Position eines Wochentags-Arrays einer Stunde. (Bestätigung der Operation erfolgt im Logfile)
    hod, key, wday, pos und value sind hierbei zwingend anzugeben. pos ist die Array-Position (Zählung beginnt bei 0!).
    In der list-Ausgabe wird ein Wochentag ggf. auf mehrere Zeilen zu je 20 Werten umgebrochen. Die Zählung von pos setzt sich zeilenübergreifend fort,
    d.h. Position 25 eines Wochentages befindet sich in der zweiten Anzeigezeile dieses Wochentages an der 6. Stelle (Zeile 1: pos 0-19, Zeile 2: pos 20-39, usw.).
    Beispiele: 1.) setValue hod=05 key=con_all wday=Mo pos=3 value=999 2.) setValue hod=12 key=gcons_a wday=Fr pos=0 value=0


Die Version 2.9.3 liegt wie üblich zunächst 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

300P

Ergebnisbeispiel bei z.B. ->> "set Forecast reset circularData searchValue=con_all>5000"
:)

2026.07.29 10:16:30 1: Forecast - Circular data found - hod=10 key=con_all wday=Sat pos=4 value=19814
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=10 key=con_all wday=Tue pos=3 value=5425
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=13 key=con_all wday=Tue pos=0 value=5749
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=14 key=con_all wday=Fri pos=14 value=6731
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=14 key=con_all wday=Mon pos=0,2 value=5043,5044
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=14 key=con_all wday=Wed pos=14 value=5086
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=15 key=con_all wday=Fri pos=16 value=5208
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=15 key=con_all wday=Sat pos=17 value=5552
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=15 key=con_all wday=Thu pos=2 value=12594
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=15 key=con_all wday=Wed pos=15 value=5445
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=16 key=con_all wday=Fri pos=1 value=26116
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=16 key=con_all wday=Sat pos=25 value=5009
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=19 key=con_all wday=Wed pos=0 value=5579
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=20 key=con_all wday=Fri pos=5 value=40615
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=20 key=con_all wday=Mon pos=18 value=6638
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=21 key=con_all wday=Mon pos=18 value=5984
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=21 key=con_all wday=Thu pos=3 value=51296
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=22 key=con_all wday=Mon pos=18 value=5079
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=24 key=con_all wday=Mon pos=5 value=44366
2026.07.29 10:16:30 1: Forecast - Circular data found - hod=24 key=con_all wday=Tue pos=2,3 value=53253,53253
2026.07.29 10:16:30 1: Forecast - Circular data search/delete finished - key=con_all, total matches: 22

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.

schneng

Ich betreibe bei meinem Balkonkraftwerk Nulleinspeisung. Demzufolge wird ab dem Zeitpunkt, des absolut geladenen Akku's nur noch soviel Energie erzeugt, wie im Haushalt verwendet wird. Ich denke daher stimmt meine PV Prognose nicht, bzw. ist die tägliche Abweichung sehr groß. Wie kann ich dem entgegenwirken ?

TheTrumpeter

Zitat von: DS_Starter am 26 Juli 2026, 23:37:09- Einbau hint26 mit Erkennung unterer Grenze von aiControl->aiConLearnRate
Danke, funktioniert wie erwartet.

Ein analoges Thema gibt es bei mir auch mit:
Zitatinstabiler Validierungsverlauf (StdDev/Mean=1.28): Shuffle-Modus auf periodisches Shuffle (aiControl->aiConShuffleMode=1 und aiControl->aiConShufflePeriod auf 10-20 Epochen) umstellen, um gleichmäßigere Gradientenaktualisierungen zu erzielen
aiConShuffleMode=1 hatte ich schon, zusätzlich hatte ich aiConShufflePeriod=30. Umstellen von letzterem auf 10 und erneutes Training liefert immer noch dieselbe Empfehlung.

Das ist nix kritisches oder dringendes, ich wollt's nur anmerken.
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

DS_Starter

#6743
Hallo schneng,

ZitatIch betreibe bei meinem Balkonkraftwerk Nulleinspeisung. Demzufolge wird ab dem Zeitpunkt, des absolut geladenen Akku's nur noch soviel Energie erzeugt, wie im Haushalt verwendet wird. Ich denke daher stimmt meine PV Prognose nicht, bzw. ist die tägliche Abweichung sehr groß. Wie kann ich dem entgegenwirken ?
Ja, das ist kein so einfaches Thema.
Konkret kannst du aktuell diese Dinge tun:

- in plantControl->reductionState hinterlegst du die Information zum Abregelungsstatus deiner Anlage
- in plantControl->feedinPowerLimit=0 setzen!
- du legst deine Batterie im Modul an falls noch nicht geschehen

Diese Einstellungen werden zwar nicht unmittelbar eine Verbesserung erzielen, werden aber aufgezeichnet und können so zuküftig bei Einsatz eines neuronalen Netzes für die PV-Prognose hilfreich sein. Ich behalte im Hinterkopf mir speziell für Nulleinspeiseanlagen eine Lösung für die Problematik abseits von KI zu überlegen.

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

Wolle02

Nur aus Interesse heraus, weil ich es wahrscheinlich nicht verstehe.

Zitat von: schneng am 29 Juli 2026, 11:08:21Ich betreibe bei meinem Balkonkraftwerk Nulleinspeisung.

Warum macht man das? Was ist die Überlegung dahinter?

schneng

Zitat von: Wolle02 am 29 Juli 2026, 14:17:51Nur aus Interesse heraus, weil ich es wahrscheinlich nicht verstehe.

Zitat von: schneng am 29 Juli 2026, 11:08:21Ich betreibe bei meinem Balkonkraftwerk Nulleinspeisung.

Warum macht man das? Was ist die Überlegung dahinter?

Bekommt man keine Einspeisevergütung ist es eigentlich sinnfrei überschüssige Energie aus der PV-Anlage ins öffentliche Netz einzuspeisen. Daher misst man, am Stromverteiler mit einem Smartmeter die momentan benötigte Energie und nur soviel wird vom Wechselrichter in das Haus eingespeist.

schneng

Zitat von: DS_Starter am 29 Juli 2026, 13:02:48Hallo schneng,

ZitatIch betreibe bei meinem Balkonkraftwerk Nulleinspeisung. Demzufolge wird ab dem Zeitpunkt, des absolut geladenen Akku's nur noch soviel Energie erzeugt, wie im Haushalt verwendet wird. Ich denke daher stimmt meine PV Prognose nicht, bzw. ist die tägliche Abweichung sehr groß. Wie kann ich dem entgegenwirken ?
Ja, das ist kein so einfaches Thema.
Konkret kannst du aktuell diese Dinge tun:

- in plantControl->reductionState hinterlegst du die Information zum Abregelungsstatus deiner Anlage
- in plantControl->feedinPowerLimit=0 setzen!
- du legst deine Batterie im Modul an falls noch nicht geschehen

Diese Einstellungen werden zwar nicht unmittelbar eine Verbesserung erzielen, werden aber aufgezeichnet und können so zuküftig bei Einsatz eines neuronalen Netzes für die PV-Prognose hilfreich sein. Ich behalte im Hinterkopf mir speziell für Nulleinspeiseanlagen eine Lösung für die Problematik abseits von KI zu überlegen.

LG,
Heiko

den Speicher habe ich schon angelegt. Nur was soll ich bei reductionState für eine Logik an das Modul übergeben ?