76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

Gisbert

Zitat von: DS_Starter am 15 Juni 2026, 12:55:41Hallo Gisbert,
dein letztes Training
14.06.2026    19:59:35.620    01:00    mySolarForecast    DEBUG>    Retry    attempt    2    with    Seed=21170366   
gefällt mir. Der Bit_Fail verringert sich kontinuierlich langsam von 17 auf 0.
Genauso verhält es sich auch mit Train MSE  und Val MSE. Beide Werte laufen gleichmäßig nach unten ohne auf einem Plateau-Wert hängen zu bleiben.
Und es werden 2911 Epochen verwendet, die der Berater gut finden sollte.
Für mich sieht das sehr gut aus und wenn du uns noch die Trainingsmetriken und Fehlermaße der Prognosen zeigen würdest, könnten wir einen Vergleich mit meinen (angehängten) oder den Werten von 300P im vorigen Post vergleichen.

Ich würde es so lassen und wenn du mehr Daten gesammelt hast und ich auch noch die zusätzlichen WP-Parameter eingebaut habe, kann man auch mal wieder einen Versuch mit einem WP-Profil starten.
@300P, wie ist deine Meinung dazu und zum Ergebnis?

LG,
Heiko

Hallo Heiko,

hier sind die weiteren Daten, Trainingsmetriken und Fehlermaße:

bestes Modell bei Epoche: 2911 (max. 15000)
Training MSE: 0.003947
Validation MSE: 0.003750
Validation MSE Average: 0.003715
Validation MSE Standard Deviation: 0.000009
Validation Bit_Fail: 0
Model Bias: 199 Wh
Model Slope: 0.81
Trainingsbewertung: ok

MAE: 249.47 Wh
MedAE: 178.52 Wh
RMSE: 317.25 Wh
RMSE relative: 40 %
RMSE Rating: acceptable
MAPE: 33.11 %
MdAPE: 21.62 %
R²: 0.80

Analysefenster: 96 h
Drift RMSE Ratio: 1.67
Semantic Ratio: 0.75
Slope Reference: 1.00
Slope Live: 0.62
Slope Drift: 0.620
Bias Reference: 0
Bias Live: 371.44
Bias Drift: 371.44
Score: 1.07
Index: 1.18
Drift Bewertung: low
Empfehlung für Retrain: keine keine
letzte Rekalibrierung: -

Wenn das Training für dich ok aussieht, wann kann ich denn mit einer Prognose in der Größenordnung des tatsächlichen Verbrauchs rechnen? Für morgen wird ein Verbrauch von 27.7 kWh prognostiziert, bei gleichbleibendem Verbrauch von 10~12 kWh.

Viele Grüße Gisbert
Proxmox | UniFiRHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF

DS_Starter

#6346
Nabend Gisbert,

wenn du deine erreichten Fehlermaße

MAE: 249.47 Wh
MedAE: 178.52 Wh
RMSE: 317.25 Wh
RMSE relative: 40 %
RMSE Rating: acceptable
MAPE: 33.11 %
MdAPE: 21.62 %
R²: 0.80

mit denen von 300P vergleichst:

Fehlermaße der Prognosen
MAE: 245.66 Wh
MedAE: 175.65 Wh
RMSE: 282.19 Wh
RMSE relative: 25 %
RMSE Rating: good
MAPE: 23.12 %
MdAPE: 14.65 %
R²: 0.83

siehst du dass die Ergebnsisse bei 300P gerade bei RMSE relative deutlich besser sind, 25% vs. 40%. Daraus folgt auch das Rating acceptable vs. good.
300P kann durch seine deutlich breitere Datenlage das spezifische WP-Profil nutzen, was bei dir wegen den doch noch "dünnen" Trainingsdaten noch nicht möglich ist. Aber das System wird über die eingebaute Drift-Korrektur in Grenzen gegensteuern.

Vergleich der Trainingsmetriken:

bei dir:
Validation MSE: 0.003750
Validation MSE Average: 0.003715
Validation MSE Standard Deviation: 0.000009

300P:
Validation MSE: 0.002347
Validation MSE Average: 0.002246
Validation MSE Standard Deviation: 0.000028

Korrektur: Meine Ersteinschätzung bezüglich der Standardabweichung war falsch, hier liegt dein System bezüglich der Standardabweichung in der Validierung vorn.

