Hauptmenü

Neueste Beiträge

#81
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von TheTrumpeter - 06 August 2026, 12:06:53
Hier das Log vom Training:
2026.08.06 11:35:34 1: mySolarForecast DEBUG> AI FANN Training for consumption Forecast BlockingCall PID "23128" with Timeout 86400 s started
2026.08.06 11:35:38 1: mySolarForecast DEBUG> AI FANN - There are 3875 Records skipped due to incomplete or invalid data.
2026.08.06 11:35:38 1: mySolarForecast DEBUG> AI FANN - dataset skipped - 2024040209 -> con=undef dayname=undef
(ausgeschnitten)
2026.08.06 11:35:38 1: mySolarForecast DEBUG> AI FANN - dataset skipped - 2026071915 -> con=undef
2026.08.06 11:35:38 1: mySolarForecast DEBUG> AI FANN - Target-Norm: raw_max=5012, p99=3576, p99.5=4923, targmaxval=5263
2026.08.06 11:35:38 1: mySolarForecast DEBUG> AI FANN - True Outliers above p99.5 (4923): 5012
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12912]: hppf=0.000 d1p=0.000 d1n=0.013 up=0 down=1 upS=0.000 downS=0.013 vol=1 pvX=0 break=0
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12912]: tmplag1=0.912 tmplag3=0.907 tmplag24=0.924 tmpd1p=0.000 tmpd1n=0.004 tmpd3p=0.001 tmpd3n=0.000 tmpTrdp=0.000 tmpTrdn=0.001
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12913]: hppf=0.000 d1p=0.000 d1n=0.170 up=0 down=1 upS=0.000 downS=0.170 vol=1 pvX=1 break=0
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12913]: tmplag1=0.909 tmplag3=0.931 tmplag24=0.926 tmpd1p=0.024 tmpd1n=0.000 tmpd3p=0.001 tmpd3n=0.000 tmpTrdp=0.012 tmpTrdn=0.000
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12914]: hppf=0.000 d1p=0.265 d1n=0.000 up=1 down=0 upS=0.265 downS=0.000 vol=1 pvX=0 break=1
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12914]: tmplag1=0.932 tmplag3=0.912 tmplag24=0.936 tmpd1p=0.000 tmpd1n=0.012 tmpd3p=0.007 tmpd3n=0.000 tmpTrdp=0.000 tmpTrdn=0.003
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12915]: hppf=0.000 d1p=0.000 d1n=0.222 up=0 down=1 upS=0.000 downS=0.222 vol=1 pvX=0 break=1
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12915]: tmplag1=0.920 tmplag3=0.909 tmplag24=0.925 tmpd1p=0.000 tmpd1n=0.007 tmpd3p=0.004 tmpd3n=0.000 tmpTrdp=0.000 tmpTrdn=0.002
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12916]: hppf=0.000 d1p=0.142 d1n=0.000 up=1 down=0 upS=0.142 downS=0.000 vol=1 pvX=0 break=1
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12916]: tmplag1=0.912 tmplag3=0.932 tmplag24=0.907 tmpd1p=0.000 tmpd1n=0.022 tmpd3p=0.000 tmpd3n=0.042 tmpTrdp=0.000 tmpTrdn=0.032
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12917]: hppf=0.000 d1p=0.000 d1n=0.291 up=0 down=1 upS=0.000 downS=0.291 vol=1 pvX=0 break=1
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12917]: tmplag1=0.890 tmplag3=0.920 tmplag24=0.894 tmpd1p=0.000 tmpd1n=0.030 tmpd3p=0.000 tmpd3n=0.060 tmpTrdp=0.000 tmpTrdn=0.045
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12918]: hppf=0.000 d1p=0.092 d1n=0.000 up=1 down=0 upS=0.092 downS=0.000 vol=1 pvX=0 break=1
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12918]: tmplag1=0.860 tmplag3=0.912 tmplag24=0.880 tmpd1p=0.000 tmpd1n=0.015 tmpd3p=0.000 tmpd3n=0.068 tmpTrdp=0.000 tmpTrdn=0.041
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12919]: hppf=0.000 d1p=0.000 d1n=0.091 up=0 down=1 upS=0.000 downS=0.091 vol=1 pvX=0 break=1
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12919]: tmplag1=0.845 tmplag3=0.890 tmplag24=0.868 tmpd1p=0.000 tmpd1n=0.015 tmpd3p=0.000 tmpd3n=0.060 tmpTrdp=0.000 tmpTrdn=0.037
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12920]: hppf=0.000 d1p=0.000 d1n=0.024 up=0 down=1 upS=0.000 downS=0.024 vol=1 pvX=0 break=0
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12920]: tmplag1=0.830 tmplag3=0.860 tmplag24=0.853 tmpd1p=0.000 tmpd1n=0.011 tmpd3p=0.000 tmpd3n=0.041 tmpTrdp=0.000 tmpTrdn=0.026
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12921]: hppf=0.000 d1p=0.003 d1n=0.000 up=0 down=0 upS=0.003 downS=0.000 vol=1 pvX=0 break=0
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12921]: tmplag1=0.819 tmplag3=0.845 tmplag24=0.841 tmpd1p=0.000 tmpd1n=0.011 tmpd3p=0.000 tmpd3n=0.038 tmpTrdp=0.000 tmpTrdn=0.024
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12922]: hppf=0.000 d1p=0.006 d1n=0.000 up=1 down=0 upS=0.006 downS=0.000 vol=1 pvX=0 break=0
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12922]: tmplag1=0.807 tmplag3=0.830 tmplag24=0.832 tmpd1p=0.000 tmpd1n=0.009 tmpd3p=0.000 tmpd3n=0.031 tmpTrdp=0.000 tmpTrdn=0.020
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12923]: hppf=0.000 d1p=0.004 d1n=0.000 up=0 down=0 upS=0.004 downS=0.000 vol=1 pvX=0 break=0
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12923]: tmplag1=0.799 tmplag3=0.819 tmplag24=0.820 tmpd1p=0.000 tmpd1n=0.009 tmpd3p=0.000 tmpd3n=0.029 tmpTrdp=0.000 tmpTrdn=0.019
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12924]: hppf=0.000 d1p=0.000 d1n=0.014 up=0 down=1 upS=0.000 downS=0.014 vol=0 pvX=0 break=0
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12924]: tmplag1=0.790 tmplag3=0.807 tmplag24=0.811 tmpd1p=0.000 tmpd1n=0.006 tmpd3p=0.000 tmpd3n=0.024 tmpTrdp=0.000 tmpTrdn=0.015
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12925]: hppf=0.000 d1p=0.000 d1n=0.007 up=0 down=1 upS=0.000 downS=0.007 vol=0 pvX=0 break=0
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12925]: tmplag1=0.784 tmplag3=0.799 tmplag24=0.804 tmpd1p=0.000 tmpd1n=0.006 tmpd3p=0.000 tmpd3n=0.021 tmpTrdp=0.000 tmpTrdn=0.014
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12926]: hppf=0.000 d1p=0.012 d1n=0.000 up=1 down=0 upS=0.012 downS=0.000 vol=0 pvX=0 break=0
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12926]: tmplag1=0.778 tmplag3=0.790 tmplag24=0.796 tmpd1p=0.031 tmpd1n=0.000 tmpd3p=0.019 tmpd3n=0.000 tmpTrdp=0.025 tmpTrdn=0.000
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12927]: hppf=0.000 d1p=0.000 d1n=0.000 up=0 down=0 upS=0.000 downS=0.000 vol=0 pvX=0 break=0
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12927]: tmplag1=0.809 tmplag3=0.784 tmplag24=0.806 tmpd1p=0.020 tmpd1n=0.000 tmpd3p=0.045 tmpd3n=0.000 tmpTrdp=0.032 tmpTrdn=0.000
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12928]: hppf=0.000 d1p=0.016 d1n=0.000 up=1 down=0 upS=0.016 downS=0.000 vol=0 pvX=0 break=0
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12928]: tmplag1=0.829 tmplag3=0.778 tmplag24=0.847 tmpd1p=0.029 tmpd1n=0.000 tmpd3p=0.080 tmpd3n=0.000 tmpTrdp=0.054 tmpTrdn=0.000
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12929]: hppf=0.000 d1p=0.313 d1n=0.000 up=1 down=0 upS=0.313 downS=0.000 vol=1 pvX=0 break=0
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12929]: tmplag1=0.857 tmplag3=0.809 tmplag24=0.890 tmpd1p=0.030 tmpd1n=0.000 tmpd3p=0.079 tmpd3n=0.000 tmpTrdp=0.054 tmpTrdn=0.000
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12930]: hppf=0.000 d1p=0.584 d1n=0.000 up=1 down=0 upS=0.584 downS=0.000 vol=1 pvX=0 break=0
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12930]: tmplag1=0.887 tmplag3=0.829 tmplag24=0.931 tmpd1p=0.020 tmpd1n=0.000 tmpd3p=0.079 tmpd3n=0.000 tmpTrdp=0.049 tmpTrdn=0.000
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12931]: hppf=0.000 d1p=0.000 d1n=0.060 up=0 down=1 upS=0.000 downS=0.060 vol=1 pvX=1 break=1
2026.08.06 11:35:50 1: mySolarForecast - DBG F[12931]: tmplag1=0.907 tmplag3=0.857 tmplag24=0.960 tmpd1p=0.024 tmpd1n=0.000 tmpd3p=0.074 tmpd3n=0.000 tmpTrdp=0.049 tmpTrdn=0.000
2026.08.06 11:35:50 1: mySolarForecast DEBUG> First attempt 0 with Seed=170392
2026.08.06 11:35:50 1: mySolarForecast DEBUG> AI FANN Training started with Params:
input datasets=12926,
input features=123,
hidden Neurons=50-25,
Data Parameter Ratio=1.723,
Registry version=v1_heatpump_active_pv,
training algo=FANN_TRAIN_RPROP,
output AF=LINEAR,
hidden AF=SIGMOID,
hidden steepness=1.2,
max. Epoches=15000,
mse_error=0.001,
learning rate=0.00020,
learning momentum=0.5,
BitFail limit: 0.35,
Data sharing=chronological split and AI internal shuffle of training data (Train=10340, Test=2585),
Data shuffle=1 (period=25)
2026.08.06 11:35:51 1: mySolarForecast DEBUG> Epoche 1: Train MSE=0.034602, Val MSE=1.478282, Val MAE=1.204894, Val MedAE=1.277245, Bit_Fail=2586 -> Snap metric improved
2026.08.06 11:35:52 1: mySolarForecast DEBUG> Epoche 3: Train MSE=2.888304, Val MSE=1.245994, Val MAE=1.104301, Val MedAE=1.176651, Bit_Fail=2586 -> Snap metric improved
2026.08.06 11:35:52 1: mySolarForecast DEBUG> Epoche 4: Train MSE=1.253522, Val MSE=0.114162, Val MAE=0.323655, Val MedAE=0.369325, Bit_Fail=1679 -> Snap metric improved
2026.08.06 11:35:53 1: mySolarForecast DEBUG> Epoche 6: Train MSE=0.225848, Val MSE=0.039345, Val MAE=0.109647, Val MedAE=0.040768, Bit_Fail=264 -> Snap metric improved
2026.08.06 11:35:55 1: mySolarForecast DEBUG> Epoche 10: Train MSE=0.030794, Val MSE=0.031656, Val MAE=0.087069, Val MedAE=0.018497, Bit_Fail=229 -> Snap metric improved
2026.08.06 11:35:58 1: mySolarForecast DEBUG> Epoche 15: Train MSE=0.030230, Val MSE=0.031656, Val MAE=0.086709, Val MedAE=0.015277, Bit_Fail=237 -> Snap weighted rmse improved
2026.08.06 11:36:39 1: mySolarForecast DEBUG> Epoche 100: Train MSE=0.006667, Val MSE=0.021004, Val MAE=0.075212, Val MedAE=0.018400, Bit_Fail=116
2026.08.06 11:37:29 1: mySolarForecast DEBUG> Epoche 200: Train MSE=0.010891, Val MSE=0.023287, Val MAE=0.079735, Val MedAE=0.021796, Bit_Fail=138
2026.08.06 11:38:18 1: mySolarForecast DEBUG> Epoche 300: Train MSE=0.067994, Val MSE=0.361263, Val MAE=0.204194, Val MedAE=0.028992, Bit_Fail=312
2026.08.06 11:38:25 1: mySolarForecast DEBUG> Early stopping bei Epoche 315 (no improvement since 300 epochs)
2026.08.06 11:38:25 1: === Snapshot-Statistik ===
2026.08.06 11:38:25 1: Metric-Improvement Snapshots:              5 (letzte Epoche: 10)
2026.08.06 11:38:25 1: Weighted-RMSE-Proxy-Improvement Snapshots: 1 (letzte Epoche: 15)
2026.08.06 11:38:25 1: Bit-Improvement Snapshots:                0 (letzte Epoche: 0)
2026.08.06 11:38:25 1: Bit-Tradeoff Snapshots:                    0 (letzte Epoche: 0)
2026.08.06 11:38:25 1: mySolarForecast DEBUG> Best Snapshot reloaded from Epoche 15: Train MSE=0.030230, Val MSE=0.031656, Val MAE=0.086709, Val MedAE=0.015277, Bit_Fail=237,
2026.08.06 11:38:25 1: mySolarForecast DEBUG> Run Validation Test with 20% of Input data ...
2026.08.06 11:38:25 1: mySolarForecast DEBUG> Validation finished - Best Training MSE=0.030230, Validation MSE=0.032402, Validation Bit_Fail=237
2026.08.06 11:38:25 1: mySolarForecast DEBUG> Retrain check ->
-- In Normalization Space: --
Train MSE=0.030230
Val MSE=0.032402
Val Mean=6.7512927638
VAL/TRAIN MSE Ratio=1.071818 (limit=6.5)
Diff=0.002171 (limit=0.005)
ValStd=8.2291142761 (limit=1.68782319094305)
-- At Original Scale: --
MAE=456.314087057276
RMSE/MAE=1.5861 (limit=2.5)
Slope=0.005376 (limit=0.6 .. 1.3)
Bias=282.41 (limit=+-684.471130585914)
R2=-0.22
P95=2617.8769 (limit=1825.25634822911)
P99=3561.4140
-- Robustness Indicators: --
RMSE relative=230 (limit=60)
BitFail=237 (limit=5)
BitFailRate=0.0916 (limit=0.1)
-- Architecture Check: --
Data Parameter Ratio=1.723
DPR Warning: CRITICAL (ratio=1.723 < 5): Architektur zu gro� f�r den Datensatz, Training wahrscheinlich instabil
Forecast Quality Score=55 (limit=60)
-> Retrain decision=Retrain
-> Retrain reasons: score=55 < thd_retrain=60
  valstd=8.22911428 > limit=1.68782319
  bitfail=237 > 5
  slope=0.0054 < slope_min=0.60
  rmse_rel=230.0% > 60% AND p95=2617.9 > 1825.3
