76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

grappa24

ich bekomme wiederholt retrain Meldungen, obwohl durchgeführt (2.6.10):
Trainingsbewertung: Retrain (Retrain)
Rauschen Bewertung: Signal rauscharm, Messwerte zuverlässig (stable)
Drift Bewertung: fresh_model
Empfehlung für Retrain:  keine (Grund: -)
Gebäudesicherheit/-komfort, PV-Prognose/Verbrauchssteuerung, Heizungssteuerung, Multimedia, ...
KNX, FS20, HM, HUE, Tradfri, Shellies, KLF200, Netatmo, Nuki, SolarForecast, HEOS, Alexa-FHEM, ...
FHEM 6.4, 2 x RasPi 3B+, Debian Bullseye

DS_Starter

@Parallix,

ZitatWurde eine Veränderung hinsichtlich des Zeitpunkts vorgenommen, ab der (vormittags) ein Wert für die laufende PV-Abweichung erstmals angezeigt wird?
Jaein. Es findet eine fortlaufende Hochgewichtung ab Sonnenaufgang statt. Das verhindert eine exorbitante Abweichung am frühen Morgen in den ersten Tagesstunden.
Info siehe Screenshot.
Der Tagesfortschritt bis zur vollen Gewichtung ist zur Zeit auf 1/2 der Tageslänge ab Sonnenaufgang festgelegt, kann aber bei Bedarf anpassbar gestaltet werden, z.B. 1/3 oder 1/100tel der Tageslaänge was quasi eine volle Wirkung nach Sonnaufgang bedeuten würde.


@grappa24,

Zitatich bekomme wiederholt retrain Meldungen, obwohl durchgeführt (2.6.10)
Der Trainingsprozess beinhaltet maximal drei Durchgänge mit unterschiedlichen Seeds (Startbedingungen). Der Durchlauf mit dem besten Ergebnis wird dann genommen.
Aber das beste Ergebnis kann für die Bewertungslogik noch nicht gut genug sein. Dann kommt es zu dieser Meldung.
D.h. das System würde gerne wieder trainieren weil es nicht zufrieden ist mit dem Ergebnis.

Möglicherweise brauchst du veränderte Einstellungen. Wenn ja -> Eine Hilfe dazu gibt es in der aktuellen contrib Version (zweiter Screenshot). Das baue ich gerade noch etwas aus.

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

Gisbert

Hallo Heiko,
hallo 300P,

ich bin etwas unglücklich mit der Verbrauchsprognose.

Als Verbraucher habe ich eine Wärmepumpe, eine Brauchwasserwärmepumpe, sowie 2 Klimaanlagen.
Tagesverbräuche:
Wärmepumpe: im Winter bis zu 35 kWh, aktuell null bis 3 kWh
Brauchwasserwärmepumpe: 1 kWh, bei sehr viel Sonne: 3 kWh
Klimaanlagen: derzeit nicht in Betrieb, erst ab 30°C Außentemperatur.
Weitere Verbraucher ohne Messeinrichtung sind: Herd, Backofen, Waschmaschine, Trockner, Spülmaschine, sowie viele Kleinverbraucher.

Derzeit liegt der tägliche Verbrauch bei 10-12 kWh (je nachdem, ob die Wärmepumpe und/oder die Brauchwasserwärmepumpe intensiv läuft), die Prognose aber bei 40 kWh. SolarForecast wird (im Wesentlichen) nicht zur Steuerung der Verbraucher genutzt.

Es gibt folgende Definitionen:
aiControl
aiConActivate=1
aiConProfile=v1_heatpump
aiConHiddenLayers=64-32
aiConLearnRate=0.002
aiConMomentum=0.5
aiConBitFailLimit=0.34
consumer01
HeishaMon_s0:Panasonic
auto=SF_Auto
swstate=Heatpump_State:1:0
etotal=Watthour_Total:kWh:5
type=heatpump
mode=mustNot
icon=sani_floor_heating_neutral
pcurr=readingsGroup_power:W:5
power=4500
consumer02
VaillantaroSTOR:Vaillant
power=500
mode=mustNot
icon=sani_heating_heatpump_buffer
type=heater
pcurr=Power_W:W:8
etotal=Energy_WH:kWh:8
swstate=WP_an:1:0
auto=SF_Auto
consumerControl
globalMode=mustNot detailLink=1

Information about the neural network for consumption forecasting

last AI training: 2026-05-19 18:17:33 / Runtime in seconds: 1210
AI query status: ok
last AI result generation time: 47.22 ms
Alpha: 1
Consumer number Heat pump:  01

