76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

300P

Mit der letzten Version und einigen Anpassungen der Parameter aiCon* hat sich jetzt ein "relativ" gutes Ergebnis seit 2 Tagen bei mir eingependelt.


Informationen zum neuronalen Netz der Verbrauchsvorhersage

letztes KI-Training: 13.01.2026 03:20:19 / Laufzeit in Sekunden: 3604
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 63.12 ms
Verbrauchernummer Wärmepumpe: 08

=== Modellparameter ===

Normierungsgrenzen: PV=16071 Wh, Hausverbrauch: Min=0 Wh / Max=7598 Wh
Trainingsdaten: 7013 Datensätze (Training=5610, Validierung=1403)
Architektur: Inputs=108, Hidden Layers=64-32, Outputs=1
Hyperparameter: Learning Rate=0.001, Momentum=0.2, BitFail-Limit=0.35
Aktivierungen: Hidden=GAUSSIAN, Steilheit=1.5, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_heatpump_active_pv
Zufallsgenerator: Mode=1, Periode=15

=== Trainingsmetriken ===

bestes Modell bei Epoche: 1905 (von max. 15000)
Training MSE: 0.002047
Validation MSE: 0.007452
Validation MSE Average: 0.010264
Validation MSE Standard Deviation: 0.000228
Validation Bit_Fail: 0
Model Bias: 601 Wh
Model Slope: 0.6
Trainingsbewertung: Retrain

=== Fehlermaße der Prognosen ===

MAE: 501.66 Wh
MedAE: 370.47 Wh
RMSE: 616.07 Wh
RMSE relative: 27 %
RMSE Rating: weak
MAPE: 21.64 %
MdAPE: 18.92 %
R²: 0.41

=== Drift-Kennzahlen ===

Drift Score: -
Drift RMSE relative: -
Drift Bias: -
Drift Slope: -
Drift Bewertung: -


Nur unsere "Kochorgie" heute Mittag konnte sicherlich niemand vorhersehen... 8)


Aktuelle Einstellungen / Parameter:
attr Forecast aiControl aiTrainStart=3 \
aiStorageDuration=3600 \
aiTreesPV=30 \
aiConActivate=1 \
aiConAlpha=0.4\
aiConTrainStart=7:2 \
aiConActFunc=GAUSSIAN \
aiConHiddenLayers=64-32 \
aiConLearnRate=0.001 \
aiConMomentum=0.2 \
aiConShuffleMode=1 \
aiConShufflePeriod=15 \
aiConSteepness=1.5 \
aiConTrainAlgo=INCREMENTAL \
aiConProfile=v1_heatpump_active_pv

Gruß
300P

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

DS_Starter

ZitatDa sollte auch kein Hinweis kommen wenn "FF" mit dabei ist, nur wenn's fehlt ;)
Genau, wenn es fehlt kommt im Systemcheck die Meldung wie im Anhang zu sehen.
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

stefanru

Das macht aber kein Sinn ich habe FF drin und die Daten im DWD Device enthalten auch FF:
forecastProperties SunUp, SunRise, SunSet, Rad1h, R101, TTT, Tx, Tn, Tg, DD, FX1, RR1c, RR6c, R600, RRhc, Rh00, ww, wwd, Neff, FF

Ich sehe die Daten im Solarcast nicht und bekomme die Zeile im Check?
FHEM: Raspberry PI 400+SSD Viessmann, Fronius, BYD, Wunderground, Max, Shelly, ESPEasy, FHEMPY,...  Docker + Portainer: Immich, Authelia, Caddy, Gerbera, Paperless NGX
Maintainer: Vitoconnect
GIT: https://github.com/StefanRu1
Kaffeekasse: https://www.paypal.me/stefanru01

DS_Starter

@Stefan,
du hast FF gesetzt und bekommst im Check auch ein "ok" -> alles gut.
Die Daten siehst du z.B. mit "get .. nextHours" -> Key windspeed:

NextHour00 => starttime: 2026-01-13 17:00:00, day: 13, weekday: Di, hourofday: 18, today: 1
              pvapifcraw: 0, pvapifc: 0, pvaifc: -, pvfc: 0, aihit: 0
              conlegfc: 146, conaifc: -, confc: 146, confcEx: 146, weatherid: 103, wcc: 93, rr1c: 0.00
              temp: 3.30, windspeed: 13.00, rad1h: 0, sunaz: 247, sunalt: -9, DoN: 0
              rrange: 0.00, crange: -, DaysInRange: -, correff: 1.00/0.08
              soc01: 87.0, soc02: 50.4, soc03: -, socprogwhsum: 6869
              rcdchargebat01: 1, rcdchargebat02: 1, rcdchargebat03: -
              lcintimebat01: 1, lcintimebat02: 1, lcintimebat03: -
              strategybat01: optPower, strategybat02: optPower, strategybat03: -
NextHour01 => starttime: 2026-01-13 18:00:00, day: 13, weekday: Di, hourofday: 19, today: 1
              pvapifcraw: 0, pvapifc: 0, pvaifc: -, pvfc: 0, aihit: 0
              conlegfc: 172, conaifc: -, confc: 172, confcEx: 172, weatherid: 103, wcc: 94, rr1c: 0.00
              temp: 3.10, windspeed: 13.00, rad1h: 0, sunaz: 258, sunalt: -18, DoN: 0
              rrange: 0.00, crange: -, DaysInRange: -, correff: 1.00/0.01
              soc01: 83.8, soc02: 47.3, soc03: -, socprogwhsum: 6557
              rcdchargebat01: 1, rcdchargebat02: 1, rcdchargebat03: -
              lcintimebat01: 1, lcintimebat02: 1, lcintimebat03: -
              strategybat01: optPower, strategybat02: optPower, strategybat03: -