2026.08.06 11:38:25 1: mySolarForecast DEBUG> Retry attempt 1 with Seed=7222411
2026.08.06 11:38:25 1: mySolarForecast DEBUG> AI FANN Training started with Params:
input datasets=12926,
input features=123,
hidden Neurons=50-25,
Data Parameter Ratio=1.723,
Registry version=v1_heatpump_active_pv,
training algo=FANN_TRAIN_RPROP,
output AF=LINEAR,
hidden AF=SIGMOID,
hidden steepness=1.2,
max. Epoches=15000,
mse_error=0.001,
learning rate=0.00020,
learning momentum=0.5,
BitFail limit: 0.35,
Data sharing=chronological split and AI internal shuffle of training data (Train=10340, Test=2585),
Data shuffle=1 (period=25)
2026.08.06 11:38:26 1: mySolarForecast DEBUG> Epoche 1: Train MSE=0.024007, Val MSE=1.153285, Val MAE=1.061495, Val MedAE=1.133846, Bit_Fail=2582 -> Snap metric improved
2026.08.06 11:38:27 1: mySolarForecast DEBUG> Epoche 3: Train MSE=2.238389, Val MSE=0.968832, Val MAE=0.970737, Val MedAE=1.043067, Bit_Fail=2570 -> Snap metric improved
2026.08.06 11:38:27 1: mySolarForecast DEBUG> Epoche 4: Train MSE=0.975032, Val MSE=0.107891, Val MAE=0.314617, Val MedAE=0.357905, Bit_Fail=1509 -> Snap metric improved
2026.08.06 11:38:28 1: mySolarForecast DEBUG> Epoche 5: Train MSE=0.107124, Val MSE=0.045431, Val MAE=0.137545, Val MedAE=0.065084, Bit_Fail=286 -> Snap metric improved
2026.08.06 11:38:28 1: mySolarForecast DEBUG> Epoche 6: Train MSE=0.040390, Val MSE=0.029373, Val MAE=0.090460, Val MedAE=0.034905, Bit_Fail=218 -> Snap metric improved
2026.08.06 11:38:30 1: mySolarForecast DEBUG> Epoche 10: Train MSE=0.034915, Val MSE=0.029373, Val MAE=0.090460, Val MedAE=0.031272, Bit_Fail=221 -> Snap weighted rmse improved
2026.08.06 11:38:31 1: mySolarForecast DEBUG> Epoche 11: Train MSE=0.024964, Val MSE=0.029373, Val MAE=0.083642, Val MedAE=0.014274, Bit_Fail=223 -> Snap weighted rmse improved
2026.08.06 11:39:14 1: mySolarForecast DEBUG> Epoche 100: Train MSE=0.009396, Val MSE=0.022265, Val MAE=0.077611, Val MedAE=0.016945, Bit_Fail=124
2026.08.06 11:40:04 1: mySolarForecast DEBUG> Epoche 200: Train MSE=0.006640, Val MSE=0.039305, Val MAE=0.077719, Val MedAE=0.019158, Bit_Fail=133
2026.08.06 11:40:53 1: mySolarForecast DEBUG> Epoche 300: Train MSE=0.005623, Val MSE=0.022143, Val MAE=0.075321, Val MedAE=0.018305, Bit_Fail=131
2026.08.06 11:40:59 1: mySolarForecast DEBUG> Early stopping bei Epoche 311 (no improvement since 300 epochs)
2026.08.06 11:40:59 1: === Snapshot-Statistik ===
2026.08.06 11:40:59 1: Metric-Improvement Snapshots:              5 (letzte Epoche: 6)
2026.08.06 11:40:59 1: Weighted-RMSE-Proxy-Improvement Snapshots: 2 (letzte Epoche: 11)
2026.08.06 11:40:59 1: Bit-Improvement Snapshots:                0 (letzte Epoche: 0)
2026.08.06 11:40:59 1: Bit-Tradeoff Snapshots:                    0 (letzte Epoche: 0)
2026.08.06 11:40:59 1: mySolarForecast DEBUG> Best Snapshot reloaded from Epoche 11: Train MSE=0.024964, Val MSE=0.029373, Val MAE=0.083642, Val MedAE=0.014274, Bit_Fail=223,
2026.08.06 11:40:59 1: mySolarForecast DEBUG> Run Validation Test with 20% of Input data ...
2026.08.06 11:40:59 1: mySolarForecast DEBUG> Validation finished - Best Training MSE=0.024964, Validation MSE=0.029928, Validation Bit_Fail=223
2026.08.06 11:40:59 1: mySolarForecast DEBUG> Retrain check ->
-- In Normalization Space: --
Train MSE=0.024964
Val MSE=0.029928
Val Mean=0.0221407516
VAL/TRAIN MSE Ratio=1.198857 (limit=6.5)
Diff=0.004964 (limit=0.005)
ValStd=0.0002749463 (limit=0.00553518790932294)
-- At Original Scale: --
MAE=440.173582743656
RMSE/MAE=1.5806 (limit=2.5)
Slope=0.053617 (limit=0.6 .. 1.3)
Bias=258.19 (limit=+-660.260374115483)
R2=-0.13
P95=2545.9232 (limit=1760.69433097462)
P99=3406.9232
-- Robustness Indicators: --
RMSE relative=221 (limit=60)
BitFail=223 (limit=5)
BitFailRate=0.0862 (limit=0.1)
-- Architecture Check: --
Data Parameter Ratio=1.723
DPR Warning: CRITICAL (ratio=1.723 < 5): Architektur zu gro� f�r den Datensatz, Training wahrscheinlich instabil
Forecast Quality Score=56 (limit=60)
-> Retrain decision=Retrain
-> Retrain reasons: score=56 < thd_retrain=60
  bitfail=223 > 5
  slope=0.0536 < slope_min=0.60
  rmse_rel=221.0% > 60% AND p95=2545.9 > 1760.7
