NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
Hallo, ich weiß nicht genau ob das Script mir bei meinem Vorhaben hilft, daher stelle ich mal meine Frage hier. Wenn das Falsch ist, mach ich gern auch ein neues Thema dazu auf.
Ich habe eine PV Anlage mit Speicher und möchte den Speicher ohne Elektriker erweitern. Ich habe mir eine Ecoflow Delta Pro + Powerstream 800 + Smart Plug bestellt.
Ich möchte bei Überschuss oder günstigem Tibber Preis folgende Werte anpassen oder Zustände erreichen.
Alle Werte wie Überschuss, Tibber Preise etc habe ich heute schon im IOBroker.
Wenn der primäre Speicher voll ist, soll der Überschuss in den Ecoflow gehen. Dazu muss ich die Beladung starten/stoppen und ggf die Ladeleistung anpassen können.
Nach bestimmten Uhrzeiten bzw wenn der primäre Speicher leer ist, will ich mit einem festen Wert (Grundlast) entladen.
Sehe ich das Richtig, das Beladen kann ganz einfach zb mit einem Shelly Plug (AN/AUS) gesteuert werden? Oder hilft mir da das Script. Ich habe auch einen MQTT Adapter gesehen. Kann der mir da helfen?? Ich habe auch in einem YT Video gesehen, dass jemand genau das gemacht hat mit einem Shelly am Delta Pro und einem am Powerstream.Kann mir da jemand etwas Orientierung geben? Wir würdet ihr das machen? Danke und Gruß Mike
-
@bombastikde übrigens gibt’s seit heute diese Option in der App. Wurde quasi ohne Update dazugeschaltet..
-
@bastib ich hab heute bei einem PS wieder Temperatur Daten erhalten
Muss mal schauen warum beim zweiten nicht.. -
@ponti92
Nach kurzen Tests ist die Logik des Verhaltens leider noch falsch, da die Leistung des Shelly 3ems wie ein smartplug behandelt wird. Dadurch werden im geregelten Fall nur die Hälfte des Hausverbrauchs eingespeist. -
@waly_de Hallo so nach längere Zet auch mal wider hier aktiv.
Mit dem WLAN und Firmware Update vom Powerstream kann wie schon beschrieben, die maximale Einspeiseleistung ziwschen 400 W und 800 W eingestellt werden.
Ich habe es mal hoffentlich im Log eingefangen:2024-06-04 20:16:03.902 - info: javascript.0 (61576) script.js.Echoflow.Ecoflow_DYM_Script_1_2_5.Ecoflow_DYM_Script_1_2_5: hexString: 0a3d0a03089204102018142001280138034014489201500358017084a9e1a306800113880101ba0103696f73ca0110485735315a4f48345346355434363434 2024-06-04 20:16:03.902 - info: javascript.0 (61576) script.js.Echoflow.Ecoflow_DYM_Script_1_2_5.Ecoflow_DYM_Script_1_2_5: Nachricht: {"header":[{"pdata":"089204","src":32,"dest":20,"dSrc":1,"dDest":1,"checkType":3,"cmdFunc":20,"cmdId":146,"dataLen":3,"needAck":1,"seq":1685607556,"version":19,"payloadVer":1,"from":"ios","deviceSn":"HW51ZOH4SF5T4644"}]}
Kannst du damit etwas anfangen?
-
@aherby sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
0a3d0a03089204102018142001280138034014489201500358017084a9e1a306800113880101ba0103696f73ca0110485735315a4f48345346355434363434
ist ein neues cmdId (146) und es ist als Wert 530 (W) enthalten, eventuell nochmal ein paar andere Einstellungen in der App machen und mitloggen.
-
@ponti92 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@ponti92
Nach kurzen Tests ist die Logik des Verhaltens leider noch falsch, da die Leistung des Shelly 3ems wie ein smartplug behandelt wird. Dadurch werden im geregelten Fall nur die Hälfte des Hausverbrauchs eingespeist.Wieso nur die Hälfte des Hausverbrauchs? Es müsste sich doch wie eine ganz normale Last verhalten und dann die 600(800)W ausnutzen?!
Könntest du den Befehl (0->1, 1->0) mitloggen und posten (ich meine den HEX-string)?
Theoretisch müsste es dann auch einen neuen Datenpunkt im Telegramm vom powerstream drin sein, wenn also möglich auch das mal posten. -
@foxthefox Ja ist seit dem iOS-App Update, Frimware und WLAN Update vom Powerstream vorhanden.
Heißt in der App Maximale Ausgangsleistung und ist einstellbar aktuell von 400 W stufenlos bis auf 800 W.Weitere Werte:
warn: javascript.0 (61576) script.js.Echoflow.Ecoflow_DYM_Script_1_2_5.Ecoflow_DYM_Script_1_2_5: Nicht definierter cmd_func-Wert. [Homestation] cmdId:146 cmdFunc:20 2024-06-04 23:58:55.206 - info: javascript.0 (61576) script.js.Echoflow.Ecoflow_DYM_Script_1_2_5.Ecoflow_DYM_Script_1_2_5: hexString: 0a3d0a0308cc031020181420012801380340144892015003580170bbb891aa06800113880101ba0103696f73ca0110485735315a4f48345346355434363434 2024-06-04 23:58:55.206 - info: javascript.0 (61576) script.js.Echoflow.Ecoflow_DYM_Script_1_2_5.Ecoflow_DYM_Script_1_2_5: Nachricht: {"header":[{"pdata":"08cc03","src":32,"dest":20,"dSrc":1,"dDest":1,"checkType":3,"cmdFunc":20,"cmdId":146,"dataLen":3,"needAck":1,"seq":1698978875,"version":19,"payloadVer":1,"from":"ios","deviceSn":"HW51ZOH4SF5T4644"}]} 2024-06-04 23:59:02.802 - warn: javascript.0 (61576) script.js.Echoflow.Ecoflow_DYM_Script_1_2_5.Ecoflow_DYM_Script_1_2_5: Nicht definierter cmd_func-Wert. [Homestation] cmdId:146 cmdFunc:20 2024-06-04 23:59:02.802 - info: javascript.0 (61576) script.js.Echoflow.Ecoflow_DYM_Script_1_2_5.Ecoflow_DYM_Script_1_2_5: hexString: 0a3d0a030894051020181420012801380340144892015003580170c9f391aa06800113880101ba0103696f73ca0110485735315a4f48345346355434363434 2024-06-04 23:59:02.802 - info: javascript.0 (61576) script.js.Echoflow.Ecoflow_DYM_Script_1_2_5.Ecoflow_DYM_Script_1_2_5: Nachricht: {"header":[{"pdata":"089405","src":32,"dest":20,"dSrc":1,"dDest":1,"checkType":3,"cmdFunc":20,"cmdId":146,"dataLen":3,"needAck":1,"seq":1698986441,"version":19,"payloadVer":1,"from":"ios","deviceSn":"HW51ZOH4SF5T4644"}]} 2024-06-04 23:59:11.570 - warn: javascript.0 (61576) script.js.Echoflow.Ecoflow_DYM_Script_1_2_5.Ecoflow_DYM_Script_1_2_5: Nicht definierter cmd_func-Wert. [Homestation] cmdId:146 cmdFunc:20 2024-06-04 23:59:11.570 - info: javascript.0 (61576) script.js.Echoflow.Ecoflow_DYM_Script_1_2_5.Ecoflow_DYM_Script_1_2_5: hexString: 0a3d0a0308a006102018142001280138034014489201500358017098b892aa06800113880101ba0103696f73ca0110485735315a4f48345346355434363434 2024-06-04 23:59:11.570 - info: javascript.0 (61576) script.js.Echoflow.Ecoflow_DYM_Script_1_2_5.Ecoflow_DYM_Script_1_2_5: Nachricht: {"header":[{"pdata":"08a006","src":32,"dest":20,"dSrc":1,"dDest":1,"checkType":3,"cmdFunc":20,"cmdId":146,"dataLen":3,"needAck":1,"seq":1698995224,"version":19,"payloadVer":1,"from":"ios","deviceSn":"HW51ZOH4SF5T4644"}]}
-
das sieht doch gut aus:
{"max_watts_pack":{"maxWatts":460}}
{"max_watts_pack":{"maxWatts":660}}
{"max_watts_pack":{"maxWatts":800}}
hoffe das waren deine Einstellungen. -
@foxthefox ist das 0_userdata.0.ecoflow.app_device_property_XXXXXXXX.data.InverterHeartbeat.ratedPower
aus den Heartbeat Daten?
-
@aherby da du die neue firmware hast. Kannst du bitte mal nachsehen, ob der eingestellte Wert anschließend unter den Objekten an der Stelle:
0_userdata.0.ecoflow.app_device_property_XXXXXXXX.data.InverterHeartbeat.ratedPower
Zu finden ist?
-
@foxthefox Weil der immer die Last einstellt, die am Shelly 3em anzeigt, einstellt. Bei manchen springt es auch von kompletter Deckung des Hausbedarfs (shelly = 0W) zu 100-200W Grundbedarf.
Da ja der Shelly normalerweise den Gesamtverbrauch des Hauses misst, darf Ecoflow da nicht die Daten so behandeln wie einen Smartplug. Das tun sie aber zurzeit und dann kann es entweder hin und her pendeln, oder wie bei mir sich bei der Hälfte des Verbrauchs einpendeln.
Z.b. Shelly zeigt 80W an, Ecoflow speist 80W ein, da einfach der Wert vom Shelly übernommen wird. Grundlast ist aber 160W, sprich Ecoflow kann nur die Hälfte der geforderten Leistung bedienen.
Bei manchen springt es herum, wahrscheinlich am Anfang und bei wechselnden Lastspitzen.
Sagen wir du verbrauchst 200W und Ecolfow speist noch nichts ein. Dann startet die App und Ecoflow sieht die 200W am Shelly und stellt diese ein. Nun werden aber von den 200W die Einspeiseleistung von Ecoflow (~ 200W) abgezogen und der Shelly sieht theoretisch +-0W. Diesen Wert nimmt Ecoflow wieder und schaltet die Einspeisung womöglich aus. Und so schaukelt der Wert hin und her.Hier ist das log als ich es eingeschaltet habe:
Und hier beim Ausschalten:
Weiß nicht ob da was dabei ist, da ziemlich viele EInträge in wenigen Sekunden kommen..
-
@waly_de ratedPower ist bei mir obwohl ich auf Maximal 400W gestellt habe bei 8000
Wenn ich den Wert in der App verstelle, dann zeigt mir das log folgendes an:
10:10:34.569 info javascript.0 (21466) script.js.Ecoflow1_2_5: hexString: 0a3d0a0308c20310201814200128013803401448920150035801709ecdccbb06800113880101ba0103696f73ca0110485735315a4f48345346355435353130 10:10:34.570 info javascript.0 (21466) script.js.Ecoflow1_2_5: Nachricht: {"header":[{"pdata":"08c203","src":32,"dest":20,"dSrc":1,"dDest":1,"checkType":3,"cmdFunc":20,"cmdId":146,"dataLen":3,"needAck":1,"seq":1735599774,"version":19,"payloadVer":1,"from":"ios","deviceSn":"XXXXXXXXXXXXXX"}]}
-
@waly_de sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@foxthefox ist das 0_userdata.0.ecoflow.app_device_property_XXXXXXXX.data.InverterHeartbeat.ratedPower
aus den Heartbeat Daten?
nein das waren die Dinge, die in aherby's Daten im Post zuvor drin waren.
Ich konnte leider noch keinen heartbeat analysieren, da noch keiner gepostet wurde -
@foxthefox Sollten die Werte gewesen sein.
zu
das sieht doch gut aus:
{"max_watts_pack":{"maxWatts":460}}
{"max_watts_pack":{"maxWatts":660}}
{"max_watts_pack":{"maxWatts":800}}
hoffe das waren deine Einstellungen. -
@ponti92 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
dataLen
also genaugenommen war {"max_watts_pack":{"maxWatts":450}} in dem Telegramm drin.
"08c203" ist nicht direkt verwendbar, da noch protobuf codiert. -
@waly_de der Wert hat sich wohl nach dem Update gestern verändert aber wenn ich in der App von 800 W runter gehe passiert da nichts.
erdata.0.ecoflow.app_device_property_XXXXXXXX.data.InverterHeartbeat.ratedPower
-
@ponti92
Danke für die Aufklärung wie es derzeitig läuft.
Es ist klar, daß ein ein Shelly3EM nicht direkt wie ein Stecker behandelt werden kann. Mindestens muß die derzeitig abgegebene Leistung mit berücksichtigt werden.
Hätte halt gedacht, daß dies schon so passiert. Aber woher soll es auch kommen.
Wenn man den shelly als mqtt über EF abboniert scheint ja der originale output übermittelt zu werden. Also braucht es einen Umsetzer, der aber zeitgleich noch die aktuelle Leistung braucht.
Wäre interessant ob es nunmehr ein ganz unbekanntes Gerät zu abbonieren gibt. Genaugenommen müsste das dann auch nicht JSON sein, sondern protobuf, da ja der powerstream nichts anderes kennt.PS.
danke für die logs.
Hab mal ein paar angeschaut und dort stehen noch mehr Daten drin als die heutige protobuf Definition kennt.
Die Definition geht bisher bis Feld 61 und da gibt es nun Daten mit höheren Feldnummern!
Da braucht es noch ein paar unknownXX.Edit.
In dem einen sind die Energiedaten drin und siehe da, nicht nur die bekannten watth1..7, sondern auch "watth16":729,"watth17":866,"watth18":866
Da muß man noch rausfinden, was die bedeuten könnten. -
@mikerow ich habe hinter meiner Delta Pro mit ZA einen Shelly 1 PM plus sitzen. Diesen habe ich dem Skript bekannt gemacht in der Sektion Überschussladung. Wenn überschussladung auf TRUE ist, dann schaltet das Skript den Shelly automatisch an und aus und reguliert die AC Ladeleistung in Abhängigkeit vom Hausstrom verbrauch.
Du müsstest jetzt eigentlich nur noch irgendwie einen Datenpunkt haben, der deinen PV Batteriespeicher misst. Und kannst ja dann eine Bedingung basteln. WENN PV Speciher voll DANN schalte Überschussladung auf TRUE.
Weiter oben hier im Thread gibs ein Codeschnipsel wie man den Überschussladeparameter umsetzt.
-
@accu OK, Danke, da setze ich mal an. Vielen Dank