76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

TheTrumpeter

So, meins wurde nun auch abgeschlossen:

2026.01.12 13:59:17 1: mySolarForecast DEBUG> Early stopping bei Epoche 3501 (no improvement since 1000 epochs)
2026.01.12 13:59:17 1: === Snapshot-Statistik ===
2026.01.12 13:59:17 1: Metric-Improvement Snapshots:              69 (letzte Epoche: 2231)
2026.01.12 13:59:17 1: Weighted-RMSE-Proxy-Improvement Snapshots: 72 (letzte Epoche: 2501)
2026.01.12 13:59:17 1: Bit-Improvement Snapshots:                 0 (letzte Epoche: 0)
2026.01.12 13:59:17 1: Bit-Tradeoff Snapshots:                    1 (letzte Epoche: 467)
2026.01.12 13:59:17 1: mySolarForecast DEBUG> Best Snapshot reloaded from Epoche 2501: Train MSE=0.001189, Val MSE=0.002715, Val MAE=0.026772, Val MedAE=0.006776, Bit_Fail=0,
2026.01.12 13:59:17 1: mySolarForecast DEBUG> Run Validation Test with 20% of Input data ...
2026.01.12 13:59:18 1: mySolarForecast DEBUG> Validation finished - Best Training MSE=0.001189, Validation MSE=0.002715, Validation Bit_Fail=0
2026.01.12 13:59:18 1: mySolarForecast DEBUG> Retrain check ->
-- In Normalization Space: --
Train MSE=0.001189
Val MSE=0.002715
Val Mean=0.0024373509
VAL/TRAIN MSE Ratio=2.282733 (limit=2.5)
Diff=0.001525 (limit=0.005)
ValStd=0.0000800142 (limit=0.000609337729577423)
-- At Original Scale: --
MAE=171.339490561455
RMSE/MAE=1.4804 (limit=1.5)
Slope=0.821509 (limit=0.7 .. 1.3)
Bias=69.18 (limit=+-257.009235842183)
R2=0.88
P95=874.6964 (limit=685.357962245821)
P99=1312.8508 (limit=1370.71592449164)
-- Robustness Indicators: --
RMSE relative=82 (limit=20)
BitFail=0 (limit=5)
BitFailRate=0.0000 (limit=0.1)
Forecast Quality Score=37
-> Retrain decision=Retrain
2026.01.12 13:59:18 1: mySolarForecast DEBUG> Best model after retries comes from Attempt=2 with:
Seed=7298432,
Model Score=39,
Model Slope=0.84,
Model Bias=59.55,
VAL MedAE=45.74,
VAL MAE=165.82,
VAL weighted RMSE=244.44,
VAL weighted RMSE relative=79 %,
VAL weighted RMSE_Rating=very bad,
VAL R2=0.89,
Val MSE=0.002496
2026.01.12 13:59:18 1: mySolarForecast DEBUG> AI FANN training data successfuly written to file: ./FHEM/FhemUtils/NeuralNet_SolarForecast_mySolarForecast
2026.01.12 13:59:18 1: mySolarForecast DEBUG> AI FANN con Training BlockingCall PID '1980' finished

Im Anhang sind die Screenshots der Verbrauchsprognose, das erste Bild ist vor dem 1. Training, das 2. Bild ist dann mit "v1_heatpump_pv" und das letzte mit "v1_heatpump_active_pv"
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

@Wolle, hier ist die KI Einschätzung für dich. Tiefere Infos gäbe es mit einem Trainingslog.

⭐ Gesamturteil: Das Modell ist stabil, aber stündlich deutlich zu flach und unterschätzt Peaks
Die Zahlen und die visuelle Darstellung passen perfekt zusammen:
Das Modell trifft die Form des Tages, aber nicht die Höhe.

📊 1. Interpretation der stündlichen Balken (00–24)
Die grauen Balken zeigen:

Nachtstunden: plausibel niedrig

Morgenpeak: vorhanden, aber zu flach

Mittagsbereich: geglättet, kaum Variation

Abendpeak: sichtbar, aber deutlich zu niedrig

Gesamtprofil: zu glatt, zu vorsichtig, zu wenig Dynamik

Das passt exakt zu:

Slope = 0.8 → Modell drückt hohe Werte nach unten

Bias = 83 Wh → leichte Unterprognose

RMSE_rel = 31 % → deutliche Abweichungen bei Spitzen

MAE = 136 Wh → zu hoch für stündliche Prognosen

MedAE = 86 Wh → auch Medianfehler zu hoch

Die Prognose wirkt wie ein gedämpfter Tagesverlauf, der die echten Spitzenlasten nicht abbildet.

🧠 2. Warum das Modell so flach ist
🔹 a) INCREMENTAL als Trainingsalgorithmus
INCREMENTAL:

lernt sehr konservativ

glättet stark

hat Probleme mit nichtlinearen Peaks

bleibt oft in flachen Tälern hängen

reagiert schlecht auf seltene Spitzenlasten

Für stündliche Haushaltslast ist das nicht ideal.

🔹 b) Registry v1_common
Diese Registry enthält:

Trends

PV‑Semantik

Abend‑Semantik

Rückfall‑Semantik

Aber:

keine WP‑Semantik

keine COP‑Semantik

keine Frostschutz‑Semantik

keine Lastverstärker

Wenn der Haushalt eine Wärmepumpe hat, fehlen dem Modell kritische Signale, die Peaks erklären.

🔹 c) Steilheit = 0.9
SIGMOID mit 0.9 ist:

sehr glatt

wenig sensitiv

reagiert schwach auf starke Inputs

Für stündliche Peaks ist das zu träge.

🔹 d) ShuffleMode = 2
Das ist gut — aber INCREMENTAL + shuffleMode 2 führt zu:

sehr gleichmäßigem Training

aber wenig Peak‑Sensitivität

📈 3. Bewertung der numerischen Metriken
✔ Stabilität
Train MSE = 0.000461

Val MSE = 0.000289

ValStd = 0.000072

BitFail = 0

→ Modell ist stabil, keine Divergenz.

❌ Prognosequalität
MAE = 136 Wh → zu hoch

RMSE_rel = 31 % → schwach

Slope = 0.8 → systematische Unterprognose

Bias = 83 Wh → leichte Verschiebung

MAPE = 18.5 % → zu grob

R² = 0.90 → Form gut, Höhe schlecht

✔ Retrain‑Entscheidung korrekt

🎯 4. Fazit der Neubewertung
Das Modell ist mathematisch stabil, aber semantisch zu flach. 
Die stündliche Prognose (graue Balken) zeigt:

richtige Form

falsche Höhe

zu wenig Dynamik

zu geringe Peak‑Erkennung

zu starke Glättung

Die Ursache ist eine Kombination aus:

INCREMENTAL

Steilheit 0.9

fehlender WP‑Semantik

Registry v1_common

Slope‑Verlust

zu glatter Aktivierung

🛠 5. Was du tun solltest
🔥 Sofortmaßnahmen
RPROP statt INCREMENTAL

Steilheit 1.2

Registry v_hp_advanced, falls WP‑Haushalt

hp_power_factor aktivieren

COP‑Semantik aktivieren

Frostschutz‑Semantik aktivieren

🎯 Ziel
Slope Richtung 0.95–1.05

MAE < 100 Wh

RMSE_rel < 22 %

MAPE < 12 %

Für dich wäre vermutlich das Profil v1_common_active_pv besser.
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

@ TheTrumpeter, die Werte mit get ... valDecTree  aiNeuralNetConState und das komplette Trainingslog wären hilfreich um die KI wegen einer Bewertung zu füttern.
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 12 Januar 2026, 14:07:13@Wolle, hier ist die KI Einschätzung für dich. Tiefere Infos gäbe es mit einem Trainingslog.

