2026.08.06 12:49:03 1: mySolarForecast DEBUG> AI FANN Training for consumption Forecast BlockingCall PID "31253" with Timeout 86400 s started
2026.08.06 12:49:08 1: mySolarForecast DEBUG> AI FANN - There are 3875 Records skipped due to incomplete or invalid data.
2026.08.06 12:49:08 1: mySolarForecast DEBUG> AI FANN - dataset skipped - 2024040209 -> con=undef dayname=undef
(gelöscht)
2026.08.06 12:49:08 1: mySolarForecast DEBUG> AI FANN - dataset skipped - 2026071915 -> con=undef
2026.08.06 12:49:09 1: mySolarForecast DEBUG> AI FANN - Target-Norm: raw_max=5012, p99=3576, p99.5=4923, targmaxval=5263
2026.08.06 12:49:09 1: mySolarForecast DEBUG> AI FANN - True Outliers above p99.5 (4923): 5012
2026.08.06 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 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 12:49:21 1: mySolarForecast - DBG F[12932]: hppf=0.000 d1p=0.000 d1n=0.084 up=0 down=1 upS=0.000 downS=0.084 vol=1 pvX=1 break=0
2026.08.06 12:49:21 1: mySolarForecast - DBG F[12932]: tmplag1=0.931 tmplag3=0.887 tmplag24=0.955 tmpd1p=0.034 tmpd1n=0.000 tmpd3p=0.078 tmpd3n=0.000 tmpTrdp=0.056 tmpTrdn=0.000
2026.08.06 12:49:21 1: mySolarForecast DEBUG> First attempt 0 with Seed=357984
2026.08.06 12:49:21 1: mySolarForecast DEBUG> AI FANN Training started with Params:
input datasets=12927,
input features=123,
hidden Neurons=12,
Data Parameter Ratio=8.612,
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.00010,
learning momentum=0.5,
BitFail limit: 0.35,
Data sharing=chronological split and AI internal shuffle of training data (Train=10341, Test=2585),
Data shuffle=1 (period=25)
2026.08.06 12:49:22 1: mySolarForecast DEBUG> Epoche 1: Train MSE=0.033435, Val MSE=0.189028, Val MAE=0.415991, Val MedAE=0.475432, Bit_Fail=2095 -> Snap metric improved
2026.08.06 12:49:22 1: mySolarForecast DEBUG> Epoche 3: Train MSE=0.405062, Val MSE=0.156923, Val MAE=0.378966, Val MedAE=0.433431, Bit_Fail=2000 -> Snap metric improved
2026.08.06 12:49:22 1: mySolarForecast DEBUG> Epoche 4: Train MSE=0.156963, Val MSE=0.027121, Val MAE=0.133278, Val MedAE=0.118970, Bit_Fail=141 -> Snap metric improved
2026.08.06 12:49:23 1: mySolarForecast DEBUG> Epoche 8: Train MSE=0.032197, Val MSE=0.027121, Val MAE=0.084417, Val MedAE=0.027278, Bit_Fail=180 -> Snap weighted rmse improved
2026.08.06 12:49:35 1: mySolarForecast DEBUG> Epoche 100: Train MSE=0.006986, Val MSE=7359.102691, Val MAE=24.558229, Val MedAE=0.023713, Bit_Fail=260
2026.08.06 12:49:47 1: mySolarForecast DEBUG> Epoche 200: Train MSE=0.006276, Val MSE=6070.225236, Val MAE=20.267726, Val MedAE=0.020576, Bit_Fail=249
2026.08.06 12:50:01 1: mySolarForecast DEBUG> Epoche 300: Train MSE=0.006218, Val MSE=502.313013, Val MAE=5.792522, Val MedAE=0.020492, Bit_Fail=262
2026.08.06 12:50:02 1: mySolarForecast DEBUG> Early stopping bei Epoche 308 (no improvement since 300 epochs)
2026.08.06 12:50:02 1: === Snapshot-Statistik ===
2026.08.06 12:50:02 1: Metric-Improvement Snapshots: 3 (letzte Epoche: 4)
2026.08.06 12:50:02 1: Weighted-RMSE-Proxy-Improvement Snapshots: 1 (letzte Epoche: 8)
2026.08.06 12:50:02 1: Bit-Improvement Snapshots: 0 (letzte Epoche: 0)
2026.08.06 12:50:02 1: Bit-Tradeoff Snapshots: 0 (letzte Epoche: 0)
2026.08.06 12:50:02 1: mySolarForecast DEBUG> Best Snapshot reloaded from Epoche 8: Train MSE=0.032197, Val MSE=0.027121, Val MAE=0.084417, Val MedAE=0.027278, Bit_Fail=180,
2026.08.06 12:50:02 1: mySolarForecast DEBUG> Run Validation Test with 20% of Input data ...
2026.08.06 12:50:02 1: mySolarForecast DEBUG> Validation finished - Best Training MSE=0.032197, Validation MSE=0.025528, Validation Bit_Fail=180
2026.08.06 12:50:02 1: mySolarForecast DEBUG> Retrain check ->
-- In Normalization Space: --
Train MSE=0.032197
Val MSE=0.025528
Val Mean=3764.0658762728
VAL/TRAIN MSE Ratio=0.792872 (limit=6.5)
Diff=0.006669 (limit=0.005)
ValStd=2560.0436796576 (limit=941.016469068199)
-- At Original Scale: --
MAE=444.250983960992
RMSE/MAE=1.5621 (limit=2.5)
Slope=0.142307 (limit=0.6 .. 1.3)
Bias=358.37 (limit=+-666.376475941489)
R2=0.04
P95=2149.4946 (limit=1777.00393584397)
P99=3147.9756
-- Robustness Indicators: --
RMSE relative=220 (limit=60)
BitFail=180 (limit=5)
BitFailRate=0.0696 (limit=0.1)
-- Architecture Check: --
Data Parameter Ratio=8.612
DPR Warning: ok
Forecast Quality Score=59 (limit=60)
-> Retrain decision=Retrain
-> Retrain reasons: score=59 < thd_retrain=60
MSE diff=0.006669 > 0.005
valstd=2560.04367966 > limit=941.01646907
bitfail=180 > 5
slope=0.1423 < slope_min=0.60
rmse_rel=220.0% > 60% AND p95=2149.5 > 1777.0
2026.08.06 12:50:02 1: mySolarForecast DEBUG> Retry attempt 1 with Seed=13710002
2026.08.06 12:50:02 1: mySolarForecast DEBUG> AI FANN Training started with Params:
input datasets=12927,
input features=123,
hidden Neurons=12,
Data Parameter Ratio=8.612,
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.00010,
learning momentum=0.5,
BitFail limit: 0.35,
Data sharing=chronological split and AI internal shuffle of training data (Train=10341, Test=2585),
Data shuffle=1 (period=25)
2026.08.06 12:50:02 1: mySolarForecast DEBUG> Epoche 1: Train MSE=0.028048, Val MSE=0.385062, Val MAE=0.599701, Val MedAE=0.671091, Bit_Fail=2333 -> Snap metric improved
2026.08.06 12:50:02 1: mySolarForecast DEBUG> Epoche 3: Train MSE=0.786551, Val MSE=0.323266, Val MAE=0.547052, Val MedAE=0.617089, Bit_Fail=2281 -> Snap metric improved
2026.08.06 12:50:03 1: mySolarForecast DEBUG> Epoche 4: Train MSE=0.325197, Val MSE=0.032996, Val MAE=0.163615, Val MedAE=0.157019, Bit_Fail=89 -> Snap metric improved
2026.08.06 12:50:03 1: mySolarForecast DEBUG> Epoche 7: Train MSE=0.046281, Val MSE=0.032996, Val MAE=0.101198, Val MedAE=0.064588, Bit_Fail=182 -> Snap weighted rmse improved
2026.08.06 12:50:03 1: mySolarForecast DEBUG> Epoche 10: Train MSE=0.040577, Val MSE=0.017645, Val MAE=0.079162, Val MedAE=0.037556, Bit_Fail=109 -> Snap metric improved
2026.08.06 12:50:04 1: mySolarForecast DEBUG> Epoche 12: Train MSE=0.018201, Val MSE=0.017645, Val MAE=0.076648, Val MedAE=0.021209, Bit_Fail=172 -> Snap weighted rmse improved
2026.08.06 12:50:16 1: mySolarForecast DEBUG> Epoche 100: Train MSE=0.008564, Val MSE=7360.062953, Val MAE=24.600638, Val MedAE=0.025877, Bit_Fail=296
2026.08.06 12:50:29 1: mySolarForecast DEBUG> Epoche 200: Train MSE=0.006334, Val MSE=7395.469396, Val MAE=24.702319, Val MedAE=0.019386, Bit_Fail=273
2026.08.06 12:50:38 1: mySolarForecast DEBUG> Epoche 264: Train MSE=0.006072, Val MSE=0.017645, Val MAE=0.076648, Val MedAE=0.019600, Bit_Fail=147 -> Snap weighted rmse improved
2026.08.06 12:50:43 1: mySolarForecast DEBUG> Epoche 300: Train MSE=0.005918, Val MSE=0.043406, Val MAE=0.101903, Val MedAE=0.023545, Bit_Fail=215
2026.08.06 12:50:57 1: mySolarForecast DEBUG> Epoche 400: Train MSE=0.005708, Val MSE=0.043745, Val MAE=0.102272, Val MedAE=0.022108, Bit_Fail=219
2026.08.06 12:51:10 1: mySolarForecast DEBUG> Epoche 500: Train MSE=0.006050, Val MSE=0.041895, Val MAE=0.099722, Val MedAE=0.020235, Bit_Fail=223
2026.08.06 12:51:19 1: mySolarForecast DEBUG> Early stopping bei Epoche 564 (no improvement since 300 epochs)
2026.08.06 12:51:19 1: === Snapshot-Statistik ===
2026.08.06 12:51:19 1: Metric-Improvement Snapshots: 4 (letzte Epoche: 10)
2026.08.06 12:51:19 1: Weighted-RMSE-Proxy-Improvement Snapshots: 3 (letzte Epoche: 264)
2026.08.06 12:51:19 1: Bit-Improvement Snapshots: 0 (letzte Epoche: 0)
2026.08.06 12:51:19 1: Bit-Tradeoff Snapshots: 0 (letzte Epoche: 0)
2026.08.06 12:51:19 1: mySolarForecast DEBUG> Best Snapshot reloaded from Epoche 264: Train MSE=0.006072, Val MSE=0.017645, Val MAE=0.076648, Val MedAE=0.019600, Bit_Fail=147,
2026.08.06 12:51:19 1: mySolarForecast DEBUG> Run Validation Test with 20% of Input data ...
2026.08.06 12:51:19 1: mySolarForecast DEBUG> Validation finished - Best Training MSE=0.006072, Validation MSE=0.020375, Validation Bit_Fail=147
2026.08.06 12:51:19 1: mySolarForecast DEBUG> Retrain check ->
-- In Normalization Space: --
Train MSE=0.006072
Val MSE=0.020375
Val Mean=0.0431614803
VAL/TRAIN MSE Ratio=3.355575 (limit=6.5)
Diff=0.014303 (limit=0.005)
ValStd=0.0012812512 (limit=0.0107903700795714)
-- At Original Scale: --
MAE=408.928063625039
RMSE/MAE=1.4393 (limit=2.5)
Slope=0.596580 (limit=0.6 .. 1.3)
Bias=376.01 (limit=+-613.392095437558)
R2=0.23
P95=1961.6943 (limit=1635.71225450015)
P99=2787.8994
-- Robustness Indicators: --
RMSE relative=187 (limit=60)
BitFail=147 (limit=5)
BitFailRate=0.0568 (limit=0.1)
-- Architecture Check: --
Data Parameter Ratio=8.612
DPR Warning: ok
Forecast Quality Score=64 (limit=60)
-> Retrain decision=Retrain
-> Retrain reasons: MSE diff=0.014303 > 0.005
bitfail=147 > 5
slope=0.5966 < slope_min=0.60
rmse_rel=187.0% > 60% AND p95=1961.7 > 1635.7
2026.08.06 12:51:19 1: mySolarForecast DEBUG> Retry attempt 2 with Seed=13809847
2026.08.06 12:51:19 1: mySolarForecast DEBUG> AI FANN Training started with Params:
input datasets=12927,
input features=123,
hidden Neurons=12,
Data Parameter Ratio=8.612,
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.00010,
learning momentum=0.5,
BitFail limit: 0.35,
Data sharing=chronological split and AI internal shuffle of training data (Train=10341, Test=2585),
Data shuffle=1 (period=25)
2026.08.06 12:51:19 1: mySolarForecast DEBUG> Epoche 1: Train MSE=0.036120, Val MSE=0.189729, Val MAE=0.416764, Val MedAE=0.476299, Bit_Fail=2095 -> Snap metric improved
2026.08.06 12:51:20 1: mySolarForecast DEBUG> Epoche 3: Train MSE=0.369887, Val MSE=0.161930, Val MAE=0.384957, Val MedAE=0.440298, Bit_Fail=2018 -> Snap metric improved
2026.08.06 12:51:20 1: mySolarForecast DEBUG> Epoche 4: Train MSE=0.162040, Val MSE=0.033377, Val MAE=0.165184, Val MedAE=0.167065, Bit_Fail=114 -> Snap metric improved
2026.08.06 12:51:20 1: mySolarForecast DEBUG> Epoche 6: Train MSE=0.045373, Val MSE=0.033377, Val MAE=0.120356, Val MedAE=0.051831, Bit_Fail=260 -> Snap weighted rmse improved
2026.08.06 12:51:20 1: mySolarForecast DEBUG> Epoche 10: Train MSE=0.022636, Val MSE=0.029640, Val MAE=0.087126, Val MedAE=0.023922, Bit_Fail=225 -> Snap metric improved
2026.08.06 12:51:21 1: mySolarForecast DEBUG> Epoche 17: Train MSE=0.016529, Val MSE=0.029640, Val MAE=0.087126, Val MedAE=0.022515, Bit_Fail=221 -> Snap weighted rmse improved
2026.08.06 12:51:22 1: mySolarForecast DEBUG> Epoche 18: Train MSE=0.017177, Val MSE=0.029640, Val MAE=0.087126, Val MedAE=0.020838, Bit_Fail=175 -> Snap weighted rmse improved
2026.08.06 12:51:22 1: mySolarForecast DEBUG> Epoche 19: Train MSE=0.012464, Val MSE=0.029640, Val MAE=0.081448, Val MedAE=0.016288, Bit_Fail=187 -> Snap weighted rmse improved
2026.08.06 12:51:22 1: mySolarForecast DEBUG> Epoche 20: Train MSE=0.013506, Val MSE=0.029640, Val MAE=0.081448, Val MedAE=0.016186, Bit_Fail=152 -> Snap bit tradeoff
2026.08.06 12:51:33 1: mySolarForecast DEBUG> Epoche 100: Train MSE=0.009161, Val MSE=0.144547, Val MAE=0.156690, Val MedAE=0.022618, Bit_Fail=269
2026.08.06 12:51:47 1: mySolarForecast DEBUG> Epoche 200: Train MSE=0.207439, Val MSE=0.800813, Val MAE=0.304809, Val MedAE=0.018549, Bit_Fail=261
2026.08.06 12:52:00 1: mySolarForecast DEBUG> Epoche 300: Train MSE=0.006108, Val MSE=0.024164, Val MAE=0.080396, Val MedAE=0.019460, Bit_Fail=127
2026.08.06 12:52:03 1: mySolarForecast DEBUG> Early stopping bei Epoche 320 (no improvement since 300 epochs)
2026.08.06 12:52:03 1: === Snapshot-Statistik ===
2026.08.06 12:52:03 1: Metric-Improvement Snapshots: 4 (letzte Epoche: 10)
2026.08.06 12:52:03 1: Weighted-RMSE-Proxy-Improvement Snapshots: 4 (letzte Epoche: 19)
2026.08.06 12:52:03 1: Bit-Improvement Snapshots: 0 (letzte Epoche: 0)
2026.08.06 12:52:03 1: Bit-Tradeoff Snapshots: 1 (letzte Epoche: 20)
2026.08.06 12:52:03 1: mySolarForecast DEBUG> Best Snapshot reloaded from Epoche 20: Train MSE=0.013506, Val MSE=0.029640, Val MAE=0.081448, Val MedAE=0.016186, Bit_Fail=152,
2026.08.06 12:52:03 1: mySolarForecast DEBUG> Run Validation Test with 20% of Input data ...
2026.08.06 12:52:03 1: mySolarForecast DEBUG> Validation finished - Best Training MSE=0.013506, Validation MSE=0.026724, Validation Bit_Fail=152
2026.08.06 12:52:03 1: mySolarForecast DEBUG> Retrain check ->
-- In Normalization Space: --
Train MSE=0.013506
Val MSE=0.026724
Val Mean=0.0236235870
VAL/TRAIN MSE Ratio=1.978698 (limit=6.5)
Diff=0.013218 (limit=0.005)
ValStd=0.0010738409 (limit=0.00590589675828749)
-- At Original Scale: --
MAE=438.763816200264
RMSE/MAE=1.4352 (limit=2.5)
Slope=0.691602 (limit=0.6 .. 1.3)
Bias=333.66 (limit=+-658.145724300396)
R2=-0.01
P95=2057.2352 (limit=1755.05526480106)
P99=3652.3959
-- Robustness Indicators: --
RMSE relative=200 (limit=60)
BitFail=152 (limit=5)
BitFailRate=0.0588 (limit=0.1)
-- Architecture Check: --
Data Parameter Ratio=8.612
DPR Warning: ok
Forecast Quality Score=64 (limit=60)
-> Retrain decision=Retrain
-> Retrain reasons: MSE diff=0.013218 > 0.005
bitfail=152 > 5
rmse_rel=200.0% > 60% AND p95=2057.2 > 1755.1
2026.08.06 12:52:03 1: mySolarForecast DEBUG> Retry attempt 3 with Seed=14066457
2026.08.06 12:52:03 1: mySolarForecast DEBUG> AI FANN Training started with Params:
input datasets=12927,
input features=123,
hidden Neurons=12,
Data Parameter Ratio=8.612,
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.00010,
learning momentum=0.5,
BitFail limit: 0.35,
Data sharing=chronological split and AI internal shuffle of training data (Train=10341, Test=2585),
Data shuffle=1 (period=25)
2026.08.06 12:52:03 1: mySolarForecast DEBUG> Epoche 1: Train MSE=0.044069, Val MSE=0.363658, Val MAE=0.581923, Val MedAE=0.652943, Bit_Fail=2319 -> Snap metric improved
2026.08.06 12:52:03 1: mySolarForecast DEBUG> Epoche 3: Train MSE=0.755154, Val MSE=0.303853, Val MAE=0.529626, Val MedAE=0.598942, Bit_Fail=2259 -> Snap metric improved
2026.08.06 12:52:03 1: mySolarForecast DEBUG> Epoche 4: Train MSE=0.305588, Val MSE=0.036046, Val MAE=0.174274, Val MedAE=0.179564, Bit_Fail=106 -> Snap metric improved
2026.08.06 12:52:04 1: mySolarForecast DEBUG> Epoche 7: Train MSE=0.045918, Val MSE=0.036046, Val MAE=0.104014, Val MedAE=0.068667, Bit_Fail=184 -> Snap weighted rmse improved
2026.08.06 12:52:04 1: mySolarForecast DEBUG> Epoche 10: Train MSE=0.045768, Val MSE=0.018827, Val MAE=0.096353, Val MedAE=0.064819, Bit_Fail=125 -> Snap metric improved
2026.08.06 12:52:04 1: mySolarForecast DEBUG> Epoche 11: Train MSE=0.016594, Val MSE=0.018827, Val MAE=0.073815, Val MedAE=0.023853, Bit_Fail=129 -> Snap weighted rmse improved
2026.08.06 12:52:17 1: mySolarForecast DEBUG> Epoche 100: Train MSE=0.007337, Val MSE=7359.102734, Val MAE=24.560012, Val MedAE=0.026342, Bit_Fail=262
2026.08.06 12:52:30 1: mySolarForecast DEBUG> Epoche 200: Train MSE=0.006395, Val MSE=2.735387, Val MAE=0.524690, Val MedAE=0.028795, Bit_Fail=265
2026.08.06 12:52:44 1: mySolarForecast DEBUG> Epoche 300: Train MSE=0.006114, Val MSE=3.696065, Val MAE=0.590682, Val MedAE=0.027009, Bit_Fail=258
2026.08.06 12:52:46 1: mySolarForecast DEBUG> Early stopping bei Epoche 311 (no improvement since 300 epochs)
2026.08.06 12:52:46 1: === Snapshot-Statistik ===
2026.08.06 12:52:46 1: Metric-Improvement Snapshots: 4 (letzte Epoche: 10)
2026.08.06 12:52:46 1: Weighted-RMSE-Proxy-Improvement Snapshots: 2 (letzte Epoche: 11)
2026.08.06 12:52:46 1: Bit-Improvement Snapshots: 0 (letzte Epoche: 0)
2026.08.06 12:52:46 1: Bit-Tradeoff Snapshots: 0 (letzte Epoche: 0)
2026.08.06 12:52:46 1: mySolarForecast DEBUG> Best Snapshot reloaded from Epoche 11: Train MSE=0.016594, Val MSE=0.018827, Val MAE=0.073815, Val MedAE=0.023853, Bit_Fail=129,
2026.08.06 12:52:46 1: mySolarForecast DEBUG> Run Validation Test with 20% of Input data ...
2026.08.06 12:52:46 1: mySolarForecast DEBUG> Validation finished - Best Training MSE=0.016594, Validation MSE=0.018633, Validation Bit_Fail=129
2026.08.06 12:52:46 1: mySolarForecast DEBUG> Retrain check ->
-- In Normalization Space: --
Train MSE=0.016594
Val MSE=0.018633
Val Mean=32.6580282200
VAL/TRAIN MSE Ratio=1.122899 (limit=6.5)
Diff=0.002039 (limit=0.005)
ValStd=53.3125529465 (limit=8.16450705500493)
-- At Original Scale: --
MAE=388.459047464024
RMSE/MAE=1.5333 (limit=2.5)
Slope=0.301312 (limit=0.6 .. 1.3)
Bias=278.67 (limit=+-582.688571196036)
R2=0.30
P95=1829.9886 (limit=1553.8361898561)
P99=2727.5143
-- Robustness Indicators: --
RMSE relative=189 (limit=60)
BitFail=129 (limit=5)
BitFailRate=0.0499 (limit=0.1)
-- Architecture Check: --
Data Parameter Ratio=8.612
DPR Warning: ok
Forecast Quality Score=62 (limit=60)
-> Retrain decision=Retrain
-> Retrain reasons: valstd=53.31255295 > limit=8.16450706
bitfail=129 > 5
slope=0.3013 < slope_min=0.60
rmse_rel=189.0% > 60% AND p95=1830.0 > 1553.8
2026.08.06 12:52:46 1: mySolarForecast DEBUG> Best model after retries comes from Attempt=1 with:
Seed=13710002,
Model Score=64,
Model Slope=0.60,
Model Bias=376.01,
VAL MedAE=103.15,
VAL MAE=408.93,
VAL weighted RMSE=588.55,
VAL weighted RMSE relative=187 %,
VAL weighted RMSE_Rating=very bad,
VAL R2=0.23,
Val MSE=0.020375
2026.08.06 12:52:46 1: mySolarForecast DEBUG> AI FANN training data successfully written to file: ./FHEM/FhemUtils/NeuralNet_SolarForecast_mySolarForecast
2026.08.06 12:52:47 1: mySolarForecast DEBUG> AI FANN con Training BlockingCall PID '31253' finished. Trainstate: ok
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 12:52:46 (Laufzeit in Sekunden: 222)
- KI Abfragestatus: ok
- letzte KI-Ergebnis Generierungsdauer: 135.04 ms
- Verbrauchernummer Wärmepumpe: 03
Bewertungsüberblick
- Trainingsbewertung: Retrain (MSE diff=0.014303 > 0.005 | bitfail=147 > 5 | slope=0.5966 < slope_min=0.60 | rmse_rel=187.0% > 60% AND p95=1961.7 > 1635.7)
- Data-Parameter-Ratio Bewertung: ok
- Lernverhalten: sehr früh konvergiert (1.8 % 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: 12927 Datensätze (Training=10341, Validation=2586)
- Architektur: Inputs=123, Hidden Layers=12, Outputs=1
- Hyperparameter: Learning Rate=0.0001, 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: 264 (max. 15000)
- Training MSE: 0.006072
- Validation MSE: 0.020375
- Validation MSE Average: 0.043161
- Validation MSE Standard Deviation: 0.001281
- Validation Bit_Fail: 147
- Data Parameter Ratio: 8.612
- Model Bias: 376 Wh
- Model Slope: 0.60
- Trainingsbewertung: Retrain
Fehlermaße der Prognosen
- MAE: 408.93 Wh
- MedAE: 103.15 Wh
- RMSE: 588.55 Wh
- RMSE relative: 187 %
- RMSE Rating: very bad
- MAPE: 73.99 %
- MdAPE: 27.15 %
- R2: 0.23
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: 1.00
- Slope Live: -
- Slope Drift: 1
- Bias Reference: 0
- Bias Live: -
- Bias Drift: 0
- Score: -
- Index: -
- Drift Bewertung: fresh_model
- Empfehlung für Retrain: keine
- letzte Rekalibrierung: -
Zitat von: DS_Starter am 06 August 2026, 12:37:45Deswegen lösche aiConHiddenLayers und lasse das Modul die Architektur selbst bestimmen.Erledigt und neu gestartet.
Dein Modell muß erstmal anfangen richtig zu lernen, momentan passiert das überhaupt nicht.