76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

peterboeckmann

Hallo Heiko,

Zitat von: DS_Starter am 05 März 2026, 19:24:32@Shadow3561, @peterboeckmann,

euch würde ich raten ein Training zunächst mit dem KI-Standardwerten auszuführen und dann erneut das Ergebnis zu bewerten.

das habe ich gestern abend mal mit folgender Konfiguration getan:
attr SolarForecast aiControl aiTrainStart=3 aiStorageDuration=18250 aiTreesPV=30 aiConActivate=1 aiConProfile=v1_common_active_pv
Das Bild der Verbrauchsprognose hat sich dabei nicht wirklich verbessert:

Du darfst diesen Dateianhang nicht ansehen.

Ich werde aus MAE und MedAE nicht wirklich schlau. Die liegen angeblich unter 200Wh. Der hier prognostizierte Verbrauch von 11 kWh nach Mitternacht ist unrealistisch und in der Vergangenheit auch gar nicht oder höchst selten vorgekommen.
Warum denkt das NN dann, dass die Vorhersage so genau ist (MAE: 180.37 Wh, MedAE: 79.75 Wh)?

Informationen zum neuronalen Netz der Verbrauchsvorhersage

letztes KI-Training: 05.03.2026 22:35:01 / Laufzeit in Sekunden: 1568
KI Abfragestatus: ok
letzte KI-Ergebnis Generierungsdauer: 19.72 ms
Verbrauchernummer Wärmepumpe: -

=== Modellparameter ===

Normierungsgrenzen: PV=11440 Wh, Hausverbrauch: Min=0 Wh / Max=15960 Wh
Trainingsdaten: 7691 Datensätze (Training=6152, Validation=1539)
Architektur: Inputs=69, Hidden Layers=80-40-20, Outputs=1
Hyperparameter: Learning Rate=0.005, Momentum=0.5, BitFail-Limit=0.35
Aktivierungen: Hidden=SIGMOID, Steepness=0.9, Output=LINEAR
Trainingsalgorithmus: INCREMENTAL, Registry Version=v1_common_active_pv
Zufallsgenerator: Mode=2, Period=10

=== Trainingsmetriken ===

bestes Modell bei Epoche: 2530 (max. 15000)
Training MSE: 0.000306
Validation MSE: 0.000402
Validation MSE Average: 0.000356
Validation MSE Standard Deviation: 0.000007
Validation Bit_Fail: 0
Model Bias: 159 Wh
Model Slope: 0.9
Trainingsbewertung: ok

=== Fehlermaße der Prognosen ===

MAE: 180.37 Wh
MedAE: 79.75 Wh
RMSE: 221.29 Wh
RMSE relative: 31 %
RMSE Rating: good
MAPE: 21.46 %
MdAPE: 11.16 %
R²: 0.92

=== Rauschen ===

Rauschen Bewertung: borderline
Empfehlung für Bit_Fail: 0.34 (Einstellung von aiControl->aiConBitFailLimit)

=== Drift-Kennzahlen ===

Drift Score: 4.29
Drift RMSE ratio: 3.95
Drift Slope: 0.118
Drift Bias: 4.17
Drift Bewertung: none

Schade, dass ich die Begeisterung über die Genauigkeit der Verbrauchsprognose nicht teilen kann, die andere hier im Thread schon geäußert haben.

Vielleicht hat ja jemand einen Tipp (oder eine Art Leitfaden), wie ich bei der Konfiguration des NN am besten vorgehe?

Vielen Dank und viele Grüße,
Peter

TheTrumpeter

Zitat von: TheTrumpeter am 05 März 2026, 16:15:11Hab' grad einen Fehler in der Anzeige des "Rest-PV" Wertes in der Kopfzeile gefunden...

Der dort angezeigte Wert stimmt nicht mit der Summe der Balken-Werte überein, siehe Screenshot.
(Selbst wenn noch der ganze Wert von 16-18 Uhr verwendet würde und nicht nur anteilig ab 16:11 Uhr, ist es viel zu viel...)
Gerade wieder nachgerechnet...
Rest heute lt. Kopfzeile: 59438
Rest heute lt. Balken: 58060
Differenz ca. so groß wie die aktuelle Stunde, ev. wird die aktuelle Stunde doppelt berücksichtigt? 1x mit der kompletten Vorschau und 1x mit dem Rest der aktuellen Stunde? 59438 lt. Kopfzeile, 58060 lt. Balkensumme ab 07:00, Differenz=1378
Der Screenshot ist von 07:02, die Prognose für die aktuelle Stunde ist 1450. 1450 anteilig auf 58 Minuten ergeben 1401.
Gestern wäre die Differenz auch ungefähr der Restwert der aktuellen Stunde gewesen: 4636 lt. Kopfzeile, 2620 lt. Balkensumme, Differenz=2016
Der Screenshot war von 16:12, die Prognose für die aktuelle Stunde war 2520. 2520 anteilig auf 48 Minuten ergeben 2016Wh.

Beim Verbrauch scheint es ähnlich zu sein, wenngleich aufgrund der ähnlichen Stundenwerte nicht so klar ist ob die vergangene Stunde noch dabei ist oder die aktuelle Stunde annähernd doppelt. (6743 lt. Kopfzeile, 6413 lt. Balkensumme ab 07:00)
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110

peterboeckmann

@TheTrumpeter,

welche Version des Moduls benutzt Du? Seit v2.1(?) steht die Versionsnummer im Kopf, bei Dir fehlt die.

In der aktuellen Version 2.2.3 passen die Restwerte zusammen, ich habe es gerade nachgerechnet.
Die Version ist seit heute im regulären Update enthalten.

Viele Grüße,
Peter

peterboeckmann

#5283
Hallo Marco,

Zitat von: marboj am 06 März 2026, 06:42:55setupInverterDev01 OpenDTU_2370752 pvOut=summe_PVdirekt:W capacity=800 etotal=yieldtotal:kWh strings=Ost,West
setupInverterDev02 OpenDTU_2370752 pvOut=summe_PVbat:W capacity=800 etotal=yieldtotal:kWh strings=SüdGarage,SüdGarten feed=bat
setupInverterStrings SüdGarage,SüdGarten,Ost,West

was mir an Deiner Konfiguration auffällt:
Beide Inverter haben eine capacity von 800 W. Ist das so richtig? Oder hast Du nur einen Inverter mit insgesamt 800W max. Ausgangsleistung?
Genauso bei etotal: Hier müssten vermutlich zwei getrennte Zählerstände konfiguriert werden.
Und: Ist das Reading yieldtotal am OpenDTU_2370752 tatsächlich in kWh oder liefert der Wh?

Viele Grüße,
Peter

TheTrumpeter

#5284
Zitat von: peterboeckmann am 06 März 2026, 10:17:19welche Version des Moduls benutzt Du? Seit v2.1(?) steht die Versionsnummer im Kopf, bei Dir fehlt die.
Habe die hier: 76_SolarForecast.pm:v2.0.0-s30783/2026-01-25

Lese hier eigentlich mit und habe keinen Änderungshinweise dazu gesehen, deshalb auch noch kein Update gemacht... aber dann mach' ich das mal, dann sollte es ja weg sein.



NACHTRAG: Nach dem Update scheint es zu passen, zumindest gerade eben. Werde das weiter beobachten.
FHEM auf RPi3, THZ (LWZ404SOL), RPII2C & I2C_MCP342x (ADCPiZero), PowerMap, CustomReadings, RPI_GPIO, Twilight, nanoCUL (WMBus für Diehl Wasserzähler & Regenerationszähler für BWT AqaSmart), ESPEasy, TPLinkHS110