2026.08.06 11:40:59 1: mySolarForecast DEBUG> Retry attempt 2 with Seed=6648465
2026.08.06 11:40:59 1: mySolarForecast DEBUG> AI FANN Training started with Params:
input datasets=12926,
input features=123,
hidden Neurons=50-25,
Data Parameter Ratio=1.723,
Registry version=v1_heatpump_active_pv,
training algo=FANN_TRAIN_RPROP,
output AF=LINEAR,
hidden AF=SIGMOID,
hidden steepness=1.2,
max. Epoches=15000,
mse_error=0.001,
learning rate=0.00020,
learning momentum=0.5,
BitFail limit: 0.35,
Data sharing=chronological split and AI internal shuffle of training data (Train=10340, Test=2585),
Data shuffle=1 (period=25)
2026.08.06 11:40:59 1: mySolarForecast DEBUG> Epoche 1: Train MSE=0.039527, Val MSE=1.047893, Val MAE=1.010633, Val MedAE=1.082984, Bit_Fail=2578 -> Snap metric improved
2026.08.06 11:41:00 1: mySolarForecast DEBUG> Epoche 3: Train MSE=2.000370, Val MSE=0.894037, Val MAE=0.931409, Val MedAE=1.003760, Bit_Fail=2559 -> Snap metric improved
2026.08.06 11:41:01 1: mySolarForecast DEBUG> Epoche 4: Train MSE=0.899814, Val MSE=0.108848, Val MAE=0.316012, Val MedAE=0.359578, Bit_Fail=1555 -> Snap metric improved
2026.08.06 11:41:01 1: mySolarForecast DEBUG> Epoche 5: Train MSE=0.108212, Val MSE=0.044228, Val MAE=0.133097, Val MedAE=0.060733, Bit_Fail=283 -> Snap metric improved
2026.08.06 11:41:02 1: mySolarForecast DEBUG> Epoche 6: Train MSE=0.039225, Val MSE=0.035959, Val MAE=0.097581, Val MedAE=0.024997, Bit_Fail=249 -> Snap metric improved
2026.08.06 11:41:20 1: mySolarForecast DEBUG> Epoche 43: Train MSE=0.012250, Val MSE=0.035959, Val MAE=0.083029, Val MedAE=0.024997, Bit_Fail=126 -> Snap weighted rmse improved
2026.08.06 11:41:20 1: mySolarForecast DEBUG> Epoche 44: Train MSE=0.011863, Val MSE=0.035959, Val MAE=0.080775, Val MedAE=0.022089, Bit_Fail=133 -> Snap weighted rmse improved
2026.08.06 11:41:21 1: mySolarForecast DEBUG> Epoche 46: Train MSE=0.011842, Val MSE=0.035959, Val MAE=0.080775, Val MedAE=0.022089, Bit_Fail=131 -> Snap bit tradeoff
2026.08.06 11:41:22 1: mySolarForecast DEBUG> Epoche 48: Train MSE=0.011627, Val MSE=0.035959, Val MAE=0.080775, Val MedAE=0.022089, Bit_Fail=129 -> Snap weighted rmse improved
2026.08.06 11:41:23 1: mySolarForecast DEBUG> Epoche 49: Train MSE=0.011534, Val MSE=0.035959, Val MAE=0.080775, Val MedAE=0.021329, Bit_Fail=130 -> Snap weighted rmse improved
2026.08.06 11:41:23 1: mySolarForecast DEBUG> Epoche 50: Train MSE=0.011471, Val MSE=0.035959, Val MAE=0.080775, Val MedAE=0.021329, Bit_Fail=128 -> Snap bit tradeoff
2026.08.06 11:41:24 1: mySolarForecast DEBUG> Epoche 51: Train MSE=0.011402, Val MSE=0.035959, Val MAE=0.080775, Val MedAE=0.021329, Bit_Fail=128 -> Snap weighted rmse improved
2026.08.06 11:41:24 1: mySolarForecast DEBUG> Epoche 52: Train MSE=0.011348, Val MSE=0.035959, Val MAE=0.080775, Val MedAE=0.020421, Bit_Fail=128 -> Snap weighted rmse improved
2026.08.06 11:41:25 1: mySolarForecast DEBUG> Epoche 53: Train MSE=0.011335, Val MSE=0.035959, Val MAE=0.080775, Val MedAE=0.019433, Bit_Fail=130 -> Snap weighted rmse improved
2026.08.06 11:41:27 1: mySolarForecast DEBUG> Epoche 58: Train MSE=0.175290, Val MSE=0.035959, Val MAE=0.078848, Val MedAE=0.017973, Bit_Fail=148 -> Snap weighted rmse improved
2026.08.06 11:41:28 1: mySolarForecast DEBUG> Epoche 60: Train MSE=0.011723, Val MSE=0.035959, Val MAE=0.078426, Val MedAE=0.017973, Bit_Fail=145 -> Snap bit tradeoff
2026.08.06 11:41:35 1: mySolarForecast DEBUG> Epoche 75: Train MSE=0.017163, Val MSE=0.035959, Val MAE=0.078426, Val MedAE=0.017973, Bit_Fail=185 -> Snap weighted rmse improved
2026.08.06 11:41:36 1: mySolarForecast DEBUG> Epoche 76: Train MSE=0.014757, Val MSE=0.035959, Val MAE=0.078426, Val MedAE=0.017973, Bit_Fail=194 -> Snap weighted rmse improved
2026.08.06 11:41:36 1: mySolarForecast DEBUG> Epoche 77: Train MSE=0.014405, Val MSE=0.035959, Val MAE=0.078426, Val MedAE=0.017973, Bit_Fail=193 -> Snap weighted rmse improved
2026.08.06 11:41:37 1: mySolarForecast DEBUG> Epoche 78: Train MSE=0.013478, Val MSE=0.035959, Val MAE=0.078426, Val MedAE=0.017956, Bit_Fail=186 -> Snap weighted rmse improved
2026.08.06 11:41:45 1: mySolarForecast DEBUG> Epoche 95: Train MSE=0.021771, Val MSE=0.035959, Val MAE=0.078426, Val MedAE=0.014282, Bit_Fail=229 -> Snap weighted rmse improved
2026.08.06 11:41:47 1: mySolarForecast DEBUG> Epoche 100: Train MSE=0.023878, Val MSE=0.878053, Val MAE=0.144647, Val MedAE=0.058245, Bit_Fail=227
2026.08.06 11:42:34 1: mySolarForecast DEBUG> Epoche 200: Train MSE=0.014441, Val MSE=0.020500, Val MAE=0.080434, Val MedAE=0.024133, Bit_Fail=115
2026.08.06 11:43:22 1: mySolarForecast DEBUG> Epoche 300: Train MSE=0.010008, Val MSE=0.021923, Val MAE=0.079434, Val MedAE=0.018977, Bit_Fail=144
2026.08.06 11:44:08 1: mySolarForecast DEBUG> Early stopping bei Epoche 395 (no improvement since 300 epochs)
2026.08.06 11:44:08 1: === Snapshot-Statistik ===
2026.08.06 11:44:08 1: Metric-Improvement Snapshots:              5 (letzte Epoche: 6)
2026.08.06 11:44:08 1: Weighted-RMSE-Proxy-Improvement Snapshots: 13 (letzte Epoche: 95)
2026.08.06 11:44:08 1: Bit-Improvement Snapshots:                0 (letzte Epoche: 0)
2026.08.06 11:44:08 1: Bit-Tradeoff Snapshots:                    3 (letzte Epoche: 60)
2026.08.06 11:44:08 1: mySolarForecast DEBUG> Best Snapshot reloaded from Epoche 95: Train MSE=0.021771, Val MSE=0.035959, Val MAE=0.078426, Val MedAE=0.014282, Bit_Fail=229,
2026.08.06 11:44:08 1: mySolarForecast DEBUG> Run Validation Test with 20% of Input data ...
2026.08.06 11:44:08 1: mySolarForecast DEBUG> Validation finished - Best Training MSE=0.021771, Validation MSE=0.031774, Validation Bit_Fail=229
2026.08.06 11:44:08 1: mySolarForecast DEBUG> Retrain check ->
-- In Normalization Space: --
Train MSE=0.021771
Val MSE=0.031774
Val Mean=1.6755772494
VAL/TRAIN MSE Ratio=1.459449 (limit=6.5)
Diff=0.010003 (limit=0.005)
ValStd=2.5276233836 (limit=0.418894312346623)
-- At Original Scale: --
MAE=480.083549198862
RMSE/MAE=1.5441 (limit=2.5)
Slope=0.155993 (limit=0.6 .. 1.3)
Bias=340.66 (limit=+-720.125323798292)
R2=-0.20
P95=2365.0038 (limit=1920.33419679545)
P99=3472.7414
-- Robustness Indicators: --
RMSE relative=236 (limit=60)
BitFail=229 (limit=5)
BitFailRate=0.0886 (limit=0.1)
-- Architecture Check: --
Data Parameter Ratio=1.723
DPR Warning: CRITICAL (ratio=1.723 < 5): Architektur zu gro� f�r den Datensatz, Training wahrscheinlich instabil
Forecast Quality Score=58 (limit=60)
-> Retrain decision=Retrain
-> Retrain reasons: score=58 < thd_retrain=60
  MSE diff=0.010003 > 0.005
  valstd=2.52762338 > limit=0.41889431
  bitfail=229 > 5
  slope=0.1560 < slope_min=0.60
  rmse_rel=236.0% > 60% AND p95=2365.0 > 1920.3
