76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

DS_Starter

#6135
Hallo 300P,

ZitatKann ich mir die Ergebniswerte aus der Driftanalyse eigentlich auch per 'graphicHeaderOwnspec' oder eventuell sogar schon per special_xxx_yyyy mit anzeigen lassen ?
In graphicHeaderOwnspec kann man sich die Werte schon reinholen, aber nicht "Out of the Box".
Man braucht die Werte erst als Readings. Das ist aber nicht schwer.
Du kannst z.B. in die ctrlUserExitFn einfügen:

{
  my $fanntyp = 'con';
 
  my $drift_window     = AiNeuralVal ($name, $fanntyp, 'DriftWindowSize',    '-');         
  my $drift_score      = AiNeuralVal ($name, $fanntyp, 'DriftScore',         '-');
  my $drift_index      = AiNeuralVal ($name, $fanntyp, 'DriftIndex',         '-');
  my $drift_rmserel    = AiNeuralVal ($name, $fanntyp, 'DriftRmseRelRatio',  '-'); 
  my $bias_ref         = AiNeuralVal ($name, $fanntyp, 'DriftRefBias',       '-');
  my $drift_bias_live  = AiNeuralVal ($name, $fanntyp, 'DriftBiasLive',      '-');         
  my $drift_bias       = AiNeuralVal ($name, $fanntyp, 'DriftBias',          '-');         
  my $drift_flag       = AiNeuralVal ($name, $fanntyp, 'DriftFlag',          '-');
  my $slope_ref        = AiNeuralVal ($name, $fanntyp, 'DriftRefSlope',      '-'); 
  my $slope_live       = AiNeuralVal ($name, $fanntyp, 'DriftSlopeLive',     '-');         
  my $drift_slope      = AiNeuralVal ($name, $fanntyp, 'DriftSlope',         '-');
  my $model_age        = AiNeuralVal ($name, $fanntyp, 'ModelAgeHours',      '-');
  my $last_recaltm     = AiNeuralVal ($name, $fanntyp, 'DriftLastRecalTime', '-');
  my $drift_retrecomd  = AiNeuralVal ($name, $fanntyp, 'RetrainRecommendation', '-');
  my $drift_retreason  = AiNeuralVal ($name, $fanntyp, 'RetrainReason',         '-');

  storeReading ('userFn_Analysefenster', $drift_window);
  storeReading ('userFn_Drift_RMSE_ratio', $drift_rmserel);
  storeReading ('userFn_Slope_Reference', $slope_ref);
  storeReading ('userFn_Slope_Live', $slope_live);
  storeReading ('userFn_Slope_Drift', $drift_slope);
  storeReading ('userFn_Bias_Reference', $bias_ref);
  storeReading ('userFn_Bias_Live', $drift_bias_live);
  storeReading ('userFn_Bias_Drift', $drift_bias);
  storeReading ('userFn_Score', $drift_score);
  storeReading ('userFn_Index', $drift_index);
  storeReading ('userFn_Drift_Flag', $drift_flag);
  storeReading ('userFn_ModelAlter', $model_age);
  storeReading ('userFn_letzte_Rekal', $last_recaltm);
  storeReading ('userFn_Retrain_Recommendation', $drift_retrecomd);
  storeReading ('userFn_Retrain_Grund', $drift_retreason);
}

Dann hast du die Readings die du problemlos wie gewohnt in dein Dashboard holen kannst. Die Werte sind "roh" und müssen ggf. noch auf die gewünschten Stellen gerundet werden.

LG,
Heiko
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

Zur Erhöhung der Übersichtlichkeit hat da AI Statuspopup nun auf/zuklappbare Abschnitte.
-> im Contrib.
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

Neue Version ist eingecheckt, vor allem auch wegen dem wichtigen Fix in der Flowgrafik.
Morgen früh wie üblich...
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

Ich habe mich noch weiter mit dem Training und der darauf aufbauenden Driftanalyse und –kompensation beschäftigt. Einiges im Code habe ich verfeinert, aber ist noch nicht im Contrib.
Aber man lernt nie aus...
Eine wichtige Erkenntnis: Auch wenn es schön aussieht wenn das Training nach wenigen Epochen beendet ist, ist es kein Zeichen von gutem Lernen.
Das Modell hat dann die Datenvarianz nicht vollständig durchlaufen und generalisiert schlechter auf unbekannte Situationen. Dagegen wirken eine niedrigere Lernrate und ein strengeres BitFail-Limit – beides zwingt die KI länger zu trainieren und mehr Datenvariationen zu verarbeiten:

