76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

Wolle02

Zitat von: 300P am 27 Mai 2026, 13:56:17Neue Klimaanlage - das wäre dann aber ein CON Soll/Ist - nicht PV Soll/Ist 🤔😉

Na klar. Ok ich hab nicht gesehen, dass ihr es nur von der PV Prognose habt. Ich dachte es geht allgemein um die Präzision der Prognosen. Dann hab ich nichts gesagt  ;)

DS_Starter

@all,

die v 2.6.11 mit der kleinen Verbesserung aus #6256 habe ich eingecheckt -> Morgen früh wie üblich verfügbar.

@Wolle02,

welche API nutzt du? DWD oder etwas anderes?
Kannst uns auch mal deine Readings pvCorrectionFactor_XX zeigen und die Ausgabe von "get ... forecastQualities".

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

Zitat von: DS_Starter am 27 Mai 2026, 14:15:50@Wolle02,

welche API nutzt du? DWD oder etwas anderes?
Kannst uns auch mal deine Readings pvCorrectionFactor_XX zeigen und die Ausgabe von "get ... forecastQualities".


Hallo Heiko, ich benutze mein DWD-Device. Die DWD- Wetterstation ist von mir aus 2 km Luftlinie weg.

forcastQualities:
Start: 2026-05-27 14:00:00, Quality: 1.00, Factor: 0.89, AI usage: 1, PV expect: 4418 Wh, Sun Alt: 59.30, Cloud: 0, DaysInRange: 3
Start: 2026-05-27 15:00:00, Quality: 0.84, Factor: 0.78, AI usage: 1, PV expect: 4074 Wh, Sun Alt: 52.40, Cloud: 0, DaysInRange: 2
Start: 2026-05-27 16:00:00, Quality: 0.97, Factor: 0.97, AI usage: 1, PV expect: 3843 Wh, Sun Alt: 43.60, Cloud: 0, DaysInRange: 3
Start: 2026-05-27 17:00:00, Quality: 0.97, Factor: 0.95, AI usage: 1, PV expect: 3464 Wh, Sun Alt: 34.00, Cloud: 0, DaysInRange: 5
Start: 2026-05-27 18:00:00, Quality: 0.98, Factor: 0.96, AI usage: 1, PV expect: 3495 Wh, Sun Alt: 24.10, Cloud: 0, DaysInRange: 5
Start: 2026-05-27 19:00:00, Quality: 0.93, Factor: 0.93, AI usage: 1, PV expect: 2537 Wh, Sun Alt: 14.90, Cloud: 0, DaysInRange: 4
Start: 2026-05-27 20:00:00, Quality: 0.86, Factor: 0.31, AI usage: 1, PV expect: 249 Wh, Sun Alt: 5.70, Cloud: 0, DaysInRange: 7
Start: 2026-05-27 21:00:00, Quality: 0.00, Factor: 0.39, AI usage: 1, PV expect: 41 Wh, Sun Alt: 0.70, Cloud: 0, DaysInRange: 1
Start: 2026-05-28 05:00:00, Quality: 0.93, Factor: 1.86, AI usage: 1, PV expect: 39 Wh, Sun Alt: 2.00, Cloud: 0, DaysInRange: 2
Start: 2026-05-28 06:00:00, Quality: 0.99, Factor: 1.20, AI usage: 1, PV expect: 371 Wh, Sun Alt: 8.60, Cloud: 0, DaysInRange: 5
Start: 2026-05-28 07:00:00, Quality: 0.79, Factor: 0.49, AI usage: 0, PV expect: 749 Wh, Sun Alt: 17.50, Cloud: 0, DaysInRange: 4
Start: 2026-05-28 08:00:00, Quality: 0.92, Factor: 1.08, AI usage: 0, PV expect: 2835 Wh, Sun Alt: 27.30, Cloud: 0, DaysInRange: 1
Start: 2026-05-28 09:00:00, Quality: -, Factor: 1.06, AI usage: 0, PV expect: 3503 Wh, Sun Alt: 37.10, Cloud: 0, DaysInRange: 1
Start: 2026-05-28 10:00:00, Quality: 0.97, Factor: 0.99, AI usage: 1, PV expect: 4148 Wh, Sun Alt: 46.60, Cloud: 0, DaysInRange: 4
Start: 2026-05-28 11:00:00, Quality: 0.99, Factor: 0.99, AI usage: 1, PV expect: 4276 Wh, Sun Alt: 54.90, Cloud: 0, DaysInRange: 6
Start: 2026-05-28 12:00:00, Quality: 0.97, Factor: 1.00, AI usage: 1, PV expect: 5174 Wh, Sun Alt: 60.90, Cloud: 0, DaysInRange: 5
Start: 2026-05-28 13:00:00, Quality: 0.96, Factor: 0.95, AI usage: 1, PV expect: 4168 Wh, Sun Alt: 62.60, Cloud: 0, DaysInRange: 3
Start: 2026-05-28 14:00:00, Quality: 1.00, Factor: 0.89, AI usage: 1, PV expect: 5020 Wh, Sun Alt: 59.40, Cloud: 0, DaysInRange: 3
Start: 2026-05-28 15:00:00, Quality: 0.84, Factor: 0.78, AI usage: 1, PV expect: 4254 Wh, Sun Alt: 52.50, Cloud: 0, DaysInRange: 2
Start: 2026-05-28 16:00:00, Quality: 0.97, Factor: 0.97, AI usage: 1, PV expect: 4052 Wh, Sun Alt: 43.70, Cloud: 0, DaysInRange: 3
Start: 2026-05-28 17:00:00, Quality: 0.97, Factor: 0.95, AI usage: 0, PV expect: 3583 Wh, Sun Alt: 34.10, Cloud: 0, DaysInRange: 5
Start: 2026-05-28 18:00:00, Quality: 0.98, Factor: 0.96, AI usage: 0, PV expect: 3132 Wh, Sun Alt: 24.30, Cloud: 0, DaysInRange: 5
Start: 2026-05-28 19:00:00, Quality: 0.93, Factor: 0.93, AI usage: 1, PV expect: 2438 Wh, Sun Alt: 15.00, Cloud: 0, DaysInRange: 4
Start: 2026-05-28 20:00:00, Quality: 0.86, Factor: 0.31, AI usage: 1, PV expect: 351 Wh, Sun Alt: 5.90, Cloud: 0, DaysInRange: 7
Start: 2026-05-28 21:00:00, Quality: 0.00, Factor: 0.39, AI usage: 0, PV expect: 23 Wh, Sun Alt: 0.90, Cloud: 0, DaysInRange: 1
Start: 2026-05-29 05:00:00, Quality: 0.93, Factor: 1.86, AI usage: 1, PV expect: 21 Wh, Sun Alt: 0.10, Cloud: 0, DaysInRange: 2
Start: 2026-05-29 06:00:00, Quality: 0.99, Factor: 1.20, AI usage: 1, PV expect: 247 Wh, Sun Alt: 8.70, Cloud: 0, DaysInRange: 5
Start: 2026-05-29 07:00:00, Quality: 0.79, Factor: 0.49, AI usage: 1, PV expect: 1243 Wh, Sun Alt: 17.60, Cloud: 0, DaysInRange: 4
Start: 2026-05-29 08:00:00, Quality: 0.92, Factor: 1.08, AI usage: 1, PV expect: 3242 Wh, Sun Alt: 27.40, Cloud: 0, DaysInRange: 1
Start: 2026-05-29 09:00:00, Quality: -, Factor: 1.06, AI usage: 1, PV expect: 3698 Wh, Sun Alt: 37.20, Cloud: 0, DaysInRange: 1
Start: 2026-05-29 10:00:00, Quality: 0.97, Factor: 0.99, AI usage: 1, PV expect: 4584 Wh, Sun Alt: 46.70, Cloud: 0, DaysInRange: 4
Start: 2026-05-29 11:00:00, Quality: 0.99, Factor: 0.99, AI usage: 1, PV expect: 5082 Wh, Sun Alt: 55.10, Cloud: 0, DaysInRange: 6
Start: 2026-05-29 12:00:00, Quality: 0.97, Factor: 1.00, AI usage: 0, PV expect: 5255 Wh, Sun Alt: 61.00, Cloud: 0, DaysInRange: 5
Start: 2026-05-29 13:00:00, Quality: 0.96, Factor: 0.95, AI usage: 1, PV expect: 4855 Wh, Sun Alt: 62.80, Cloud: 0, DaysInRange: 3
Start: 2026-05-29 14:00:00, Quality: 1.00, Factor: 0.89, AI usage: 1, PV expect: 4545 Wh, Sun Alt: 59.60, Cloud: 0, DaysInRange: 3
Start: 2026-05-29 15:00:00, Quality: 0.84, Factor: 0.78, AI usage: 0, PV expect: 3691 Wh, Sun Alt: 52.70, Cloud: 0, DaysInRange: 2
Start: 2026-05-29 16:00:00, Quality: 0.97, Factor: 0.97, AI usage: 1, PV expect: 3976 Wh, Sun Alt: 43.90, Cloud: 0, DaysInRange: 3
Start: 2026-05-29 17:00:00, Quality: 0.97, Factor: 0.95, AI usage: 0, PV expect: 3577 Wh, Sun Alt: 34.20, Cloud: 0, DaysInRange: 5
Start: 2026-05-29 18:00:00, Quality: 0.98, Factor: 0.96, AI usage: 1, PV expect: 1409 Wh, Sun Alt: 24.40, Cloud: 0, DaysInRange: 5
Start: 2026-05-29 19:00:00, Quality: 0.93, Factor: 0.93, AI usage: 0, PV expect: 2103 Wh, Sun Alt: 15.10, Cloud: 0, DaysInRange: 4
Start: 2026-05-29 20:00:00, Quality: 0.86, Factor: 0.31, AI usage: 0, PV expect: 300 Wh, Sun Alt: 6.00, Cloud: 0, DaysInRange: 7
Start: 2026-05-29 21:00:00, Quality: 0.00, Factor: 0.39, AI usage: 0, PV expect: 20 Wh, Sun Alt: 1.00, Cloud: 0, DaysInRange: 1

