76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

300P

Versuche jetzt mal auch den standart ;)


Ergebnis
letztes KI-Training: 15.01.2026 16:47:09 / Laufzeit in Sekunden: 2384
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 52.16 ms
Verbrauchernummer Wärmepumpe: 08

=== Modellparameter ===

Normierungsgrenzen: PV=16071 Wh, Hausverbrauch: Min=0 Wh / Max=7598 Wh
Trainingsdaten: 7075 Datensätze (Training=5660, Validierung=1415)
Architektur: Inputs=45, Hidden Layers=64-32, Outputs=1
Hyperparameter: Learning Rate=0.001, Momentum=0.2, BitFail-Limit=0.35
Aktivierungen: Hidden=GAUSSIAN, Steilheit=1.5, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_common_pv
Zufallsgenerator: Mode=1, Periode=15

=== Trainingsmetriken ===

bestes Modell bei Epoche: 955 (von max. 15000)
Training MSE: 0.003565
Validation MSE: 0.011193
Validation MSE Average: 0.016926
Validation MSE Standard Deviation: 0.001334
Validation Bit_Fail: 1
Model Bias: 801 Wh
Model Slope: 0.4
Trainingsbewertung: Retrain

=== Fehlermaße der Prognosen ===

MAE: 628.19 Wh
MedAE: 470.50 Wh
RMSE: 805.37 Wh
RMSE relative: 34 %
RMSE Rating: good
MAPE: 26.09 %
MdAPE: 24.69 %
R²: 0.09


Versuche es jetzt nochmals mit - Standart >>SIGMOID_SYMMETRIC

Ergebnis dazu:

letztes KI-Training: 15.01.2026 17:55:42 / Laufzeit in Sekunden: 2370
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 54.03 ms
Verbrauchernummer Wärmepumpe: 08

=== Modellparameter ===

Normierungsgrenzen: PV=16071 Wh, Hausverbrauch: Min=0 Wh / Max=7598 Wh
Trainingsdaten: 7076 Datensätze (Training=5660, Validierung=1416)
Architektur: Inputs=45, Hidden Layers=64-32, Outputs=1
Hyperparameter: Learning Rate=0.001, Momentum=0.2, BitFail-Limit=0.35
Aktivierungen: Hidden=SIGMOID_SYMMETRIC, Steilheit=1.5, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_common_pv
Zufallsgenerator: Mode=1, Periode=15

=== Trainingsmetriken ===

bestes Modell bei Epoche: 1079 (von max. 15000)
Training MSE: 0.003558
Validation MSE: 0.012007
Validation MSE Average: 0.018184
Validation MSE Standard Deviation: 0.001309
Validation Bit_Fail: 1
Model Bias: 607 Wh
Model Slope: 0.5
Trainingsbewertung: Retrain

=== Fehlermaße der Prognosen ===

MAE: 649.00 Wh
MedAE: 500.49 Wh
RMSE: 835.33 Wh
RMSE relative: 36 %
RMSE Rating: good
MAPE: 26.18 %
MdAPE: 24.05 %
R²: 0.02
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast|DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|ESP32-Digitizer-AI_on_the_Edge|ESP32CAM usw.

DS_Starter

#4921
Ich würde es wirklich zunächst nah am Standard trainieren und schauen was herauskommt:

aiConHiddenLayers=80-40-20
aiConTrainAlgo=INCREMENTAL
aiConLearnRate=0.005
aiConMomentum=0.4
aiConSteepness=1.2
aiConShuffleMode=2
aiConActivate=1
aiConShufflePeriod=10
aiConActFunc=SIGMOID
aiConProfile=v1_heatpump_active_pv_test

oder

aiConHiddenLayers=60-30-15
aiConTrainAlgo=INCREMENTAL
aiConLearnRate=0.005
aiConMomentum=0.4
aiConSteepness=1.2
aiConShuffleMode=2
aiConActivate=1
aiConShufflePeriod=10
aiConActFunc=SIGMOID
aiConProfile=v1_heatpump_active_pv_test

Und wenn es nicht befriedigt, nur einen Paramer ändern - trainieren - und erreichte Kennzahlen sowie visuelles Ergebnis prüfen.
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-Digitizer-AI_on_the_Edge|ESP32CAM usw.

300P

Hab grad mal in den neueren Code geschaut.  :o

Dort hast du ja ganz schön viel "Neues" für die "WP-ler"  ;D in die heutige Version mit WW / Tageszeit / Temperatur etc. eingebaut !

