Leistungsprognose für Wechselrichter

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

Vorheriges Thema - Nächstes Thema

ch.eick

#495
Zitat von: dk3572 am 03 April 2021, 09:03:50
Bsp.:
Ich möchte die Waschmaschine einschalten, die 60 Min läuft.
Hierfür bräuchte ich die Info, wie viel PV in den nächsten 60 Min zur Verfügung stehen.
Wenn ich also um 8:50 Uhr das CurrentHourPVforecast betrachte, habe ich doch nur eine Vorhersage bis 9 Uhr, also für 10 Min.
Hallo
Das ist nicht komplett zielführend. Wenn Du Dir den Verbrauch der Waschmaschine anschaust, dann wird am Anfang aufgeheizt und im Anschluss sinkt der Verbrauch auf wenige Watt, im Verhältnis zum Aufheizen.
Ich verwende verschiedene Trigger und reagiere direkt auf die PV-Leistung.

PowerLevelMinTime 300    <<< das wartet eventuelle Peaks ab
PowerLimitOff 250        <<< Das tritt nie ein, da die WAMA nach 90, also RunTimeMin Minuten fertig.
PowerLimitOn 2000        <<< Die Leistung sichert das Aufheizen ab
RunTimeMin 5400          <<< ein gestarteter Waschgang muss durchlaufen
RunTimePerDay 19200      <<< maximal rund 5 h die Waschmaschiene verwenden
TimeEnd 17:00
TimeStart 09:00          <<< nicht vor 9 und nicht nach 17 Uhr

Für die Sofort Wäsche habe ich am Shelly einen Taster, da es im Winter eh egal ist.

Wenn Du eine WAMA mit Walzenschalter hast findest Du die Umsetzung hier.
Der Shelly 1 sitzt in einer Aufputzabzweigdose und der Taster kann neben der Aufputzsteckdose montiert werden. Bitte vom Fachmann erledigen lassen.
Durch eine indizierte Ein/Ausschaltung kannst Du jedes beliebige FHEM Kommando eintragen, falls Deine WAMA SmartHome spricht und anders angebunden ist.

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

Im contrib liegt eine neue V mit ein paar angepassten Readingnamen, unter anderem NextHours_Sum00_PVforecast für die Forecast aktuelle Stunde.

Der Beitrag von Christian hat mich gerade auf eine Feature-Idee gebracht, die für Modulnutzer sicherlich einen schönen Mehrwert darstellen wird. Mal schauen ob es noch eine Osterüberraschung wird.  :)
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

Wzut

#497
deine letzte Version baller ganz schon das Logfile voll :
2021.04.04 08:13:57 1: PERL WARNING: Argument "06<>54" isn't numeric in sprintf at ./FHEM/76_SolarForecast.pm line 1552.
2021.04.04 08:13:57 1: stacktrace:
2021.04.04 08:13:57 1:     main::__ANON__                      called by ./FHEM/76_SolarForecast.pm (1552)
2021.04.04 08:13:57 1:     FHEM::SolarForecast::_transferWeatherValues called by ./FHEM/76_SolarForecast.pm (1214)
2021.04.04 08:13:57 1:     FHEM::SolarForecast::centralTask    called by fhem.pl (3308)
2021.04.04 08:13:57 1:     main::HandleTimeout                 called by fhem.pl (679)
2021.04.04 08:13:57 1: PERL WARNING: Argument "20<>04" isn't numeric in sprintf at ./FHEM/76_SolarForecast.pm line 1553.
2021.04.04 08:13:57 1: stacktrace:
2021.04.04 08:13:57 1:     main::__ANON__                      called by ./FHEM/76_SolarForecast.pm (1553)
2021.04.04 08:13:57 1:     FHEM::SolarForecast::_transferWeatherValues called by ./FHEM/76_SolarForecast.pm (1214)
2021.04.04 08:13:57 1:     FHEM::SolarForecast::centralTask    called by fhem.pl (3308)
2021.04.04 08:13:57 1:     main::HandleTimeout                 called by fhem.pl (679)
2021.04.04 08:13:57 1: PERL WARNING: Argument "06<>52" isn't numeric in sprintf at ./FHEM/76_SolarForecast.pm line 1554.
2021.04.04 08:13:57 1: stacktrace:
2021.04.04 08:13:57 1:     main::__ANON__                      called by ./FHEM/76_SolarForecast.pm (1554)
2021.04.04 08:13:57 1:     FHEM::SolarForecast::_transferWeatherValues called by ./FHEM/76_SolarForecast.pm (1214)
2021.04.04 08:13:57 1:     FHEM::SolarForecast::centralTask    called by fhem.pl (3308)
2021.04.04 08:13:57 1:     main::HandleTimeout                 called by fhem.pl (679)
2021.04.04 08:13:57 1: PERL WARNING: Argument "20<>06" isn't numeric in sprintf at ./FHEM/76_SolarForecast.pm line 1555.
2021.04.04 08:13:57 1: stacktrace:
2021.04.04 08:13:57 1:     main::__ANON__                      called by ./FHEM/76_SolarForecast.pm (1555)
2021.04.04 08:13:57 1:     FHEM::SolarForecast::_transferWeatherValues called by ./FHEM/76_SolarForecast.pm (1214)
2021.04.04 08:13:57 1:     FHEM::SolarForecast::centralTask    called by fhem.pl (3308)
2021.04.04 08:13:57 1:     main::HandleTimeout                 called by fhem.pl (679)