Readings pvCorrectionFactor:
pvCorrectionFactor_06
1.89 (automatic - old factor: 1.61, Sun Alt range: 0, Cloud range: 20, Days in range: 2)
2026-05-27 06:00:03
pvCorrectionFactor_07
1.20 (automatic - old factor: 1.21, AI result used, Sun Alt range: 10, Cloud range: 00, Days in range: 5)
2026-05-27 07:00:06
pvCorrectionFactor_08
0.49 (automatic - old factor: 0.48, AI result used, Sun Alt range: 20, Cloud range: 00, Days in range: 4)
2026-05-27 08:00:09
pvCorrectionFactor_09
1.04 (automatic - old factor: 1.00, AI result used, Sun Alt range: 30, Cloud range: 40, Days in range: 1)
2026-05-27 09:00:06
pvCorrectionFactor_10
1.06 (automatic - old factor: 1.06, Sun Alt range: 35, Cloud range: 00, Days in range: 12)
2026-05-27 10:00:05
pvCorrectionFactor_11
0.99 (automatic - old factor: 1.00, AI result used, Sun Alt range: 45, Cloud range: 15, Days in range: 2)
2026-05-27 11:00:05
pvCorrectionFactor_12
1.03 (automatic - old factor: 1.00, AI result used, Sun Alt range: 55, Cloud range: 15, Days in range: 1)
2026-05-27 12:00:17
pvCorrectionFactor_13
0.89 (automatic - old factor: 1.00, AI result used, Sun Alt range: 60, Cloud range: 15, Days in range: 1)
2026-05-27 13:00:03
pvCorrectionFactor_14
0.95 (automatic - old factor: 0.95, AI result used, Sun Alt range: 65, Cloud range: 00, Days in range: 3)
2026-05-27 14:00:09
pvCorrectionFactor_Auto
on_complex_ai