Meiner Meinung nach werden weitere Verbesserungen erst eintreten, wenn dein System mit mehr Daten trainieren kann und die WP-Features nutzen kann. In dem Zusammenhang wird es speziell für deinen Haushalt wichtig sein, dass ich die Möglichkeit mehrerer definierbarer WP sowie die schon andiskutierten opmodes realisiere.

Wahrscheinlich wirst du auch Änderungen in der CON-Prognose über die Zeit feststellen. Die Prognose ist dynamisch.
Mich würde ein Screenshot des Balkendiagramms mit Prognose/Ist interessieren.

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

Guten Morgen,

bei uns wirkt sich z.b. auch immer noch das "unkontrollierte"  ;D  ;D  ;D
- meist mehrfache Nutzung der Waschmaschine und Trockner  :))
- Grillen  :o mit dem Elektrogrill (fast 6kWh für 2 Stunden)
- Saunanutzung  :o
- Backofennutzung für den leckeren Kuchen  8) mit anschließender starker Kaffeemaschinennutzung
- und andere "Verbrauchsorgien" wenn die Enkel da sind
immer wieder bei dem Vergleich von Forecast zu wahren Realität stark aus.

=>> SO ist das halt  ;) ....bei unserem Renterhaushalt.....

An normalen Tagen komme ich auf +- 5 %
Aber an solch geschilderten Tagen sind bis zu 30/40 % Abweichung vollkommen i.O. ;)  8)  ;D


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.

grappa24

@300P: Diese "Verbrauchsorgien" kenne ich - bis auf Sauna - Respekt

Ich hab jetzt unser Haus mal 2 Wochen alleine wursteln lassen, CON-Prognose pendelt so zwischen +-5%
Gebäudesicherheit/-komfort, PV-Prognose/Verbrauchssteuerung, Heizungssteuerung, Multimedia, ...
KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200, Netatmo, Nuki, SolarForecast, HEOS, Alexa-FHEM, ...
FHEM 6.4, 2 x RasPi 3B+, Debian Bullseye

Burny4600

#6349
Zitat von: 300P am 15 Juni 2026, 21:24:35Dafür nutze doch attr <Name-SF-Device> graphicHeaderOwnspec

Zitat von: DS_Starter am 15 Juni 2026, 21:29:17Die Anzeige aktiviert man mit graphicControl->headerShowEnv.

Danke für die Hinweise:
Mir fehlten unter graphicHeaderOwnspec der Verweis auf das Attribut aiControl-> und für die Anzeige graphicControl->headerShowEnv. Der Rest hatte schon gepasst.


Das mit der Solarstrahlung (rad) und Temperaturen für jeden einzelnen String ist ein Wunsch, den ich bei mir mit meinen eigenen Wetterdaten erweitert möchte.
Dafür verwende ich alle Daten aus meiner Davis-Wetterstation und lokalen Wetterdaten aus anderen Wetterdiensten aus dem lokalem Umfeld in ein eigenes Dummy-Device, dass anschließend die benötigten setupWeatherDevx versorgt.

Aus alten Solarzellen von Solarleuchtung baue ich mir ein Pyranometer und ergänze diese mit einem Temperaturfühler. Das gebaute Pyranometer gleiche ich mit dem Strahlungssensor der Davis-Wetterstation ab. Da ich drei unterschiedliche Ausrichtungen der PV-Flächen habe, benötige ich für die Korrektur drei Pyranometer mit einem Temperaturfühler.
LG Chris

Raspberry Pi 2-5 => Jessie, Bullseye, Bookworm, Trixie
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Davis, Eastron, FS20, Homematic, IT, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, SkyWind, TEK603

Gisbert

Zitat von: DS_Starter am 15 Juni 2026, 22:32:10Mich würde ein Screenshot des Balkendiagramms mit Prognose/Ist interessieren.

Hallo Heiko,

hier sind die Balkendiagramme für PV und Verbrauch (grau Prognose, blau ist-Werte).
Die Vorhersage wird langsam besser. Für den morgigen Tag werden nur noch 19.1 kWh prognostiziert, Erwartung: 10~12 kWh. Abends und nachts passt die Prognose schon sehr gut, tagsüber ist sie halt noch deutlich drüber.

Ich bin auf die nächsten Features, die du planst, gespannt.

Viele Grüße Gisbert
Proxmox | UniFiRHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF

TheTrumpeter