2026.08.06 11:44:08 1: mySolarForecast DEBUG> Retry attempt 3 with Seed=7146717
2026.08.06 11:44:08 1: mySolarForecast DEBUG> AI FANN Training started with Params:
input datasets=12926,
input features=123,
hidden Neurons=50-25,
Data Parameter Ratio=1.723,
Registry version=v1_heatpump_active_pv,
training algo=FANN_TRAIN_RPROP,
output AF=LINEAR,
hidden AF=SIGMOID,
hidden steepness=1.2,
max. Epoches=15000,
mse_error=0.001,
learning rate=0.00020,
learning momentum=0.5,
BitFail limit: 0.35,
Data sharing=chronological split and AI internal shuffle of training data (Train=10340, Test=2585),
Data shuffle=1 (period=25)
2026.08.06 11:44:08 1: mySolarForecast DEBUG> Epoche 1: Train MSE=0.037469, Val MSE=1.184080, Val MAE=1.075903, Val MedAE=1.148254, Bit_Fail=2584 -> Snap metric improved
2026.08.06 11:44:09 1: mySolarForecast DEBUG> Epoche 3: Train MSE=2.375315, Val MSE=0.985922, Val MAE=0.979494, Val MedAE=1.051844, Bit_Fail=2574 -> Snap metric improved
2026.08.06 11:44:10 1: mySolarForecast DEBUG> Epoche 4: Train MSE=0.992182, Val MSE=0.078343, Val MAE=0.268105, Val MedAE=0.302710, Bit_Fail=27 -> Snap metric improved
2026.08.06 11:44:11 1: mySolarForecast DEBUG> Epoche 6: Train MSE=0.076044, Val MSE=0.078343, Val MAE=0.161782, Val MedAE=0.089337, Bit_Fail=317 -> Snap weighted rmse improved
2026.08.06 11:44:11 1: mySolarForecast DEBUG> Epoche 7: Train MSE=0.047333, Val MSE=0.029466, Val MAE=0.090626, Val MedAE=0.034961, Bit_Fail=219 -> Snap metric improved
2026.08.06 11:44:14 1: mySolarForecast DEBUG> Epoche 13: Train MSE=0.023498, Val MSE=0.029466, Val MAE=0.090626, Val MedAE=0.026093, Bit_Fail=241 -> Snap weighted rmse improved
2026.08.06 11:44:18 1: mySolarForecast DEBUG> Epoche 21: Train MSE=0.013328, Val MSE=0.023616, Val MAE=0.084185, Val MedAE=0.024818, Bit_Fail=141 -> Snap metric improved
2026.08.06 11:44:19 1: mySolarForecast DEBUG> Epoche 22: Train MSE=0.012735, Val MSE=0.022930, Val MAE=0.081214, Val MedAE=0.017939, Bit_Fail=133 -> Snap metric improved
2026.08.06 11:44:29 1: mySolarForecast DEBUG> Epoche 44: Train MSE=0.007766, Val MSE=0.022930, Val MAE=0.074736, Val MedAE=0.017939, Bit_Fail=137 -> Snap weighted rmse improved
2026.08.06 11:44:30 1: mySolarForecast DEBUG> Epoche 45: Train MSE=0.007657, Val MSE=0.021551, Val MAE=0.074688, Val MedAE=0.017886, Bit_Fail=130 -> Snap metric improved
2026.08.06 11:44:31 1: mySolarForecast DEBUG> Epoche 47: Train MSE=0.007450, Val MSE=0.021551, Val MAE=0.074573, Val MedAE=0.017886, Bit_Fail=126 -> Snap bit tradeoff
2026.08.06 11:44:31 1: mySolarForecast DEBUG> Epoche 48: Train MSE=0.007359, Val MSE=0.021551, Val MAE=0.073990, Val MedAE=0.016817, Bit_Fail=128 -> Snap weighted rmse improved
2026.08.06 11:44:32 1: mySolarForecast DEBUG> Epoche 49: Train MSE=0.007401, Val MSE=0.021551, Val MAE=0.073990, Val MedAE=0.016817, Bit_Fail=123 -> Snap bit tradeoff
2026.08.06 11:44:34 1: mySolarForecast DEBUG> Epoche 54: Train MSE=0.007182, Val MSE=0.021551, Val MAE=0.073990, Val MedAE=0.016817, Bit_Fail=119 -> Snap bit tradeoff
2026.08.06 11:44:35 1: mySolarForecast DEBUG> Epoche 56: Train MSE=0.007018, Val MSE=0.021551, Val MAE=0.073990, Val MedAE=0.016817, Bit_Fail=121 -> Snap weighted rmse improved
2026.08.06 11:44:36 1: mySolarForecast DEBUG> Epoche 57: Train MSE=0.006984, Val MSE=0.021551, Val MAE=0.073990, Val MedAE=0.016817, Bit_Fail=121 -> Snap weighted rmse improved
2026.08.06 11:44:57 1: mySolarForecast DEBUG> Epoche 100: Train MSE=0.015522, Val MSE=0.025906, Val MAE=0.083892, Val MedAE=0.019959, Bit_Fail=190
2026.08.06 11:45:23 1: mySolarForecast DEBUG> Epoche 153: Train MSE=0.037300, Val MSE=0.021551, Val MAE=0.073990, Val MedAE=0.016817, Bit_Fail=137 -> Snap weighted rmse improved
2026.08.06 11:45:25 1: mySolarForecast DEBUG> Epoche 158: Train MSE=0.009299, Val MSE=0.021551, Val MAE=0.073990, Val MedAE=0.016657, Bit_Fail=133 -> Snap weighted rmse improved
2026.08.06 11:45:26 1: mySolarForecast DEBUG> Epoche 159: Train MSE=0.009087, Val MSE=0.021551, Val MAE=0.073990, Val MedAE=0.016340, Bit_Fail=133 -> Snap weighted rmse improved
2026.08.06 11:45:39 1: mySolarForecast DEBUG> Epoche 186: Train MSE=0.007576, Val MSE=0.021551, Val MAE=0.073990, Val MedAE=0.016228, Bit_Fail=135 -> Snap weighted rmse improved
2026.08.06 11:45:46 1: mySolarForecast DEBUG> Epoche 200: Train MSE=0.007166, Val MSE=0.022327, Val MAE=0.076107, Val MedAE=0.017756, Bit_Fail=134
2026.08.06 11:46:35 1: mySolarForecast DEBUG> Epoche 300: Train MSE=0.005350, Val MSE=0.023791, Val MAE=0.075707, Val MedAE=0.017558, Bit_Fail=150
2026.08.06 11:47:24 1: mySolarForecast DEBUG> Epoche 400: Train MSE=0.004716, Val MSE=0.025707, Val MAE=0.079516, Val MedAE=0.018444, Bit_Fail=151
2026.08.06 11:48:06 1: mySolarForecast DEBUG> Early stopping bei Epoche 486 (no improvement since 300 epochs)
2026.08.06 11:48:06 1: === Snapshot-Statistik ===
2026.08.06 11:48:06 1: Metric-Improvement Snapshots:              7 (letzte Epoche: 45)
2026.08.06 11:48:06 1: Weighted-RMSE-Proxy-Improvement Snapshots: 10 (letzte Epoche: 186)
2026.08.06 11:48:06 1: Bit-Improvement Snapshots:                0 (letzte Epoche: 0)
2026.08.06 11:48:06 1: Bit-Tradeoff Snapshots:                    3 (letzte Epoche: 54)
2026.08.06 11:48:06 1: mySolarForecast DEBUG> Best Snapshot reloaded from Epoche 186: Train MSE=0.007576, Val MSE=0.021551, Val MAE=0.073990, Val MedAE=0.016228, Bit_Fail=135,
2026.08.06 11:48:06 1: mySolarForecast DEBUG> Run Validation Test with 20% of Input data ...
2026.08.06 11:48:06 1: mySolarForecast DEBUG> Validation finished - Best Training MSE=0.007576, Validation MSE=0.022320, Validation Bit_Fail=135
2026.08.06 11:48:06 1: mySolarForecast DEBUG> Retrain check ->
-- In Normalization Space: --
Train MSE=0.007576
Val MSE=0.022320
Val Mean=0.0319474217
VAL/TRAIN MSE Ratio=2.946271 (limit=6.5)
Diff=0.014744 (limit=0.005)
ValStd=0.0013555883 (limit=0.0079868554240052)
-- At Original Scale: --
MAE=393.313560466346
RMSE/MAE=1.4950 (limit=2.5)
Slope=0.320095 (limit=0.6 .. 1.3)
Bias=328.17 (limit=+-589.970340699519)
R2=0.16
P95=1914.9456 (limit=1573.25424186538)
P99=3295.9456
-- Robustness Indicators: --
RMSE relative=187 (limit=60)
BitFail=135 (limit=5)
BitFailRate=0.0522 (limit=0.1)
-- Architecture Check: --
Data Parameter Ratio=1.723
DPR Warning: CRITICAL (ratio=1.723 < 5): Architektur zu gro� f�r den Datensatz, Training wahrscheinlich instabil
Forecast Quality Score=60 (limit=60)
-> Retrain decision=Retrain
-> Retrain reasons: MSE diff=0.014744 > 0.005
  bitfail=135 > 5
  slope=0.3201 < slope_min=0.60
  rmse_rel=187.0% > 60% AND p95=1914.9 > 1573.3
