Leistungsprognose für Wechselrichter

Begonnen von ch.eick, 18 Januar 2021, 08:35:46

Vorheriges Thema - Nächstes Thema

fhainz


DS_Starter

Nabend zusammen,

für Nutzer des Model DWD wird es in Kürze eine KI Unterstützung geben.
Ich bin noch in der Entwicklungsphase, aber eventuell bereits morgen wird es ein Update geben welches Vorbereitungen zu der benötigten Datensammlung enthalten wird.
Wen diese Möglichkeit interessiert, kann bereits jetzt schon ein dann benötigtes Perl Modul AI::DecisionTree installieren.
Das geht einfach mit:

sudo apt-get install libai-decisiontree-perl
ESXi@NUC+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

In meinem contrib liegt die V0.82.0.

Änderungsliste:

- die Attribute affectCloudfactorDamping, affectRainfactorDamping sind entfernt. Vor dem Update am Besten
  löschen falls gesetzt. Evtl. Fehlermeldungen diesebezüglich nach Neustart ignorieren.
- In der Grafik beim Druck auf das Qualitätsicon sieht man die Faktoren/Qulitätswerte der kommenden Stunden
- Model DWD: es werden die rad1h-Werte in der pvHistory gespeichert (KI relevant)
- Model DWD: es ist die KI Unterstützung vorbereitet, ctrlDebug hat neue Parameter: aiProcess, aiData
- eingebaut ist "reset aiData" um die KI neu zu initialisieren falls nötig
- in der Grafik gibt es einen KI-Status (siehe Anhang)

 
Die KI Unterstützung wirkt noch nicht auf die Vorhersage. Aber alle Werte werden gesammelt, die KI gefüttert und einmal täglich nach Mitternacht trainiert sowie die trainierten Daten im Filesystem persistiert.
Beim Restart bleiben werden die Trainingswerte geladen.
Log:
...
ok 1 - AI::DecisionTree=HASH->isa('AI::DecisionTree')
2023.09.03 14:48:51.556 3: SolCast6 - cached data "aidectree" restored
...

Die KI gibt es für das Model DWD und wenn ihr das Modul AI::DecisionTree installiert habt.

LG,
Heiko
ESXi@NUC+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

Bitte die V nochmal ziehen. Ich habe noch einen Fehler beseitigt.
ESXi@NUC+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

ClausL

Hallo,

mir fehlt da wohl noch was. Modul ist wech. Im Log steht:

2023.09.03 20:01:56 0: Can't locate Test2/Tools/Class.pm in @INC (you may need to install the Test2::Tools::Class module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/x86_64-linux-gnu/perl5/5.32 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl ./FHEM/lib) at ./FHEM/76_SolarForecast.pm line 57.
BEGIN failed--compilation aborted at ./FHEM/76_SolarForecast.pm line 57.

Kann mir jemand da auf sie Sprünge helfen?

Vielen Dank schon mal, Claus

ClausL

Hallo,

inzwischen konnte ich das Modul neu installieren. Aber erst, nachdem dieses Test2-Modul nachinstalliert wurden. Vermutlich hätte es auch eine Möglichkeite gegeben, die alten Daten wieder zu beleben. Ist mir aber nicht ganz so wichtig. Ich richte da jetzt mal neu ein.

Viele Grüße, Claus

DS_Starter

Danke für die Info Claus. Dann muß ich auf dieses Modul prüfen.
War der Meinung es gehört zum Kern weil es bei mit auf allen Instanzen bereits vorhanden ist.
ESXi@NUC+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

ClausL

Hallo,

vieleicht ist meine Installation ja schon zu alt um das automatisch drin zu haben. Modul läuft übrigens wieder. Nachdem ich darauf gekommen war, dass die einzugebenden Daten ja irgendwo gespeichert sein müssen, habe ich im letzten Backup nachgesehen. Dann war es einfach.

"sudo apt install libtest2-suite-perl" war die Lösung. Hat dann auch noch einiges mehr installiert.

Morgen schaue ich dann, dass ich es wieder hübsch mache. ;-)

Viele Grüße und vielen Dank für die viele Arbeit, die in diesem sehr schönen Modul steckt.

Claus

DS_Starter

#2903
Habe das Modul im contrib upgedated.
Es wird jetzt auf Vorhandensein von Test2::Suite geprüft und entsprechende Hinweise zur Installation im Plantcheck gegeben.

Außerdem sieht man jetzt bereits mit "get ... nextHours" im neuen Schlüssel pvaifc wenn die KI für die entsprechende Stunde eine alternative Entscheidung anbietet. (siehe Screenshot)
Dieser Wert wird später in die Applikation eingebunden.

Später heißt in ca. 2 Wochen, mache erstmal bisschen Urlaub.  ;)
Falls es regnet schaue ich auch wieder hier rein und baue vllt. etwas weiter.
ESXi@NUC+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

Ein paar kurze Erläuterungen zur KI Implementierung.
Das Modul hat ja einen 31-Tage Ringsspeicher (pvHistory) mit den Werten der realen PV-Erzeugung und den rad1h Werten aus dem DWD Device (bei Model DWD) für jede einzelne Stunde des Monats.

Mit diesen Daten wird die KI jede Nacht kurz nach Mitternacht trainiert.
Der resultierende Decision Tree wird gespeichert. Wird der Ringspeicher überschrieben weil ein neuer Monat beginnt, bleiben die Daten in der KI persistiert und werden mit den Daten des neuen Monats weiter angereichert.
Die Ergebnisse der KI sollten so mit der Zeit treffsicherer werden.
Mit "set ... reset aiData" werden die Daten gelöscht und die KI startet jungfäulich.
 
