Leistungsprognose für Wechselrichter

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

Vorheriges Thema - Nächstes Thema

MadMax

Alles klar, also muss ich schauen welcher Tag vor 7 Tagen war um diese Daten zu bekommen.
Lenovo M910Q Tiny Debian 12, FHEM 6.3, 2x Siemens Logo 0BA7, Homematic CCU3, Philips HUE, 6x SMA Wechselrichter, BYD HVM, BYD HVS, SMA EVCharger, KEBA Wallbox, 2x HMS800W, Daikin Wärmepumpe über CAN, viele ESPs

Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/MadMax

DS_Starter

Im contrib liegt eine neue Version.
Was ist neu ?

* der Consumer Key "interruptable" kann nun mit einer optionalen Hysterese (Device:Reading:Regex[:Hysterese]) angegeben werden.
   Wenn ein Consumer temporär unterbrochen wird, ist damit eine Verbesserung der Steuerung von Ein- und Ausschaltpunkt möglich.

* der Consumer Key "power" kann nun auch auf "0" gesetzt werden. Dadurch wird die Abhängigkeit des Schaltens des Consumers
   vom Verhandensein eines notwendigen PV-Überschusses aufgehoben. Man erkennt es am Reading consumerXX_ConsumptionRecommended.
   Diese Möglichkeit kann hilfreich sein wenn die Planung und die Schaltausführung nicht eng mit der PV-Erzeugung verbunden
   sein soll, z.B. wenn ein Heizlüfter nur über externe Bedingungen (Raumthermostat) innerhalb bestimmter Zeiten
   gesteuert werden soll. Siehe Schlüssel notbefore, notafter, swoncond, swoffcond, interruptable

* kleinere Bugfixes

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

Slade

Hallo Heiko,
Sehr geiles Modul, funktioniert mit den dummy consumern und einem Solardgewechselrichter hervorragend!
Vielen Dank dafür.
Allerdings möchten sich meine HM-ES-PMSw1 aufgrund der unterschiedlichen Kanäle und damit devices nicht als comsumer einbinden lassen, bzw. reagieren nicht auf Schaltbefehle.

Dummy anlegen und Werte/on/off zusammenführen oder sehe ich nur den Wald vor Bäumen nicht?

Gruß,
Slade

DS_Starter

#1548
Hallo Slade,

Zitat
Allerdings möchten sich meine HM-ES-PMSw1 aufgrund der unterschiedlichen Kanäle und damit devices nicht als comsumer einbinden lassen, bzw. reagieren nicht auf Schaltbefehle.

Was hat denn diese Dose für einzelne Kanäle ? Ich habe noch die herkömmlichen (nicht IP) HM-LC-SW1-PL-DN-R1 im Einsatz.
Diese Geräte haben keine einzelnen Kanäle.
Kannst du mal ein List eines solchen Geräts posten ?

Ansonsten vllt. als Anregung solche Kanäle mit dem Modul readingsProxy als separate Devices zu definieren.
Ich habe ein MQTT2 Device (LinkNode R8: Arduino-compatible WiFi relay controller ) mit 8 Kanälen. Jeden einzelnen Kanal habe ich mit readingsProxy separiert.
Es entsteht jeweils ein neues Device welches man ganz normal schalten kann. Hier ein Beispiel für einen Kanal (POWER2)


defmod LNR8.Proxy.Ch2 readingsProxy LinkNodeR8:POWER2
attr LNR8.Proxy.Ch2 alias LinkNodeR8 Channel 2
attr LNR8.Proxy.Ch2 cmdIcon on:remotecontrol/black_btn_GREEN off:remotecontrol/black_btn_RED toggle:toggle toggle:control_reload
attr LNR8.Proxy.Ch2 devStateIcon off:light_light_dim_100@grey on:light_light_dim_100@darkorange
attr LNR8.Proxy.Ch2 group Multirelais
attr LNR8.Proxy.Ch2 icon HutschIcon3
attr LNR8.Proxy.Ch2 room Keller
attr LNR8.Proxy.Ch2 setFn {($CMD eq "on")?"POWER2 on":($CMD eq "toggle")?"POWER2 toggle":"POWER2 off"}
attr LNR8.Proxy.Ch2 setList on off toggle
attr LNR8.Proxy.Ch2 webCmd on:off:toggle


Vllt. hilft das schon weiter.

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

Slade

#1549
Hallo Heiko,
ich habe einen HM-ES-PMSW1-PL-DN-R1 und der hat leider die Kanäle
channel_01

Kueche.Spuelmaschine_Sw
channel_02

Kueche.Spuelmaschine_Pwr
channel_03

Kueche.Spuelmaschine_SenPwr
channel_04

Kueche.Spuelmaschine_SenI
channel_05

Kueche.Spuelmaschine_SenU
channel_06

Kueche.Spuelmaschine_SenF


Die Kanäle werden dann als jeweils eigenständiges Device angezeigt, die scheinen aber in dem Modul nicht ansprechbar zu sein, da ja ganz vorne ein device definiert wird, oder habe ich da einen Denkfehler?