2026.08.06 11:48:06 1: mySolarForecast DEBUG> Best model after retries comes from Attempt=3 with:
Seed=7146717,
Model Score=60,
Model Slope=0.32,
Model Bias=328.17,
VAL MedAE=85.40,
VAL MAE=393.31,
VAL weighted RMSE=588.02,
VAL weighted RMSE relative=187 %,
VAL weighted RMSE_Rating=very bad,
VAL R2=0.16,
Val MSE=0.022320
2026.08.06 11:48:06 1: mySolarForecast DEBUG> AI FANN training data successfully written to file: ./FHEM/FhemUtils/NeuralNet_SolarForecast_mySolarForecast
2026.08.06 11:48:06 1: mySolarForecast DEBUG> AI FANN con Training BlockingCall PID '23128' finished. Trainstate: ok

Und die Anweisung für die Bewertung:
ZitatDu bewertest die Trainings- und Bewertungskennzahlen eines neuronalen Netzes (FANN),
das den stündlichen Energieverbrauch für einen Haushalt prognostiziert
(FHEM-Modul 76_SolarForecast.pm, FANN-basiertes neuronales Netz).

Wichtiger Domänen-Kontext für deine Bewertung:
- Stochastische Haushalte (ohne Wärmepumpe/BEV) erreichen typischerweise R²=0.25-0.35 –
  das ist kein Modellfehler, sondern physikalisch bedingt durch unvorhersehbares Nutzerverhalten.
