76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

Parallix

Zitat von: DS_Starter am 26 Mai 2026, 10:12:30@Parallix,

ZitatPersönlich würde mir eine Benachrichtigung  über ein Event pro Bin reichen
Mir auch. Leider ist die Umsetzung nicht so einfach weil sich der Wert im Log (Energy consumption of xxxxx Wh) ständig ändert, ...
Die erstmalige Überschreitung eines Limit-Events (production oder consumption over limit)  in einem Bin müsste aus SF heraus doch detektierbar sein und dann bis zum Ende des Bin in SF gemerkt werden können, oder?
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

DS_Starter

#6256
ZitatDie erstmalige Überschreitung eines Limit-Events (production oder consumption over limit)  in einem Bin....
Es werden keine Bins bzgl. Consumption und müssten erst eingeführt werden.
Selbst wenn das der Fall wäre, will man ja im Log nicht den Bin ausgegeben haben, sondern den echten Wert wie jetzt auch.
Das heißt am Log ändert sich nichts. Für das Logsequenzmanagement ist aber der konkrete Inhalt der Logausgabe relevant.
Es wird der Inhalt des Logs mit einem bereits ausgegebenen Log verglichen. Wenn die Inhalte identisch sind, wird die Ausgabe unterdrückt.
Greift in diesem Fall aber nicht wie beschrieben.


Edit. Eine machbare Alternative wäre auszugeben:

1: SF - WARNING - day=26, hod=09 - Energy consumption is higher than limit of 25000 Wh and is not saved (set verbose Level 4 for more information).

Und wenn Level 4 gesetzt ist kommt dann der volle Text:

4: SF - WARNING - day=26, hod=09 - Energy consumption of 720617 Wh is higher than limit of 25000 Wh and is not saved.

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 26 Mai 2026, 10:33:10
ZitatDie erstmalige Überschreitung eines Limit-Events (production oder consumption over limit)  in einem Bin....
Es werden keine Bins bzgl. Consumption und müssten erst eingeführt werden.
Selbst wenn das der Fall wäre, will man ja im Log nicht den Bin ausgegeben haben, sondern den echten Wert wie jetzt auch.
...
Möglicherweise bin ich falsch verstanden worden: Wenn die Energy-Consumption z.B. um 9:15 MESZ über dem eingestellten Limit liegt, so wird diese aktuell korrekt angezeigt. Eine erneute Anzeige im Bin von 9:00 - 9:59 MESZ ist nicht nötig, da Sie - aus meiner Sicht - wenig Mehrwert liefert. Da jede neue Logausgabe - wie Du schreibst - mit dem bereits ausgegeben Log verglichen wird, könntest Du doch eigentlich pro Bin hierbei auch nur einen Teil der Zeile (hier "day=26, hod=09 - Energy consumption ... higher than limit") vergleichen. Dann würde man pro Bin nur einmal die Info bekommen.
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

DS_Starter

Zitat... könntest Du doch eigentlich pro Bin hierbei auch nur einen Teil der Zeile (hier "day=26, hod=09 - Energy consumption ... higher than limit") vergleichen
Naja, es gibt keine Funktion die einen Vergleich eines bestimmten Teilinhalts eines Logs - der ja auch noch kontextbezogen ist da es viele verschiedene Logausgaben gibt - ausführt.
Also wenn anpassen, dann so wie ich in meinem Edit geschrieben habe.
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

Moin Heiko,
nochmal eine grundsätzliche Frage:
Ich habe ja mein SF-System komplett neu erstelen müssen also alle Daten erstmal weg.
Training für CON geht erst in einigen Monaten.
Es läuft also kein AI im CON Bereich.
Mir ist aufgefallren das morgens wenn die Batterie geladen wird,
diese Energie im CON (auch im nächsten Tag) angezeigt wird.
Dies ist m.E. nach falsch. Energie die für "später" gespeichert wird ist kein CON im eigentlichen Sinn.
Oder wird das nur z.Z. bei mir falsch angezeigt?
LG WDS
RPi II+III+V,OWX, HM Zisterne, MAPLESDuino(adv), ESPEasy, Tasmota, MQTT2Server, WU-Upload, TabletUI, Poolsteuerung fhem, Fronius, BYD Solaranlage

