Gut, schauen wir uns genau diese Drift-Werte fachlich sauber und nüchtern an.
Vorweg: Das Modell ist weiterhin gesund, aber man sieht eine klar erklärbare Bewegung – kein Fehler.
1. Einordnung der Drift-Kennzahlen (konkret zu deinem Lauf)
Überblick
Kennzahl Wert Einordnung
Drift Score 1.96 niedrig
Drift RMSE ratio 2.44 moderat
Drift Slope 1.155 leicht erhöht
Drift Bias 4.36 gering
Drift Bewertung mild korrekt
➡️ Die automatische Bewertung ,,mild" ist sachlich richtig.
2. Detailanalyse pro Drift-Komponente
2.1 Drift Score = 1.96
Gesamtindikator
< 2.5 → unauffällig
du liegst knapp unter 2
👉 Kein globaler Drift, nur lokale Verschiebung.
2.2 Drift RMSE ratio = 2.44
Varianzänderung der Fehler
Interpretation:
Das Modell macht in jüngeren Daten etwas größere Fehlerstreuung als im Referenzfenster
keine Explosion, kein Overfitting
Typische Ursachen:
Witterungsumschwung
neue Außentemperatur-Spanne
veränderte Laufzeiten der Wärmepumpe
👉 normal für Januar, insbesondere mit neu aktivierter Außentemperatur.
2.3 Drift Slope = 1.155
Wichtigster Punkt
Idealbereich: 0.95 – 1.05
Beobachtungsbereich: 1.05 – 1.15
Kritisch: > 1.20
Du bist:
➡️ am oberen Rand des Beobachtungsbereichs
Bedeutung:
Das Modell überschätzt hohe Lasten leicht
typisch bei:
stärkerer Kälte
längeren WP-Takten
höherem Vorlaufbedarf
⚠️ Das ist kein Fehler, sondern ein physikalischer Effekt:
Die Realität zieht leicht stärker an als der historische Mittelwert.
2.4 Drift Bias = 4.36
Systematischer Versatz
< 5 → praktisch irrelevant
5–10 → beobachten
10 → korrigieren
👉 Dein Bias ist sehr klein, kein Offset-Problem.
3. Gesamturteil (klar formuliert)
Das Modell driftet nicht weg.
Es reagiert korrekt auf veränderte Rahmenbedingungen.
Die Drift entsteht nicht durch Instabilität, sondern durch:
neue Feature-Information (Außentemperatur)
jahreszeitliche Lastverschiebung
bewusst strengeres BitFailLimit
4. Warum ein Retrain aktuell nicht nötig ist
Kriterium Status
Generalisierung gut
R² 0.63 (stabil)
MAE sinkend
Drift Score niedrig
Bias klein
Slope nur leicht erhöht
➡️ Kein Handlungsbedarf
Deine Einstellung
aiConTrainStart=30:3
ist genau richtig.
5. Empfohlene Ampel (nach deiner Logik)
🟢 GREEN mit Tendenz YELLOW-Rand
In der Praxis:
laufen lassen
kein Parameterwechsel
nächster Retrain wie geplant
6. Wenn du es noch ,,perfekter" willst (optional)
Nur als Feinschliff, nicht notwendig:
Alpha im Winter leicht senken (z.B. 0.85)
oder Slope-Korrektur nur im Inferenzpfad
oder Drift-Trend über 7 Tage mitteln
Aber nochmals klar:
Du hast aktuell ein sehr sauberes, robustes Modell.
Wenn du willst, analysieren wir als Nächstes:
reale vs. prognostizierte WP-Last bei Frosttagen
oder ob der Außentemperatur-Impuls optimal skaliert ist
aiTrainStart=3
aiStorageDuration=3600
aiTreesPV=30
aiConActivate=1
aiConAlpha=0.9
aiConTrainStart=30:3
aiConActFunc=ELLIOT_SYMMETRIC
aiConHiddenLayers=64-32
aiConLearnRate=0.005
aiConMomentum=0.6
aiConShuffleMode=1
aiConShufflePeriod=20
aiConSteepness=1.0
aiConTrainAlgo=INCREMENTAL
aiConProfile=v1_heatpump_active_pv
aiConBitFailLimit=0.18letztes KI-Training: 19.01.2026 11:29:27 / Laufzeit in Sekunden: 1674
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 80.1 ms
Verbrauchernummer Wärmepumpe: 08
=== Modellparameter ===
Normierungsgrenzen: PV=16071 Wh, Hausverbrauch: Min=0 Wh / Max=7598 Wh
Trainingsdaten: 7166 Datensätze (Training=5732, Validierung=1434)
Architektur: Inputs=94, Hidden Layers=64-32, Outputs=1
Hyperparameter: Learning Rate=0.005, Momentum=0.6, BitFail-Limit=0.18
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: 299 (von max. 15000)
Training MSE: 0.003273
Validation MSE: 0.004604
Validation MSE Average: 0.012975
Validation MSE Standard Deviation: 0.001161
Validation Bit_Fail: 11
Model Bias: 748 Wh
Model Slope: 0.6
Trainingsbewertung: Retrain
=== Fehlermaße der Prognosen ===
MAE: 410.67 Wh
MedAE: 343.56 Wh
RMSE: 482.12 Wh
RMSE relative: 21 %
RMSE Rating: good
MAPE: 20.40 %
MdAPE: 15.97 %
R²: 0.63
=== Rauschen ===
Rauschen Bewertung: low
Empfehlung für Bit_Fail: 0.28 (Einstellung von aiControl->aiConBitFailLimit)
define Marantz_NR1200 DENON_AVR 192.168.nnn.nn eingebe, kommt "Cannot load module DENON_AVR" obwohl das Modul korrekt unter /opt/fhem/FHEM geladen ist.ZitatSolarunterstützung ist sowohl im Heizbetrieb als auch im Warmwasserbetrieb möglich
2026.01.22 10:52:09 1: PERL WARNING: Subroutine XMLin redefined at ./FHEM/72_FRITZBOX.pm line 17429, <$fh> line 241.In 70_DENON_AVR.pm erzwinge ich jetzt die Nutzung des "richtigen" XMLin, und schon funktionierts wie erwartet. Aber warum gibt es diese Nebenwirkung trotz use?!?my $ref = XML::Simple::XMLin($data, KeyAttr => { }, ForceArray => [ ]);Zitat von: Gisbert am 21 Januar 2026, 10:26:48PS: Ich hab dieses Modul schon sehr lange in Benutzung, d.h. zu einer Zeit, in der ich noch weniger über Fhem und Perl wusste als heute.Da die regexp'e analog zu notify funktionieren (zumindest steht das so in der commandref), solltest du fast richtig gelegen haben mit deinem Lösungsversuch.
defmod mymonitoring monitoring .*:Zeitstempel:.*