⭐ Gesamturteil: Das Modell ist stabil, aber stündlich deutlich zu flach und unterschätzt Peaks
Die Zahlen und die visuelle Darstellung passen perfekt zusammen:
Das Modell trifft die Form des Tages, aber nicht die Höhe.

📊 1. Interpretation der stündlichen Balken (00–24)
Die grauen Balken zeigen:

Nachtstunden: plausibel niedrig

Morgenpeak: vorhanden, aber zu flach

Mittagsbereich: geglättet, kaum Variation

Abendpeak: sichtbar, aber deutlich zu niedrig

Gesamtprofil: zu glatt, zu vorsichtig, zu wenig Dynamik

Das passt exakt zu:

Slope = 0.8 → Modell drückt hohe Werte nach unten

Bias = 83 Wh → leichte Unterprognose

RMSE_rel = 31 % → deutliche Abweichungen bei Spitzen

MAE = 136 Wh → zu hoch für stündliche Prognosen

MedAE = 86 Wh → auch Medianfehler zu hoch

Die Prognose wirkt wie ein gedämpfter Tagesverlauf, der die echten Spitzenlasten nicht abbildet.

🧠 2. Warum das Modell so flach ist
🔹 a) INCREMENTAL als Trainingsalgorithmus
INCREMENTAL:

lernt sehr konservativ

glättet stark

hat Probleme mit nichtlinearen Peaks

bleibt oft in flachen Tälern hängen

reagiert schlecht auf seltene Spitzenlasten

Für stündliche Haushaltslast ist das nicht ideal.

🔹 b) Registry v1_common
Diese Registry enthält:

Trends

PV‑Semantik

Abend‑Semantik

Rückfall‑Semantik

Aber:

keine WP‑Semantik

keine COP‑Semantik

keine Frostschutz‑Semantik

keine Lastverstärker

Wenn der Haushalt eine Wärmepumpe hat, fehlen dem Modell kritische Signale, die Peaks erklären.

🔹 c) Steilheit = 0.9
SIGMOID mit 0.9 ist:

sehr glatt

wenig sensitiv

reagiert schwach auf starke Inputs

Für stündliche Peaks ist das zu träge.

🔹 d) ShuffleMode = 2
Das ist gut — aber INCREMENTAL + shuffleMode 2 führt zu:

sehr gleichmäßigem Training

aber wenig Peak‑Sensitivität

📈 3. Bewertung der numerischen Metriken
✔ Stabilität
Train MSE = 0.000461

Val MSE = 0.000289

ValStd = 0.000072

BitFail = 0

→ Modell ist stabil, keine Divergenz.

❌ Prognosequalität
MAE = 136 Wh → zu hoch

RMSE_rel = 31 % → schwach

Slope = 0.8 → systematische Unterprognose

Bias = 83 Wh → leichte Verschiebung

MAPE = 18.5 % → zu grob

R² = 0.90 → Form gut, Höhe schlecht

✔ Retrain‑Entscheidung korrekt

🎯 4. Fazit der Neubewertung
Das Modell ist mathematisch stabil, aber semantisch zu flach. 
Die stündliche Prognose (graue Balken) zeigt:

richtige Form

falsche Höhe

zu wenig Dynamik

zu geringe Peak‑Erkennung

zu starke Glättung

Die Ursache ist eine Kombination aus:

INCREMENTAL

Steilheit 0.9

fehlender WP‑Semantik

Registry v1_common

Slope‑Verlust

zu glatter Aktivierung

🛠 5. Was du tun solltest
🔥 Sofortmaßnahmen
RPROP statt INCREMENTAL

Steilheit 1.2

Registry v_hp_advanced, falls WP‑Haushalt

hp_power_factor aktivieren

COP‑Semantik aktivieren