DS_Starter

#6260
Hallo Wolfdieter,

ZitatMir ist aufgefallren das morgens wenn die Batterie geladen wird,
diese Energie im CON (auch im nächsten Tag) angezeigt wird.
Dies ist m.E. nach falsch. Energie die für "später" gespeichert wird ist kein CON im eigentlichen Sinn.
Absolut richtig.
Wenn das so ist, gibt es aber ein Setup-Problem, d.h. die angebenen Readings z.B. für BatIn enthalten keine oder zuwenig Daten.
Da muß man sich die Werte mal mit ctrlDebug=collectData anschauen. Wenn z.B. ein zu kleiner (falscher) Wert als BatIn verwendet wird, landet die Differenz automatisch als unspezifischer Verbrauch weil er nirgends zugeordnet werden kann.

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

Burny4600

#6261
Zitat von: DS_Starter am 25 Mai 2026, 09:00:44das ist ein interessantes Thema, was bisher aber noch nicht betrachtet wurde. Momentan werden alle Wetterprognosen von API's bzw. einem DWD_OpenData Device in FHEM bezogen.

Meine lokale Wetterstation hat eine 24h Prognose. In wie weit Prognosen über die Schnittstelle gehen muss ich mir noch ansehen.
Zumindest wären wichtige lokale Inputs hilfreich. Da es schon mögliche Einbindung gibt, werde ich mir das noch genauer ansehen.
Es hat sich jedenfalls sehr viel erweitert mit deinem Projekt, dass ich noch im erforschen bin, da ich längere Zeit dafür keine Zeit hatte. Die Weiterentwicklung ist wirklich super.
LG Chris

Raspberry Pi 2-5 => Jessie, Bullseye, Bookworm, Trixie
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

Gisbert

Hallo Heiko,

ich hab einen neuen Trainingslauf durchgeführt:
aiConActivate=1
aiConProfile=v1_heatpump
aiConHiddenLayers=32-16
aiConLearnRate=0.004
aiConMomentum=0.9
aiConBitFailLimit=0.34
aiConShuffleMode=1

Das Ergebnis:
Training evaluation: ok (ok)
Learning behavior: early converged early (9.5 % Utilization of production capacity)
Setup Instructions:
Slightly increase the momentum: Raising the value toward 0.9 slows convergence in a controlled manner and often improves generalization (aiControl->aiConMomentum)
Slightly reduce the learning rate: decrease the current value by a factor of 2-3 (e.g., 0.01 → 0.003–0.005) so that the network can optimize more finely (aiControl->aiConLearnRate)
With 66 inputs and only 2615 training records the data-to-parameter ratio cannot reach the target range (8–20) with any reasonable architecture - increase aiConTrainLimit or collect more data before tuning the architecture further

Noise Rating: noticeable noise; interpret with caution (borderline)
Drift Rating: fresh_model
Recommendation for Retrain:  -

increase aiConTrainLimit: das hab ich nicht eingestellt.

aiConTrainLimit    The specified number of the most recent training data records is used for training.
The default value of '0' uses all available data records.
Values: 0 or Integer >= 2000 , default: 0
increase aiConTrainLimit: das hab ich nicht eingestellt.

Was kann ich noch tun bzw. wie lange sollte ich bis zum nächsten Trainingslauf warten?

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

Hallo Gisbert,

aiConTrainLimit kannst du ja nicht erhöhen, da du ja ohnehin wenig Daten hast.
Um länger lernen zu lassen, wäre aiConLearnRate=0.001 oder kleiner Richtung 0.0001 möglich.

Pro Tag kommen 24 Datensätze hinzu, für jede Stunde einer.

Weiterhin würde ich ctrlLanguage=DE einstellen falls du nicht dein gesamtes FHEM auf DE umstellen möchtest.

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

Hallo Parallix, @all,

ich habe die Logsequenz wie in #6256 beschrieben aufgelöst und SF in V 2.6.11 ins contrib geladen.

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