- Ein ModelSlope von 0.35-0.45 und ein ModelBias von 400-500 Wh sind bei diesen Haushalten
  strukturell erwartet (Bias ≈ mean_consumption × (1 - Slope)) und kein Kalibrierfehler.
- Haushalte mit Wärmepumpe oder BEV können R²=0.5-0.7 erreichen.
- Ein DriftIndex unter 0.7 gilt als stabil, über 1.0 als kritisch.
- Ein hohes Rauschlevel (NoiseLevel) begrenzt die maximal erreichbare Modellqualität strukturell.
- BitFailLimit (aiConBitFailLimit) definiert die Fehlertoleranz pro Datenpunkt – ein HÖHERER
  Wert bedeutet MEHR Toleranz (mehr Fehler werden akzeptiert, bevor ein Sample als Bit_Fail
  zählt), ein NIEDRIGERER Wert bedeutet strengere Bewertung.
- Zur Diagnose von früher Konvergenz: Wenn Val MSE > Train MSE (Overfitting-Indikator) UND
  wenige Epochen genutzt wurden, deutet das auf eine zu hohe Lernrate hin (Empfehlung:
  Lernrate reduzieren). Nur wenn Val MSE ≈ Train MSE und wenige Epochen genutzt wurden,
  kann eine höhere Lernrate sinnvoll sein.

Beurteile die Metriken ausschließlich vor diesem Domänen-Hintergrund, nicht nach
generischen ML-Benchmarks.