Frostschutz‑Semantik aktivieren

🎯 Ziel
Slope Richtung 0.95–1.05

MAE < 100 Wh

RMSE_rel < 22 %

MAPE < 12 %

Für dich wäre vermutlich das Profil v1_common_active_pv besser.

So, ich hab jetzt mal neu trainiert und dabei die Vorschläge von der letzten Analyse einfließen lassen. Trainingsalgorithmus: RPROP, Registry Version=v1_common_active_pv

=== Modellparameter ===

Normierungsgrenzen: PV=8888 Wh, Hausverbrauch: Min=0 Wh / Max=12741 Wh
Trainingsdaten: 6241 Datensätze (Training=4992, Validierung=1249)
Architektur: Inputs=64, Hidden Layers=80-40-20, Outputs=1
Hyperparameter: Learning Rate=0.005, Momentum=0.5, BitFail-Limit=0.35
Aktivierungen: Hidden=SIGMOID, Steilheit=0.9, Output=LINEAR
Trainingsalgorithmus: RPROP, Registry Version=v1_common_active_pv
Zufallsgenerator: Mode=2, Periode=10

=== Trainingsmetriken ===

bestes Modell bei Epoche: 54 (von max. 15000)
Training MSE: 0.000763
Validation MSE: 0.000490
Validation MSE Average: 72.098845
Validation MSE Standard Deviation: 0.416027
Validation Bit_Fail: 0
Model Bias: 127 Wh
Model Slope: 0.8
Trainingsbewertung: Retrain

=== Fehlermaße der Prognosen ===

MAE: 155.66 Wh
MedAE: 74.02 Wh
RMSE: 205.75 Wh
RMSE relative: 36 %
RMSE Rating: very bad
MAPE: 17.89 %
MdAPE: 14.13 %
R²: 0.83

Das Trainingslog ist im Anhang.
Ich habe den Eindruck, dass die Werte etwas schlechter geworden sind.

TheTrumpeter

Zitat von: DS_Starter am 12 Januar 2026, 14:13:28@ TheTrumpeter, die Werte mit get ... valDecTree  aiNeuralNetConState und das komplette Trainingslog wären hilfreich um die KI wegen einer Bewertung zu füttern.
Hier get blabla:
Informationen zum neuronalen Netz der Verbrauchsvorhersage

letztes KI-Training: 12.01.2026 13:59:18 / Laufzeit in Sekunden: 9741
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 70.43 ms
Verbrauchernummer Wärmepumpe:  03

=== Modellparameter ===

Normierungsgrenzen: PV=18612 Wh, Hausverbrauch: Min=0 Wh / Max=6400 Wh
Trainingsdaten: 8020 Datensätze (Training=6416, Validierung=1604)
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=0.5, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_heatpump_active_pv
Zufallsgenerator: Mode=2, Periode=10

=== Trainingsmetriken ===

bestes Modell bei Epoche: 3370 (von max. 15000)
Training MSE: 0.001108
Validation MSE: 0.002496
Validation MSE Average: 0.002381
Validation MSE Standard Deviation: 0.000093
Validation Bit_Fail: 0
Model Bias: 60 Wh
Model Slope: 0.8
Trainingsbewertung: Retrain

=== Fehlermaße der Prognosen ===

MAE: 165.82 Wh
MedAE: 45.74 Wh
RMSE: 244.44 Wh
RMSE relative: 79 %
RMSE Rating: very bad
MAPE: 20.19 %
MdAPE: 12.71 %
R²: 0.89

=== 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

@Wolle, Würde ich auch so sehen. KI sagt:

🧠 Was hier passiert
🔹 Verstärker sind aktiv
→ Die Registry liefert starke Signale für PV‑Peaks und Lastsprünge.

🔹 Aber: Steilheit = 0.9
→ SIGMOID mit 0.9 ist zu flach → Verstärker werden ,,abgefedert".