Werde es mal mit einem Readingsproxy probieren, danke für den Tip.

Gruß,
Slade

DS_Starter

#1550
Zitat
Die Kanäle werden dann als jeweils eigenständiges Device angezeigt, die scheinen aber in dem Modul nicht ansprechbar zu sein ...
Doch schon, wenn sie als eingenständiges Device vorhanden sind schon.

Ich habe einen Homematic HM-LC-SW4-DR-2 mit 4 Kanälen der vllt. am ehesten mit deinem Gerät vergleichbar ist.
Es werden die vier Kanäle auch als separates Device angelegt.
Diese Devices kann man wie jedes andere beliebige Device als consumer angeben.

Gib doch mal ein List z.B. vom Kueche.Spuelmaschine_Sw Device und der Definition des Device als Consumer im Solarmodul.
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

Slade

ZitatDiese Devices kann man wie jedes andere beliebige Device als consumer angeben.

Das ist schon klar, das Problem ist, dass die Readings zu aktuellem Verbrauch, Gesamtstromverbrauch, und ON/Off jeweils in einem eigenen Gerät vorhanden sind und ich diese natürlich gerne in einem consumer hätte, was aber anahand der Logik des definierten device und entsprechende Readings im definierten device nicht passt.

Hier mal die nicht funktionierende Definition:

Kueche.Spuelmaschine type=dishwasher power=2000 mode=can icon=scene_dishwasher mintime=135 on=Kueche.Spuelmaschine_Sw=on off=Kueche.Spuelmaschine_Sw=off auto=1 swstate=Kueche.Spuelmaschine_Sw pcurr=Kueche.Spuelmaschine_SenPwr:W etotal=Kueche.Spuelmaschine_Pwr:Wh interruptable=1

Gruß,
Slade

DS_Starter

Ok. Versuchen wir erstmal das Schalten hinzubekommen.
Du müsstest den Consumer m.M. nach so registrieren:


Kueche.Spuelmaschine_Sw type=dishwasher power=2000 mode=can icon=scene_dishwasher mintime=135  on=on off=off auto=automatic swstate=state:on:off interruptable=1


So angegeben, sollte Kueche.Spuelmaschine_Sw schon manuell schaltbar sein, der automatic-Modus ein/ausschaltbar sein und sich morgen auch einplanen wenn PV Überschuß prognostiziert wird.
Es wird das Reading "automatic" im Device Kueche.Spuelmaschine_Sw automatisch angelegt sobald die Automatik aktiviert wird.

Wenn du soweit bist überlegen wir wie die Schlüssel pcurr= und etotal= reingebracht werden können.
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

Slade

Hallo Heiko,
das klappt so weit, ist halt nur noch nicht "schön".
Ich habe jetzt erstmal noch einen Dummy für die Ladung und Einstellung der Spülmaschine mit eingebaut, damit diese nicht ohne Bedarf und Stromverbrauch Solarenergie blockiert, da ja noch keine Ist-Verbrauchswerte mit einfliessen und, so verstehe ich das Modul, erst einmal 2kw "geblockt" werden.

gruß und danke für den Tip,
Slade

DS_Starter

#1554
Hallo Slade,

Zitat
das klappt so weit, ist halt nur noch nicht "schön".
Naja, wir waren ja auch noch nicht fertig.  ;)

Am einfachsten ist es m.M. nach die Readings für pcurr bzw. etotal aus aus den Quellen in dein Kueche.Spuelmaschine_Sw Device zu übertragen und dieses dann in der Consumer Registrierung anzugeben.

Mit notify kann man es einfach erledigen:


define copypcurr notify Kueche.Spuelmaschine_SenPwr:<Reading1>.* setreading Kueche.Spuelmaschine_Sw $EVTPART0 $EVTPART1                               


bzw.


define copyetotal notify Kueche.Spuelmaschine_Pwr:<Reading2>* setreading Kueche.Spuelmaschine_Sw $EVTPART0 $EVTPART1                               


Die Readings <Reading1> bzw. <Reading2> sind die Readings für pcurr / etotal in den Quellen und werden mit dem gleichen Namen und Wert in dein Kueche.Spuelmaschine_Sw Device geschrieben.

Damit kann man nun die Consumer Registrierung einfach erweitern mit:


pcurr=<Reading1>:W etotal=<Reading2>:Wh


Zitat
Ich habe jetzt erstmal noch einen Dummy für die Ladung und Einstellung der Spülmaschine mit eingebaut, damit diese nicht ohne Bedarf und Stromverbrauch Solarenergie blockiert, da ja noch keine Ist-Verbrauchswerte mit einfliessen und, so verstehe ich das Modul, erst einmal 2kw "geblockt" werden.
Zum Verständnis, das Modul "blockiert" keine Solarenergie, sondern plant die Betriebszeit in Abhängigkeit des zu erwartenden PV Ertrages, des zu erwartenden Verbrauchs, der nominalen Leistung des Consumers (power) sowie weiteren Parametern ein.
Ob der Consumer tatsächlich eingeschaltet wird, hängt unter anderem vom Key "interruptable" ab, welcher in dem Fall vergleicht ob zum aktuellen Zeitpunkt tatsächlich PV-Überschuß vorhanden ist. Wenn nicht, wird unterbrochen und fortgesetzt wenn die Rahmenbedingungen wieder matchen.