Standardization Limits: PV=16687 Wh, Household Consumption: Min=0 Wh / Max=14430 Wh
Training Data: 3104 Data Records (Training=2483, Validation=621)
Architecture: Inputs=66, Hidden Layers=64-32, Outputs=1
Hyperparameters: Learning Rate=0.002, Momentum=0.5, BitFail-Limit=0.34
Activations: Hidden=SIGMOID, Steepness=0.9, Output=LINEAR
Training Algorithm: INCREMENTAL, Registry Version=v1_heatpump
Random Generator: Mode=2, Period=10
Model Age: 39 h

best model at Epoche: 2160 (max. 15000)
Training MSE: 0.000536
Validation MSE: 0.001643
Validation MSE Average: 0.001751
Validation MSE Standard Deviation: 0.000027
Validation Bit_Fail: 2
Model Bias: 342 Wh
Model Slope: 0.72
Training evaluation: Retrain

MAE: 308.27 Wh
MedAE: 185.64 Wh
RMSE: 361.43 Wh
RMSE relative: 45 %
RMSE Rating: acceptable
MAPE: 36.93 %
MdAPE: 20.70 %
R²: 0.75

Noise Rating: borderline
Recommendation for Bit_Fail: 0.34 (Setting of aiControl->aiConBitFailLimit)

Analysis window: 120 h
Drift RMSE Ratio: 9.73
Semantic Ratio: 1.00
Slope Reference: 0.72
Slope Live: 0.97
Slope Drift: 1.349
Bias Reference: 342
Bias Live: 2623.22
Bias Drift: 2281.71
Score: 8.44
Index: 2.39
Drift Rating: recalibration blocked: unusually high forecast error
Recommendation for Retrain: urgent urgent (Cause: Drift persists – new training required)
last recalibration: -

Was sollte ich anders einstellen, um in die Nähe der erwarteten Verbräuche zu zu kommen?

Viele Grüße Gisbert
Proxmox | UniFiRHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF

DS_Starter

Moin Gisbert,

wir haben bei dir nur wenige Datensätze für Training und Validierung (Training=2483, Validation=621).
Das ist wirklich nicht viel und gerade ein bisschen mehr als das geforderte Minimum.
Ich würde im ersten Schritt einstellen:

aiConShuffleMode=1

Eventuell das Netz noch weiter reduzieren auf: 32-16 oder 20-10-5

Trainiere mal damit.
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

Gisbert

Noch eine Nachfrage:
Ich hab das ausgewählt:
aiConProfile=v1_heatpumpSoll ich das bei erhalten oder lieber auf
aiConProfile=v1_heatpump_pvumstellen?
Ich werde dann neu trainieren, mit den obigen Daten sowie dem bevorzugten Eintrag aiConProfile=v1_heatpump oder ..._pv.

Viele Grüße Gisbert
Proxmox | UniFiRHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF

DS_Starter

Das kommt darauf an ob du die WP gemäß PV Überschuß steuerst, ich denke mal nicht.
Die WP richtet sich nach der Temperatur und nicht danach ob Überschuß da ist oder nicht.
Deswegen würde ich bei v1_heatpump bleiben.
Ausprobieren kannst du es natürlich, tut ja nicht weh.
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

Parallix

Zitat von: DS_Starter am 21 Mai 2026, 09:58:01@Parallix,

ZitatWurde eine Veränderung hinsichtlich des Zeitpunkts vorgenommen, ab der (vormittags) ein Wert für die laufende PV-Abweichung erstmals angezeigt wird?
Jaein. Es findet eine fortlaufende Hochgewichtung ab Sonnenaufgang statt. Das verhindert eine exorbitante Abweichung am frühen Morgen in den ersten Tagesstunden.
Info siehe Screenshot.
Der Tagesfortschritt bis zur vollen Gewichtung ist zur Zeit auf 1/2 der Tageslänge ab Sonnenaufgang festgelegt, kann aber bei Bedarf anpassbar gestaltet werden, z.B. 1/3 oder 1/100tel der Tageslaänge was quasi eine volle Wirkung nach Sonnaufgang bedeuten würde.

Danke für die schnelle Rückmeldung!

In der Mittagspause habe ich mir das Problem nochmal in aller Ruhe angesehen. Der Fehler lag auf meiner Seite: Beim Aufräumen hatte ich versehentlich die Spannungsversorgung an meinem Waveshare RS485ToETH herausgezogen. Dann bekommt SF keine neuen (!) PV-Daten mehr und kann folglich auch keine PV-Deviation bestimmen.

Indirekt zeigt der Fall, dass ein längerer Ausfall frischer Messdaten vielleicht in SF sichtbarer werden sollte.
FHEM: Debian/Testing BananaPro - AVM: 7490 (7.62) und 7591 (8.25) - Goodwe: GW25K-ET (DSP V10 / ARM V12) - Trina TSM 405: (#East, #South, #West) = (12,16,12) - BYD: 2 x HVS 7.7 (BMS V3.31-B, BMU V3.26-B) - EnOcean - Z-Wave - FS20/HMS