Bitte bewerte die Kennzahlen zusätzlich im Kontext dieser konkreten Haushaltskonfiguration
(siehe Abschnitt "Modellparameter", insbesondere Profile) und beantworte:

1. Wo liegen aktuell die größten Schwachstellen des Modells?
2. Welche 2-3 Maßnahmen versprechen den größten Hebel zur Verbesserung (Datenqualität/-menge,
  Hyperparameter wie aiConLearnRate/aiConMomentum, Architektur/HiddenLayers, Feature-Auswahl,
  Trainingsdauer/Epochen, Rauschen, Drift/Rekalibrierung)? Bitte jeweils mit Richtungsangabe
  (erhöhen/reduzieren).
3. Gibt es Hinweise auf strukturelle Probleme (z.B. zu wenig Trainingsdaten, instabile Slope,
  Bias-Drift, Over-/Underfitting, verrauschte Zielgröße, zu früh konvergiertes Training)?
4. Bitte konkrete, umsetzbare nächste Schritte nennen, keine allgemeinen Floskeln.

Hier die Kennzahlen:
--------------------------------------------------------------------

Allgemeine Informationen
- trainiert mit Modulversion: 2.9.4
- letztes KI-Training: 06.08.2026 11:48:06 (Laufzeit in Sekunden: 752)
- KI Abfragestatus: ok
- letzte KI-Ergebnis Generierungsdauer: 168.29 ms
- Verbrauchernummer Wärmepumpe: 03

Bewertungsüberblick
- Trainingsbewertung: Retrain (MSE diff=0.014744 > 0.005 | bitfail=135 > 5 | slope=0.3201 < slope_min=0.60 | rmse_rel=187.0% > 60% AND p95=1914.9 > 1573.3)
- Data-Parameter-Ratio Bewertung: CRITICAL (ratio=1.723 < 5): Architektur zu gro� f�r den Datensatz, Training wahrscheinlich instabil
- Lernverhalten: sehr früh konvergiert (1.2 % Epochenausnutzung)
- Rauschen Bewertung: merkliches Rauschen, Interpretation mit Vorsicht (borderline)
- Drift Bewertung: fresh_model
- Empfehlung für Retrain: keine

Modellparameter
- Normierungsgrenzen: PV=15750 Wh, Hausverbrauch: Min=0 Wh / Max=5263 Wh
- Trainingsdaten: 12926 Datensätze (Training=10340, Validation=2586)
- Architektur: Inputs=123, Hidden Layers=50-25, Outputs=1
- Hyperparameter: Learning Rate=0.0002, Momentum=0.5, BitFail-Limit=0.35
- Aktivierungen: Hidden=SIGMOID, Steepness=1.2, Output=LINEAR
- Trainingsalgorithmus: RPROP, Profile=v1_heatpump_active_pv (Haushalt mit Wärmepumpe und/oder Klimaanlage, PV-gesteuertem Lastmanagement, ausgeprägten Tages-/Verbrauchsrhythmen)
- Zufallsgenerator: Mode=1, Period=25
- Modellalter: 0 h

Trainingsmetriken
- bestes Modell bei Epoche: 186 (max. 15000)
- Training MSE: 0.007576
- Validation MSE: 0.022320
- Validation MSE Average: 0.031947
- Validation MSE Standard Deviation: 0.001356
- Validation Bit_Fail: 135
- Data Parameter Ratio: 1.723
- Model Bias: 328 Wh
- Model Slope: 0.32
- Trainingsbewertung: Retrain

Fehlermaße der Prognosen
- MAE: 393.31 Wh
- MedAE: 85.40 Wh
- RMSE: 588.02 Wh
- RMSE relative: 187 %
- RMSE Rating: very bad
- MAPE: 52.10 %
- MdAPE: 25.18 %
- R2: 0.16

Rauschen
- Rauschen Bewertung: borderline
- Empfehlung für Bit_Fail: 0.34 (Einstellung von aiControl->aiConBitFailLimit)

Drift-Kennzahlen (berechnet ab Modellalter > 6 h)
- Analysefenster: - h
- Drift RMSE Ratio: -
- Semantic Ratio: -
- Slope Reference: 0.32
- Slope Live: -
- Slope Drift: 1
- Bias Reference: 328
- Bias Live: -
- Bias Drift: 0
- Score: -
- Index: -
- Drift Bewertung: fresh_model
- Empfehlung für Retrain: keine
- letzte Rekalibrierung: -
#82
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 06 August 2026, 11:51:00
Hallo Peter,

Grundsätzlich eine gute Idee – die Frage ist aber, wie ich das sauber ins bestehende Feature-Konzept einbauen könnte.

1. Analogie ist schon im Modul vorhanden
Das ist strukturell dasselbe Problem wie beim Wärmepumpen-Opmode-Tracking (Punkte-System mit gewichteter Sekundenakkumulation). Auch dort wird ein Betriebsmodus als Kategorie-Signal in eine Aggregation gegeben. Ich würde "Modus" der Wallbox genauso behandeln: nicht als rohen String, sondern als Punkte/Anteil pro Stunde (z.B. wie viele Sekunden der Stunde in Aus/Auto/Prio/Manuell verbracht wurden), analog zum HP-Muster. Das lässt sich vermutlich mit wenig Aufwand aus dem bestehenden Ansatz ableiten/kopieren.

2. Das eigentliche Problem: Training vs. Inferenz
Für die Trainingsdaten (Historie) ist das unproblematisch – dort hole ich den historischen Modus/Ladestrom-Wert zur jeweiligen Stunde.

Für die NextHours-Prognose ist das der Knackpunkt: Anders als PV- oder Wetterprognosen gibt es für "Modus in Stunde t+x" keine Vorhersagequelle – man kennt nur den aktuellen Live-Wert. Wenn ich den Wert einfach für alle Prognosestunden konstant fortschreibe, ist das für Nutzer, die selten manuell umschalten, eine brauchbare Näherung, für Nutzer mit häufigem Moduswechsel aber potenziell fehlerhaft – das NN lernt dann eine Abhängigkeit, die zur Prognosezeit oft nicht mehr stimmt.

Was natürlich dafür spricht - wenn der Modus auf Prio steht und sich damit eine Beziehung zum vergangenen/prognostizierten Überschuß ableiten lässt, wäre es ein echtes Signal für das NN.
Vllt. wird deutlich worauf ich hinaus will, der PV-Überschuß in Verknüpfung mit demm Modus "Prio" gibt ein echtes Feature, bei den anderen Status, z.B. "Manuell" -> "kann passieren oder auch nicht" gibt es keine solche Vorhersehbarkeit.

Aber danke für die Idee  :) , ich lasse das bei mir nochmal sacken.

LG,
Heiko
#83
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von TheTrumpeter - 06 August 2026, 11:34:06
Zitat von: DS_Starter am 06 August 2026, 11:12:25Jetzt nach deinen Korrekturmaßnahmen ist es wichtig, dass die csmeXX, csmtXX und auch con, pvrl usw. sauber im stündlichen Raster aufgezeuchnet werden. Das ganze Modul arbeitet in diesem Raster. "Klumpenbildungen" auf eine Stunde mit den Zwischenstunden=0 sind für Auswertungen/Prognosen schlichtweg unbrauchbar und führen zu absurden Ergebnissen.
Das sieht soweit gut aus, ich kann diesbezüglich keinen Fehler erkennen. Der Fehler war einfach, dass ich die Stromzähler der Wärmepumpe nicht regelmäßig ausgelesen habe.