also immer wenn der sprintf Block 1552- 1555 dran ist
ein paar Zeilen davor ersetzt du die ursprünglichen Doppelpunkte gegen <>
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DS_Starter

Moin Wzut,

das habe ich schon gerichtet. Zieh nochmal aus dem contrib bitte.
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

Hallo @all,

im contrib liegt die V 0.29.0. Es gibt einen neuen Setter:

powerTrigger <1on>=<Wert> <1off>=<Wert> [<2on>=<Wert> <2off>=<Wert> ...]
Sobald die aktuelle PV Erzeugung (Reading Current_PV) die angegebenen Schwellenwerte über- bzw. unterschreitet, werden die jeweiligen Trigger ausgelöst.
Es kann eine beliebige Anzahl von Triggerbedingungen angegeben werden. Xon/Xoff-Bedingungen müssen nicht zwingend paarweise definiert werden (siehe Beispiel).
Überschreitet die aktuelle PV Erzeugung eine definierte Xon-Bedingung, wird das Reading powerTrigger_X = on erstellt/gesetzt. Unterschreitet die aktuelle PV Erzeugung eine definierte Xoff-Bedingung, wird das Reading powerTrigger_X = off erstellt/gesetzt.

    Beispiel:
    set <name> powerTrigger 1on=1000 1off=500 2on=2000 2off=1000 3on=1600 4off=1100


Dadurch kann man sich beliebige Bedingungen erstellen um bei Über/Unterschreitung der PV Erzeugung Schaltvorgänge von Geräte auszulösen. Dazu braucht man nur die entsprechenden powerTrigger_X Readings auswerten bzw. auf diese Events zu reagieren.

Sobald ich für das Meterdevice auch den Einspeisungswert integriert habe, kann ich zusätzlich auch eine surplusTrigger anbieten, der bei Über/Unterschreitung des PV Überschusses auslöst.

schönen Ostersonntag zusammen,
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

ch.eick

Zitat von: DS_Starter am 04 April 2021, 10:07:59
Dadurch kann man sich beliebige Bedingungen erstellen um bei Über/Unterschreitung der PV Erzeugung Schaltvorgänge von Geräte auszulösen. Dazu braucht man nur die entsprechenden powerTrigger_X Readings auswerten bzw. auf diese Events zu reagieren.
Hallo Heiko,

ich habe bei mir noch eine variable Verzögerung implementiert, damit es an Tagen wie gestern nicht zu einem ständigen An/Aus/An/Aus kommt. Erst wenn die Leistung über eine eingestellte Zeit stabil ist wird eingeschaltet.
Das hat jedoch alles nichts mehr mit Leistungsprognose zu tun ;-)

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

sledge