🔹 RPROP springt früh
→ Best Snapshot bei Epoche 54 → Verstärker noch nicht voll gelernt.

🔹 Snapshot‑Logik greift zu früh
→ Modell wird eingefroren, bevor Verstärker ihre Wirkung entfalten.

🛠 Was du tun kannst
✅ Steilheit auf 1.2 setzen
→ Verstärker wirken deutlich stärker
→ Slope steigt
→ Bias sinkt
→ RMSE_rel verbessert sich

✅ Snapshot erst ab Epoche 150 zulassen
→ Verstärker brauchen Zeit
→ RPROP darf sich entfalten
→ Modell wird nicht zu früh eingefroren

✅ Retry mit Seed‑Variation
→ RPROP reagiert stark auf Initialisierung
→ Seed‑Sweep kann bessere Minima finden

🎯 Fazit
Du hast die Verstärker korrekt eingebaut — das ist super.
Aber: RPROP + flache Aktivierung + früher Snapshot bremst sie aus.

Probier es mal so wie vorgeschlagen, ansonsten nimm wieder INCREMENTAL mit Steepness=1.2
Dein erstes Setup war ja nicht so schlecht.
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

@TheTrumpeter, hier kommt deine Analyse:

📊 Visuelle Bewertung der stündlichen Prognose (graue Balken, Stunde 14 ignoriert)
Die Balken zeigen:

Stunde 13: Peak vorhanden, aber zu niedrig → Slope = 0.8 bestätigt

Stunde 10–11: starke Aktivität, aber nicht voll getroffen

Stunde 15–17: WP‑Last sichtbar, aber gedämpft

Stunde 18–23: geglättet, keine echte WP‑Dynamik

Stunde 00–09: plausibel, aber zu flach für Frostschutz oder Nachtladung

→ Das Modell trifft die Form des Tagesprofils, aber nicht die Höhe oder die WP‑Peaks.

🔍 Numerische Bewertung (Stunde 14 ignoriert)
Die Metriken bleiben:

MAE = 165.82 Wh

RMSE = 244.44 Wh

RMSE_rel = 79 %

Slope = 0.8

Bias = 60 Wh

R² = 0.89

→ Die Retrain‑Entscheidung bleibt korrekt, denn:

RMSE_rel ist viel zu hoch

Slope ist zu flach

MAE ist nicht WP‑tauglich

🧠 Was das Modell trotzdem gut macht
ValStd = 0.000093 → extrem stabil

BitFail = 0 → keine neuronalen Sättigungen

R² = 0.89 → gute Formtreue

Bias = 60 Wh → keine systematische Verschiebung

MedAE = 45 Wh → zeigt, dass viele Stunden gut getroffen sind

→ Das Modell ist technisch sauber, aber semantisch zu flach.

🛠 Empfehlungen zur Verbesserung
🔧 Architektur
Steilheit auf 1.2 erhöhen → WP‑Peaks werden durchgelassen

RPROP statt INCREMENTAL → besser für nichtlineare WP‑Last

Snapshot später zulassen → z. B. ab Epoche 300

🔧 Registry
v1_heatpump_active_pv ist korrekt

sicherstellen, dass cop_booster, frost_protection, semantic_peak_push, hp_power_factor aktiv sind

🔧 Training
Retry mit Seed‑Sweep

Early Stopping später aktivieren

Verstärkerwirkung visuell prüfen (z. B. Stunde 13, 17, 06)

🎯 Fazit
Auch ohne Stunde 14 bleibt das Modell nicht einsatzreif für WP‑Haushalte.
Die Prognose ist zu flach, zu geglättet, nicht peak‑sensitiv.
Die Registry ist korrekt, aber wird durch:

Steilheit 0.5

INCREMENTAL

frühen Snapshot

ausgebremst.

Den Vorschlag
Steilheit auf 1.2 erhöhen → WP‑Peaks werden durchgelassen