aiConLearnRate=0.002
aiConBitFailLimit=0.15

Zusätzlich ist

aiConShuffleMode=1
generell empfehlenswert, da dadurch die aktuellsten Daten als Validierungsmaßstab verwendet werden und das Modell realistischer bewertet wird ob es auf aktuelle Muster gut generalisiert. Ich werde den default entsprechend ändern.

Trainingsergebnis:  Deutliche Verbesserung
Das neue Training ist signifikant besser als das vorherige. Ein direkter Vergleich:
Kennzahl Vorher Jetzt    Bewertung
Beste Epoche 333 3998    ✓ 12× mehr Training
Train MSE 0.000099 0.000177  weniger überangepasst
Val MSE         0.000122 0.000172  ✓ näher beieinander
Val/Train Ratio 1.23 0.97    ✓ kein Overfitting
Slope         0.86 0.84    ≈ gleich, noch Potenzial
Bit_Fail 0 0    ✓
Score        2.12      79    ✓
               (Drift) (Training)

Was besonders auffällt
Das Modell trainiert jetzt bis Epoche 3998 mit Early Stopping bei 4998 – das ist das erwartete Verhalten mit shuffle_mode=1 und dem angepassten BitFail-Limit=0.15. Die Validierungskurve ist gesund: Val MSE fällt von 0.001082 auf 0.000172 ohne zu divergieren.
Der Val/Train MSE Ratio von 0.97 ist bemerkenswert gut – normalerweise ist Val MSE höher als Train MSE. Das deutet darauf hin, dass der chronologische Split (neueste 20% als Validierung) die Validierungsdaten etwas leichter macht als die Trainingsdaten, was strukturell in Ordnung ist.

Noch offene Baustelle: Slope 0.84
Der Slope liegt mit 0.84 knapp unter dem Idealwert 1.0 und gerade noch im grünen Bereich (Limit 0.7). Das bedeutet das Modell unterschätzt tendenziell hohe Verbräuche leicht. Das wird sich in der Drift-Analyse zeigen als leicht positiver DriftBias. Die Bias-Korrektur in _aiFannApplyBiasCorrection sollte das aber kompensieren.

LG,
Heiko
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

300P

Zitat von: DS_Starter am 17 Mai 2026, 14:52:52Noch offene Baustelle: Slope 0.84
Der Slope liegt mit 0.84 knapp unter dem Idealwert 1.0 und gerade noch im grünen Bereich (Limit 0.7). Das bedeutet das Modell unterschätzt tendenziell hohe Verbräuche leicht. Das wird sich in der Drift-Analyse zeigen als leicht positiver DriftBias. Die Bias-Korrektur in _aiFannApplyBiasCorrection sollte das aber kompensieren.

Mein derzeitiger Wissensstand
->> Aussage gilt aber nur Haushalte mit Wärmepumpen <<-

Sind Wärmepumpen im entsprechenden System (CON-Forecast mit AI:FANN) aktiv, ist bereits ein Drift-Slope von 0,7 als sehr gut anzusehen.
 ;)

(Ich liege meist -bestenfalls- zwischen 0.58 -0.68)

Das andere kann ich so bestätigen. :)
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP| ESP32_AI_on_the_Edge|ESP32CAM usw.

dieter114

#6140
@300P
Ich habe gestern alle historischen Daten gelöscht und einen Neustart versucht.
In den beiden Bildern sieht Du die PV Werte für heute, die total ok sind.
Aber die CON Werte sind immer noch völliger Unsinn.
Den tatsächlichen Verbrauch kannst du ja sehen,
woher kommen nur diese riesengrößen Werte?
Oder gehört etwa die eingespeiste (Verkaufte) Strommenge zu den CON Werten?
Das würde so Einiges erklären.....
Informationen zum neuronalen Netz der Verbrauchsvorhersage

