NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@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 -
Herzlichen Dank für all deine Mühe! Den ioBroker hatte ich schon mal, weil shelly cloud aber alles abdecken kann was ich wollte, brauchte ich es nicht.
Ich bin ein totaler Noob mit Skripts etc. Dank deiner Anleitung & Protokollierung im Code, war für mich alles sehr einfach einzurichten. War fast schon geschockt als ich den Skript startete und es einfach funktioniert hat
Spende folgt noch.Fragen:
Macht es dem Akku nichts aus wen er über eine gewisse Zeit nur teilgeladen wird?
Ich benötige momentan regelmässig mehr Strom als vom Solar produziert wird.
Wäre eine Funktion möglich wie zum Beispiel 1x pro Woche den Akku bis 90% zu laden bevor vom Akku wieder eingespeist wird?Ich betreibe nur den PowerStream mit der Delta Pro, ausgelesen wird von dem Shelly 3EM. Spiele mit dem Gedanken weitere Panel direkt an den Delta anzuschliessen. Muss dieser Wert im Skript eingetragen werden? Wenn ja, welchen Wert, die variiert ja.
Nochmals Danke & Gruss
-
@tom-goos die Gleiche Fehlermeldung bekomme ich auch...bin auch noch nicht dahinter gestiegen.
-
Nutzt ihr eigentlich schon dass ExcessCharge-Feature? Deute ich das schon so richtig dass ich, wenn ich zum Beispiel durch Überproduktion 500W Einspeisung habe ich meine Delta Pro automatisch mit 500W AC laden lasse, oder?
Und noch eins, bitte entschuldigt wenn es schon im Forum erklärt wurde, aber wie habt ihr die (Steuer-)Verbindung aus IOBroker zu eurem Akku aufgebaut? Es gibt ja in IOBroker keine Ecoflow Anbindung soweit ich das gesehen habe, oder?
Habt ihr dann per MQTT die Daten an HomeAssistant gesendet oder gibts da nen anderen Trick? Denn die HomeAssistant-Instanz im IOBroker ist ja leider nur Read-Only soweit ich das verstanden habe...