76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

peterboeckmann

Hallo Heiko,

wow, das scheint ein sehr großer Schritt zu sein!

Zitat von: DS_Starter am 28 Juni 2026, 16:04:25In der vorliegenden Version sind diese Parameter per default nicht mehr fest, sondern werden zur Trainingslaufzeit dynamisch durch eine Autokonfigurationsfunktion in SF
berechnet sofern man sie nicht explizit setzt, was natürlich getan werden kann:

Eine Frage zum Verständnis: Wie läuft das ganze ab? Werden die Parameter während des Trainingslaufes soweit angepasst, wie es optimal erscheint oder benötigt es mehrere Trainingsläufe nacheinander?

Hintergrund: Ich habe die genannten vier Parameter entfernt und anschließend einmal einen Trainingslauf gestartet.
Nun habe ich folgende Bewertungen:
Du darfst diesen Dateianhang nicht ansehen.

Startet der nächste Trainingslauf nun gleich mit den entsprechend der Empfehlung angepassten Parameter oder sollte ich hier noch manuell eingreifen?

Viele Grüße,
Peter
MQTT,Modbus,HTTPMod,DbLog,LaCrosse,SolarForecast,TelegramBot,Twilight,vitoconnect,withings
fhem,fhempy,debmatic
Debian
RaspberryPi5,HomeMatic,HomeMaticIP,Shelly,JeeLink,SignalDuino,ZWDongle,SONOS,alexa,Hue,tradfri,MobileAlerts,Siemens Home Connect,Roborock S50,Wallbox,Harmony,Tuya Smartlife

DS_Starter

#6496
ZitatWie läuft das ganze ab? Werden die Parameter während des Trainingslaufes soweit angepasst, wie es optimal erscheint oder benötigt es mehrere Trainingsläufe nacheinander?
Diese vier genannten Schlüssel werden bei jedem Lauf neu berechnet wenn man sie als Nutzer nicht fest setzt.
Sie sind im Prinzip vor allem von der Anzahl der übergebenen Datensätze und der Anzahl der Inputs, die wiederum von den aktivierten Flags abhängig sind. Da sich die Anzahl der Datensätze langsam, aber stetig ändert, passen sich diese Schlüssel permanent an.

Du hast den vollen Input (127) weil alles was geht, aktiviert ist.

Unter dem neuen Aspekt der Autokonfiguration wechsle bitte von ELLIOT auf SIGMOID.

ZitatStartet der nächste Trainingslauf nun gleich mit den entsprechend der Empfehlung angepassten Parameter oder sollte ich hier noch manuell eingreifen?
Der nächste Trainingslauf rechnet dynamisch neu, immer wieder.
Dieses Trainingsset soll einen idealen Aufsetzpunkt bieten. Wenn das Ergebnis größtenteils passt, braucht man nicht weiter eingreifen. Ansonsten passt man wie üblich, von diesen Einstellungen ausgehend nach oben oder unten an. Leider sind jetzt die Fehlermaße nicht zu sehen.
Unter "Trainingsmetriken" gibt es den Punkt "Data Parameter Ratio", der sehr wichtig und ein guter Indikator für die Wahrscheinlichkeit eines guten Trainingsergebnisses ist. Der Indikator wird bei Erkläuterungen erklärt.
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

Mir fällt gerade auf ... der Hinweis bezüglich zu kleinem Netz ist falsch herum. Das würde direkt in ein totes Netz führen.
Passe ich an.

In der Zwischenzeit lass es mal neu laufen mit SIGMOID (dem Default) und lasse die Autokonfig arbeiten.
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

Ich habe den (in diesem Kontext) fehlerhaften Hinweis beseitigt und das Modul im contrib upgedated.
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

peterboeckmann

Hallo Heiko,

ich habe die aktuelle Version aus dem Contrib gezogen, deinen Rat bzgl. SIGMOID befolgt und mein attr aiControl aufgeräumt:
iTrainStart=3 aiStorageDuration=18250 aiTreesPV=30
aiConActivate=1
aiConProfile=v1,active,bev,heatpump,pv
aiConBitFailLimit=0.34
aiConAlpha=0.7

Alle Werte, die ohnehin dem defaulz entsprachen, habe ich entfernt.

Training gestartet. Bewertung des Ergebnisses als Screenshot anbei.

Die prognostizierten Werte sehen sich in den laufen der letzten Tage immer sehr ähnlich.

