NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@dreffi Perfekt, danke
Wie lange waren denn die Hänger? Und gab es dazu Log-Ausgaben?
Es ist so, dass der MQTT aufhört Daten zu senden, wenn Du parallel mit der App arbeitest, und diese dann schließt. Das Script überwacht aber, ob Daten kommen und verbindet sich selbst nach einer gewissen Zeit neu. (Am Tag nach einer Minute, ab einer Stunde nach Sonnenuntergang nach 15 Minuten) -
@waly_de
Ich kann das noch nicht genau sagen. Ab ca. 16:00 hat sich die Einspeiseleistung des Powerstream nicht mehr geändert und der Netzbezug ging damit teilweise ins Negative (Einspeisung). Gegen 17:30 habe ich das bemerkt und das Skript neu gestartet.
(Sorry, der erste Pfeil muss etwas weiter nach rechts auf kurz vor 16:00)Abends schien es dann andauernd auszusetzen. Es kann aber auch sein, dass da andere Probleme mit reingespielt haben. Es gab gestern reichlich Updates bei ecoflow. Vielleicht war der MQTT Server schlicht überlastet, weil alle an den Geräten rumgespielt haben.
Im PV-Forum gibt es reichlich Beschwerden zu Problemen mit der Cloud bzw. dem Powerstream seit den Updates gestern.Zur Klarstellung: das Skript läuft weiter und die Objekte in ioBroker werden auch aktualisiert. Es scheint irgendwann nur nicht mehr vom Powerstream übernommen zu werden.
Welches Objekt (state) in ioBroker entspricht dem Wert "Leistungsbedarf am AC-Ausgang"? Ich würde beobachten wollen ob dieses dann aktualisiert wird und zur tatsächlichen Einspeiseleistung passt.Das mit der App ist ein guter Tipp. Ich werde diese schließen, das Skript 1x neu starten und dann einige Stunden die Finger von der App lassen.
Update:
es hängt wieder. Aktuell sieht es so aus:
Das Skript läuft und der Wert RealPower wird auch fleißig aktualisiert. Die Daten des Powerstream scheinen aber weder aktualisiert zu werden, noch überhaupt zu stimmen.
Beispiele:
totalPV steht unverändert auf 5762,88. Das kann nicht sein. Der Wert müsste um die 1000 liegen.
PV1_Power steht auf 3 und PV2_Power steht auf 6000.
PlugPower steht auf 36. Ist das der Wert für die Smart Plugs? Ich habe keine.Ich vermute aktuell es liegt an der WLAN Verbindung des Powerstream.
Jepp, ich habe den Powerstream wieder auf den richtigen Repeater gezwungen und die Werte werden aktualisiert. Der Powerstream hat auch gleich wieder mit der Einspeisung begonnen. Das Problem liegt also vermutlich in meinem Netzwerk. -
@dreffi Ja das ist trügerisch. Ohne WLAN geht da natürlich nichts. In der APP muss man dann aufpassen, das nicht grade eine Bluetooth Verbindung angezeigt wird, sonst merkt man das nicht.
Zu dem State kann ich Dir nur dringend empfehlen die Letzte(Beta) version vom Script zu verwenden. Denn die States haben sich, nachdem die Originaldefinitionen von ecoflow eingebaut wurden alle geändert. Aktuell steht der Wert in:
0_userdata.0.ecoflow.app_device_property_XXXXXXXXXXXXXXXX.data.InverterHeartbeat.permanentWatts -
@waly_de
Sorry für die doofe Frage, aber wie tausche ich das Skript am besten aus?
Ich habe das alte gestoppt, ein neues angelegt und die Nutzereingaben mit den alten überschrieben. Beim Start des Skripts erhalte ich dann massig rote Fehlereinträge im Log.
Ich habe daher erstmal eine Sicherung geladen. -
@dreffi war schon richtig so....
In den Einstellungen des neuen Scripts gibt es neue Punkte die nicht fehlen dürfen... also nicht einfach die alten komplett rein kopieren.
...sonst brauch ich mal ein paar der Fehlermeldungen
-
@waly_de
Fehlermeldungen nach Start des Scripts in Version 0.6.2:
-
Ich habe hier noch eine kleine unschönheit entdeckt.
State value to set for "0_userdata.0.ecoflow.app_1668913565281660930_XXXXXXXXXXXXXXXX_thing_property_set.writeables.acChgCfg_D2" has to be type "string" but received type "number"Das scirpt funktioniert sonst soweit taelos für mich, danke.
-
@dreffi kann ich mir so nicht erklären... Einstellungen gecheckt? alle vollständig ?
definition von protoSource2 vorhanden und vollständig ?
sonst vielleicht noch mal ein stück log mit eingeschaltetem debug ..bin aber jetzt erst mal unterwegs und kann mich nicht kümmern
-
@waly_de said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
definition von protoSource2 vorhanden und vollständig ?
Wie prüfe ich das? Ich habe Protobuf und den MQTT Client mit den Befehlen aus dem Script über die Konsole installiert.
Nachtrag: die Werte der Delta 2 werden mit der aktuellen Version des Scripts aktualisiert. Die Werte des Powerstreams bekommt er anscheinend nicht decodiert. -
@dreffi said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@waly_de said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
definition von protoSource2 vorhanden und vollständig ?
Wie prüfe ich das? Ich habe Protobuf und den MQTT Client mit den Befehlen aus dem Script über die Konsole installiert.
Nachtrag: die Werte der Delta 2 werden mit der aktuellen Version des Scripts aktualisiert. Die Werte des Powerstreams bekommt er anscheinend nicht decodiert.Hab seid heute dasselbe Problem
Hatte mal die neue Version reigeschrieben.
Bekomme auch lauter Fehler, ausser ich kommentiere den PowerStream aus.Mit der vorherigen Version des Scriptes geht es auch nicht mehr, es werden nur keine Fehler geschrieben, sondern die Werte einfach nicht mehr aktualisiert.
-
@lordminorin ich fürchte das könnte mit den jüngsten updates zusammen hängen.
ich hab noch keine gemacht, weil ich das befürchtet habe.dennoch: bitte mal mit Debug : true kurz loggen und mir zukommen lassen. gern auch als PM
-
@waly_de
Seit ungefähr 16:00 hat es bei mir mit dem alten Script wieder makellos bis in die Nacht funktioniert, trotz der Updates.Ergänzung:
Auch heute morgen hat es ebenfalls wieder mit der Regelung begonnen. Es kommt allerdings nicht so viel AC-Leistung raus wie sie sollte. Eingestellt ist Restbezug von 10W. Mit den Verlusten etc. müssten ungefähr 16W rauskommen, es bleibt aber bei einem Bezug von eher 80W. Sobald der Powerstream über das Script mehr bzw. die richtige Leistung freigibt, wird diese gleich wieder runter geregelt. Ich habe dazu die tatsächlichen Werte in Home Assistant mit den jeweiligen Objekten in ioBroker beobachtet. Diese laufen absolut synchron.
Das gleiche Verhalten habe ich gestern auch schon beobachtet. Es tritt nur zeitweise auf. Anscheinend nur bei sehr geringer Last.
Keine große Sache, eher ein Schönheitsfehler. -
@Waly_de hier der log (Console + Protokoll)
Fehleranzeige aus der Console:
09:42:53.126 error javascript.2 (1165082) script.js.Skripte.Instanz_2_Energie.Ecoflow_Skript_20230728: TypeError: Cannot convert undefined or null to object
09:42:53.127 error javascript.2 (1165082) at decodeAndPrint (script.js.Skripte.Instanz_2_Energie.Ecoflow_Skript_20230728:995:34)
09:42:53.127 error javascript.2 (1165082) at MqttClient.<anonymous> (script.js.Skripte.Instanz_2_Energie.Ecoflow_Skript_20230728:832:36)Fehleranzeige aus den Protokoll (LOGS):
javascript.2 2023-07-31 09:42:53.127 error at processImmediate (node:internal/timers:447:9)
javascript.2 2023-07-31 09:42:53.127 error at runNextTicks (node:internal/process/task_queues:60:5)
javascript.2 2023-07-31 09:42:53.127 error at MqttClient.<anonymous> (script.js.Skripte.Instanz_2_Energie.Ecoflow_Skript_20230728:832:36)
javascript.2 2023-07-31 09:42:53.127 error at decodeAndPrint (script.js.Skripte.Instanz_2_Energie.Ecoflow_Skript_20230728:995:34)
javascript.2 2023-07-31 09:42:53.127 error at Type.decode_setup [as decode] (/opt/iobroker/node_modules/iobroker.javascript/node_modules/protobufjs/src/type.js:507:25)
javascript.2 2023-07-31 09:42:53.127 error at Type.Message$decode [as decode] (eval at Codegen (/opt/iobroker/node_modules/iobroker.javascript/node_modules/@protobufjs/codegen/index.js:50:33), <anonymous>:11:21)
javascript.2 2023-07-31 09:42:53.127 error at Type.decode_setup [as decode] (/opt/iobroker/node_modules/iobroker.javascript/node_modules/protobufjs/src/type.js:507:17)
javascript.2 2023-07-31 09:42:53.127 error at Type.setup (/opt/iobroker/node_modules/iobroker.javascript/node_modules/protobufjs/src/type.js:456:31)
javascript.2 2023-07-31 09:42:53.127 error at Object.toObject (/opt/iobroker/node_modules/iobroker.javascript/node_modules/protobufjs/src/converter.js:256:64)
javascript.2 2023-07-31 09:42:53.126 error at slice (<anonymous>)
javascript.2 2023-07-31 09:42:53.126 error script.js.Skripte.Instanz_2_Energie.Ecoflow_Skript_20230728: TypeError: Cannot convert undefined or null to object -
@dreffi
Hmm Ich bleib dran. Es scheint so, als kämen leere Telegramme. Aber ohne einen ausführlichen Logauszug, Mit der Einstellung
Debug: true
komm ich da nicht weiter.Deine Schwankungen oben könnten damit zu tun haben, dass der Wert, der im State das du unter "SmartmeterID" konfiguriert hast zu träge ist. Kannst Du bitte mal überprüfen, ob er sich innerhalb von 30 Sekunden nach der Anpassung der AC-Leistung aktualisiert ?
-
So, habe einen meiner PS aktualisiert. Es haben sich die Telegramme definitiv verändert. Ich gucke es mir an. Bis dahin sollte, wer kann und das Script einsetzt KEIN Update machen.
-
Zu spät...
-
@waly_de said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@dreffi
Deine Schwankungen oben könnten damit zu tun haben, dass der Wert, der im State das du unter "SmartmeterID" konfiguriert hast zu träge ist. Kannst Du bitte mal überprüfen, ob er sich innerhalb von 30 Sekunden nach der Anpassung der AC-Leistung aktualisiert ?Ich habe das mal genauer untersucht:
- die Aktualisierung des Werts für Bezug hat in Home Assistant ungefähr 5 Sekunden Verzögerung (Einschalten des Verbrauchers bis Anzeige in Home Assistant)
- die Übertragung von Home Assistant zu ioBroker erfolgt nahtlos (weniger als eine Sekunde)
- der Wert für Bezug aktualisiert sich innerhalb weniger Sekunden, die Abstände variieren zwischen 1 und 15 Sekunden, wobei nur Änderungen protokolliert werden
Kleine Chronologie von heute Morgen:
07:20:32 Bezug: 73W
07:20:32 Einspeisesollwert: 85W
07:20:50 Bezug: 69W
07:20:53 Bezug: 53W
07:20:59 Bezug: 69W
07:21:04 Bezug: 61W
07:21:05 Bezug: 15W
07:21:14 Bezug: 14W
07:21:15 Bezug: 17W
07:21:17 Einspeisesollwert: 140W
07:21:24 Bezug: 16W
07:21:27 Bezug: 15W
07:21:47 Einspeisesollwert: 87W
Der Einspeisesollwert ist das Objekt X_Unknown_12 des Powerstream (alte Version des Scripts), was nach meiner Beobachtung der eingestellten Grundlast*10 entspricht. Es erfolgen also definitiv noch Aktualisierungen des Bezugs innerhalb der 30 Sekunden. -
@dreffi X_Unknown_12 kann eigentlich nicht stimmen. es sollte in ToHome_Power stehen und im neuen Script in inv_output_watts.
Ich hab versucht Dein Problem zu korrigieren. Teste malAnbei die neue Version des Skriptes, die nun hoffentlich auch mit den Updates klar kommen sollte...
Update unten
Bin gespannt, Ob es bei Euch läuft....
-
@waly_de Ich habe das selbe Problem und meine Einspeisung wird nun auf
X_Unknown_12 gelogged..
Ich hab mich schon gewundert warum der Wert immer hin und her toggled.Das neue Skript läuft bei mir leider nicht und ich bekomme folgende Fehlermeldungen:
01:00:27.147 error javascript.0 (1330) script.js.Ecoflow2: TypeError: Cannot convert undefined or null to object 01:00:27.151 error javascript.0 (1330) at decodeAndPrint (script.js.Ecoflow2:1005:34) 01:00:27.152 error javascript.0 (1330) at MqttClient.<anonymous> (script.js.Ecoflow2:840:36) 01:00:27.210 error javascript.0 (1330) script.js.Ecoflow2: TypeError: Cannot convert undefined or null to object 01:00:27.211 error javascript.0 (1330) at decodeAndPrint (script.js.Ecoflow2:1005:34) 01:00:27.211 error javascript.0 (1330) at MqttClient.<anonymous> (script.js.Ecoflow2:840:36) 01:00:27.236 error javascript.0 (1330) script.js.Ecoflow2: TypeError: Cannot convert undefined or null to object 01:00:27.237 error javascript.0 (1330) at decodeAndPrint (script.js.Ecoflow2:1005:34) 01:00:27.237 error javascript.0 (1330) at MqttClient.<anonymous> (script.js.Ecoflow2:840:36) 01:00:27.256 error javascript.0 (1330) script.js.Ecoflow2: TypeError: Cannot convert undefined or null to object 01:00:27.257 error javascript.0 (1330) at decodeAndPrint (script.js.Ecoflow2:1005:34) 01:00:27.258 error javascript.0 (1330) at MqttClient.<anonymous> (script.js.Ecoflow2:840:36)
Ich habe das alte Skript mal mit dem X_Unknown_12 angepasst und es regelt wie vorher.
Im Screenshot sieht man schön wie es wieder läuft:
Bildschirmfoto 2023-08-01 um 01.05.20 -
@ponti92 bitte das neue Script noch mal testen. Ich habe es modifiziert... und dann bitte ins Logfile sehen. Wenn da Einträge mit:
Ungültiger hexString: XXXkommen, bitte schicken.