Aktuell habe ich gerade eine PV Abweichung fortlaufend von 1%

DS_Starter

#6273
Deine bisher erreichten Qualitäten ("Quality") sehen durchweg recht gut aus. Manchmal gibt es eine Quality "0" oder "-". Dort konnten sie nicht berechnet werden und kommen sicher noch.
Wenn nur 1-4 historische Tage (DaysInRange) als Vergleichswerte vorhanden sind, kann die Streuung für einen Abgleich noch recht hoch sein, muß aber nicht. Das ist aber nicht dramatisch, jeder neue Messwert hilft bei der Verbesserung.
Die für PV eingesetzte "KI" AI::DecisionTree (das ist eine Entscheidungsbaum Logik) will ich im Laufe des Sommers durch unser neuronales Netz FANN ersetzen. Viele wertvolle Erkenntnisse aus der Verbrauchsprognose kann ich dort einfließen lassen.
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.

Shadow3561

Moin,
Ich habe da mal eine Frage.
Wie änder ich die Trainings-/Testaufteilung von 80/20 auf 70/30?
(aiControl->aiConLearnRate) soll ich auch um Faktor 2 reduzieren, dies habe ich schon gemacht.
Bin von 0.01 auf 0.025, bekomme aber immernoch den Hinweis.
Soll ich weiter reduzieren?

Ein get aiNeuralNetConState ergibt folgendes (Bild)