Um einen Verbraucher temporär zu deaktvieren, zum Beispiel weil die Spülmaschine nicht laufen muß weil sie nicht beladen ist, wurde von mir der key "auto" vorgesehen. Dort steht ein Reading drin, welches im Consumerdvice angelegt wird. Ist der Wert des Readings 1, wird das Modul den Consumer schalten, bei 0 nicht.

Manuell kann man es im Display über das Consumermenü sperren/freigeben.

Die Verbrauchswerte pcurr / etotal werden übrigens für verschiedenen Planungs-, Anzeige- und Statistikfunktionen genutzt. Deswegen sind sie optional und nicht verpflichtend.

LG

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

Slade

#1555
Es war ein wenig fummelig, da SenPwr auf den state läuft, aber falls jemand die Geräte selber im Einsatz hat, hier die beiden modifizierten Codezeilen:

define copypcurr notify Kueche.Spuelmaschine_SenPwr:*.* setreading Kueche.Spuelmaschine_Sw pcurr $EVTPART0
defmod copyetotal notify Kueche.Spuelmaschine_Pwr:energy:.* setreading Kueche.Spuelmaschine_Sw etotal $EVTPART1

Ist dann auch soweit für die Spülmaschine drin, Waschmaschine baue ich dann morgen ein, der Trockner vergisst leider sein Programm bei der Trennung des Netzes, da muss wohl ein neues Gerät irgendwann her.
Erst einmal danke für deine Anstösse mit den Notifys, das war sehr hilfreich!

Was wünschenwert wäre, wäre eine Art Verbrauchsprofil der consumer über die Laufzeit, dann könnte man die Mittagsspitze noch effizienter nutzen, sprich Waschmaschine braucht im Standardprogramm am Anfang viel Energie um die Temperatur zu erreichen und am Ende des Programms, um zu schleudern.
Diese Daten müssten doch theoretisch über die Messungen nachvollziehbar und dann in die Planungen einbaubar sein, oder wird das zu komplex?

Gruß
Slade


DS_Starter

#1556
Zitat
Was wünschenwert wäre, wäre eine Art Verbrauchsprofil der consumer über die Laufzeit, dann könnte man die Mittagsspitze noch effizienter nutzen, sprich Waschmaschine braucht im Standardprogramm am Anfang viel Energie um die Temperatur zu erreichen und am Ende des Programms, um zu schleudern.
Diese Daten müssten doch theoretisch über die Messungen nachvollziehbar und dann in die Planungen einbaubar sein, oder wird das zu komplex?
Vorgesehen ist so etwas schon. Tatsächlich ist die Umsetzung recht komplex, deswegen gibt es bereits jetzt eine gewisse Aufteilung in Anlehnung eines wahrscheinlichen Lastprofils in Abhängigkeit des angegebenen Schlüssels "type".
Man sieht es mit einem "get ... valConsumerMaster". Dort die Schlüssel epieces. Die Daten epiec.. sind gemessene Lastdaten.

Wenn deine Waschmaschine einige Tage gelaufen ist, kannst du die Ausgabe von valConsumerMaster mal posten. Dann kann ich das Lastprofil prüfen und mit meinen Vorgaben vergleichen.
LG
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

Slade

Ich sammel mal zwei Wochen Daten, mit drei Kindern laufen die Maschinen ja fast täglich, dann melde ich mich.

Gruß,
Slade

SparcWolf

Hallo Heiko,

die neueste Version (0.67.5) macht bei mir Probleme.
Bei der automatischen Aktualisierung der Seite wird ein Fehler gemeldet (pop-up):
  fhemweb.js line 1215:
  SyntaxError: JSON.parse: bad escaped character at line 1 column 82209 of the JSON data
oder
  fhemweb.js line 1215:
  SyntaxError: JSON.parse: expected ',' or ']' after array element at line 1 column 116283 of the JSON data

Wenn ich auf die ältere Version (0.67.2) zurück gehe ist alles OK.

Hast Du eine Idee, woran das liegen könnte?

Grüße,
  Guido.

PS: Ich bin sehr begeistert von Deinem Modul!

DS_Starter

Hallo Guide,

freut mich dass dir das Modul gute Dienste leistet.  :D

Bzgl. des Fehlers habe ich eine leichte Ahnung. Eine der letzten Änderungen war dass bei einem Mouse over über die Wettersymbole der Bewölkungsgrad mit angezeigt wird (Sceenshot).
Geht das bei dir ?
Welchen FHEMWEB Stylesheet benutzt du?

Bei mir kommt ein solcher Fehler nicht. Es ist eine Javascipt Fehler der aus FHEMWEB bzw.  fhemweb.js kommt.
Welche fhemweb.js Version hast du ? (version ausführen)

Meine ist:


fhemweb.js                 26334 2022-08-18 15:42:05Z rudolfkoenig


LG
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