NextHour02 => starttime: 2026-01-13 19:00:00, day: 13, weekday: Di, hourofday: 20, today: 1
              pvapifcraw: 0, pvapifc: 0, pvaifc: -, pvfc: 0, aihit: 0
              conlegfc: 138, conaifc: -, confc: 138, confcEx: 138, weatherid: 103, wcc: 93, rr1c: 0.00
              temp: 3.40, windspeed: 13.00, rad1h: 0, sunaz: 269, sunalt: -27, DoN: 0
              rrange: 0.00, crange: -, DaysInRange: -, correff: 1.00/0.14
              soc01: 81.3, soc02: 44.8, soc03: -, socprogwhsum: 6307
              rcdchargebat01: 1, rcdchargebat02: 1, rcdchargebat03: -
              lcintimebat01: 1, lcintimebat02: 1, lcintimebat03: -
              strategybat01: optPower, strategybat02: optPower, strategybat03: -
....

Was genau ist jetzt dein Problem?
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

stefanru

Ach so  8)
Ich dachte das wird in der Grafik angezeigt.
War auch erstaunt warum.
Fließt der Windspeed in die Berechnung für WP ein? Oder für was ist er gut?

Danke für die Erklärung Heiko.

Gruß,
Stefan
FHEM: Raspberry PI 400+SSD Viessmann, Fronius, BYD, Wunderground, Max, Shelly, ESPEasy, FHEMPY,...  Docker + Portainer: Immich, Authelia, Caddy, Gerbera, Paperless NGX
Maintainer: Vitoconnect
GIT: https://github.com/StefanRu1
Kaffeekasse: https://www.paypal.me/stefanru01

DS_Starter

#4910
Es war ein Anliegen von Klaus Schauer. Aber ja, wenn ich die WP Kalkulation auch in meine Legacy-VB Prognose einbauen will, kommt windspeed dort mit hinein.
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

Wolle02

Hier mal das Schaubild wie sich die Prognose entwickelt hat als ich heute ab 15h mein EV geladen habe. Die grauen Balken um 16, 17 und 18 h hat das System erst nachträglich "hochgeregelt" als es gemerkt hat "Hoppla, da wird jetzt aber mehr Strom gezogen als ich gedacht habe". Vorher waren die Balken auch so um die 700.

Ich nehme mal an, dass auch noch ein Trigger für den SoC vom EV eingebaut wird, damit die KI das besser prognostizieren kann?

DS_Starter

ZitatIch nehme mal an, dass auch noch ein Trigger für den SoC vom EV eingebaut wird, damit die KI das besser prognostizieren kann?
Ja EV kommt noch, da ist noch nichts passiert.
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

@lorisurfen,

ZitatLaut meinem debug von gestern wird aber swoncond nur beim erstmaligen einschalten geprüft, nicht aber nach interruptable ?
Ich hätte erwartet, wenn über Schlüssel interruptable unterbrochen wird, dann beim (Wieder-)Einschalten auch swoncond geprüft/erfüllt sein muss?
Nein, das sind zwei verschiedene Sachverhalte. Der Prozess mal in Kürze:

- zunächst wird der Consumer gemäß seine Vorgaben geplant
- Ist die Startzeit der Planung erreicht UND es liegen die definierten Voraussetzungen wie
  PV-Überschuß UND die definierte swoncond=true! vor, wird der Consumer tatsächlich gestartet.
  Damit ist die Aufgabe von swoncond erfüllt, d.h. es ist eine Bedingung die erfüllt sein muß um
  den geplanten Prozess zu starten
- nach dem Start bis zum geplanten Ende kann der Consumer durch interruptable unterbrochen bzw.
  weitergeführt werden, sobald die Interuptbedingung nicht mehr vorliegt.
- Der gesamte Zyklus des Consumers wird beendet (finished) wenn entweder das geplante Ende erreicht ODER
  eine gesetzte Bedingung swoffcond=true ist.


ZitatIst das ein Fehler oder kann ich das irgendwie einstellen, dass nach interruptable auch swoncond geprüft wird.
Nein, weder ein Fehler noch einstellbar. Siehe oben.

ZitatIst Prüfung auf swoncond evtl. unterschiedlich bei interruptable=1 und interruptable=Bedingung?
Wie oben beschrieben sind es zwei verschiedene Sachverhalte.
 
ZitatNach swoffcond und einem replan (Sofortige Neueinplanung) würde dagegen doch auch swoncond erneut geprüft (Für meinen Fall möchte ich immer, dass beim Wiedereinschalten auch swoncond geprüft wird).
Das ist so, ja.

ZitatEntweder muss nach interruptable auch swoncond geprüft werden oder die folgende Aussage wäre nicht zutreffend?
...
Der Kontext war, dass man einen beendeten Zyklus durch einen Schlüssel replan=1 immer sofort wieder neu einplant. Unter dem Vorbehalt, dass der User immer auch eine swoncond definiert, die steuernd eingreift, hast du recht. Allerdings kann interruptable auch {Perl-Code} verarbeiten, sodass hier auch komplexere Bedingungen abgebildet werden könnten.
Wie geschrieben, kann ich replan=1 einbauen, aber es gibt auch bereits jetzt diverse Möglichkeiten eine solche Funktionalität abzubilden.
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

Wenn das PV- / und CO-Ergebnis von heute und gestern nur das ganze Jahr so weiter gehen "würde"  ;D  ;D  ;D  :o

Gruß
300P

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