76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

300P

@Heiko:

Zufällig grad entdeckt
2026.04.01 21:07:20 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/76_SolarForecast.pm line 28020.


Hab mir da PVHistory und PVCircular anzeigen lassen.
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.

DS_Starter

Da gab es beim Auslesen der pvHistory einen "leeren" Tagesindex oder etwas ähnliches. Hast du soetwas gesehen?
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

Hatte jeweils (erstmalig nach dem letzten Contribupdate) beide Ringspeicher einmal ohne Filter und dann heute bzw. die Stunde 16 und 17 geschaut.
Aufgefallen ist mir aber kein Wert der ,,leer" ist, aber auch nicht speziell darauf geachtet.

Im Log nur deshalb gesehen, weil ich die Debugwerte von 16:00 ansehen wollte - meine erstmals ausgelöste Rekalibrierung... ;D

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.

denis.robel

Zitat von: 300P am 01 April 2026, 19:52:52Ja ein RPI4 schafft es mit einer Auslastung von ca. 20-50 %
Wenn du viele Daten in dem XXHistory-Ringspeicher hast - auch kein Problem.

Wenn du dann eine "gute" Einstellungsrichtung in der aiControl gefunden hast sind die Trainingsläufe auch kurz.
Meine aktuelle Laufzeit von 500 Sekunden und "29 Epochen"ist da ein äußerst sehr- sehr- sehr - sehr guter Wert.

Bis 5.000 Sekunden ist noch so grade okay (war bei mir meist entweder zu "tief" (98-64-32 oder 64-32-16. besser dann 80-40 nutzen) und zu genau "BitFail=0.05 oder 0.01 eingestellt etc. usw.)

Alles drüber an Laufzeit ist meist am Ende "Großer Mist" gewesen.

Mit einer WP erreicht man wegen deren Verbrauchsmuster oft nicht einen R2-Wert von >0.70  ab 0.65 bin ich zufrieden.

Hier Zur Info:
PV 3WR mit insgesamt 9.5 kW / 6 Strings mit insgesamt 14.5 kWp
Haus-Grundlast ca 4-500 Watt/h
Winter / WW ->> WP 7kW Wärmeleistung
Sommer > 27 Grad -> Klima mit 7 kW Kühlleistung
Rest siehe......
Informationen zum neuronalen Netz der Verbrauchsvorhersage

letztes KI-Training: 29.03.2026 21:44:43 / Laufzeit in Sekunden: 560
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 70.21 ms
Verbrauchernummer Wärmepumpe: 08

=== Modellparameter ===

Normierungsgrenzen: PV=10450 Wh, Hausverbrauch: Min=0 Wh / Max=7598 Wh
Trainingsdaten: 8388 Datensätze (Training=6710, Validation=1678)
Architektur: Inputs=98, Hidden Layers=80-40, Outputs=1
Hyperparameter: Learning Rate=0.002, Momentum=0.8, BitFail-Limit=0.20
Aktivierungen: Hidden=ELLIOT_SYMMETRIC, Steepness=1.0, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_heatpump_active_pv
Zufallsgenerator: Mode=2, Period=20
Modellalter: 68 h

=== Trainingsmetriken ===

bestes Modell bei Epoche: 29 (max. 15000)
Training MSE: 0.005849
Validation MSE: 0.003886
Validation MSE Average: 0.008082
Validation MSE Standard Deviation: 0.001454
Validation Bit_Fail: 1
Model Bias: 319 Wh
Model Slope: 0.8
Trainingsbewertung: ok

=== Fehlermaße der Prognosen ===

MAE: 367.84 Wh
MedAE: 294.48 Wh
RMSE: 447.47 Wh
RMSE relative: 23 %
RMSE Rating: good
MAPE: 18.80 %
MdAPE: 15.71 %
R²: 0.67


Das kling gut. Da ich aber noch totaler Newbe in Bezug auf Solarforecast bin: Wo hinterlege ich die ganzen Modellparameter aus Deinem Code. Das müsste ich ja für mich auch noch irgendwie erledigen...

VG

Denis

denis.robel

Zitat von: denis.robel am 01 April 2026, 22:16:18Das kling gut. Da ich aber noch totaler Newbe in Bezug auf Solarforecast bin: Wo hinterlege ich die ganzen Modellparameter aus Deinem Code. Das müsste ich ja für mich auch noch irgendwie erledigen...

Ok hab es missverstanden. Das sind die Parameter, die man nach dem Training abfragen kann, richtig?
VG

Denis

300P

Hier meine komplette aiControl beispielhaft - kann/muss nicht passen:

Für die AI:FANN werden die aiCon..... genutzt

aiTrainStart=3
aiStorageDuration=3600
aiTreesPV=30
aiConActivate=1
aiConAlpha=0.8
aiConTrainStart=7:3
aiConActFunc=ELLIOT_SYMMETRIC
aiConHiddenLayers=80-40
aiConLearnRate=0.002
aiConMomentum=0.8
aiConShuffleMode=2
aiConShufflePeriod=20
aiConSteepness=1.0
aiConTrainAlgo=INCREMENTAL
aiConProfile=v1_heatpump_active_pv
aiConBitFailLimit=0.20

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.

300P

Zitat von: denis.robel am 01 April 2026, 22:36:09
Zitat von: denis.robel am 01 April 2026, 22:16:18Das kling gut. Da ich aber noch totaler Newbe in Bezug auf Solarforecast bin: Wo hinterlege ich die ganzen Modellparameter aus Deinem Code. Das müsste ich ja für mich auch noch irgendwie erledigen...

Ok hab es missverstanden. Das sind die Parameter, die man nach dem Training abfragen kann, richtig?

Ja ist so
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.