letztes KI-Training: 16.05.2026 20:11:32 / Laufzeit in Sekunden: 1701
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 13.42 ms
Alpha: 0.7
Verbrauchernummer Wärmepumpe: -

=== Modellparameter ===

Normierungsgrenzen: PV=15400 Wh, Hausverbrauch: Min=0 Wh / Max=44466 Wh
Trainingsdaten: 9234 Datensätze (Training=7387, Validation=1847)
Architektur: Inputs=69, Hidden Layers=80-40, Outputs=1
Hyperparameter: Learning Rate=0.005, Momentum=0.6, BitFail-Limit=0.25
Aktivierungen: Hidden=ELLIOT_SYMMETRIC, Steepness=0.4, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_common_active_pv
Zufallsgenerator: Mode=2, Period=10
Modellalter: - h

=== Trainingsmetriken ===

bestes Modell bei Epoche: 4260 (max. 15000)
Training MSE: 0.000126
Validation MSE: 0.000281
Validation MSE Average: 0.000287
Validation MSE Standard Deviation: 0.000011
Validation Bit_Fail: 0
Model Bias: 118 Wh
Model Slope: 1.0
Trainingsbewertung: Retrain

=== Fehlermaße der Prognosen ===

MAE: 240.91 Wh
MedAE: 66.77 Wh
RMSE: 298.90 Wh
RMSE relative: 113 %
RMSE Rating: weak
MAPE: 56.72 %
MdAPE: 18.35 %
R²: 0.93

=== 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 Bias Live: -
Drift Index: -
Drift Bewertung: -
Slope recalibrated: -
Bias recalibrated: -
letzte Rekalibrierung: -
LG WDS
RPi II+III+V,OWX, HM Zisterne, MAPLESDuino(adv), ESPEasy, Tasmota, MQTT2Server, WU-Upload, TabletUI, Poolsteuerung fhem, Fronius, BYD Solaranlage

DS_Starter

#6141
@WolfDieter,

du lädst doch ein Elektroauto.
Ein BEV Profil habe ich noch nicht in die KI eingefügt. Wenn es funktioniert, dann nur zufällig.

Zur Kontrolle kannst du uns mal einen Auszug von "get ... nextHours" posten.
Relevant sind diese Keys zu jeder Stunde:

conlegfc: 627, conaifc: 764, confc: 764

conlegfc - CON Prognose über die Legacy Variante
conaifc - CON Prognose über KI
confc  - die genutzte Prognose inkl. Alpha

Edit: Was auch sehr auffällig ist, die Korrelation mit deinen PV Erzeugungen Prognosen. Das ist sehr merkwürdig. Zeige auch mal bitte die Ausgabe von "get ... valDecTree aiRawData 100". Das sollte als Überblick erstmal reichen.

LG,
Heiko
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

dieter114

Hallo Heiko,
das Auto hab ich 3 Tage nicht geladen.
get ... nextHours :
NextHour00 => starttime: 2026-05-17 17:00:00, day: 17, weekday: Sun, holiday: 0, hourofday: 18, today: 1
              pvapifcraw: 4188, pvapifc: 3057, pvaifc: -, pvfc: 3057, aihit: 0
              conlegfc: 1757, conaifc: 5134, confc: 4121, conbiascorr: 0, confcEx: 1757, weatherid: 3, wcc: 81, rr1c: 0.00
              temp: 17.10, windspeed: 13.00, windspeed_fast: 13.00, rad1h: 1210, sunaz: 261.40, sunalt: 31.40, DoN: 1
              rrange: 0.00, crange: 80, DaysInRange: 3, correff: 0.73/0.85
              soc01: 91.9, soc02: -, soc03: -, socprogwhsum: 11769
              rcdchargebat01: 1, rcdchargebat02: -, rcdchargebat03: -
              lcintimebat01: -, lcintimebat02: -, lcintimebat03: -
              strategybat01: loadRelease, strategybat02: -, strategybat03: -