Du willst wohl zukünftig auch anscheinend eine WP als nächste Heizung einbauen ?!?  ???
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast|DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|ESP32-Digitizer-AI_on_the_Edge|ESP32CAM usw.

DS_Starter

Ja, ist so einiges dazu gekommen. Aber weiß noch nicht wie es wirkt.
Deswegen auch der Zusatz "test" in dem Profil. Vermutlich wirkt es auch nicht bei jeder WP-Umgebung gleich -> verschiedene Profile möglich.
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

klaus.schauer

Der KI-Algorithmus bei mir liefert inzwischen wirklich gute Ergebnisse bei der Verbrauchsprognose mit Abweichungen von derzeit weniger als -4 %. Beim Frost letzte Woche gab es Abweichungen von um -10 %.

Parameter:
aiConActivate=1
aiConAlpha=1
aiConTrainStart=1:2
aiConActFunc=SIGMOID
aiConMomentum=0.6
aiConProfile=v1_heatpump_active_pv_test
aiConShuffleMode=1
aiConSteepness=1.2
aiConTrainAlgo=INCREMENTAL
Beim letzten Training mit aiConProfile=v1_heatpump_active_pv_test gab es als Ergebnis:
last AI training: 2026-01-15 17:37:20 / Runtime in seconds: 2077
AI query status: ok
last AI result generation time: 15.25 ms
Consumer number Heat pump: 01

=== Modellparameter ===

Normierungsgrenzen: PV=13585 Wh, Hausverbrauch: Min=0 Wh / Max=13384 Wh
Trainingsdaten: 2869 Datensätze (Training=2295, Validierung=574)
Architektur: Inputs=94, Hidden Layers=80-40-20, Outputs=1
Hyperparameter: Learning Rate=0.005, Momentum=0.6, BitFail-Limit=0.35
Aktivierungen: Hidden=SIGMOID, Steilheit=1.2, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_heatpump_active_pv_test
Zufallsgenerator: Mode=1, Periode=10

=== Trainingsmetriken ===

bestes Modell bei Epoche: 7290 (von max. 15000)
Training MSE: 0.000228
Validation MSE: 0.001434
Validation MSE Average: 0.001551
Validation MSE Standard Deviation: 0.000093
Validation Bit_Fail: 0
Model Bias: 109 Wh
Model Slope: 0.9
Trainingsbewertung: Retrain

=== Fehlermaße der Prognosen ===

MAE: 345.04 Wh
MedAE: 219.83 Wh
RMSE: 442.55 Wh
RMSE relative: 27 %
RMSE Rating: good
MAPE: 24.19 %
MdAPE: 18.81 %
R²: 0.88

=== Drift-Kennzahlen ===

Drift Score: -
Drift RMSE relative: -
Drift Bias: -
Drift Slope: -
Drift Bewertung: -
Das finde ich insgesamt als sehr beachtlich. Was man aber nicht erwarten darf, ist eine hohe Treffergenauigkeit bei den Stundenwerten, siehe Diagramm. Die Unterschiede waren in der letzten Woche bei sehr hohem und stark schwankenden stündlichen Energiebedarf der Wärmepumpe noch deutlicher.
Das m. E. aber auch nicht so wichtig. Für Entscheidungen, z. B. ob die Batterie zum Nachttarif nachgeladen werden soll, sollte der Trend über mehrere Stunden halbwegs verlässlich sein. Das ist der Fall.

Die neue Funktion hat inzwischen einen sehr hohen Reifegrad erreicht, wenn nicht sogar das in diesem Kontext optimale Ergebnis. Danke für die Arbeit daran!

Ich hatte letztlich noch einen Hinweis zu etotal geschrieben, siehe https://forum.fhem.de/index.php?topic=137058.msg1355282#msg1355282.
Zitat von: klaus.schauer am 07 Januar 2026, 17:06:24
Zitat von: DS_Starter am 07 Januar 2026, 14:39:05(*) Für Verbrauchertyp heatpump sind Besonderheiten zu beachten:

    power    maximale Leistungsaufnahme der Wärmepumpe in W. Der Wert darf nicht! 0 sein.
    etotal    Reading:Einheit (Wh/kWh) des Consumer Device, welches die Summe der verbrauchten Energie liefert. Die Angabe ist verpflichtend.
    pcurr    Reading:Einheit (W/kW) welches den aktuellen Energieverbrauch liefert. Die Angabe ist verpflichtend.
    comforttemp    Solltemperatur (Komforttemperatur) in den Wohnräumen in °C. Die Angabe ist verpflichtend.