Ich hadere mal wieder mit den Korrekturfaktoren...
Entgegen der im Bild sichtbaren Wetterprognose herrscht(e) fast ungetrübter Sonnenschein, d.h. die angewendeten Korrekturfaktoren passen nicht zum Wetter.

Sowohl um 10 als auch 12 Uhr heute ist die Prognose wohl über die WR-Max-Leistung beschränkt worden. Für 12 Uhr kann ich mittels "nexthour" noch die verwendeten Werte abrufen. Da sieht man, dass OpenMeteo bereits 14,21 kWh prognostiziert, was ich in einer Stunde noch nie erreicht habe. Zusätzlich wird dann ein Korrekturfaktor 1,07 draufgerechnet, was 15,2 kWh ergäbe und daher auf 15 kWh begrenzt wird.

Die Möglichkeit die Wettervorhersage mittels "Helligkeitsintegral" zu plausibilisieren wurde in der Vergangenheit ja schonmal diskutiert.
Zusätzlich würde mir eine recht einfache Möglichkeit einfallen wie die Prognosen limitiert werden können:
Ich weiß aus Beobachtung, dass selbst bei besten Bedingungen nie mehr als 14 kWh in einer Stunde vom Dach kommen. In den aufgezeichneten Daten ist das bestimmt auch enthalten, d.h. anstatt nur auf die WR-Leistung zu begrenzen, könnte auf diesen Max-Wert limitiert werden. Diese Limitierung ließe sich - bei ausreichender Datenmenge - mittels Höhe und Azimut auch noch weiter verfeinern.

?All => 2026-06-16 09:00:00 => Rad1h: 2285
        2026-06-16 10:00:00 => Rad1h: 2757
        2026-06-16 11:00:00 => Rad1h: 3080
        2026-06-16 12:00:00 => Rad1h: 3217
        2026-06-16 13:00:00 => Rad1h: 3206
        2026-06-16 14:00:00 => Rad1h: 2600
        2026-06-16 15:00:00 => Rad1h: 2084
        2026-06-16 16:00:00 => Rad1h: 1427
PV1 => 2026-06-16 09:00:00 => GTIWh: 682
                              pv_estimate50: 5192.00
       2026-06-16 10:00:00 => GTIWh: 818
                              pv_estimate50: 6228.00
       2026-06-16 11:00:00 => GTIWh: 905.1
                              pv_estimate50: 6891.00
       2026-06-16 12:00:00 => GTIWh: 933.2
                              pv_estimate50: 7105.00
       2026-06-16 13:00:00 => GTIWh: 916.6
                              pv_estimate50: 6978.00
       2026-06-16 14:00:00 => GTIWh: 727.7
                              pv_estimate50: 5540.00
       2026-06-16 15:00:00 => GTIWh: 571.9
                              pv_estimate50: 4354.00
       2026-06-16 16:00:00 => GTIWh: 386.1
                              pv_estimate50: 2939.00
PV3 => 2026-06-16 09:00:00 => GTIWh: 682
                              pv_estimate50: 5192.00
       2026-06-16 10:00:00 => GTIWh: 818
                              pv_estimate50: 6228.00
       2026-06-16 11:00:00 => GTIWh: 905.1
                              pv_estimate50: 6891.00
       2026-06-16 12:00:00 => GTIWh: 933.2
                              pv_estimate50: 7105.00
       2026-06-16 13:00:00 => GTIWh: 916.6
                              pv_estimate50: 6978.00
       2026-06-16 14:00:00 => GTIWh: 727.7
                              pv_estimate50: 5540.00
       2026-06-16 15:00:00 => GTIWh: 571.9
                              pv_estimate50: 4354.00
       2026-06-16 16:00:00 => GTIWh: 386.1
                              pv_estimate50: 2939.00
 
 
NextHour00 => starttime: 2026-06-16 12:00:00, day: 16, weekday: Tue, holiday: 0, hourofday: 13, today: 1
              pvapifcraw: 14210, pvapifc: 15000, pvaifc: -, pvfc: 15000, aihit: 0
              conlegfc: 2234, conaifc: 153, confc: 153, conbiascorr: -74, confcEx: 2234, weatherid: 2, wcc: 77, rr1c: 0.00
              temp: 24.2, windspeed: 3.87, windspeed_fast: 1.93, rad1h: 3217, sunaz: 166.80, sunalt: 64.50, DoN: 1
              rrange: 0.00, crange: 75, DaysInRange: 4, correff: 1.07/0.95
              soc01: -, soc02: -, soc03: -, socprogwhsum: -
              rcdchargebat01: -, rcdchargebat02: -, rcdchargebat03: -
              lcintimebat01: -, lcintimebat02: -, lcintimebat03: -
              strategybat01: -, strategybat02: -, strategybat03: -
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