Viele Grüße,
Peter
MQTT,Modbus,HTTPMod,DbLog,LaCrosse,SolarForecast,TelegramBot,Twilight,vitoconnect,withings
fhem,fhempy,debmatic
Debian
RaspberryPi5,HomeMatic,HomeMaticIP,Shelly,JeeLink,SignalDuino,ZWDongle,SONOS,alexa,Hue,tradfri,MobileAlerts,Siemens Home Connect,Roborock S50,Wallbox,Harmony,Tuya Smartlife

300P

Erstes Ergebnis:
(automatische Konfig) :)

letztes KI-Training: 28.06.2026 19:38:30 / Laufzeit in Sekunden: 209
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 98.15 ms
Alpha: 0.8
Verbrauchernummer Wärmepumpe: 07,08

Bewertungsüberblick
Trainingsbewertung: Retrain (Retrain)
Data-Parameter-Ratio Bewertung: ok (ok)
Lernverhalten: very_early sehr früh konvergiert (1.3 % Epochenausnutzung)
Einstellhinweise:
Lernrate zu hoch: Lernrate (aiControl->aiConLearnRate) um Faktor 5-10 reduzieren (z.B. von 0.01 auf 0.001-0.002)
Architektur prüfen: Netz möglicherweise zu klein für die Datenmenge, Hidden-Layer-Neuronen (aiControl->aiConHiddenLayers) erhöhen (z.B. 50-25 -> 64-32)
Training zu einem anderen Zeitpunkt erneut starten: die zufällige Gewichtsinitialisierung beim Start hat das Ergebnis hier stark dominiert, ein neuer Trainingsstart erzeugt automatisch eine andere Initialisierung und führt meist zu einem deutlich besseren Ergebnis

Rauschen Bewertung: merkliches Rauschen, Interpretation mit Vorsicht (borderline)
Drift Bewertung: -
Empfehlung für Retrain: keine

Modellparameter
Normierungsgrenzen: PV=9975 Wh, Hausverbrauch: Min=0 Wh / Max=6970 Wh
Trainingsdaten: 10537 Datensätze (Training=8429, Validation=2108)
Architektur: Inputs=114, Hidden Layers=12, Outputs=1
Hyperparameter: Learning Rate=0.001, Momentum=0.5, BitFail-Limit=0.34
Aktivierungen: Hidden=ELLIOT_SYMMETRIC, Steepness=0.7, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Profile=v1_heatpump_active_pv
Zufallsgenerator: Mode=1, Period=25
Modellalter: - h

Trainingsmetriken
bestes Modell bei Epoche: 193 (max. 15000)
Training MSE: 0.008223
Validation MSE: 0.006938
Validation MSE Average: 0.007469
Validation MSE Standard Deviation: 0.000126
Validation Bit_Fail: 11
Data Parameter Ratio: 7.564
Model Bias: 489 Wh
Model Slope: 0.64
Trainingsbewertung: Retrain

Fehlermaße der Prognosen
MAE: 402.29 Wh
MedAE: 268.60 Wh
RMSE: 497.59 Wh
RMSE relative: 50 %
RMSE Rating: acceptable
MAPE: 35.48 %
MdAPE: 24.98 %
R²: 0.51

Rauschen
Rauschen Bewertung: borderline
Empfehlung für Bit_Fail: 0.34 (Einstellung von aiControl->aiConBitFailLimit)

Drift-Kennzahlen (berechnet ab Modellalter > 6 h)
Analysefenster: - h
Drift RMSE Ratio: -
Semantic Ratio: -
Slope Reference: -
Slope Live: -
Slope Drift: -
Bias Reference: -
Bias Live: -
Bias Drift: -
Score: -
Index: -
Drift Bewertung: -
Empfehlung für Retrain: keine
letzte Rekalibrierung: -


Jetzt folge ich mal den Empfehlungen... 8)
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

@300P,

ELLIOT_SYMMETRIC mit Steepness=0.7 ist eine sehr aggressive Kombination – das Netz sättigt extrem schnell und erschöpft seinen Lernspielraum in wenigen Epochen.
Ich würde hier auch mit SIGMOID einsteigen.
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

@Peter,

sieht doch gut aus nach den Werten zu urteilen. Was sagt das Balkendiagramm?
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

Mit der letzten stand alles auf "Automatik" was "ging"

Jetzt die Empfehlung aiConLearnRate eingetragen....erts 0.0005 ...dann jetzt mit 0.0001