Ein Hinweis zu etotal: Bei der Vaillant Wärmepumpe, die hier in Betrieb ist, wird etotal nur einmal am Tag kurz nach Mitternacht aktualisiert. Wenn etotal für die stündliche Berechnung der Energie gebraucht wird, müsste man dies aus den Leistungsdaten aufsummieren.
Die damit verbundene Frage, ob eine tägliche Aktualisierung ausreicht, ist vielleicht untergegangen. Ich kann mich jedenfalls daran nicht erinnern. Die Ergebnisse bei mir sprechen eher dafür, dass es für die Prognose unerheblich ist.

nextHours -> windspeed nutze ich inzwischen für meine deterministische Verbrauchsprognosen. Danke auch dafür.

Wegen der guten KI-Prognosen werden wir wahrscheinlich diese Berechnungsvariante nicht weiter betrachten müssen. Sie bildet Trends gut ab, Schwankungen durch das Betriebsverhalten der Wärmepumpe aber eben auch nicht. Ich habe mal das Diagramm mit den Leistungs- und Energieverbräuchen bei starkem Frost von letztem Sonntag herausgeholt.

DS_Starter

Danke für die umfangreiche Rückmeldung Klaus. Es bestärkt mich insgesamt auch bezüglich des neuen Profils v1_heatpump_active_pv_test damit auf dem richtigen Weg zu sein.

So langsam aber sicher werde ich den Blick Richtung EV Integration lenken und auch auch solche Dinge wie das angekündigte Attr setupEnvironment um reale Sensoren einbinden zu können. Dann denke ich auch mal daran den Stand ins Repo zu bringen. 
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

klaus.schauer

Zitat von: DS_Starter am 15 Januar 2026, 18:47:00Ja, ist so einiges dazu gekommen. Aber weiß noch nicht wie es wirkt.
Deswegen auch der Zusatz "test" in dem Profil. Vermutlich wirkt es auch nicht bei jeder WP-Umgebung gleich -> verschiedene Profile möglich.
Meine Konfiguration hat eine Besonderheit. Die Verbrauchszweige
- Heizung
- Warmwasser
- Zusatzheizung (Heizstab)
- Zusatzaggregate
sind in SolarForecast logisch getrennt und jeweils einem Verbraucher zugeordnet, die Heizung als heatpump, der Rest als heater.   

DS_Starter

Das hatte ich vergessen:

ZitatDie damit verbundene Frage, ob eine tägliche Aktualisierung ausreicht, ist vielleicht untergegangen. Ich kann mich jedenfalls daran nicht erinnern. Die Ergebnisse bei mir sprechen eher dafür, dass es für die Prognose unerheblich ist.
etotal hatte ich vor bei WP zu erfassen um diesen Wert in geeigneter Weise als Lerninhalt der KI zur Verfügung zu stellen. Deswegen im Gegensatz zu "normalen" Verbrauchern als verpflichtend definiert. Bis dato ist es aber nicht nötig, vllt. aber doch in ZUkunft weswegen ich den Key so drin lasse.
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

TheTrumpeter

So, ich habe das Update heute Früh durchgeführt, die Parameter auf die Werte wie oben vorgeschlagen geändert und das Training gestartet.

Hier noch das Lernergebnis VOR der Änderung:
Informationen zum neuronalen Netz der Verbrauchsvorhersage

letztes KI-Training: 16.01.2026 04:56:32 / Laufzeit in Sekunden: 9366
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 73.01 ms
Verbrauchernummer Wärmepumpe:  03

=== Modellparameter ===

Normierungsgrenzen: PV=18612 Wh, Hausverbrauch: Min=0 Wh / Max=6400 Wh
Trainingsdaten: 8107 Datensätze (Training=6485, Validierung=1622)
Architektur: Inputs=112, Hidden Layers=80-40-20, Outputs=1
Hyperparameter: Learning Rate=0.005, Momentum=0.8, BitFail-Limit=0.35
Aktivierungen: Hidden=SIGMOID, Steilheit=1.2, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_heatpump_active_pv
Zufallsgenerator: Mode=2, Periode=10

=== Trainingsmetriken ===