300P

Zitat von: TheTrumpeter am 16 Juni 2026, 13:04:38Ich weiß aus Beobachtung, dass selbst bei besten Bedingungen nie mehr als 14 kWh in einer Stunde vom Dach kommen. In den aufgezeichneten Daten ist das bestimmt auch enthalten, d.h. anstatt nur auf die WR-Leistung zu begrenzen, könnte auf diesen Max-Wert limitiert werden.

et voilà ! ->>> hier ist der Wert -> Grafik ;)

Alternativ auch hier den höchsten Werte der letzten 31 Tage aller WR raussuchen...
->>> mittels "get <SF-Name> pvHistory exportToCsv key=pvrl"

Ab damit in Excel .... und diese CSV-Werte als Tabelle nach Größe sortieren - nur die 99er-Werte nicht dazu nehmen.
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

#6353
ZitatZusätzlich würde mir eine recht einfache Möglichkeit einfallen wie die Prognosen limitiert werden können:
Ich weiß aus Beobachtung, dass selbst bei besten Bedingungen nie mehr als 14 kWh in einer Stunde vom Dach kommen. In den aufgezeichneten Daten ist das bestimmt auch enthalten, d.h. anstatt nur auf die WR-Leistung zu begrenzen, könnte auf diesen Max-Wert limitiert werden. Diese Limitierung ließe sich - bei ausreichender Datenmenge - mittels Höhe und Azimut auch noch weiter verfeinern.
Es findet bereits eine Begrenzung auf die Peakleistung (Summe aller Strings) zzgl. eines kleinen Aufschlages statt. Der Aufschlag erfolgt wegen der Temperaturabhängigkeit. Die Zellen können ggf. bei Temp < Normtemperatur mehr leisten.

Eine Begrenzung auf einen "beobachteten" Wert ist nicht handhabbar weil das Maximum der möglichen Erzeugung sich erst nach einer Laufzeit X in den günstigen Monaten im Frühjahr oder Herbst einstellt wenn die Sonne Strahlkraft hat, der Winkel günstig steht und die Temperaturen niedrig sind. Im Sommer hat man mit dem Temperaturabfall zu tun.
Ein User der mit dem Modul (insbesondere im Winter) startet, würde für lange Zeit eine Begrenzung der Prognose auf den letzten maximalen Meßwert bekommen bevor das physikalische Maximum erreicht 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

PS:
Du hast auch dabei den Fall berücksichtigt das die Summe der jeweiligen Stringleistung größer ist als die Summe aller WR.
Dann wird der Summenwert der WR genommen.

Bei mir wird daher nicht die Summe der Strings genommen (14.5) sinder die der WR (9.5)
Dieser Wert (9.5) plus der Sucherheitsaufschlag sind meine o.g. 10.450 Wh.


PPS:
Trotz 3 Ausrichtungen meiner 6 Strings komme ich ab Juni oft lange auf bis zur max. WR-Leistung 9.5 kWh, nur davor und nach September wird es naturgemäß nicht mehr so hoch.


Nachsatz:

Evtl. Sollte bei Nutzung des ,,WR"-Wertes kein Sicherheitszuschlag wegen Temperatur mehr genutzt werden ?!? 🤔
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

ZitatDu hast auch dabei den Fall berücksichtigt das die Summe der jeweiligen Stringleistung größer ist als die Summe aller WR.
Dann wird der Summenwert der WR genommen.
Ja, ist richtig. Der kleinere beider Werte begrenzt hart.

ZitatTrotz 3 Ausrichtungen meiner 6 Strings komme ich ab Juni oft lange auf bis zur max. WR-Leistung 9.5 kWh, nur davor und nach September wird es naturgemäß nicht mehr so hoch.
Das ist oft der Fall, wenn wie bei dir die Anlage "überladen" ist, also der Peak aller Strings höher ist als die gesamte max. WR-Leistung.

ZitatEvtl. Sollte bei Nutzung des ,,WR"-Wertes kein Sicherheitszuschlag wegen Temperatur mehr genutzt werden ?!?
Ja, so ist es auch. Dieser Zuschlag erfolgt nur auf den Zellen-Peak.
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