#501
@Christian, Heiko und Jürgen,

erstmal vielen Dank für das tolle Modul. Nach langem Mitlesen habe ich mir gestern mal die Zeit genommen, es einzurichten - das aufwändigste dabei war, die Unterlagen der PV rauszusuchen, um kwp, Dachneigung und Ausrichtung für meine 5 Strings rauszubekommen - nachdem ich einmal eine DWD-Station gefunden hatte, die rad1h liefert.

Was soll ich sagen: Bin begeistert vom bisherigen Umfang (v0.28), auch die geplante Erweiterung um Trigger finde ich charmant - alles rund um die PV-Anlage "an einem Ort".

Bisher nutze ich entweder die Daten aus der meiner Wallbox (openWB) oder direkt aus der Fronius-API, um entsprechende Trigger abzuleiten, aber an einer Stelle wird es dann übersichtlicher - die anderen Systeme liefern dann nur noch Daten.

Ich freue mich schon darauf, wenn das Modul aus dem persönlichen DS_Starter-Contrib in die reguläre FHEM-Welt und via update verfügbar wird (hint, hint).

Für Nutzer des Moduls "fronius_api" hier die Definitionen (Device: fronius_api):

fronius_api pv=PowerFlow_Site_P_PV:W etotal=PowerFlow_Site_E_Total:Wh

Meine aktuellen Verbrauchs- und Einspeisezahlen lese ich über das OBIS-Modul (Device: WK.KG.2.SML) aus:

WK.KG.2.SML gcon=power:W contotal=total_consumption:Wh

Vielleicht hilft es ja jemandem in der Forensuche.

Allen ein schönes Osterfest!
Tom
FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...

DS_Starter

Danke Tom  :)

In das offizielle Repo kommt das Modul natürlich noch wenn die Entwicklungsarbeit weitgehend abgeschlossen ist. Klare Sache, das ist das Ziel.

@Christian
Zitat
ich habe bei mir noch eine variable Verzögerung implementiert, damit es an Tagen wie gestern nicht zu einem ständigen An/Aus/An/Aus kommt.
Ja stimmt, sowas werde ich auch noch einbauen.

Zitat
Das hat jedoch alles nichts mehr mit Leistungsprognose zu tun ;-)
Stimmt auch, vllt. bekommt das Modul am Ende ja den Namen "SolarMonitor"  ;)
Wichtig ist eben dass ein Modul dem Nutzer Mehrwerte und integrative Ansätze für die eigene Automatisierung bietet.
Zumindest ist das mein Ziel, mal schauen was dabei erreichbar ist.

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

@Tom, gerade geschaut "Rallye for a Cause" ... coole Sache.  8)
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

sledge

Zitat von: DS_Starter am 04 April 2021, 11:46:25
Danke Tom  :)

In das offizielle Repo kommt das Modul natürlich noch wenn die Entwicklungsarbeit weitgehend abgeschlossen ist. Klare Sache, das ist das Ziel.

@ChristianJa stimmt, sowas werde ich auch noch einbauen.
Stimmt auch, vllt. bekommt das Modul am Ende ja den Namen "SolarMonitor"  ;)
Wichtig ist eben dass ein Modul dem Nutzer Mehrwerte und integrative Ansätze für die eigene Automatisierung bietet.
Zumindest ist das mein Ziel, mal schauen was dabei erreichbar ist.

LG,
Heiko

Bzgl. der variablen Verzögerung / Trigger (mal so gesponnen): Man gibt auf Basis der Prognose ein Konfidenzniveau an, welches  die Wahrscheinlichkeit angibt, dass diese Leistung für die nächsten 60 Minuten vorhanden ist.

In der Art: 80% Wahrscheinlichkeit, dass es bei der jetzigen Produktion bleibt...
FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...

sledge

Zitat von: DS_Starter am 04 April 2021, 11:55:21
@Tom, gerade geschaut "Rallye for a Cause" ... coole Sache.  8)

\begin{OT}
Danke für die Blumen. Gehört "aktualisiert" - ist leider auf dem Stand von Anfang 2020 eingefroren - der Abschluss und was in Tadschikistan erreicht werden konnte fehlen noch...
\end{OT}
FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...