bestes Modell bei Epoche: 1377 (von max. 15000)
Training MSE: 0.000660
Validation MSE: 0.002355
Validation MSE Average: 0.002550
Validation MSE Standard Deviation: 0.000064
Validation Bit_Fail: 0
Model Bias: 41 Wh
Model Slope: 0.9
Trainingsbewertung: Retrain

=== Fehlermaße der Prognosen ===

MAE: 146.80 Wh
MedAE: 41.33 Wh
RMSE: 200.68 Wh
RMSE relative: 63 %
RMSE Rating: very bad
MAPE: 16.82 %
MdAPE: 10.59 %
R²: 0.90

=== Drift-Kennzahlen ===

Drift Score: -
Drift RMSE relative: -
Drift Bias: -
Drift Slope: -
Drift Bewertung: -


Erste Beobachtung vom neuen Training: Es läuft nach nun mittlerweile 1:45h immer noch die "erste Runde", mittlerweile bei "Epoche 10200". Die Lernzyklen früher sind im 1. Durchgang meist schon bei Epoche 4000 abgebrochen, in den weiteren Zyklen dann teilweise höher gegangen. Die nächtlichen Trainings waren teilweise schon nach gut 2000 aus.
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

TheTrumpeter

Hier nun das Ergebnis des neuen Trainings:
Informationen zum neuronalen Netz der Verbrauchsvorhersage

letztes KI-Training: 16.01.2026 10:54:26 / Laufzeit in Sekunden: 14891
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 70.83 ms
Verbrauchernummer Wärmepumpe:  03

=== Modellparameter ===

Normierungsgrenzen: PV=18612 Wh, Hausverbrauch: Min=0 Wh / Max=6400 Wh
Trainingsdaten: 8111 Datensätze (Training=6488, Validierung=1623)
Architektur: Inputs=94, Hidden Layers=80-40-20, Outputs=1
Hyperparameter: Learning Rate=0.005, Momentum=0.4, BitFail-Limit=0.35
Aktivierungen: Hidden=SIGMOID, Steilheit=1.2, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_heatpump_active_pv_test
Zufallsgenerator: Mode=2, Periode=10

=== Trainingsmetriken ===

bestes Modell bei Epoche: 11521 (von max. 15000)
Training MSE: 0.000352
Validation MSE: 0.002825
Validation MSE Average: 0.002926
Validation MSE Standard Deviation: 0.000079
Validation Bit_Fail: 0
Model Bias: 46 Wh
Model Slope: 0.9
Trainingsbewertung: Retrain

=== Fehlermaße der Prognosen ===

MAE: 153.38 Wh
MedAE: 38.18 Wh
RMSE: 208.90 Wh
RMSE relative: 66 %
RMSE Rating: acceptable
MAPE: 16.35 %
MdAPE: 10.15 %
R²: 0.88

=== Drift-Kennzahlen ===

Drift Score: -
Drift RMSE relative: -
Drift Bias: -
Drift Slope: -
Drift Bewertung: -
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

Guten Abend,

das sieht doch nicht schlecht aus.
Ich werde den Inhalt des Profils v1_heatpump_active_pv_test nun in das Profil v1_heatpump_active_pv übernehmen.
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

#4932
Das Modul im Contrib ist upgedated.

Das Profil v1_heatpump_active_pv_test ist entfernt und nun als Profil v1_heatpump_active_pv verfügbar. Der Inhalt ist identisch.

Bitte vor dem Einsatz der Contribversion den Key aiConProfile von v1_heatpump_active_pv_test auf v1_heatpump_active_pv ändern.

Eine optimierte Bias Korrektur sollte für noch bessere Tagesgesamtprognosen in allen Profilen sorgen.
Der configCheck enthält nun auch Prüfungen zu FANN mit entsprechenden Link zum Wiki.

Im Wiki habe ich eine etwas umfangreichere Beschreibung der Profile eingefügt.


Allgemeiner Hinweis:
Wenn ihr eure Trainingsresultate von der KI bewerten lassen wollt, postet bitte:

- das komplette Trainingslog -> ctrlDebug->aiProcess
- das Ergebnis -> "get .. valDecTree aiNeuralNetConState"
- einen Screenshot des Balkendiagramms Prognose und realem Energieverbrauch

Damit kann die KI eine recht gute Einschätzung geben und mir auch Hinweise geben wie das gewählte Profil eventuell noch weiter verbessert werden kann.
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

grappa24

