NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
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.
-
@waly_de
Ich weiß nicht wie ich in diesem Forum sinnvoll ein Log per Nachricht verschicken kann.Die neue Version des Scripts funktioniert bei mir weiterhin nicht. Gleiche Fehler wie bei ponti92.
Der Wert ToHome_Power scheint der Wert zu sein, der in der App als eingespeiste Leistung angezeigt wird. Also das was in der Ansicht aus dem Powerstream "rausgeht" bzw. vielleicht in die "anderen Verbraucher" rein.
Problem: viele Werte werden derzeit mit dem alten Script zeitweise gar nicht oder nur sehr selten aktualisiert. Betroffen sind z.B. PV1_Power, PV2_Power und leider auch Batt_Poz.
Die Werte der Delta 2 werden sauber aktualisiert.
Ich vermute durch diese fehlende Aktualisierung verschluckt sich dann die Logik, da mit alten Einspeisesollwerten gerechnet wird.
Ich habe derzeit auch im alten Script (0.5.2) ToHome_Power durch X_Unknown_12 ersetzt und es regelt jetzt sauber.
X_Unknown_12 entspricht definitiv dem Wert, der in der App am Schieberegler für den Leistungsbedarf am AC Ausgang (Grundlast) eingestellt wird.Nachtrag: für battPozOn/Off greife ich erstmal direkt auf den Wert SOC der Delta 2 zu.
-
@dreffi
Fakt ist, die Datenstruktur hat sich durch die Updates grundlegend geändert. Ihr müsst auf das neue Script, wenn Ihr brauchbare Daten haben wollt.
Ich habe in der Nacht die Version noch geädert. Sie muss jetzt eigentlich einen anderen Fehler melden. Achte auf die Version (0.6.5)
Ich Brauche diese Daten von Euch wenn ich helfen soll, denn bei mir Funktioniert es ja.Seit heute Morgen sehe ich auch die neuen Daten demnach kann es sein das das alte script unter X_Unknown_12 den eingestellten Wert für AC-Bedarf anzeigt, aber nicht das was wirklich eingespeist wird. Das kann sich ja ändern, wenn eben keine Batterie zur Verfügung steht ist es nur die PV-Power. Mit dem Wunschwert kann man schlecht regeln.
-
@waly_de Moin! Ich habe auch Fehler. Habe alle Updates eingespielt.
09:20:00.651 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object
09:20:00.651 error javascript.0 (1121881) at decodeAndPrint (script.js.common.ecoFlow_PowerStream:1012:34)
09:20:00.651 error javascript.0 (1121881) at MqttClient.<anonymous> (script.js.common.ecoFlow_PowerStream:843:36)
09:20:00.664 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object
09:20:00.664 error javascript.0 (1121881) at decodeAndPrint (script.js.common.ecoFlow_PowerStream:1012:34)
09:20:00.664 error javascript.0 (1121881) at MqttClient.<anonymous> (script.js.common.ecoFlow_PowerStream:843:36)
09:20:00.712 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object
09:20:00.712 error javascript.0 (1121881) at decodeAndPrint (script.js.common.ecoFlow_PowerStream:1012:34)
09:20:00.713 error javascript.0 (1121881) at MqttClient.<anonymous> (script.js.common.ecoFlow_PowerStream:843:36)
09:20:00.737 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object
09:20:00.751 error javascript.0 (1121881) at decodeAndPrint (script.js.common.ecoFlow_PowerStream:1012:34)
09:20:00.751 error javascript.0 (1121881) at MqttClient.<anonymous> (script.js.common.ecoFlow_PowerStream:843:36)
09:20:03.023 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object
09:20:03.023 error javascript.0 (1121881) at decodeAndPrint (script.js.common.ecoFlow_PowerStream:1012:34)
09:20:03.023 error javascript.0 (1121881) at MqttClient.<anonymous> (script.js.common.ecoFlow_PowerStream:843:36)
09:20:05.022 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object
09:20:05.023 error javascript.0 (1121881) at decodeAndPrint (script.js.common.ecoFlow_PowerStream:1012:34)
09:20:05.023 error javascript.0 (1121881) at MqttClient.<anonymous> (script.js.common.ecoFlow_PowerStream:843:36)
09:20:05.931 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object
09:20:05.932 error javascript.0 (1121881) at decodeAndPrint (script.js.common.ecoFlow_PowerStream:1012:34)
09:20:05.932 error javascript.0 (1121881) at MqttClient.<anonymous> (script.js.common.ecoFlow_PowerStream:843:36)
09:20:06.224 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object
09:20:06.225 error javascript.0 (1121881) at decodeAndPrint (script.js.common.ecoFlow_PowerStream:1012:34)
09:20:06.225 error javascript.0 (1121881) at MqttClient.<anonymous> (script.js.common.ecoFlow_PowerStream:843:36)
09:20:07.059 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object
09:20:07.060 error javascript.0 (1121881) at decodeAndPrint (script.js.common.ecoFlow_PowerStream:1012:34)
09:20:07.060 error javascript.0 (1121881) at MqttClient.<anonymous> (script.js.common.ecoFlow_PowerStream:843:36)
09:20:09.251 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object
09:20:09.252 error javascript.0 (1121881) at decodeAndPrint (script.js.common.ecoFlow_PowerStream:1012:34)
09:20:09.252 error javascript.0 (1121881) at MqttClient.<anonymous> (script.js.common.ecoFlow_PowerStream:843:36)
09:20:11.289 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object
09:20:11.290 error javascript.0 (1121881) at decodeAndPrint (script.js.common.ecoFlow_PowerStream:1012:34)
09:20:11.290 error javascript.0 (1121881) at MqttClient.<anonymous> (script.js.common.ecoFlow_PowerStream:843:36)
09:20:13.210 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object
09:20:13.210 error javascript.0 (1121881) at decodeAndPrint (script.js.common.ecoFlow_PowerStream:1012:34)
09:20:13.210 error javascript.0 (1121881) at MqttClient.<anonymous> (script.js.common.ecoFlow_PowerStream:843:36)
09:20:15.314 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object
09:20:15.314 error javascript.0 (1121881) at decodeAndPrint (script.js.common.ecoFlow_PowerStream:1012:34)
09:20:15.315 error javascript.0 (1121881) at MqttClient.<anonymous> (script.js.common.ecoFlow_PowerStream:843:36)
09:20:15.971 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object
09:20:15.976 error javascript.0 (1121881) at decodeAndPrint (script.js.common.ecoFlow_PowerStream:1012:34)
09:20:15.976 error javascript.0 (1121881) at MqttClient.<anonymous> (script.js.common.ecoFlow_PowerStream:843:36)
09:20:17.331 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream: TypeError: Cannot convert undefined or null to object -
@waly_de Ich habe das neue Skript getestet, jedoch ist wieder der selbe Fehler wie davor.
Diesmal habe ich das debug flag auftrue
gesetzt, vielleicht sagt dir das dann mehr:09:18:19.601 info javascript.0 (1330) script.js.Ecoflow2: Binäre Nachricht empfangen:/app/device/property/HWXXXXXXXXXXXXXX:0a4f0a2480019d028801a916a8019f02b001bb16e8019cfeffffffffffffff018802c5059802c50510351820200128014014480150245801800103880103ca0110485735315a4f483453463554353531300a380a0d8801f8ae21d801c23080029909103518202001280140144804500d5801800103880103ca0110485735315a4f48345346355435353130 09:18:19.654 error javascript.0 (1330) script.js.Ecoflow2: TypeError: Cannot convert undefined or null to object 09:18:19.661 error javascript.0 (1330) at decodeAndPrint (script.js.Ecoflow2:1009:34) 09:18:19.663 error javascript.0 (1330) at MqttClient.<anonymous> (script.js.Ecoflow2:840:36)
D.h. immer beim Empfang von Daten bekomme ich diesen TypeError..
PS: Ich habe die Seriennummer unkenntlich gemacht, im log ist die richtige Seriennummer schon vorhanden.
-
@ponti92 Neuer Versuch:
siehe unten
-
@waly_de Danke! Jetzt kommt nur noch eine Fehlerzeile:
09:58:21.826 error javascript.0 (1121881) script.js.common.ecoFlow_PowerStream compile failed:
at script.js.common.ecoFlow_PowerStream:94