2026.03.05 19:16:57.112 1: openMeteo DEBUG> AI FANN - Target-Norm: raw_max=28317, p99=3330, p99.5=12693, targmaxval=16501
2026.03.05 19:16:57.115 1: openMeteo DEBUG> AI FANN - True Outliers above p99.5 (12693): 28317
Zitatmit der 2.2.2 habe ich folgenden Effekt bei der PV Prognose:Hatten wir weiter oben. Ist ein Rundungsfehler -> V2.2.3 im contrib beseitigt ihn.
17:13:13.902
{
"action": "move_to_hue_and_saturation_zone_2",
"action_group": 102,
"action_hue": 225,
"action_saturation": 223,
"action_transition_time": 0,
"battery": 100,
"linkquality": 72,
"voltage": 3000
}
17:13:13.938
{
"action": "brightness_move_to_level_zone_2",
"action_group": 102,
"action_level": 254,
"action_transition_time": 0,
"battery": 100,
"linkquality": 72,
"voltage": 3000
}
17:13:13.958
{
"action": "move_to_hue_and_saturation_zone_2",
"action_group": 102,
"action_hue": 23,
"action_saturation": 223,
"action_transition_time": 0,
"battery": 100,
"linkquality": 72,
"voltage": 3000
}
17:13:13.962
{
"action": "brightness_move_to_level_zone_2",
"action_group": 102,
"action_level": 254,
"action_transition_time": 0,
"battery": 100,
"linkquality": 72,
"voltage": 3000
}
17:13:13.966
{
"action": "move_to_hue_and_saturation_zone_2",
"action_group": 102,
"action_hue": 40,
"action_saturation": 223,
"action_transition_time": 0,
"battery": 100,
"linkquality": 75,
"voltage": 3000
}
17:13:13.970
{
"action": "brightness_move_to_level_zone_2",
"action_group": 102,
"action_level": 254,
"action_transition_time": 0,
"battery": 100,
"linkquality": 75,
"voltage": 3000
}
17:13:43.375
{
"action": "brightness_move_to_level_zone_2",
"action_group": 102,
"action_level": 172,
"action_transition_time": 0,
"battery": 100,
"linkquality": 72,
"voltage": 3000
}
17:13:43.676
{
"action": "brightness_move_to_level_zone_2",
"action_group": 102,
"action_level": 2,
"action_transition_time": 0,
"battery": 100,
"linkquality": 72,
"voltage": 3000
}
17:24:21.103
{
"action": "on_zone_8",
"action_group": 108,
"battery": 100,
"linkquality": 72,
"voltage": 3000
}
17:25:14.128
{
"action": "color_temperature_move_zone_8",
"action_color_temperature": 385,
"action_group": 108,
"action_transition_time": 0,
"battery": 100,
"linkquality": 72,
"voltage": 3000
}
17:25:14.148
{
"action": "brightness_move_to_level_zone_8",
"action_group": 108,
"action_level": 2,
"action_transition_time": 0,
"battery": 100,
"linkquality": 72,
"voltage": 3000
}
aiTrainStart=3
aiStorageDuration=18250
aiTreesPV=30
aiConActivate=1
aiConProfile=v1_common_active_pv
aiConBitFailLimit=0.28
aiConShuffleMode=1
aiConSteepness=1.0
aiConTrainStart=4:3
Informationen zum neuronalen Netz der Verbrauchsvorhersage
letztes KI-Training: 02.03.2026 03:26:19 / Laufzeit in Sekunden: 378
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 15.83 ms
Verbrauchernummer Wärmepumpe: -
=== Modellparameter ===
Normierungsgrenzen: PV=11440 Wh, Hausverbrauch: Min=0 Wh / Max=15960 Wh
Trainingsdaten: 7600 Datensätze (Training=6080, Validation=1520)
Architektur: Inputs=69, Hidden Layers=80-40-20, Outputs=1
Hyperparameter: Learning Rate=0.005, Momentum=0.5, BitFail-Limit=0.28
Aktivierungen: Hidden=SIGMOID, Steepness=1.0, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_common_active_pv
Zufallsgenerator: Mode=1, Period=10
=== Trainingsmetriken ===
bestes Modell bei Epoche: 924 (max. 15000)
Training MSE: 0.000345
Validation MSE: 0.000549
Validation MSE Average: 0.000529
Validation MSE Standard Deviation: 0.000060
Validation Bit_Fail: 0
Model Bias: 186 Wh
Model Slope: 0.9
Trainingsbewertung: ok
=== Fehlermaße der Prognosen ===
MAE: 213.99 Wh
MedAE: 75.26 Wh
RMSE: 263.39 Wh
RMSE relative: 38 %
RMSE Rating: good
MAPE: 26.18 %
MdAPE: 10.57 %
R²: 0.90
=== Rauschen ===
Rauschen Bewertung: borderline
Empfehlung für Bit_Fail: 0.34 (Einstellung von aiControl->aiConBitFailLimit)
=== Drift-Kennzahlen ===
Drift Score: -
Drift RMSE ratio: -
Drift Slope: -
Drift Bias: -
Drift Bewertung: -
Erläuterungen zu den Kennzahlen
Model Bias → zeigt, ob das Modell den Verbrauch im Durchschnitt zu niedrig oder zu hoch vorhersagt:
Positiver Bias → das Modell unterschätzt den Verbrauch im Mittel
Negativer Bias → das Modell überschätzt den Verbrauch im Mittel
Interpretation:
Der Wert wird in Wh angegeben und beschreibt die durchschnittliche Abweichung pro Stunde.
Die interne Bias‑Korrektur hebt oder senkt die Vorhersage entsprechend, jedoch nur
im Bereich der Grundlast, um Peaks nicht zu verfälschen.
Model Slope → zeigt, ob das Modell zu flach oder zu steil reagiert.
Der Wert beschreibt das Verhältnis zwischen:
- Änderung im echten Verbrauch
- Änderung in der Modellvorhersage
und wird als dimensionsloser Faktor angegeben.
Interpretation:
Slope = 1.0 → Das Modell bildet die Verbrauchshöhen korrekt ab. Steigt der echte Verbrauch um X, steigt die Vorhersage ebenfalls um X
Slope < 1.0 → Das Modell reagiert zu flach. Peaks werden abgeschwächt. Beispiel: Slope = 0.9 → Das Modell bildet 90% der realen Dynamik ab.
Slope > 1.0 → Das Modell reagiert zu stark. Peaks werden überbetont, Schwankungen überzeichnet.
Train MSE / Validation MSE → wie gut das Netz trainiert und generalisiert. Daumenregel:
MSE < 0.01 → sehr gut
MSE 0.01–0.05 → gut
MSE > 0.1 → schwach
Interpretation Verhältnis Train MSE zu Validation MSE:
Validation ≈ Train → gute Generalisierung
Validation deutlich größer → Überfitting
Validation kleiner → Validierungsdaten sind einfacher oder Split begünstigt
Validation Bit_Fail → Anzahl der Ausreißer
MAE (Mean Absolute Error) → mittlere absolute Abweichung in Wh. Richtwerte bei typischem Verbrauch 500–1500 Wh:
< 100 Wh → sehr gut
100–300 Wh → gut
> 300 Wh → schwach
MedAE (Median Absolute Error) → Median der absoluten Fehler in Wh (toleriert einzelne Ausreißer besser)
< 100 Wh → sehr gut
100–200 Wh → gut
200–300 Wh → mittelmäßig
> 300 Wh → schwach
RMSE rel (Root Mean Squared Error) → der gewichtete RMSE misst die quadratische Abweichung von Prognose und Verbrauch in % - mit Gewichtung für hohe Lasten.
Richtwerte:
< 20% → ausgezeichnet, das Modell trifft sowohl Grundlast als auch Peaks sehr präzise
20-40% → gut, das Modell ist zuverlässig und bildet typische Verbrauchsmuster sauber ab
40-70% → akzeptabel, das Modell ist brauchbar, aber Peaks oder spontane Lasten werden nicht immer gut getroffen
70-120% → schwach, das Modell hat deutliche Schwierigkeiten, insbesondere bei Lastspitzen oder unruhigen Haushalten
> 120% → unbrauchbar, die Prognosen weichen stark vom realen Verbrauch ab
MAPE (Mean Absolute Percentage Error) → relative Abweichung in %
Richtwerte:
< 10 % → sehr gut - Modell liegt fast immer sehr nah an den echten Werten
10–20 % → gut - Prognosen sind solide, kleine Abweichungen sind normal
20–30 % → mittelmäßig / akzeptabel - Modell ist brauchbar, aber nicht präzise – für grobe Trends ok
> 30 % → schwach - Modell verfehlt die Werte deutlich, oft durch Ausreißer oder fehlende Features
⚠️ Vorsicht: bei kleinen Werten (<200 Wh) kann MAPE stark verzerren → MdAPE heranziehen
MdAPE (Median Absolute Percentage Error) → Median der prozentualen Fehler in % (robuster gegenüber kleinen Werten)
Richtwerte:
< 10 % → sehr gut
10–20 % → gut
20–30 % → mittelmäßig
> 30 % → schwach
R² (Bestimmtheitsmaß) → Maß für die Erklärungskraft des Modells. Je näher R² an 1 liegt, desto besser.
R² = 1.0 → perfekte Vorhersage, alle Punkte liegen exakt auf der Regressionslinie
R² > 0.8 → sehr gut - Modell erfasst den Großteil der Streuung → sehr zuverlässige Prognosen
R² = 0.6 - 0.8 → gut - Modell erklärt einen soliden Teil der Varianz → brauchbar für viele Anwendungen
R² = 0.5-0.6 → mäßig / grenzwertig - Modell liegt knapp über "zufällig" → Muster erkannt, Prognosen nur eingeschränkt nützlich
R² < 0.5 → schwach - Modell erklärt weniger als die Hälfte der Varianz → deutlicher Verbesserungsbedarf
R² = 0.0 → Modell erklärt gar nichts, es ist nicht besser als der Mittelwert der Daten
R² < 0.0 → Modell ist schlechter als einfach immer den Mittelwert vorherzusagen
⚠️ R² ist sehr empfindlich gegenüber Ausreißern und Varianz in den Daten.
aiConActivate=1 aiConAlpha=0.5 aiTrainStart=7 aiStorageDuration=3000 aiTreesPV=3 aiConHiddenLayers=50-25 aiConTrainStart=5:2 aiConProfile=v1_common_active_pv aiConBitFailLimit=0.50letztes KI-Training: 05.03.2026 12:46:28 / Laufzeit in Sekunden: 4759
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 20.38 ms
Verbrauchernummer Wärmepumpe: -
=== Modellparameter ===
Normierungsgrenzen: PV=5797 Wh, Hausverbrauch: Min=0 Wh / Max=17670415 Wh
Trainingsdaten: 7225 Datensätze (Training=5780, Validation=1445)
Architektur: Inputs=69, Hidden Layers=50-25, Outputs=1
Hyperparameter: Learning Rate=0.005, Momentum=0.5, BitFail-Limit=0.35
Aktivierungen: Hidden=SIGMOID, Steepness=0.9, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_common_active_pv
Zufallsgenerator: Mode=2, Period=10
=== Trainingsmetriken ===
bestes Modell bei Epoche: 9610 (max. 15000)
Training MSE: 0.000000
Validation MSE: 0.000001
Validation MSE Average: 0.000001
Validation MSE Standard Deviation: 0.000000
Validation Bit_Fail: 0
Model Bias: 553 Wh
Model Slope: 1.0
Trainingsbewertung: Retrain
=== Fehlermaße der Prognosen ===
MAE: 3954.92 Wh
MedAE: 1628.48 Wh
RMSE: 7879.64 Wh
RMSE relative: 2755 %
RMSE Rating: very bad
MAPE: 689.42 %
MdAPE: 450.91 %
R²: 1.00
=== Rauschen ===
Rauschen Bewertung: noisy
Empfehlung für Bit_Fail: 0.4 (Einstellung von aiControl->aiConBitFailLimit)
=== Drift-Kennzahlen ===
Drift Score: -
Drift RMSE ratio: -
Drift Slope: -
Drift Bias: -
Drift Bewertung: -