aiControl Attribut sieht wie folgt aus.
aiConActivate=1 aiConProfile=v1_common_active_pv aiConAlpha=0.7 aiTrainStart=7 aiStorageDuration=3000 aiTreesPV=3 aiConHiddenLayers=14-8 aiConLearnRate=0.0025 aiConTrainStart=1:2 aiConBitFailLimit=0.34
Gruss,
Daniel

300P

Zitat von: Shadow3561 am 27 Mai 2026, 16:34:40Wie änder ich die Trainings-/Testaufteilung von 80/20 auf 70/30?

Das ist fest im Programm hinterlegt - geht (z.Z.) leider nicht von deiner Seite her :)

Jetzt hast du "verdoppelt" - 0.01 reduzieren wäre z.B 0.005 / 0.001 oder evtl. noch kleiner bis zu 0.0001:)

Heiko war schneller als ich editieren / schreiben konnte
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

Zitat(aiControl->aiConLearnRate) soll ich auch um Faktor 2 reduzieren, dies habe ich schon gemacht.
Bin von 0.01 auf 0.025, bekomme aber immernoch den Hinweis.
0.01 um Faktor 2 reduzieren -> verkleinern auf z.B. 0.005,  0,02 wäre vergrößern
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

Shadow3561

Zitat von: DS_Starter am 27 Mai 2026, 16:41:34
Zitat(aiControl->aiConLearnRate) soll ich auch um Faktor 2 reduzieren, dies habe ich schon gemacht.
Bin von 0.01 auf 0.025, bekomme aber immernoch den Hinweis.
0.01 um Faktor 2 reduzieren -> verkleinern auf z.B. 0.005,  0,02 wäre vergrößern
War ein Vertippen oder besser eine vergessene 0 (siehe Codebeispiel Oben).
Der Faktor ist bei 0.0025

300P

lass erst einmal etwas laufen was dann bei der Bewertung nach 24 Stunden rauskommt:

Beispiel - dachte erst das "wär nix" - jetzt pendelt sich alles ein...

letztes KI-Training: 24.05.2026 23:16:53 / Laufzeit in Sekunden: 515
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 79.79 ms
Alpha: 0.7
Verbrauchernummer Wärmepumpe: 08

Bewertungsüberblick
Trainingsbewertung: Retrain (Retrain)
Lernverhalten: very_early sehr früh konvergiert (0.4 % 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
Architektur möglicherweise zu komplex für die Datenmenge: Verhältnis Trainingsdaten zu Netzparametern beträgt nur 5.7 (Zielwert: 8–20) - das Netz hat mehr Freiheitsgrade als die Daten zuverlässig füllen können; kleinere Architektur wie z.B. 14-8 versuchen (aiControl->aiConHiddenLayers)
Große Datenmenge (9701 Datensätze gesamt): wenn saisonale Effekte die Prognosequalität beeinträchtigen, Training auf die neuesten Datensätze begrenzen (z.B. aiControl->aiConTrainLimit=4800) um das Modell auf aktuelle Verbrauchsmuster zu fokussieren

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


Das ist das wichtigere :

--->>> Drift Bewertung: low
--->>> Empfehlung für Retrain: keine (grüner Punkt) keine
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.

Shadow3561

#6280
Bei mir sieht es anders aus
Drift Bewertung: fresh_modelTrainingsbewertung: (roter Punkt) Retrain (Retrain)
Bewertungsüberblick
Trainingsbewertung: Retrain (Retrain)
Lernverhalten: overfit gesundes Lernverhalten (42.4 % Epochenausnutzung)
Einstellhinweise:
Trainingsdaten wurden auswendig gelernt statt allgemeine Muster zu erkennen (Fehler auf unbekannten Testdaten 81.9 % höher als auf Trainingsdaten): Trainings-/Testaufteilung von 80/20 auf 70/30 ändern und/oder Lernrate (aiControl->aiConLearnRate) um Faktor 2 reduzieren damit das Netz langsamer und allgemeiner lernt
Große Datenmenge (8894 Datensätze gesamt): wenn saisonale Effekte die Prognosequalität beeinträchtigen, Training auf die neuesten Datensätze begrenzen (z.B. aiControl->aiConTrainLimit=4400) um das Modell auf aktuelle Verbrauchsmuster zu fokussieren

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

300P

Du bist noch nicht über die 24 h Grenze. - oder ? ;)

Deshalb steht da auch noch"fresh model"

Und

Drift Bewertung: -
Empfehlung für Retrain:  keine
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.