NextHour01 => starttime: 2026-05-17 18:00:00, day: 17, weekday: Sun, holiday: 0, hourofday: 19, today: 1
              pvapifcraw: 2624, pvapifc: 2624, pvaifc: -, pvfc: 2624, aihit: 0
              conlegfc: 1022, conaifc: 3592, confc: 2821, conbiascorr: 0, confcEx: 1022, weatherid: 3, wcc: 84, rr1c: 0.00
              temp: 16.70, windspeed: 11.00, windspeed_fast: 11.00, rad1h: 760, sunaz: 273.50, sunalt: 22.20, DoN: 1
              rrange: 0.00, crange: 85, DaysInRange: 3, correff: 1.00/-
              soc01: 90.4, soc02: -, soc03: -, socprogwhsum: 11572
              rcdchargebat01: 1, rcdchargebat02: -, rcdchargebat03: -
              lcintimebat01: -, lcintimebat02: -, lcintimebat03: -
              strategybat01: loadRelease, strategybat02: -, strategybat03: -
NextHour02 => starttime: 2026-05-17 19:00:00, day: 17, weekday: Sun, holiday: 0, hourofday: 20, today: 1
              pvapifcraw: 1320, pvapifc: 1320, pvaifc: 789, pvfc: 789, aihit: 1
              conlegfc: 549, conaifc: 718, confc: 667, conbiascorr: 0, confcEx: 549, weatherid: 3, wcc: 84, rr1c: 0.00
              temp: 16.00, windspeed: 11.00, windspeed_fast: 11.00, rad1h: 380, sunaz: 284.90, sunalt: 13.60, DoN: 1
              rrange: 0.00, crange: 85, DaysInRange: 3, correff: 1.00/-
              soc01: 91.2, soc02: -, soc03: -, socprogwhsum: 11678
              rcdchargebat01: 1, rcdchargebat02: -, rcdchargebat03: -
              lcintimebat01: -, lcintimebat02: -, lcintimebat03: -
              strategybat01: loadRelease, strategybat02: -, strategybat03: -
NextHour03 => starttime: 2026-05-17 20:00:00, day: 17, weekday: Sun, holiday: 0, hourofday: 21, today: 1
              pvapifcraw: 324, pvapifc: 204, pvaifc: -, pvfc: 204, aihit: 0
              conlegfc: 191, conaifc: 234, confc: 221, conbiascorr: 0, confcEx: 191, weatherid: 3, wcc: 84, rr1c: 0.00
              temp: 15.30, windspeed: 9.00, windspeed_fast: 9.00, rad1h: 90, sunaz: 296.30, sunalt: 5.00, DoN: 1
              rrange: 0.00, crange: 85, DaysInRange: 4, correff: 0.63/0.86
              soc01: 91.1, soc02: -, soc03: -, socprogwhsum: 11661
              rcdchargebat01: 1, rcdchargebat02: -, rcdchargebat03: -
              lcintimebat01: -, lcintimebat02: -, lcintimebat03: -
              strategybat01: loadRelease, strategybat02: -, strategybat03: -

und get ... valDecTree aiRawData 100 liefert nichts!
LG WDS
RPi II+III+V,OWX, HM Zisterne, MAPLESDuino(adv), ESPEasy, Tasmota, MQTT2Server, WU-Upload, TabletUI, Poolsteuerung fhem, Fronius, BYD Solaranlage

DS_Starter

Jetzt hast du uns leider nur die Prognose der kommenden 4 Stunden gezeigt:

conlegfc: 1757, conaifc: 5134, confc: 4121
conlegfc: 1022, conaifc: 3592, confc: 2821
conlegfc: 549, conaifc: 718, confc: 667
conlegfc: 191, conaifc: 234, confc: 221

Man sieht schon dass die KI Prognose deutlich über Legacy liegt solange, und das ist jetzt eine Vermutung, deine PV Erzeugung vorhanden bzw. hoch ist.

Das  "get ... valDecTree aiRawData 100" hast du vermutlich nicht richtig ausgeführt. Es _muss_ Werte geben wenn du nicht alle gelöscht hast. Screenshots

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

dieter114