DS_Starter

Ich habe powerTrigger intern nun so umgebaut, dass die PV Erzeugung bei 3 aufeinanderfolgenden Messungen über- bzw. unterschritten werden muß um den jeweiligen Trigger auszulösen. Der Zeitraum der Messungen wird ja durch das eingestellte Attribut  interval festgelegt.
Damit sollten kurzfristige Abweichungen gefiltert/geglättet werden.

Den Vorschlag von sledge habe ich mir für einen späteren Setter energyTrigger aufgehoben, den man benutzen kann wenn die prognostizierte Energieerzeugung der nächsten X Stunden einen gewünschten Schwellenwert über- oder unterschreitet.
Nur so als Idee.

Aktualisierte V liegt im 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

DS_Starter

Moin,

ich habe mir den Beitrag von Dieter aus #484 nochmal durch den Kopf gehen lassen.
Im Ergebnis habe ich die Berechnung des zu erwartenden PV Ertrages der nächsten X Stunden auf eine minutengenaue Abschätzung umgestellt.
Das bedeutet dass die Readings NextHours_Sum01_PVforecast - NextHours_Sum04_PVforecast tatsächlich die zu erwartende PV Erzeugungssumme der nächsten 1 bis 4 Stunden unter der Berücksichtigung der aktuellen Zeit des Datenabrufs enthalten.

Das Reading NextHours_Sum00_PVforecast ist in diesem Zusammenhang entfallen weil nutzlos geworden.
Damit ist die Voraussetzung für einen kommenden Setter energyTrigger geschaffen.
Wenn Bedarf besteht, kann man die Schätzung auch für mehr als die kommenden 4 Stunden erweitern, hatte ich aber erstmal nicht gesehen.

V 0.30.0 liegt im 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

DS_Starter

Nun ist der neue Setter eingebaut, um die 4h-Vorhersagen auszuwerten / zu signalisieren:

energyH4Trigger <1on>=<Wert> <1off>=<Wert> [<2on>=<Wert> <2off>=<Wert> ...]

Generiert Trigger bei Über- bzw. Unterschreitung der 4-Stunden PV Vorhersage (NextHours_Sum04_PVforecast).
Überschreiten die letzten drei Messungen der 4-Stunden PV Vorhersagen eine definierte Xon-Bedingung, wird das Reading powerTrigger_X = on erstellt/gesetzt. Unterschreiten die letzten drei Messungen der 4-Stunden PV Vorhersagen eine definierte Xoff-Bedingung, wird das Reading powerTrigger_X = off erstellt/gesetzt.
Es kann eine beliebige Anzahl von Triggerbedingungen angegeben werden. Xon/Xoff-Bedingungen müssen nicht zwingend paarweise definiert werden.

    Beispiel:
    set <name> energyH4Trigger 1on=2000 1off=1700 2on=2500 2off=2000 3off=1500
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

sledge

Hallo Heiko,

Frage bezüglich der neuen Funktion: Wird die Summe der nächsten 4h ausgewertet? Also zB die nächsten 60 Minuten 10kwh, dann nochmal 3kwh und nochmal 2kwh und abschließend 1 kwh würde dann einen Wert von 16kwh auswerfen?

Und der umgekehrte Fall (ersten 60 Minuten 1kwh, dann 2kwh, 3kwh und abschließend 10kwh) kommt zum gleichen Ergebnis, 16kwh? Zur Differenzierung wertet man dann NextHours_Sum01_PVforecast aus, korrekt?

Schaue mir gleich mal die neue Version an, auch wenn hier heute nicht mehr viel mit "Prognose" los ist ;-)

Gruß und noch einen schönen Rest-Ostermontag!!
Tom
FHEM: debian Intel-NUC / 25 x MAX!, 15 x HM-bidcos, MQTT, 3 x 1wire, 20 x Shelly, 20 x Tasmota, 12 x Yeelight, Opentherm-GW, Espeasy, alexa-fhem, kodi, unifi, musiccast, ...