#6265
Und auch noch ein schönes Chart als Motivation.
Man sieht deutlich wie die vor einiger Zeit implementierte neue Berechnungsmethode der Globalstrahlung von pah inklusive der anlagenspezifischen Korrekturfaktoren langsam Wirkung entfaltet.

Zu bemerken ist, dass die Korrekturfakturen nur noch leichte Schwankungen vollziehen:

setstate SolDwd 2026-05-26 06:00:04 pvCorrectionFactor_06 0.77 (automatic - old factor: 0.78, Sun Alt range: 5, Cloud range: 00, Days in range: 12)
setstate SolDwd 2026-05-26 07:00:04 pvCorrectionFactor_07 0.60 (automatic - old factor: 0.64, Sun Alt range: 10, Cloud range: 00, Days in range: 13)
setstate SolDwd 2026-05-26 08:00:04 pvCorrectionFactor_08 0.66 (automatic - old factor: 0.65, Sun Alt range: 20, Cloud range: 00, Days in range: 15)
setstate SolDwd 2026-05-26 09:00:05 pvCorrectionFactor_09 0.82 (automatic - old factor: 0.79, Sun Alt range: 30, Cloud range: 00, Days in range: 13)
setstate SolDwd 2026-05-26 10:00:05 pvCorrectionFactor_10 0.87 (automatic - old factor: 0.85, Sun Alt range: 40, Cloud range: 00, Days in range: 13)
setstate SolDwd 2026-05-26 11:00:04 pvCorrectionFactor_11 0.84 (automatic - old factor: 0.84, Sun Alt range: 45, Cloud range: 00, Days in range: 8)
setstate SolDwd 2026-05-26 12:00:05 pvCorrectionFactor_12 0.80 (automatic - old factor: 0.80, Sun Alt range: 55, Cloud range: 00, Days in range: 10)
setstate SolDwd 2026-05-26 13:00:04 pvCorrectionFactor_13 0.84 (automatic - old factor: 0.84, Sun Alt range: 60, Cloud range: 00, Days in range: 9)
setstate SolDwd 2026-05-26 14:00:01 pvCorrectionFactor_14 0.86 (automatic - old factor: 0.86, Sun Alt range: 60, Cloud range: 00, Days in range: 7)
setstate SolDwd 2026-05-26 15:00:05 pvCorrectionFactor_15 0.80 (automatic - old factor: 0.82, Sun Alt range: 55, Cloud range: 00, Days in range: 4)
setstate SolDwd 2026-05-26 16:00:04 pvCorrectionFactor_16 0.72 (automatic - old factor: 0.72, Sun Alt range: 50, Cloud range: 00, Days in range: 6)
setstate SolDwd 2026-05-26 17:00:04 pvCorrectionFactor_17 0.72 (automatic - old factor: 0.75, Sun Alt range: 40, Cloud range: 00, Days in range: 3)
setstate SolDwd 2026-05-26 18:00:05 pvCorrectionFactor_18 0.76 (automatic - old factor: 0.82, Sun Alt range: 30, Cloud range: 00, Days in range: 9)
setstate SolDwd 2026-05-26 19:00:00 pvCorrectionFactor_19 0.71 (automatic - old factor: 0.61, Sun Alt range: 25, Cloud range: 00, Days in range: 7)
setstate SolDwd 2026-05-26 20:00:05 pvCorrectionFactor_20 0.65 (automatic - old factor: 0.56, Sun Alt range: 15, Cloud range: 00, Days in range: 7)
setstate SolDwd 2026-05-26 21:00:05 pvCorrectionFactor_21 0.53 (automatic - old factor: 0.59, Sun Alt range: 5, Cloud range: 00, Days in range: 7)


Dieses Idealbild ist natürlich dem aktuellen Wetter ohne störende Wolken etc. geschuldet. Dennoch ist es schön zu sehen wie gut Prognose und Realität konvergieren und die Korrekturfaktoren weiter ihre Arbeit machen.
Sollte die Wetterlage umschlagen, werden wir auch wieder andere Bilder sehen.

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