aiConActFunc=ELLIOT_SYMMETRIC
aiConActivate=1
aiConAlpha=0.8
aiConBitFailLimit=0.34
aiConLearnRate=0.0001
aiConMomentum=0.5
aiConProfile=active,pv,heatpump
aiConTrainAlgo=INCREMENTAL
aiConTrainLimit=0
aiConTrainStart=70:9
aiStorageDuration=3600
aiTrainStart=3
aiTreesPV=30

letztes KI-Training: 28.06.2026 20:04:30 / Laufzeit in Sekunden: 779
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 92.79 ms
Alpha: 0.8
Verbrauchernummer Wärmepumpe: 07,08

Bewertungsüberblick
Trainingsbewertung: Retrain (Retrain)
Data-Parameter-Ratio Bewertung: ok (ok)
Lernverhalten: ok gesundes Lernverhalten (13.7 % Epochenausnutzung)
Einstellhinweise:
Trainingsalgorithmus wechseln: RPROP statt INCREMENTAL verwenden - RPROP passt seine Schrittweite automatisch an und kommt ohne manuelle Lernraten-Einstellung aus was bei langsamer Konvergenz oft deutlich schneller zum Ziel führt (aiControl->aiConTrainAlgo)

Rauschen Bewertung: merkliches Rauschen, Interpretation mit Vorsicht (borderline)
Drift Bewertung: -
Empfehlung für Retrain: keine

Modellparameter
Normierungsgrenzen: PV=9975 Wh, Hausverbrauch: Min=0 Wh / Max=6970 Wh
Trainingsdaten: 10537 Datensätze (Training=8429, Validation=2108)
Architektur: Inputs=114, Hidden Layers=12, Outputs=1
Hyperparameter: Learning Rate=0.0001, Momentum=0.5, BitFail-Limit=0.34
Aktivierungen: Hidden=ELLIOT_SYMMETRIC, Steepness=0.7, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Profile=v1_heatpump_active_pv
Zufallsgenerator: Mode=1, Period=25
Modellalter: - h

Trainingsmetriken
bestes Modell bei Epoche: 2058 (max. 15000)
Training MSE: 0.008120
Validation MSE: 0.007039
Validation MSE Average: 0.007074
Validation MSE Standard Deviation: 0.000005
Validation Bit_Fail: 10
Data Parameter Ratio: 7.564
Model Bias: 454 Wh
Model Slope: 0.65
Trainingsbewertung: Retrain

Fehlermaße der Prognosen
MAE: 402.24 Wh
MedAE: 269.01 Wh
RMSE: 496.47 Wh
RMSE relative: 50 %
RMSE Rating: acceptable
MAPE: 35.85 %
MdAPE: 25.23 %
R²: 0.51

Rauschen
Rauschen Bewertung: borderline
Empfehlung für Bit_Fail: 0.34 (Einstellung von aiControl->aiConBitFailLimit)

Drift-Kennzahlen (berechnet ab Modellalter > 6 h)

Sieht jetzt gut aus..... :)

PS:
RPROP verschlechtert bei mir immer....
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

ZitatRPROP verschlechtert bei mir immer....
Dafür gibt es ja verschiedene Möglichkeiten  ;)
Aber ich meinte SIGMOID statt ELLIOT.
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.

300P

Zitat von: DS_Starter am 28 Juni 2026, 20:17:01
ZitatRPROP verschlechtert bei mir immer....
Dafür gibt es ja verschiedene Möglichkeiten  ;)
Aber ich meinte SIGMOID statt ELLIOT.

Ja - ich wollte mal nur auf den eingebauten "Berater" mal hören... :)


Bin heute Morgen nach mehreren Versuchen / Training (Rat von LLM) wieder auf ELLIOT gelandet  :o
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

An der Prognose-Grafik gibt es nichts zu meckern m.M. nach.  :)

Ja, kann auch sein, dass du wieder bei ELLIOT landest. Ich wollte nur testen, wie eine frischer User das Autokonfig erlebt wenn er WP/EV eingebaut hat. SIGMOID ist ja der default.
Bei mir ist übrigens ELLIOT minimal schlechter als SIGMOID in meinem Haushalt - Flag "v1,active".
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

Ich habe alle meine Instanzen mit dem Autokonfig durchziehen lassen. Alle hatten sofort eine brauchbare Prognose. Das ist, was der User wenn er die CON-KI aktiviert und das erste mal trainiert, erleben soll.
Das man mit etwas Erfahrung, LLM-Hilfe und Lust weiter versuchen kann zu optimieren, steht außer Frage.
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

Lasse jetzt zum Test nochmals ohne alles laufen.....
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.