NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@Waly_de ich habe Dein Skript jetzt seit einiger Zeit erfolgreich am laufen. Vielen Dank dafür und Deine Arbeit!!!
Dennoch eine Frage an Dich und auch an die Gruppenmitglieder hier:
Ich nutze an dem AC Ladeeingang meiner Delta Pro einen Shelly, welchen ich in der entsprechenden Sektion des Skripts konfiguriert habe. Das klappt auch super gut. Bei PV Überschuß, schaltet der Shelly automatisch ein und läd zzl über AC meine DP mit ZA auf. Dabei wird entsprechend reguliert, wieviel Überschuss da ist.Ich hatte selber mal ein ähnliches Skript gebastelt, welches dynamisch über AC in Abhängigkeit des verfügbaren PV Überschusses nachregelt. Bin aber dann davon wieder abgekommen, weil hier im Forum mir jemand den Hinweis gegeben hat, dass die DP (und wahrscheinlich auch andere EF Geräte) den Ladewert beim AC Eingang im EEPROM speichern und nicht im Flash Memory. Ich hatte den EF Support dazu einmal angeschrieben und die haben mir dieses bestätigt: "The change to the AC Load setting will be written to EEPROM memory not flash memory."
Jetzt ist es so, dass das EEPROM wohl eine sehr begrenzte Beschreibbarkeitsanzahl (ca. 100.000mal) gegenüber dem Flash Memory hat, bevor der Chip "stirbt".
D.h. ändert sich der AC Lade-Watt-Wert häufig geht die Lebensdauer immer weiter zurück.
Wie siehst du das? -
@accu das wäre ja der absolute Hammer und wäre so, als würde eine regelmäßige Änderung des Gaspedals die Lebensdauer des Autos reduzieren.
Wenn dem so wäre, dann wäre ja auch die dynamische Änderung der Einspeisung ein Problem, oder? Macht ja keinen Sinn das unterschiedlich zu implementieren.
Wenn dem so ist, dann gehe ich davon aus, dass meiner die Garantiezeit nicht überleben wird
-
@ralf77 ich kann nur wiedergeben, was ich hier im Forum aufgeschnappt hatte und was mir der EF Support bestätigt hat.
"*This is Elena from EcoFlow.The change to the AC Load setting will be written to EEPROM memory not flash memory.
Hope my answer can help you.*"
Ich denke bei der Einspeisung über den PowerStream ist das sicherlich anders zumal man ja davon ausgehen muss, dass sich die Einspeiseleistung eben ständig verändert, wenn man den PS in Kombination mit den Smart Plugs betreibt.
Beim AC Ladeeingang tust du aber in der Regel die Ladeleistung nicht ständig ändern (außer du nutzt eben ein Skript, was von EF so nicht vorgesehen war). Denke damit ändert sich diese nicht 10.000 mal.
@Homoran = FYI
-
@accu said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
...
Ich denke bei der Einspeisung über den PowerStream ist das sicherlich anders zumal man ja davon ausgehen muss, dass sich die Einspeiseleistung eben ständig verändert, wenn man den PS in Kombination mit den Smart Plugs betreibt.
...Soweit ich das überblicke, ändern die Plugs aber nicht "permanentWatts" was die Einspeisekontrolle nutzt (vermutlich EEPROM) sondern die nutzen "dynamicWatts" (vermutlich nicht EEPROM), siehe Ecoflow API Beschreibung (https://developer-eu.ecoflow.com/us/document/powerStreamMicroInverter)...
-
es wär halt schon schön, wenn man das dynamicWatt beeinflussen könnte. Nachdem in einem der letzten PlugUpdates geschrieben war, daß Bluetooth abgeschalten wird um WLAN Stabilität zu verbessern (und auch danach kein Stecker über BLE mehr gescannt werden konnte), sollte es einfacher werden die Kommunikation mitzuschneiden.
Habe bisher nur UDP Telegramme gesehen, die aber mehr Ping Charakter hatten. Ich glaube eher, daß es über ein noch unbekanntes topic über mqtt läuft. -
@foxthefox said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
es wär halt schon schön, wenn man das dynamicWatt beeinflussen könnte. ....
Habe bisher nur UDP Telegramme gesehen, die aber mehr Ping Charakter hatten. Ich glaube eher, daß es über ein noch unbekanntes topic über mqtt läuft.Ja wäre cool wenn du da etwas bzgl Kommunikation der Geräte heraus findest. (Idealerweise in lokalen Netz Aktuell hilft nur Smartplug selbst für Beeinflussung von dynamicWatts zu nutzen.
-
@accu das höre ich jetzt auch zum ersten Mal. Das wäre natürlich nicht förderlich. Allerdings müsste mein Power Stream dann längst gestorben sein, denn grob überschlagen habe ich mindestens 200000-400000 mal den Wert gesetzt seit Juli 2023.
Nichts, desto trotz sollte man mit den Jungs und Mädels von ECO-FLOW sprechen. Durch eine Firmware Änderung könnte man vermeiden, dass jedes einzelne Mal in das EEPROM geschrieben wird. wenn du da sowieso in Kontakt bist, regt das doch mal an.
Was ich tun könnte, wäre das Intervall mit dem geschrieben wird zu verlängern. Außerdem könnte ich ein Modulo einführen. Also den Wert nur in bestimmten Stufen, zum Beispiel 50 W ändern, und auch nur dann schreiben, wenn sich der aktuelle Messwert von dem zuvor geschriebenen unterscheidet. Damit könnte man die Frequenz mit der in das EEPROM geschrieben wird deutlich reduzieren.
Das alles geht natürlich auf Kosten der Reaktionsfähigkeit und Genauigkeit des Skripts. Das wäre wirklich schade. -
@waly_de das wäre gut. Zur Klarstellung ich spreche hier nicht vom PowerStream, sondern vom AC Ladeeingang an der Delta Pro.
Wie oben beschrieben nutze ich die Sektion in deinem Skript wo man zzl. noch einen Shelly angeben kann, der den Ladeeingang der Delta Pro AN bzw. AUS schaltet. Ist der AC Ladeeingang einmal AN, regelt ja Dein Skript die Ladeleistung von z.B. 200W oder wie in meinem Fall bis zu 700W.
Dieser Wert (in der App am Schieberegeler) wird wohl im EEPROM gehalten.
-
@accu okay, das beruhigt mich.
Anbei eine neue Skriptversion mit den besprochenen Änderungen. Ich hatte noch keine Gelegenheit das Intensiv zu testen, daher poste ich das zunächst nur in diesem Beitrag, quasi als Beta-Fassung.(1.2.3) 21.02.2024
- Neue Parameter für den Bereich AdditionalPower: NoFeedIn und NoPV.
- Offset: Wert wird zum Messwert addiert um Messabweichungen ausgleichen zu können
- NoFeedIn: true setzen, wenn die enthaltene Leistung nicht ins Hausnetz fließt. (Nur in PVTotal aufnehmen)
- NoPV: true setzen, wenn die enthaltene Leistung nicht in TotalPV einfließen soll. (Nur in Realpower aufnehmen)
- Neue Parameter für Überschussladung: ExcessChargeMinRegulatePause und ExcessChargeRegulateSteps
- ExcessChargeMinRegulatePause: Mindestpause in Minuten zwischen einzelnen Regelbefehlen (EEPROM-Schutz)
- ExcessChargeRegulateSteps: Stufen in Watt, in denen die Werte geändert werden sollen
- Neuer Parameter "RegulationIntervalSec": Intervall in Sekunden, in denen gemessen und reguliert wird
- Neue Parameter für den Bereich AdditionalPower: NoFeedIn und NoPV.
-
@waly_de scheint erstmal zu laufen. Werde es weiter testen. Einzige Fehlermeldung bisher:
-
Ich habe das jetzt mal ausprobiert mit den "externConfig" Parameter.
Das Objekt wird auch korrekt durch mein Blocky script gesetzt, das Ecoflow Script reagiert jedoch gar nicht darauf.Sind meine Variablen hier korrekt? Soll für 3 Powerstream gesetzt werden.
{ VarName: "seriennummern[0].MaxPower", //Variabelname aus "ConfigData" bei Aufzählungen [0...X] in der Reihenfolge der Angaben id: "0_userdata.0.MaxPower_manuell" //Das Objekt (State) das den Wert für diese Variable enthalten soll. Muss manuell angelegt werden. }, { VarName: "seriennummern[1].MaxPower", //Variabelname aus "ConfigData" bei Aufzählungen [0...X] in der Reihenfolge der Angaben id: "0_userdata.0.MaxPower_manuell" //Das Objekt (State) das den Wert für diese Variable enthalten soll. Muss manuell angelegt werden. }, { VarName: "seriennummern[2].MaxPower", //Variabelname aus "ConfigData" bei Aufzählungen [0...X] in der Reihenfolge der Angaben id: "0_userdata.0.MaxPower_manuell" //Das Objekt (State) das den Wert für diese Variable enthalten soll. Muss manuell angelegt werden. },
-
@guhfy9966 das sieht korrekt aus. Allerdings ist MaxPower so ziemlich die einzige variable, die im Moment während der Laufzeit nicht zu verändern ist. das ist auch mit Vorsicht zu genießen, denn MaxPower reguliert auch die Batterieladung.
Was genau möchtest du denn erreichen, indem du diese Variable änderst?
-
Hallo, ich habe seit 2 Tagen das Problem, dass mein Script nicht mehr funktioniert. Ich hatte bisher immer vermieden Updates meiner Adapter zu machen (never touch a running system). Da das Script seit 2 Tagen aber meinen Hausstrombedarf immer auf "0" setzt (davor ist das Script seit Wochen ohne Probleme gelaufen) habe ich heute mal die ganzen Updates der Adapter und vom Host durchgeführt. Leider hat das nichts geändert. Die Regelung geht immer noch nicht (Hausstrombedarf wir dimmer auf 0 gesetzt) und ich bekomme folgende Fehlermeldungen im Protokoll:
2024-02-29 17:22:40.684 - error: javascript.0 (130429) npm 2024-02-29 17:22:40.686 - error: javascript.0 (130429) 2024-02-29 17:22:40.688 - error: javascript.0 (130429) WARN deprecated har-validator@5.1.5: this library is no longer supported 2024-02-29 17:22:41.030 - error: javascript.0 (130429) npm 2024-02-29 17:22:41.032 - error: javascript.0 (130429) WARN deprecated node-inspect@2.0.0: This module is part of Node.js core and does not need to be installed separately. It is now unmaintained. 2024-02-29 17:22:41.246 - error: javascript.0 (130429) npm 2024-02-29 17:22:41.247 - error: javascript.0 (130429) WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. 2024-02-29 17:22:41.487 - error: javascript.0 (130429) npm 2024-02-29 17:22:41.488 - error: javascript.0 (130429) WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
Ich wäre über Hilfe und Tipps sehr dankbar, da das System für mich erst mit dem Script wirklich sinnvoll funktioniert.
Aktuell verwende ich folgende Version:
Version: 1.2.1
Release date: 05.01.2024Und folgende Instanzen:
-
ich wollte wenn mein eAuto geladen wird die Einspeisung deutlich beschränken, damit nicht jedesmal die Batterien komplett leer sind...
Oder geht das auf einen eleganteren Weg? -
@ralf77 die Fehlermeldungen haben nicht direkt etwas mit dem Skript zu tun. Das sind allgemeine Warnhinweise zu Java Skript und betreffen mein Skript nicht.
Warum der Bedarf auf null gesetzt wird, kann ich dir aufgrund deiner Informationen leider nicht sagen. Bitte überprüfe die Zustände für Real power (real power muss ich regelmäßig ändern). Versuche sicherzustellen, dass dein Smart Meter Daten richtig an iobroker übermittelt werden.
-
@guhfy9966 ja, ich denke schon,
In diesem Fall macht es ja keinen Sinn mehr, dass das Skript versucht Verbräuche zu ermitteln und auszugleichen. Dafür gibt es den Zustand:
0_userdata.0.ecoflow.Regulate.
Wenn du diesen auf false setzt, hört das Skript auf zu regulieren und setzt die angeschlossenen Power Stream auf den unter RegulationOffPower festgelegten Wert:RegulationOffPower: -1, // Wird die Regulation per State abgestellt, wird die Einspeiseleistung des Powerstreams auf diesen Wert gesetzt (-1 = keine Änderung, -2 = Batterie Priomodus)
-
@waly_de keine Ahnung was los war…Ich habe nichts geändert, aber jetzt funktioniert es wieder
-
ist es eigentlich normal, dass der hintere Teil des Skriptes Rot erscheint, als wäre da ein Syntaxfehler drin?
-
@accu das was auf dem Screenshot in rot zu sehen ist, ist ein String der wird so dargestellt Syntax Fehler werden unterstrichen. Sowas gibt es auch schon mal im Skript, wenn bestimmte Bibliotheken dem Editor nicht bekannt gemacht wurden.
In jedem Fall müsst ihr euch aber darüber keine Gedanken machen. -
Hallo zusammen,
ich bin komplett neu hier und ein wenig am verzweifeln. Ich habe den Tibber Host verbunden und hier bekomme ich auch die Werte angezeigt. Bei der Steuerung vom Powerstream bekomme ich jedoch folgende Fehlermeldungen:3.3.2024, 13:29:10.256 [info ]: javascript.0 (2054) Start javascript script.js.ecoflow 3.3.2024, 13:29:10.294 [info ]: javascript.0 (2054) script.js.ecoflow: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 3.3.2024, 13:29:10.481 [info ]: javascript.0 (2054) script.js.ecoflow: Verbunden mit dem Ecoflow MQTT-Broker 3.3.2024, 13:29:12.215 [info ]: javascript.0 (2054) script.js.ecoflow: getLowestValue-error: timeout 3.3.2024, 13:29:12.215 [info ]: javascript.0 (2054) script.js.ecoflow: Fehler beim Abrufen des niedrigsten Werts: timeout 3.3.2024, 13:29:15.684 [info ]: javascript.0 (2054) Stop script script.js.ecoflow 3.3.2024, 13:29:15.686 [info ]: javascript.0 (2054) script.js.ecoflow: Ecoflow MQTT-Client beendet
`Kann mir jemand sagen was es mit diesem "Timeout" auf sich hat und wie ich das ganze beheben kann?
Danke im Vorraus