76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

300P

So - Sauna-Verbrauchs-Exzess ist beendet
Batterien sind leergelutscht.

Das ist ja fast so, als ob ich ein kleines BEV laden würde.... :o   ::)   O:-)
Vielleicht sollte ich doch noch irgendwann einmal der Sauna einen Zähler verpassen. ;)
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

ZitatVielleicht sollte ich doch noch irgendwann einmal der Sauna einen Zähler verpassen.
Ja.  ;)


Ich habe soeben die V 2.6.8 eingecheckt. Sie ist wie üblich morgen früh verfügbar.
Die Drift-Funktion habe ich noch etwas nachgebessert und mit aiProcess_long gibt es noch mehr Ausgabe zur Analyse:

2026.05.11 23:00:05.478 1: SolDwd DEBUG> DRIFT SAFETY [con]: block=none
  -- RMSE Analysis --
     rmse_rel_ratio=3.388 | dynamic_limit=4.950 | margin=1.562 ok
     Limit Composition: base=4.0 | peak_part=0.188 (peak_ratio=0.188) | sem_part=0.263 (sem_ratio=0.958) | var_part=0.500 (slope_var=3.76408)
  -- Slope Analysis --
     slope_live=0.217 | slope_drift=0.255 | slope_rel_drift=0.745 | slope_var=3.76408
     slope_var_limit=8.94448 | var_ratio=0.42 ok
  -- Bias Analysis --
     bias_live=766.6 | bias_limit=670.8 | bias_ratio=1.14 !! ABOUT LIMIT !!
     quant30=559.0 | quant90=1068.0 | median_load=668.0
  -- Context --
     drift_score=3.420 | bias_drift_norm=2.058 | bias_var_norm=0.332
     peak_ratio=0.188 | sem_ratio=0.958
2026.05.11 23:00:05.479 1: SolDwd DEBUG> DRIFT [con]: Flag=moderate | Block=0 | SlopeLive=0.217 | DriftSlope=0.255 | BiasLive=766.63 | DriftBias=-169.89 | RMSErelLive=50.8 | RMSErelRatio=3.39 | BiasVarNorm=0.33 | DriftIndex=2.81 | DriftScore=3.42 | Zone3Hours=2 | Zone3Reset=0 | Hist=[moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderat
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 Heiko,

augenscheinlich ist die NN-CON-Vorhersage (aktuell -1.5% CON-Abweichung) trotz Blockieren der Rekalibrierung immer noch gut wenn es keine Ausnahmefälle (Sauna-Excesse  O:-) ) gibt.
Ich stehe bis heute Morgen noch bei der V2.6.7 - Update Contrib2.6.8 erfolgt jetzt gleich bei mir


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

#6063
Moin 300P,

ja, dann hast du augenscheinlich keine echte Drift sondern nur Abweichungen durch kurzfristige, nicht‑repräsentative Verbrauchsmuster, die das Modell nicht generalisieren kann.
Denn nur wenn es sich um echte Drift handelt, soll die Rekalibrierung greifen.

Kurzfristige Peaks oder untypische Verbrauchsmuster erzeugen

* BiasLive‑Ausschläge
* RMSE‑Spitzen
* Slope‑Anomalien

Die Safety‑Logik (_aiDrift_safety_blocked) erkennt das (hoffentlich) als instabil / Ausreißer, nicht als echte Drift.
Genau dafür ist sie gebaut, das soll sie tun.
Dort wird Rekalibrierung verhindert bei:

* Ausreißern
* API-/Sensorfehlern
* instabiler Drift
* ,,model_bad_but_stable"
* Bias-/Slope‑Implausibilitäten
* Low‑Load‑Phasen

Das sind alles Nicht‑Drift‑Situationen.
Wenn die Rekalibrierung blockiert wird und die Vorhersage trotzdem gut bleibt, dann liegt keine echte Drift vor. 
Die Abweichungen stammen dann nur aus kurzfristigen Störungen oder Situationen, die das Modell nicht erklären kann (z.B. deine Sauna‑Exzesse).
Echte Drift bedeutet eine dauerhafte, stabile Verschiebung über viele Stunden – nur dann soll die Rekalibrierung greifen.
Alles andere wird von der Safety‑Logik bewusst abgefangen, damit das Modell nicht auf Ausreißer reagiert.
Nun ist jedes unserer Systeme anders und ich hoffe ein Optimum bzgl. der "Abfanglogik" gefunden zu haben.  ;)
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

Auf jeden Fall ist kein Bug im Modul
👌👍👌👍👌👍😉
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

ups - grad gesehen das im Contrib eine ältere V2.6.8 liegt als im normalen Updateprozess geladen wird  ;)
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

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: DS_Starter am 11 Mai 2026, 23:38:07Die Drift-Funktion habe ich noch etwas nachgebessert und mit aiProcess_long gibt es noch mehr Ausgabe zur Analyse:

Update und shutdown/restart nach "normalen" FHEM-Updatefunktion.
mmmh - Einträge sollten zur vollen Stunden dann kommen - oder ?
2026.05.12 09:17:01 0: Server started with 443 defined entities (fhem.pl:30992/2026-03-21 perl:5.036000 os:linux user:fhem pid:494960)
2026.05.12 09:17:09 1: PERL WARNING: Argument "" isn't numeric in sprintf at (eval 3192) line 1.
2026.05.12 09:18:27 2: AttrTemplates: got 272 entries
2026.05.12 10:00:16 1: Forecast DEBUG> start add AI raw data for hour: 10
2026.05.12 10:00:16 1: Forecast DEBUG> AI raw add - 1 entities added to raw data pool (set verbose 4 for output more detail)
2026.05.12 10:00:16 1: Forecast DEBUG> AI raw data saved into file: ./FHEM/FhemUtils/AIraw_SolarForecast_Forecast
2026.05.12 10:00:17 1: Forecast DEBUG> DRIFT [con]: Flag=moderate | Block=rmse_anomaly | SlopeLive=0.436 | DriftSlope=0.435 | BiasLive=1027.84 | DriftBias=1034.46 | RMSErelLive=112.0 | RMSErelRatio=28.01 | BiasVarNorm=1.16 | DriftIndex=2.73 | DriftScore=17.98 | Zone3Hours=36 | Zone3Reset=0 | Hist=[moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate,moderate]
2026.05.12 10:00:17 1: Forecast DEBUG> AI FANN drift data type 'con' successfully written to file: ./FHEM/FhemUtils/NeuralNet_SolarForecast_Forecast




EDIT:
Kommt das evtl. nur bei "block=none" ?
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

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