NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
Hi Leute,
ich nutze das Skript dazu um an die Werte meiner EF Delta Pro zukommen, um dann den Solarladeeingang der DP dynamisch steuern zu können, was für mich das Killer-Feature wäre
Dh. ich habe Solarüberschuss von 300W (oder mehr) bei mir im Hausnetz, dann soll der Solarladeeingang der Delta Pro (an der die Solarpanels hängen) von 200 auf 300 hochgesetzt werden usw.
Der Solarladeeingang der EF DP ist im Datenpunkt: 0_userdata.0.ecoflow.app_device_property_DCEBZ8ZE7041280.data.params.inv.cfgSlowChgWatts
hinterlegt (sie wie ich das ermitteln konnte).Aber irgendwie klappt es nicht das Teil umzustellen via Skript. Hat das schon jemand geschafft? Hier mal mein Blockly dazu:
-
@Waly_de Vielen Dank für deine großartige Arbeit und deine Bemühungen mit dem Script!
Habe mittlerweile drei PowerStreams mit je einer Delta2 und insgesamt 2,5 kWp PV-Leistung eingebunden, funktioniert hervorragend
Leistungs- / Energiemessung mache ich mit einem Shelly Pro 3EM.Wenn man sich mal ein bisschen mit dem Script beschäftigt hat und etwas damit experimentiert hat, ist es eigentlich kein Problem.
Hast du vielleicht noch vor, einen ioBroker-Adapter daraus zu entwickeln? Würde die Einrichtung eventuell für diejenigen erleichtern, die noch ziemlich neu auf dem Gebiet sind.
-
@waly_de said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
ok, guck dir bitte mal an, in welchen abständen Realpower und LowestValue bei Dir aktualisiert werden?
Die Abstände in Realpower sind bei solchen Ausfällen bei ca 1min und 35s und solche Sachen sehe ich dann im log file:
21:20:08.477 info javascript.0 (1240) script.js.Ecoflow3: getLowestValue-Duration: 1.893s 21:22:57.713 info javascript.0 (1240) script.js.Ecoflow3: getLowestValue-Duration: 6.129s 21:24:23.680 info javascript.0 (1240) script.js.Ecoflow3: getLowestValue-Duration: 2.095s 21:28:11.644 info javascript.0 (1240) script.js.Ecoflow3: getLowestValue-Duration: 5.046s 21:28:53.406 info javascript.0 (1240) script.js.Ecoflow3: getLowestValue-Duration: 1.818s
Woran kann das liegen, dass die Abstände so groß sind? Wenn ich das Skript neu starte, dann läuft es erst mal wieder. Ich vermute mal die MQTT Verbindung zu Ecoflow das Problem hier ist.
-
@waly_de Hallo, ich bin ganz neu hier und finde die Idee dieses Scripts faszinierend, weil es natürlich Sinn macht, möglichst viel Solarenergie selbst zu verbrauchen und deshalb eine Regelung benötigt wird, die sich am aktuellen Leistungsbedarf aller Verbraucher orientiert. Deshalb beschäftige ich mich nun mit ioBroker und habe schließlich alle Komponenten zum Laufen gebracht. Daten vom Stromzähler liegen inzwischen auch an.
Aber ich habe eine grundsätzliche Frage: Funktioniert dieses Skript auch, wenn man keine Powerstation hat, sondern mit der Delta 2 max extra Batterie als Pufferspeicher arbeitet? Ich hatte mich für dieses Setting entschieden, weil die Batterie nur passiv gekühlt wird und weniger Eigenverbrauch hat. Und weil sie natürlich auch kostengünstiger ist, als die Delta 2 max. -
@ponti92 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Wie meinst du das mit jede PS versucht die Gesamtlast zu decken? D.h. Dass bei einer Last von 300W die erste anfängt mit 300W und dann die zweite den Rest, bzw. 0w nimmt?
Wäre im balanced Modus nicht einfach die halbe Last für jede PS sinnvoll, denn sonst hat man ja wieder eine kaskadierung der PS?
Wird für eine Messung die Einspeisung für beide PS ermittelt, oder läuft das Nacheinander mit zwei Messungen?Im Moment ist das so. Die Messungen erfolgen nacheinander. Jeder PS für sich. Bei Serial wird einmal gemessen und alle PS angesteuert. Nach einiger Laufzeit sollte sich das mehr oder weniger gleichmäßig auf beide Verteilen. Halbieren ist nicht so praktikabel, weil man nie weiss, zu welcher Leistung ein PS gerade in der Lage ist. Ausserdem ist die aktuelle Solarleistung meiner Meinung nach wichtiger als der Batteriestand.
Das ist ein ziemlich komplexes Thema. Ich schieb das etwas vor mir her Wird aber noch weiter optimiert... irgendwann, versprochen -
@bombastikde sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Nun zu meiner Frage. Ich denke, für Neulinge könnte die Option mit der SD-Karte eine Möglichkeit sein. Allerdings bin ich der Meinung, dass dies eventuell noch mehr Fragen generieren wird. Wer sich für die Installation eines IOBrokers entscheidet, sollte sich vorher gründlich mit dem Thema befassen. Ohne eine gewisse Wartung wird man mit dem System nicht lange Freude haben. Ich habe bereits mehrfach gelesen und auch in YouTube Shorts gehört, dass viele Nutzer sich eine solche vorkonfigurierte Lösung wünschen.
Danke für Deine Meinung. Stimmt, es bleibt komplex. Aber in der Grauzone zwischen denen die einfach etwas in die Steckdose stecken wollen, und den 200% Kontroll-Tekkies kann man glaube ich noch einige abholen. Oft weiß man ja nur einfach nicht wo man anfangen soll. Ich glaube ich teste das mal in ganz kleinem Umfang. Supporten kann ich das für 100'te Anwender vermutlich nicht alleine.
Zum Thema Wartung muss ich sagen.... ich nutze seit vielen Jahren IOBroker. Und ich möchte behaupten, dass ich wenn ich es am Anfang einmal eingerichtet und dann nie wieder angefasst hätte, es heute noch immer ohne Probleme laufen würde Natürlich hab ich ständig Updates gemacht... Aber nötig waren die Wenigsten.
-
@accu sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Der Solarladeeingang der EF DP ist im Datenpunkt: 0_userdata.0.ecoflow.app_device_property_DCEBZ8ZE7041280.data.params.inv.cfgSlowChgWatts
hinterlegt (sie wie ich das ermitteln konnte).
Aber irgendwie klappt es nicht das Teil umzustellen via Skript. Hat das schon jemand geschafft? Hier mal mein Blockly dazu:diese Datenpunkte sind ALLE read only. Nur Datenpunkte unter dem Objekt "writeables" sind schreibbar. Diese Datenpunkte werden angelegt, wenn das Script läuft und Du den entsprechenden Wert in der App änderst.
-
@marcus_d sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Hast du vielleicht noch vor, einen ioBroker-Adapter daraus zu entwickeln? Würde die Einrichtung eventuell für diejenigen erleichtern, die noch ziemlich neu auf dem Gebiet sind.
Erst mal vielen Dank für Deine Unterstützung in Form einer großzügigen Spende! Das hat mich sehr gefreut und motiviert natürlich
Bisher hab ich mich immer vor einer Adapterentwicklung gedrückt. Das ist mit viel Einarbeiten und Beschäftigung mit Git und, was das Schrecklichste ist, der Entwicklung eines Frontends verbunden Aber es macht natürlich Sinn. Ich setzte es mal auf die Liste mit Aufgaben für sehr schlechtes Wetter -
@ponti92 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Woran kann das liegen, dass die Abstände so groß sind? Wenn ich das Skript neu starte, dann läuft es erst mal wieder. Ich vermute mal die MQTT Verbindung zu Ecoflow das Problem hier ist.
Das deutet eigentlich eher darauf hin das Dein System überlastet ist. Wieviele Deltas hast du abonniert? Vielleicht versuchst Du mal "subscribe: false" wenn es wieder Probleme macht. Oder macht dein IOBroker noch andere aufwendigere Dinge?
-
@tom7657 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Funktioniert dieses Skript auch, wenn man keine Powerstation hat, sondern mit der Delta 2 max extra Batterie als Pufferspeicher arbeitet? Ich hatte mich für dieses Setting entschieden, weil die Batterie nur passiv gekühlt wird und weniger Eigenverbrauch hat. Und weil sie natürlich auch kostengünstiger ist, als die Delta 2 max.
Willkommen in der wunderbaren Welt des IOBroker-Universums
Ja, das funktioniert. Der PowerStream ist hier die wichtigste Komponente und regelt die Speicherung alleine. -
@marcxx sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Hallo Forum-Gemeinde...
Was möchte mir mein Script sagen???
Hab 1x mit Android auf meinen Ecoflow Account zugegriffen, seitdem die Meldung...Danke!
08:24:32.581 info javascript.0 (168) script.js.Ecoflow: Unbekannter Delta2Max Set Befehl: {"from":"Android","id":"147001304","moduleType":2,"operateType":"setRtcTime","params":{"sec":4,"min":13,"week":3,"month":9,"hour":11,"year":2023,"day":6},"version":"1.0"}
Da versucht etwas die Uhr deines D2M zu stellen. Kannst Du ignorieren. Das Script wird es in der nächsten Version auch tun
-
@waly_de Ich habe nur die zwei PS abonniert und die D2M erst mal auf false gesetzt. Die Probleme sind erst mit der zweiten PS aufgetreten, wobei ich davor eine PS und eine D2M abonniert habe.
Nun habe ich die D2M erst mal abbestellt, jedoch kann ich bei der D2M trotzdem die Werte ändern und die writeables werden auch angelegt. Ist das so korrekt, oder ist sie doch noch irgendwie abonniert, ohne dass ich das sehe?Ich habe auf meinem iobroker schon einiges am Laufen.. Zigbee, hue, hmip, js, mqtt, shelly, influxdb, grafana, pushover, sourceanalytics etc..
Jedoch ist die Auslastung der CPU meist unter 50% und der RAM macht das locker mit. Ich versuche mal ein paar Adapter aufzuräumen, die ich nicht mehr benötige.
Spielt vielleicht die nodejs version eine Rolle, denn da bin ich noch auf version 14 und müsste langsam mal wieder updaten
-
@ponti92 so ähnlich siehts auch bei mir aus. Viele Adapter und Scripte laufen auf einem Raspi.
Das geht auch in der Regel gut. Aber ich hab es dennoch mehrfach geschafft mein System komplett lahm zu legen, indem ich den Delta abonniert habe. Der feuert bei mir übrigens noch mehr Nachrichten, wenn ich gerade mit der App darauf zugreife. Ich glaube es ist weniger CPU oder Speicher das Problem. Vielmehr die ganzen Schreibvorgänge.Writeables laufen weiter (werden auch abonniert) nur die ganzen Statusmeldungen werden ausgelassen. Vielleicht findet sich ja irgendwann mal eine Möglichkeit den Deltas eine langsamere Updatefrequenz beizubringen...
nodejs wird daran vermutlich nicht viel ändern.... aber Updates sind immer sinnvoll
-
@waly_de Also, ich finde, das ist eine tolle Idee! Habe beim Einrichten aller Komponenten für dein Skript selbst eine Menge gelernt. Und es scheint tatsächlich zu laufen. Ohne dass ich wirklich weiß, warum. Aber den Umzug auf einen Raspberry Pi hatte ich ohnehin geplant, weil ich meinen "normalen" PC nicht ständig laufen lassen möchte.
-
@waly_de Ah, wie gut! Das hatte ich gehofft.
Aktuell erhalte ich häufig folgende Meldung:
script.js.Ecoflow: Fehler beim Abrufen des niedrigsten Werts: Error: No data
Woran könnte es liegen?
Und ich würde gern etwas spenden. Wo wäre dies möglich?
-
@tom7657 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
script.js.Ecoflow: Fehler beim Abrufen des niedrigsten Werts: Error: No data
Woran könnte es liegen?
Und ich würde gern etwas spenden. Wo wäre dies möglich?Diese Meldung kommt wenn Dein Smartmeter innerhalb der eingestellten Zeit: MinValueMin keine neuen Daten an IoBroker geliefert hat. Beim ersten Start normal. Aber dann sollte es regelmäßig neue Daten geben... Du kannst unter Objekte nachsehen, ob der Wert aktualisiert wird.
0_userdata.0.ecoflow.RealPower
muss sich auch regelmäßig ändern, wenn alles klappt.
PS: Spende ist angekommen! Vielen Dank!
-
Ich habe bei der PowerStream die neueste Firmware drauf V1.0.0.154 und kann aktuell nicht mehr den AC Ausgang steuern, wieviel Watt dort ausgegeben werden (habe keinen SmartPlug installiert). Ob da jetzt ein Zusammenhang mit dem Firmwareupdate gibt, kann ich nicht genau sagen, zumindest wird der Wert aktuell weder aktualisiert noch kann ich ihn setzen. subscribe ist auf false, da im anderen Fall nach kurzer Zeit die Fehlermeldung erscheint, dass setState zu oft aufgerufen wurde und daher das Script disabled wird.
Nachtrag, es wird auch mit subscribe false disabled, dauert nur längererror javascript.0 (194) Script script.js.common.EcoFlow-Script is calling setState more than 1000 times per minute! Stopping Script now! Please check your script!
und meine Delta möchte ich subscriben, da ansonsten der SoC nicht kommt und benötige ich für meine Steuerung oder kann man das zukünftig so abändern, dass der Soc auch bei subscribe false aktualisiert wird? Ich habe eine Delta Pro und diese als Delta Max im Script eingestellt, da es keine Delta Pro als Parameter gibt.
Nachtrag, wenn das Script frisch gestartet wird, dann kann ich das kurzzeitig machen, dann scheint das Script aber die Verbindung zum PowerStream zu verlieren und dann geht es nicht mehr. Das hatte bei mir mal wochenlang alles super funktioniert
-
@gerdso siehe Eingangsbeitrag: https://forum.iobroker.net/topic/66743/ecoflow-connector-script-zur-dynamischen-leistungsanpassung
Wenn die Delta an der PS hängt kannst du SoC auch über die PS Daten abfragen
-
@waly_de Deswegen die Frage, ob bei subscribe=false zumindest der Soc aktualisiert werden kann, ansonsten kann ja nichts gesteuert werden, da man den SoC nicht kennt oder der sbuscribe mehrstufig gemacht werden kann. Evtl. auch, dass die writables ebenfalls als State subscribe werden, damit man auch Änderungen von der Delta oder dem PS sieht, da handelt es sich ja nur um 1-3 Variablen pro Geräte.
Was ich nicht verstehe, das hat wochenlang super funktioniert und seit Anfang der Woche gibt es Probleme bei mir, fällt zusammen mit NAS-Update, worauf der iobroker Docker läuft und dem PowerStream Update
-
@waly_de Danke! Ich verstehe.
Ich hatte ja Energieversorgung priorisiert (in der App). Mein Akku ist nun voll und die Solarleistung wird gedrosselt auf den tatsächlichen Bedarf. Allerdings holt sich der PowerStream nun einen Teil der Energie aus der Batterie. Das finde ich seltsam, weil ja real aktuell noch das Dreifache an Solarpower zur Verfügung stehen würde. Das sehe ich, wenn ich manuell auf "Batterie priorisieren" umstelle.
Das Protokoll meldet: script.js.Ecoflow: Batterie runter auf 92%: Normalbetrieb.Wie ist dies zu verstehen?