sorry  >:(
Below are 22 of a total of 22 records are displayed.

2026051620 => hod: 20, dayname: Sat, sunaz: 284.70, sunalt: 13.40, rad1h: 630, wcc: 51, weatherid: 1, rr1c: 0.00, temp: 12.9, socwhsum: 12621
              windspeed: 15.00, windspeed_fast: 15.00, pvrl: 1271, pvrlvd: 1, comforttemp: 21, conaifc: 1848, con: 562, gcons: 2, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 0
2026051621 => hod: 21, dayname: Sat, sunaz: 296.10, sunalt: 4.90, rad1h: 160, wcc: 44, weatherid: 1, rr1c: 0.00, temp: 12.1, socwhsum: 12403
              windspeed: 11.00, windspeed_fast: 11.00, pvrl: 307, pvrlvd: 1, comforttemp: 21, conaifc: 911, con: 270, gcons: 32, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 0
2026051622 => hod: 22, dayname: Sat, sunaz: 303.00, sunalt: 0.20, rad1h: -, wcc: 43, weatherid: 1, rr1c: 0.00, temp: 10.1, socwhsum: 11712
              windspeed: 9.00, windspeed_fast: 9.00, pvrl: 9, pvrlvd: 1, comforttemp: 21, conaifc: 442, con: 64, gcons: 7, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 0
2026051623 => hod: 23, dayname: Sat, sunaz: 320.60, sunalt: -9.80, rad1h: -, wcc: 42, weatherid: 1, rr1c: 0.00, temp: 8.3, socwhsum: 10995
              windspeed: 7.00, windspeed_fast: 7.00, pvrl: 0, pvrlvd: 1, comforttemp: 21, conaifc: 78, con: 61, gcons: 6, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 0
2026051624 => hod: 24, dayname: Sat, sunaz: 334.20, sunalt: -14.80, rad1h: -, wcc: 38, weatherid: 1, rr1c: 0.00, temp: 7.3, socwhsum: 10534
              windspeed: 7.00, windspeed_fast: 7.00, pvrl: 1, pvrlvd: 1, comforttemp: 21, conaifc: 117, con: 52, gcons: 6, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 0
2026051701 => hod: 01, dayname: Sun, sunaz: 348.70, sunalt: -17.70, rad1h: -, wcc: 38, weatherid: 101, rr1c: 0.00, temp: 7.3, socwhsum: 10086
              windspeed: 7.00, windspeed_fast: 7.00, pvrl: 0, pvrlvd: 1, comforttemp: 21, conaifc: -, con: 44, gcons: 5, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 0
2026051702 => hod: 02, dayname: Sun, sunaz: 3.50, sunalt: -18.30, rad1h: -, wcc: 35, weatherid: 1, rr1c: 0.00, temp: 5.9, socwhsum: 9728
              windspeed: 7.00, windspeed_fast: 7.00, pvrl: 1, pvrlvd: 1, comforttemp: 21, conaifc: -, con: 43, gcons: 5, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 0
2026051703 => hod: 03, dayname: Sun, sunaz: 18.30, sunalt: -16.60, rad1h: -, wcc: 31, weatherid: 1, rr1c: 0.00, temp: 5.7, socwhsum: 9293
              windspeed: 7.00, windspeed_fast: 7.00, pvrl: 0, pvrlvd: 1, comforttemp: 21, conaifc: 1294, con: 44, gcons: 6, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 0
2026051704 => hod: 04, dayname: Sun, sunaz: 32.30, sunalt: -12.60, rad1h: -, wcc: 33, weatherid: 1, rr1c: 0.00, temp: 5.2, socwhsum: 8922
              windspeed: 7.00, windspeed_fast: 7.00, pvrl: 1, pvrlvd: 1, comforttemp: 21, conaifc: 1277, con: 45, gcons: 4, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 0
2026051705 => hod: 05, dayname: Sun, sunaz: 45.50, sunalt: -6.80, rad1h: -, wcc: 37, weatherid: 1, rr1c: 0.00, temp: 4.8, socwhsum: 8461
              windspeed: 7.00, windspeed_fast: 7.00, pvrl: 1, pvrlvd: 1, comforttemp: 21, conaifc: 1258, con: 49, gcons: 6, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 0
2026051706 => hod: 06, dayname: Sun, sunaz: 57.70, sunalt: 0.70, rad1h: -, wcc: 40, weatherid: 1, rr1c: 0.00, temp: 4.6, socwhsum: 8115
              windspeed: 7.00, windspeed_fast: 7.00, pvrl: 42, pvrlvd: 1, comforttemp: 21, conaifc: 1291, con: 81, gcons: 8, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 0
2026051707 => hod: 07, dayname: Sun, sunaz: 69.20, sunalt: 8.90, rad1h: 210, wcc: 44, weatherid: 1, rr1c: 0.00, temp: 4.6, socwhsum: 8576
              windspeed: 7.00, windspeed_fast: 7.00, pvrl: 928, pvrlvd: 1, comforttemp: 21, conaifc: 1912, con: 863, gcons: 5, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 0
2026051708 => hod: 08, dayname: Sun, sunaz: 80.60, sunalt: 17.40, rad1h: 670, wcc: 39, weatherid: 1, rr1c: 0.00, temp: 6.1, socwhsum: 10790
              windspeed: 7.00, windspeed_fast: 7.00, pvrl: 2617, pvrlvd: 1, comforttemp: 21, conaifc: 3619, con: 2354, gcons: 6, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 0
2026051709 => hod: 09, dayname: Sun, sunaz: 92.20, sunalt: 26.50, rad1h: 1220, wcc: 39, weatherid: 1, rr1c: 0.00, temp: 8.6, socwhsum: 12800
              windspeed: 7.00, windspeed_fast: 7.00, pvrl: 4723, pvrlvd: 1, comforttemp: 21, conaifc: 5768, con: 2021, gcons: 3, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 0
2026051710 => hod: 10, dayname: Sun, sunaz: 104.90, sunalt: 35.60, rad1h: 1850, wcc: 41, weatherid: 1, rr1c: 0.00, temp: 10.6, socwhsum: 12659
              windspeed: 11.00, windspeed_fast: 11.00, pvrl: 7166, pvrlvd: 1, comforttemp: 21, conaifc: 8012, con: 1283, gcons: 0, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 1
2026051711 => hod: 11, dayname: Sun, sunaz: 119.70, sunalt: 44.10, rad1h: 2380, wcc: 43, weatherid: 1, rr1c: 0.00, temp: 12.6, socwhsum: 12646
              windspeed: 11.00, windspeed_fast: 11.00, pvrl: 9575, pvrlvd: 1, comforttemp: 21, conaifc: 10118, con: 1220, gcons: 0, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 1
2026051712 => hod: 12, dayname: Sun, sunaz: 137.90, sunalt: 51.20, rad1h: 2590, wcc: 48, weatherid: 1, rr1c: 0.00, temp: 14.2, socwhsum: 12634
              windspeed: 13.00, windspeed_fast: 13.00, pvrl: 9465, pvrlvd: 1, comforttemp: 21, conaifc: 11122, con: 1083, gcons: 0, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 1
2026051713 => hod: 13, dayname: Sun, sunaz: 160.50, sunalt: 56.00, rad1h: 2460, wcc: 61, weatherid: 2, rr1c: 0.00, temp: 15.9, socwhsum: 12621
              windspeed: 13.00, windspeed_fast: 13.00, pvrl: 6887, pvrlvd: 1, comforttemp: 21, conaifc: 10072, con: 965, gcons: 0, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 1
2026051714 => hod: 14, dayname: Sun, sunaz: 186.20, sunalt: 57.00, rad1h: 2450, wcc: 65, weatherid: 2, rr1c: 0.00, temp: 16.5, socwhsum: 12608
              windspeed: 13.00, windspeed_fast: 13.00, pvrl: 10957, pvrlvd: 1, comforttemp: 21, conaifc: 10848, con: 1148, gcons: 0, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 1
2026051715 => hod: 15, dayname: Sun, sunaz: 210.80, sunalt: 54.10, rad1h: 2270, wcc: 69, weatherid: 2, rr1c: 0.00, temp: 16.8, socwhsum: 12582
              windspeed: 13.00, windspeed_fast: 13.00, pvrl: 5942, pvrlvd: 1, comforttemp: 21, conaifc: 9711, con: 1010, gcons: 0, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 1
2026051716 => hod: 16, dayname: Sun, sunaz: 231.30, sunalt: 48.10, rad1h: 1920, wcc: 75, weatherid: 2, rr1c: 0.00, temp: 17.0, socwhsum: 12570
              windspeed: 13.00, windspeed_fast: 13.00, pvrl: 5795, pvrlvd: 1, comforttemp: 21, conaifc: 8381, con: 1017, gcons: 0, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 1
2026051717 => hod: 17, dayname: Sun, sunaz: 247.70, sunalt: 40.20, rad1h: 1630, wcc: 78, weatherid: 2, rr1c: 0.00, temp: 17.3, socwhsum: 12557
              windspeed: 11.00, windspeed_fast: 11.00, pvrl: 5295, pvrlvd: 1, comforttemp: 21, conaifc: 6724, con: 1136, gcons: 0, presence: -, holiday: 0
              hpcsm: -, bevcsm: 01, csme01: 0, bevcsmSoC01: 0, bevcsmTargSoC01: 100, bevcsmBatCap01: 15400, bevcsmPwr01: 0, csme02: 1
                                                                                                                         
RPi II+III+V,OWX, HM Zisterne, MAPLESDuino(adv), ESPEasy, Tasmota, MQTT2Server, WU-Upload, TabletUI, Poolsteuerung fhem, Fronius, BYD Solaranlage

dieter114

Zitat von: DS_Starter am 17 Mai 2026, 16:54:49du lädst doch ein Elektroauto.
Ein BEV Profil habe ich noch nicht in die KI eingefügt. Wenn es funktioniert, dann nur zufällig.
Also das Auto einmal herausnehmen?
Ich dachte wenn nichts geladen wird, kommt über diesen Weg auch nichts.

LG WDS
RPi II+III+V,OWX, HM Zisterne, MAPLESDuino(adv), ESPEasy, Tasmota, MQTT2Server, WU-Upload, TabletUI, Poolsteuerung fhem, Fronius, BYD Solaranlage

DS_Starter

#6146
ZitatAlso das Auto einmal herausnehmen?
Ich dachte wenn nichts geladen wird, kommt über diesen Weg auch nichts.
Ich bin mir noch unsicher. In deiner aiRawData Ausgabe sieht man deutlich 2 Dinge:

- 1. die hohen CON Prognosen kommen von der KI, z.B. conaifc: 8012
- 2. die CON Prognosen der KI steigen und sinken mit der PV-Erzeugung, respektive auch mit der Prognose die ja gut läuft

Ich würde dir raten zum Vergleich die KI mit einem Profil ohne PV zu trainieren, z.B. v1_common_active oder v1_common. Es soll dazu dienen der für mich unerklärlichen starken Korrelation mit der PV Erzeugung auf die Spur zu kommen. Dann sehen wir weiter.

Wenn die aktuelle CON-Prognose deine Steuerung stört, kannst du mit aiConActivate=2 in den Train-Only Mode schalten und nur zur Analyse später umschalten.
Nutze auch die aktuellen Erkenntnisse und stelle vor dem nächsten Training ein:

aiConLearnRate=0.002
aiConBitFailLimit=0.15
aiConShuffleMode=1

Hast du irgendwelche Consumer (in der Vergangenheit) die stark mit der PV-Erzeugung korrelierten, z.B. Poolheizung?
Eventuell hat 300P noch Ideen?

LG,
Heiko
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

dieter114

Ok, mach ich.
Führt diese Config z.B. der Poolpumpe zu Problemen
weil ich pcurr und power gleichzeitig definiert habe?

LG WDS
RPi II+III+V,OWX, HM Zisterne, MAPLESDuino(adv), ESPEasy, Tasmota, MQTT2Server, WU-Upload, TabletUI, Poolsteuerung fhem, Fronius, BYD Solaranlage

DS_Starter

Sehr unwahrscheinlich. Die Pumpe müßte in der Vergangenheit! sehr hohe Verbräuche in aiRawData gespeichert haben um das Verhalten zu erkären. Das kannst du natürlich mal prüfen ob es solche hohen Werte für diesen Verbraucher und damit den Gesamtverbrauch gibt.
Es geht immer um die Vergangenheit! Das Training findet auf alten, gespeicherten "Wissen" statt. Wenn dort Fehler bzw, fehlerhafte Werte gespeichert sind kann das auf die KI-Prognose durchschlagen denn die KI "lernt" ja daraus.
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