Zitat von: DS_Starter am 06 August 2026, 11:12:25Es wäre gut wenn du ein nächstes Training mal manuell anstartest und ein Trainingslog erstellen lässt.
Kann ich gleich machen.
#84
FHEM Development / Aw: (erledigt) svn repo kaputt...
Letzter Beitrag von rudolfkoenig - 06 August 2026, 11:33:38
Ich konnte gerade in meinem "alten" Repo ohne Probleme ein update machen.
#85
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von peterboeckmann - 06 August 2026, 11:30:08
Hallo Heiko,

mir kommt gerade eine neue Idee bzgl. des consumer-Types BEV.
Wäre es sinnvoll, der Verbrauchsprognose noch mitzugeben, wie das Auto gerade geladen wird?

Zum Hintergrund:
Ich habe mir in fhem, aber außerhalb von SF die Möglichkeit geschaffen, den PV-Überschuss ins Auto zu laden.
Dafür habe ich eine kleine Steuerung implementiert, die die folgenden Modi unterstützt:
- Aus -> keine Ladung
- Auto -> PV-Überschuss ins Auto laden, Hausspeicher wird ebenfalls geladen (Lädt das ins Auto, was sonst ins Netz ginge)
- Prio -> PV-Überschuss ins Auto laden, Priorität über Hausspeicher (Lädt den gesamten PV-Überschuss ins Auto)
- Manuell -> Feste Stromstärke angeben und ins Auto laden

Alles zusammen habe ich am folgenden DUMMY-device definiert:
Du darfst diesen Dateianhang nicht ansehen.
define WallboxModus dummy
attr WallboxModus event-on-change-reading .*
attr WallboxModus group Wallbox
attr WallboxModus readingList Modus Ladestrom
attr WallboxModus room Garten->Wallbox
attr WallboxModus setList Modus:Aus,Auto,Manuell,Prio Ladestrom:slider,6,0.1,16,1
attr WallboxModus sortby 10
attr WallboxModus stateFormat &nbsp;;
attr WallboxModus useSetExtensions 1
attr WallboxModus userReadings Modus
attr WallboxModus webCmd Modus:Ladestrom

Dazu noch ein notify und ein bisschen Perl-Code. Aber das führt für den Anwendungsfall der Verbrauchsprognose zu weit.

Wäre es möglich und sinnvoll, die Readings "Modus" und "Ladestrom" (SOLL) noch mit an den BEV-Consumer und das NN zu übermitteln?

Viele Grüße,
Peter
#86
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 06 August 2026, 11:12:25
Moin,

gut dass du die falschen Daten gelöscht hast.
Jetzt nach deinen Korrekturmaßnahmen ist es wichtig, dass die csmeXX, csmtXX und auch con, pvrl usw. sauber im stündlichen Raster aufgezeuchnet werden. Das ganze Modul arbeitet in diesem Raster. "Klumpenbildungen" auf eine Stunde mit den Zwischenstunden=0 sind für Auswertungen/Prognosen schlichtweg unbrauchbar und führen zu absurden Ergebnissen.

Zu deinem Log. Der auffälligste Befund ist das konstant extrem niedrige SlopeLive – Tag und Nacht.
Über den gesamten 22-Stunden-Zeitraum liegt SlopeLive durchgehend zwischen 0.073 und 0.098 – nie in der Nähe von 1.0 (was eine gute Übereinstimmung zwischen Vorhersage und Realität anzeigen würde). Das ist nicht auf die Abendstunden beschränkt, sondern über den ganzen Tag hinweg (auch mittags, 12:00–15:00 Uhr) strukturell gleich niedrig. Das spricht für die These, dass es sich um ein durchgehendes, globales Muster handelt. Mit den Erkenntnissen deiner letzten Postings würde ich die Ursachen in den unsauberen/falschen Trainingsdaten verorten.

Ich habe das Log auch mal durch den LLM-Knecht gejagt mit dem zusammenfassenden Ergebnis:

Die durchgehend niedrige SlopeLive über den ganzen Tag deutet eher auf ein strukturelles Problem (mögliche Zuordnungsungenauigkeit zwischen Real- und Prognosewert in den Rohdaten, oder eine grundsätzlich sehr schwache Modellkorrelation) hin als auf klassische, zeitlich begrenzte Drift. Die automatische Recalibrierung kann das nicht heilen, weil sie strukturell daran gehindert wird, sich dem realen Wert anzunähern – sie läuft im 8-Stunden-Takt, ohne das Grundproblem zu beheben bzw. beheben zu können. Ich würde empfehlen, die Rohdaten-Zuordnung (con vs. conaifc) stichprobenartig zu verifizieren.


Das deckt sich mit den Erkenntnissen und meinen Einschätzungen.
Es wäre gut wenn du ein nächstes Training mal manuell anstartest und ein Trainingslog erstellen lässt. Das kannst du dann zur Analyse posten.
Daraus ist dann meistens viel abzuleiten.
#87
Sonstiges / Aw: JSON Datensatz in FHEM zus...
Letzter Beitrag von TubeHead - 06 August 2026, 11:04:49
Ok, vielen Dank für Deine Mühen.
Da ich von Perl keinen blassen Schimmer habe, kann ich dass auch nicht zu einem Ende bringen.
Ich werde es jetzt mal auf einem anderen Weg versuchen und vorher in einem Dummy alles zusammenstellen, was ich für die JSON benötige und dann das ursprüngliche Skript versuchen...
Scheint also, wie anfangs erwähnt, wohl doch nicht so trivial zu sein...
#88
FHEM Development / Aw: (erledigt) svn repo kaputt...
Letzter Beitrag von betateilchen - 06 August 2026, 09:55:03
Nun habe ich das lokal repo gelöscht und neu ausgecheckt.
Das scheint den Spuk beseitigt zu haben.
#89
FHEM Development / (erledigt) svn repo kaputt?
Letzter Beitrag von betateilchen - 06 August 2026, 08:56:26
Moin,

kann es ein, dass seit 03.08. das svn repository irgendwie durcheinander gekommen ist?

Beim "svn update" bekomme ich jede Menge Fehlermeldungen wegen Dateikonflikten. Dabei geht es aber um Dateien, die ich hier lokal definitiv nicht bearbeitet habe.

Aktuell werden mir 15 Änderungen angezeigt, aber bei einem svn update heißt es dann, dass alles aktuell sei.
Die Schwierigkeiten könnten mit 76_SolarForecast.pm zusammenzuhängen, auch diese Datei habe ich lokal nicht bearbeitet.

#90
FHEM Code changes / Revision 31542: controls_fhem....
Letzter Beitrag von System - 06 August 2026, 08:30:49
Revision 31542: controls_fhem.txt: fhemupdate checkin

controls_fhem.txt: fhemupdate checkin

Source: Revision 31542: controls_fhem.txt: fhemupdate checkin