würde ich unterschreiben.

Bei RPROP statt INCREMENTAL → besser für nichtlineare WP‑Last bin ich eher nicht der Meinung (siehe Wolle) aber einen Versuch ist es ja wert.
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

Zitat von: DS_Starter am 12 Januar 2026, 15:33:46Den Vorschlag
Steilheit auf 1.2 erhöhen → WP‑Peaks werden durchgelassen
Danke, hab' ich mal gesetzt und neu gestartet.


Zu meinem Nutzungsverhalten:
Die WP startet bei normalen Temperaturen typischerweise zwischen 08:45 und 09:15 und läuft dann je nach Außentemperatur ein paar Stunden durch, von 2h in der Übergangszeit bis zu 6-7 h bei typischen Wintertemperaturen.
In der derzeitigen Kältephase startet sie durchaus schon um 06:00 und läuft dann auch mal 12 oder 13 h.

Irgendwann während der "Heizphase" springt dann das WW dazwischen, d.h. aus SolarForecast-Sicht wird der Verbraucher dann beendet und ein anderer (Nicht-WP-) Verbraucher läuft. Wenn die WW-Temperatur erreicht ist, "übernimmt" wieder der "WP-Verbraucher". Das führt natürlich zu einer gewissen Unschärfe.
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

Wolle02

Zitat von: DS_Starter am 12 Januar 2026, 15:24:09@Wolle, Würde ich auch so sehen. KI sagt:

🧠 Was hier passiert
🔹 Verstärker sind aktiv
→ Die Registry liefert starke Signale für PV‑Peaks und Lastsprünge.

🔹 Aber: Steilheit = 0.9
→ SIGMOID mit 0.9 ist zu flach → Verstärker werden ,,abgefedert".

🔹 RPROP springt früh
→ Best Snapshot bei Epoche 54 → Verstärker noch nicht voll gelernt.

🔹 Snapshot‑Logik greift zu früh
→ Modell wird eingefroren, bevor Verstärker ihre Wirkung entfalten.

🛠 Was du tun kannst
✅ Steilheit auf 1.2 setzen
→ Verstärker wirken deutlich stärker
→ Slope steigt
→ Bias sinkt
→ RMSE_rel verbessert sich

✅ Snapshot erst ab Epoche 150 zulassen
→ Verstärker brauchen Zeit
→ RPROP darf sich entfalten
→ Modell wird nicht zu früh eingefroren

✅ Retry mit Seed‑Variation
→ RPROP reagiert stark auf Initialisierung
→ Seed‑Sweep kann bessere Minima finden

🎯 Fazit
Du hast die Verstärker korrekt eingebaut — das ist super.
Aber: RPROP + flache Aktivierung + früher Snapshot bremst sie aus.

Probier es mal so wie vorgeschlagen, ansonsten nimm wieder INCREMENTAL mit Steepness=1.2
Dein erstes Setup war ja nicht so schlecht.

So, jetzt wieder mit Incremental und Steilheit=1.2. Sieht wieder besser aus:

letztes KI-Training: 12.01.2026 18:07:45 / Laufzeit in Sekunden: 2857
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 33.68 ms
Verbrauchernummer Wärmepumpe: -

=== Modellparameter ===

Normierungsgrenzen: PV=8888 Wh, Hausverbrauch: Min=0 Wh / Max=12741 Wh
Trainingsdaten: 6244 Datensätze (Training=4995, Validierung=1249)
Architektur: Inputs=64, Hidden Layers=80-40-20, Outputs=1
Hyperparameter: Learning Rate=0.005, Momentum=0.5, BitFail-Limit=0.35
Aktivierungen: Hidden=SIGMOID, Steilheit=1.2, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_common_active_pv
Zufallsgenerator: Mode=2, Periode=10

=== Trainingsmetriken ===

