NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@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
-
@Waly_de ich hatte jetzt paar mal den Fall dass abends meine PS nicht eingespeist hat. Hatte dann festgestellt dass auf "Stromspeicher Priorisieren" gestellt war. Ich hatte dann per Hand auf "Stromversorgung priorisieren" umgestellt und sofort ging's wieder.
Das Problem scheint aber sporadisch aufzutreten. Bzw. konnte ich noch kein Muster dafür erkennen. Hast Du einen Rat? -
Ich versuche gerade das Skript mal wieder zum Laufen zu bringen:
Wie bekomme ich diesen Fehler weg?
javascript.0 11:31:21.934 info script.js.Ecoflow.DL: Fehler beim Abrufen des niedrigsten Werts: timeout
javascript.0 11:31:36.912 info script.js.Ecoflow.DL: getLowestValue-error: timeoutZur Info vielleicht: Ich habe eine PS und nur einen Zusatzakku Delta
-
@accu Hey kannst du das Verhalten näher beschreiben? Ich habe auch etwas das Gefühl das abends nicht mehr alles so funktioniert wie es soll. Durch meinen Aufbau sollte eigentlich auch bis Mitternacht odr länger quasi über Solar eingespeißt werden. Aber hin und wieder "steht" zwar eine Solarspannung an aber es kommt kein Strom. Dann nach Veränderungen, Warten plötzlich funktionert es dann wieder.
-
@aherby da gibt es eigentlich nicht viel zu beschreiben. Ich hatte ca. 3mal bisher das Problem dass der PS nach Sonnenuntergang nicht eingespeist hat. Hatte erst ewig gesucht und Geräte abgestöpselt aber dann festgestellt, dass der PS in der Setting Batterie bevorzugen stand. Habs dann manuell umgestellt und alles lief wieder. Keine Ahnung ob das im Skript irgendwo getriggert wurde und der Befehl es dann wieder zurück zu setzen nicht funktioniert hat. Wie gesagt kommt äußerst selten vor. Bei mir bisher 3x seitdem ich das Skript nutze.