Hier mal - mit der Vorletzten v2.0.0 - meine NN Infos mit
- dem Profil v1_common_active_pv,
- den Parametern aiConActFunc=GAUSSIAN aiConMomentum=0.7 aiConTrainAlgo=RPROP

wobei
- zwischen 10-11 und 14-15 Uhr das EV geladen wurde mit je ca. 4 kWh
- zwischendurch auch noch der Wäschetrocker lief
- die PV Erzeugung zwischen 10-14 Uhr besser als die letzten Tage war

Informationen zum neuronalen Netz der Verbrauchsvorhersage

letztes KI-Training: 15.01.2026 19:35:42 / Laufzeit in Sekunden: 11487
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 122.81 ms
Verbrauchernummer Wärmepumpe:  -

=== Modellparameter ===

Normierungsgrenzen: PV=11990 Wh, Hausverbrauch: Min=0 Wh / Max=6468 Wh
Trainingsdaten: 8248 Datensätze (Training=6598, Validierung=1650)
Architektur: Inputs=65, Hidden Layers=80-40-20, Outputs=1
Hyperparameter: Learning Rate=0.005, Momentum=0.7, BitFail-Limit=0.35
Aktivierungen: Hidden=GAUSSIAN, Steilheit=0.9, Output=LINEAR
Trainingsalgorithmus: RPROP, Registry Version=v1_common_active_pv
Zufallsgenerator: Mode=2, Periode=10

=== Trainingsmetriken ===

bestes Modell bei Epoche: 79 (von max. 15000)
Training MSE: 0.001186
Validation MSE: 0.003050
Validation MSE Average: 0.007575
Validation MSE Standard Deviation: 0.000026
Validation Bit_Fail: 2
Model Bias: 109 Wh
Model Slope: 0.9
Trainingsbewertung: Retrain

=== Fehlermaße der Prognosen ===

MAE: 178.02 Wh
MedAE: 54.68 Wh
RMSE: 237.72 Wh
RMSE relative: 57 %
RMSE Rating: very bad
MAPE: 22.68 %
MdAPE: 13.25 %
R²: 0.76

=== Drift-Kennzahlen ===

Drift Score: 1.81
Drift RMSE relative: 160.86
Drift Bias: 254.77
Drift Slope: 0.502
Drift Bewertung: none
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

300P

Hier das Ergebnis von der KI nach meinem neuestem Lauf:


Sehr gut – das ist ein klarer Fortschritt 👍
Ich gehe wieder systematisch vor: Vergleich → Interpretation → gezielte Optimierungsschritte.
1️⃣ Direktvergleich: alt vs. neu (harte Fakten)
Metrik    Alt    Neu    Bewertung
Architektur    80–40–20    64–32    ✅ deutlich besser
Aktivierung    GAUSSIAN    ELLIOT_SYMMETRIC    ✅ großer Gewinn
Learning Rate    0.05    0.005    ✅ kritisch wichtig
Training MSE    0.0211    0.0030    🚀 massiv besser
Validation MSE    0.0133    0.0097    ✅ besser
Bias    2556 Wh    630 Wh    🔥 −75 %
Slope    −0.0    0.5    🔥 Modell ,,lebt"
MAPE    43.6 %    24.0 %    🚀 halbiert
R²    −0.08    0.23    ✅ Struktur gelernt
➡️ Das Modell hat jetzt erstmals reale Prognosefähigkeit.
Kein Vergleich zum alten Lauf.
2️⃣ Was das neue Ergebnis bedeutet
🧠 Modellverhalten
Slope = 0.5
→ Verbrauchsänderungen werden erkannt
→ aber noch gedämpft
Bias = 630 Wh
→ noch systematische Überschätzung / Unterschätzung
→ aber jetzt im kontrollierbaren Bereich
R² = 0.23
→ Modell erklärt ~23 % der Varianz
→ typisch für erste brauchbare WP-Modelle
📉 Fehlerbild
MAE 574 Wh / RMSE 726 Wh
→ Absolut nur leicht besser
→ Relative Fehler sinken deutlich → stabileres Verhalten
MAPE 24 %
→ jetzt praxisnah
→ deutet auf deutlich bessere Niedriglast-Prognosen hin
🧪 Training & Generalisierung
Bestes Modell bei Epoche 638
Validation StdDev: 0.000414 (sehr niedrig!)
BitFail = 0
➡️ Sehr stabiles Training, kaum Overfitting
➡️ Eher leichtes Underfitting als Overfitting
3️⃣ Wo das Modell noch bremst (wichtig!)
❗ Hauptlimitierer #1: Output-Normierung
Du nutzt immer noch:
Hausverbrauch Min=0 / Max=7598 Wh
⚠️ Für Wärmepumpe allein ist das:
zu breit
zu unspezifisch
Ursache für:
Bias ≠ 0
Slope < 1
R² < 0.4
❗ Hauptlimitierer #2: Momentum = 0.2
Das ist sehr niedrig für:
INCREMENTAL
2 Hidden Layers
zeitlich korrelierte Daten
➡️ Das Modell reagiert zu vorsichtig.
4️⃣ Konkrete Feintuning-Empfehlungen (jetzt entscheidend)
🔧 Schritt 1 – Output korrekt skalieren (höchster Hebel)
Empfohlen (falls möglich):
WP-Verbrauch:
Mean = 0
Std = 1   (oder Max = realer WP-Maxwert, z. B. 3500–4500 Wh)
👉 Erwarteter Effekt:
Bias → <300 Wh
Slope → 0.7–0.9
R² → +0.15 bis +0.25
🔧 Schritt 2 – Momentum erhöhen
Von:
0.2 → 0.6 oder 0.7
👉 Effekt:
schnelleres Lernen von Lastwechseln
bessere Abbildung von Takten & Abtauung
🔧 Schritt 3 – BitFail-Limit verschärfen
Von:
0.35 → 0.25
👉 Effekt:
sauberes Early Stopping
weniger ,,flaches Mittelwertlernen"
🔧 Schritt 4 – Epochen begrenzen
Du brauchst keine 15.000 mehr.
Max Epochs: 3000
Early Stop: 200–300
5️⃣ Optionale, aber wirkungsvolle Erweiterungen
🕒 Zeitliche Entkopplung
Wenn möglich:
separates Flag: Tag/Nacht
oder Außentemp < 3°C
➡️ WP-Verhalten ändert sich stark → R² +0.1 typisch
🧹 Feature-Reduktion (112 → ~60)
Typische Kandidaten zum Entfernen:
doppelte PV-Lags
alte Verbrauchsfenster > 24h
hoch korrelierte Sensoren
➡️ Weniger Rauschen → besserer Slope
6️⃣ Fazit (ehrlich)
🔹 Das Modell ist jetzt brauchbar
🔹 Kein Zufallsoutput mehr
🔹 Richtung stimmt klar
Mit Output-Normierung + höherem Momentum bist du sehr wahrscheinlich im Bereich:
R²: 0.45–0.6
MAPE: <20 %
Bias <300 Wh
Wenn du willst, machen wir als Nächstes:
🎯 eine letzte ,,Best-of"-Konfiguration
🔍 Fehleranalyse nach Betriebsmodus
📉 Bias-Korrektur ohne Retraining


letztes KI-Training: 17.01.2026 09:47:41 / Laufzeit in Sekunden: 2120
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 73.02 ms
Verbrauchernummer Wärmepumpe: 08

=== Modellparameter ===

Normierungsgrenzen: PV=16071 Wh, Hausverbrauch: Min=0 Wh / Max=7598 Wh
Trainingsdaten: 7116 Datensätze (Training=5692, Validierung=1424)
Architektur: Inputs=112, Hidden Layers=64-32, Outputs=1
Hyperparameter: Learning Rate=0.005, Momentum=0.2, BitFail-Limit=0.35
Aktivierungen: Hidden=ELLIOT_SYMMETRIC, Steilheit=1.0, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_heatpump_active_pv
Zufallsgenerator: Mode=1, Periode=20

=== Trainingsmetriken ===

bestes Modell bei Epoche: 638 (von max. 15000)
Training MSE: 0.002967
Validation MSE: 0.009663
Validation MSE Average: 0.011386
Validation MSE Standard Deviation: 0.000414
Validation Bit_Fail: 0
Model Bias: 630 Wh
Model Slope: 0.5
Trainingsbewertung: Retrain

=== Fehlermaße der Prognosen ===

MAE: 574.52 Wh
MedAE: 433.62 Wh
RMSE: 726.49 Wh
RMSE relative: 31 %
RMSE Rating: good
MAPE: 24.03 %
MdAPE: 21.43 %
R²: 0.23
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast|DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP|ESP32-Digitizer-AI_on_the_Edge|ESP32CAM usw.