Im Modul werde ich es später so implementieren, dass zunächst wie jetzt die autokorrigierten Werte pro Stunde angewendet. Sollte die KI für die jeweilige Stunde einen alternativen Vorschlag generieren (sieht man in NextHours), hat dieser Wert dann Prio über den autokorrigierten Wert.
Aus diesem Grund bezeichne ich die PV Prognose als KI unterstützt.

Ich weiß noch nicht wie rechenintensiv das KI Verfahren mit der Zeit werden wird. Wahrscheinlich muß ich das Training noch in einen nebenläufigen Prozess (BlockingCall) auslagern. Das wird sich zeigen.
Ich muß mich auch noch näher mit den Fähigkeiten und Limitierungen von AI::DecisionTree befassen.
Es gibt ein paar Möglichkeiten um auch mal einen Blick in das Innere der KI Informationen zu bekommen.
Vllt. hat schon jemand Erfahrungen mit diesem Perl Modul und kann seine Erkenntnisse gern teilen.
Ist auf jeden Fall ziemlich interressant und ich bin gespannt welche Ergebnisse damit erzielt werden können.
 
ESXi@NUC+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

xerion

Zitat von: ClausL am 03 September 2023, 20:57:03Hallo,

vieleicht ist meine Installation ja schon zu alt um das automatisch drin zu haben. Modul läuft übrigens wieder. Nachdem ich darauf gekommen war, dass die einzugebenden Daten ja irgendwo gespeichert sein müssen, habe ich im letzten Backup nachgesehen. Dann war es einfach.

"sudo apt install libtest2-suite-perl" war die Lösung. Hat dann auch noch einiges mehr installiert.

Morgen schaue ich dann, dass ich es wieder hübsch mache. ;-)

Viele Grüße und vielen Dank für die viele Arbeit, die in diesem sehr schönen Modul steckt.

Claus

Bei mir fehlte das Modul auch....nur zur Info.
Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

ch.eick

Zitat von: DS_Starter am 03 September 2023, 22:32:09...
Aus diesem Grund bezeichne ich die PV Prognose als KI unterstützt.

Ich weiß noch nicht wie rechenintensiv das KI Verfahren mit der Zeit werden wird. Wahrscheinlich muß ich das Training noch in einen nebenläufigen Prozess (BlockingCall) auslagern. Das wird sich zeigen.
Ich muß mich auch noch näher mit den Fähigkeiten und Limitierungen von AI::DecisionTree befassen.
Es gibt ein paar Möglichkeiten um auch mal einen Blick in das Innere der KI Informationen zu bekommen.
Vllt. hat schon jemand Erfahrungen mit diesem Perl Modul und kann seine Erkenntnisse gern teilen.
Ist auf jeden Fall ziemlich interressant und ich bin gespannt welche Ergebnisse damit erzielt werden können.
Hallo Heiko,
ich verwende ja seit ca. 04/2023 eine KI Prignose und kann sagen, dass die Ergebnisse bei mir besser sind als mit der vorherigen Lösung. Die KI in einem Thread wird in 4 Teilen beschrieben und verwendet die Daten aus der DbLog und Python. Bisher hatte ich nichts in Perl gefunden, da ich ja auch kein Entwickler bin.

Die Laufzeit inklusive der Datenaufbereitung aus der DbLog beträgt bei mir ca 3 Minuten. Hierbei werden im MySQL Vergleichsdaten über die letzten zwei Jahre herangezogen, um die KI besser zu trainieren, jedoch dabei die Datenmenge klein zu halten.

Da die KI leicht zur "Übertreibung" neigt habe ich noch eine Limitierung aus dem Maximum des Ertrages der Vortage eingebaut.

Um das ganze auch intensiev zu testen lasse ich es jede Stunde laufen, wodurch sich die Prognose immer etwas auffrischt, da ja dann auch die letzten aktuellen Erträge bereits mit einfließen. Sobald der DWD aktualisiert hat fließt dies dann auch mit ein.

VG
    Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

DS_Starter

Moin,

ZitatBei mir fehlte das Modul auch....nur zur Info.
Sollte aber mit der letzten Version aber kein Problem mehr gewesen sein, oder?
 
Habe doch noch bisschen weitergemacht. Das Modul enthält im Model DWD einen Setter "aiDecTree" um verschiedene Dinge manuell ausführen zu können. Hilfe dazu fehlt noch.
Der AI reset ist im Setter "reset" etwas versteckt geblieben um es nicht ungewollt auszuführen.

Update im contrib.

@ch.eick,
3 Minuten Laufzeit wäre im FHEM Kontext schon deutlich zu lang weil FHEM ohne Nebenprozess dann so lange blockieren würde. Allerdings wird hier alles im RAM, also deutlich schneller, ausgeführt. Wir werden sehen wie sich das Ganze ausspielt, aber vermutlich werde ich noch auf BlockingCall umstellen. Dann sind wir auf der sicheren Seite. Gerade wenn ein nicht so leistungsfähiger Server eingesetzt wird.
In Perl gibt es ein paar KI Bibliotheken. AI::DecisionTree ist eine davon. 
ESXi@NUC+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

xerion

Zitat von: DS_Starter am 04 September 2023, 07:51:58Sollte aber mit der letzten Version aber kein Problem mehr gewesen sein, oder?

Ja genau, in der Statusanzeige wurde angezeigt, das es fehlt habe es dann einfach nach installiert und nochmal ein reload vom Modul gemacht. Danach war der Fehler weg.
Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

DS_Starter

Die Hilfe für den neuen Setter ist nun auch noch hinzugefügt -> Update contrib.
ESXi@NUC+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