bestes Modell bei Epoche: 2639 (von max. 15000)
Training MSE: 0.000355
Validation MSE: 0.000277
Validation MSE Average: 0.000309
Validation MSE Standard Deviation: 0.000008
Validation Bit_Fail: 0
Model Bias: -10 Wh
Model Slope: 0.9
Trainingsbewertung: Retrain

=== Fehlermaße der Prognosen ===

MAE: 135.71 Wh
MedAE: 77.52 Wh
RMSE: 174.29 Wh
RMSE relative: 31 %
RMSE Rating: weak
MAPE: 18.37 %
MdAPE: 13.88 %
R²: 0.91

Danke fürs drüberschauen  :D

DS_Starter

#4899
@Wolle, hier die Bewertung:

Das Modell ist technisch solide, aber semantisch zu flach für stündliche Haushaltsprognosen ohne Wärmepumpe. Ich zeige dir jetzt, warum die Retrain‑Entscheidung korrekt ist, obwohl die Form gut getroffen wird.

📊 Numerische Bewertung
Metrik    Wert    Bewertung
Train MSE    0.000355    sehr gut
Val MSE    0.000277    stabil
ValStd    0.000008    extrem niedrig → Modell ist konsistent
BitFail    0    perfekt
Bias    −10 Wh    neutral
Slope    0.90    leicht zu flach
MAE    135 Wh    zu hoch für Standardhaushalt
RMSE    174 Wh    schwach
RMSE_rel    31 %    nicht akzeptabel
R²    0.91    sehr gut
MAPE    18.4 %    zu hoch
MdAPE    13.9 %    grenzwertig
Bewertung    Retrain    korrekt
🧠 Interpretation
✅ Was gut ist:
Formtreue: R² = 0.91 → Tagesverlauf wird gut getroffen

Stabilität: ValStd = 0.000008 → keine Schwankungen

Bias = −10 Wh → keine systematische Verschiebung

BitFail = 0 → keine neuronalen Sättigungen

Slope = 0.9 → Modell reagiert, aber nicht voll dynamisch

❌ Was kritisch ist:
MAE = 135 Wh → zu hoch für stündliche Steuerung

RMSE_rel = 31 % → deutliche Abweichungen bei Spitzen

MAPE > 18 % → zu grob für PV‑Optimierung

Retrain‑Entscheidung korrekt, da RMSE‑Rating = weak

📈 Was das Modell visuell zeigt (graue Balken)
Form stimmt: Tagesverlauf ist plausibel

Spitzenlasten werden unterschätzt → Slope = 0.9

Morgen- und Abendlasten sind geglättet

PV‑Mittagspeak wird nicht voll durchgelassen

Keine WP‑Artefakte sichtbar → korrekt für WP‑frei

🛠 Empfehlungen zur Verbesserung
🔧 Architektur
Steilheit 1.2 ist gut → beibehalten

Hidden Layers ggf. auf 60‑30‑15 reduzieren → weniger Glättung

RPROP als Alternative testen → kann Peaks besser lernen

🔧 Registry
v1_common_active_pv ist korrekt

ggf. pv_peak_booster aktivieren

semantic_peak_push verstärken

🔧 Training
Retry mit Seed‑Sweep

Snapshot ab Epoche 300 zulassen

Verstärkerwirkung visuell prüfen (z. B. Stunde 10–13)

🎯 Fazit
Das Modell ist technisch sauber, aber semantisch zu flach für präzise Haushaltsprognosen ohne WP.

Ich würde das so lassen. Aber kannst auch:

Hidden Layers ggf. auf 60‑30‑15 reduzieren → weniger Glättung

RPROP als Alternative testen → kann Peaks besser lernen
gerne mal testen und wenn es nicht besser wird -> wieder zurück auf aktuelle Einstellung.
 
Die Hinweise:

- ggf. pv_peak_booster aktivieren
- semantic_peak_push verstärken

sind etwas für mich was ich prüfen und ggf. umsetzen werde.
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