NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@aherby
Mir geht es um die Möglichkeit ungefiltert den Datenaustausch zu sehen und nicht auf den bekannten topics die man abonniert. Ich bin auf der Suche nach unbekannten topics, die ggf für die Kommunikation zwischen Plug und Stream genutzt werden. Mqqt Explorer auf den Broker von ecoflow anzusetzen geht glaub ich nicht mit wildcard. Wireshark au wlan ist glaub ich auch etwas schwierig und wenn es verschlüsselt ist, eventuell nicht möglich. -
@waly_de Hallo was macht mein Script hier falsch oder was könnte der Grund dafür sein?
Script script.js.Ecoflow_Dym_Script_1_2_1 is calling setState more than 1000 times per minute! Stopping Script now! Please check your script!
-
@aherby das haben wir doch gefühlt schon 1000 mal hier im Thead besprochen und ist im Eingangsbeitag und im Skripheader behandelt...
-
@waly_de Soory ja ein typischer "Schicht 8 Fehler" System neu aufgesetzt und halt einige Fehlermeldungen gehabt. Dann einfach hier die Frage gepostet statt sich dann einfach mal 5 Minuten Zeit fürs Suchen oder verstehen zu nehmen.
-
Bei uns ist endlich mal wieder Sonne und ich kann ein wenig testen. So richtig rund läuft es bei mir mit mehreren PS und Deltas noch nicht.
Ich habe 3 PS:
- PS mit einer Delta Pro + Zusatzakku (PV an PS und an Delta)
- PS mit einer Delta2Max + Zusatzakku (PV an PS und an Delta)
- PS mit einer DeltaMax + Zusatzakku (PV an PS und an Delta) / diese steht in der Gartenhütte bei -5 Grad aktuell
Habe zum testen alle so eingestellt:
MaxPower: 50, // Der höchstmögliche Wert in Watt für die Einspeiseleistung subscribe: true, // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt typ: "PS", // Welches Gerät ist es: Powerstrem:"PS"; DeltaMax:"DM"; Delta2: "D2" ; Delta2 Max: "D2M"; SmartPlug: "SM"; Andere: "NA" // Parameter an hier nur für PowerStream. regulation: true, // "true": Dieser PowerStream soll vom Script reguliert werden RegulationOffPower: -1, // Wird die Regulation per State abgestellt, wird die Einspeiseleistung des ersten Powerstreams auf diesen Wert gesetzt (-1 = keine Änderung, -2 = Batterie Priomodus) hasBat: true, // "true": Eine Batterie ist angeschlossen. Nur für PowerStream relevant. battPozOn: 99, battPozOff: 94, // Wenn die Batterie bei battPozOn ist, Einspeisung auf MaxPower. Bei BattPozOff Normalbetrieb battOnSwitchPrio: true, // "true": Bei battPozOn wird in den Batterie-Prioritätsmodus gewechselt prioOffOnDemand:30, // Wattwert des Bedarfs, bei dem zurück in den Strom-Priomodus gechaltet wird. 0 für kein Rückschalten. lowBatLimitPozOn: 5, lowBatLimitPozOff: 90,// Bei Unterschreiten der Batterieladung von "lowBatLimitPozOn" % ist die maximale Einspeiseleistung auf lowBatLimit: 0, // "lowBatLimit" limitiert, bis der Ladezustand wieder bei "lowBatLimitPozOff" ist
Folgende aktuelle Beobachtung:
Alles PS DeltaPro und PS Delta2Max fangen normal an mit dem Ertrag und der Batterieladung/Einspeisung. Nur wird der PS DeltaMax ignoriert und hat weder an über den Powerstream, noch an der DeltaMax Ertrag (0W PV Ertrag).
Das Log sagt wiederholend:
Ich verstehe nicht, warum weder die PS DeltaMax, noch die DeltaMax selbst anfängt zu erzeugen. Die Spannung der Panele liegt an. Die Temperatur kann es eigentlich nicht sein, da ich gestern irgendwie und irgendwann geschafft habe, dass zumindest der Powerstream anfängt zu laden.
Hat jemand eine Idee, die ich testen kann?
Edit: Ich habe jetzt überall die "Regulation" aus gemacht und der EF App die PS_DeltaMax getestet. Egal ob "Stromspeicher" oder "Stromversorgung" Priorisieren. Sobald ich über 50W Hausverbrauch einstelle holt er sich das.
Ich gehe davon aus, dass die Batterien zu kalt sind und keine Interaktion zulassen. Somit kann der PS nur direkt in den Haushalt einspeisen... alles andere hängt. Kann das jemand bestätigen?EDIT2 Also, es hat sich bestätigt, dass es die Temperatur war und er deshalb nicht mehr geschaltet hat.
Die Funktionalität mit 3 PS scheint trotzdem im "Balance Mode" nicht rund zu laufen.
Beispiel:19:58:21.118 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: Gap_Durchschnitt: PS:[PS_DeltaPro] : 150 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: Gap_Durchschnitt: PS:[PS_Delta2Max] : 0 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: Gap_Durchschnitt: PS:[PS_DeltaMax] : 0 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: ************************************* 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: Lastcutoff: 204 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: gapSumme: 150 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: Bedarf : 523 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: PStotalPV (+10 W/PS): 30 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: Gobal totalPV: 1 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: PVBedarf : 30 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: BatBedarf: 493 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: PVfaktor:1 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: Batfaktor:5.9397590361445785 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: ueberschuss:0 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: ************************************* 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: Der ps: [PS_Delta2Max] bekommt die Gapsumme: 150 W Zusaetzlich 19:58:21.119 info javascript.0 (1327) script.js.Meine_Scripte_(Produktiv).Solar_Ecoflow: Der ps: [PS_DeltaMax] bekommt die Gapsumme: 154 W Zusaetzlich
Delta2Max Batterie ist 99% geladen und er sagt unten er bekommt die GAP Summe von 150W. Es wird jedoch nichts geschaltet.
Genau dieser PS hat heute Mittag bei 99% auch aufgehört zu erzeugen, da die Batterie voll war. Der PS hat dann nicht auf Maximale Einspeisung verändert, sondern 0 Ladung erzeugt.
Ich schaffe es aktuell nicht, dass alles rund läuft und ich mich darauf verlassen kann, finde den Fehler leider auch nicht. Gibt es im Balance Mode noch etwas zu beachten?Edit3: mittlerweile läuft es besser. Hat sich erstmal erledigt. Ich habe nochmal alles neu aufgebaut, war wohl irgendwo ein Config Fehler.
-
nachdem ich mein laufendens Skript jetzt lange Zeit ausgestellt hatte und heute mal wieder aktivieren wollte, bekomme folgenden Fehler:
09:02:08.960 info javascript.0 (852) Start javascript script.js.Test.EF_Integration 09:02:09.026 info javascript.0 (852) script.js.Test.EF_Integration: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 09:02:09.353 info javascript.0 (852) script.js.Test.EF_Integration: Verbunden mit dem Ecoflow MQTT-Broker 09:02:19.025 info javascript.0 (852) script.js.Test.EF_Integration: PowerStream [PowerStream] Batteriestand unter Limit:5% (0%). Limitiere Einspeiseleistung auf: 100W 09:02:19.222 info javascript.0 (852) script.js.Test.EF_Integration: **Fehler beim Abrufen des niedrigsten Werts: Error: No data**
Hat jemand eine Idee? was mit Abrufen des niedrigsten Werts gemeint ist?
Noch eine Zusatzfrag:
mein Powerstream regelt erfolgreich nach, allerdings habe ich immer ca. 50W die ich noch aus dem Netz ziehen muss. Gibt es irgendwo eine off-set Einstellung wo man beim PS zzl. zum ermittelten wert noch 50W on top einstellen kann? -
@accu
Schau mal bei den erweiterten Einstellungen:
BasePowerOffset: 30, // Wird vom aktuellen Verbrauch abgezogen, um die Einspeiseleistung zu berechnen
Zusatzpower_Offset: 50,Hier kannst du dich annähern.
-
Geht es, dass man in dem Script die "Cell Temperatur" einer Delta abgreift und die Variable "hasBat" der Powerstream entsprechend dynamisch regelt?
Denn: Wenn die Temperatur zu niedrig ist, lädt er nicht in die Batterie und der Powerstream nutzt auch die Energie nicht, um in das Netz einzuspeisen.
Das wäre eine Idee, dies zu umgehen und wenigstens die Solar Power nicht zu verschwenden. -
@guhfy9966 sorry ist mir immer noch nicht ganz klar. Können wir mal ein Bsp machen?
Sagen wir ich habe unten am Stromzähler einen Betrag von 50 W die ich aus dem Netz noch ziehe trotzdem dass das Skript aktuell die PS schon regelt und diese einen Wattwert X einspeist.
Was muss ich beim Basepower und Zusatzpower einstellen, um die 50 Watt aus dem Netz auf 0 zu korrigieren?
-
Ich habe folgende Konfiguration und immer wieder neue Probleme.
PS: hat 2x 400W Solar und hängt an einer Delta 2 Max.
Diese D2M hat ebenfalls PV-Module (in Summe 800W) am PV Eingang.
Jetzt habe ich folgendes festgestellt:
Die PS und D2M schalten sich über Nacht völlig aus. Sobald die Sonne scheint, schalten sich beide ein. Aber die D2M verbindet sich nicht mit dem WLAN. Schalte ich die D2M Manuel Aus und Ein, dann verbindet sich diese immer mit dem WLAN.
Des Weiteren hab ich festgestellt, dass sowohl die PS als auch die D2M erst sehr spät zu laden, bzw einspeisen anfangen. Eine weitere Anlage die unabhängig von der oben beschriebenen Kombination ist, liefert bereits 500W bevor die PS und D2M irgend was machen.
Ich kann auch beobachten, dass die PS richtig einspeist, solange der Akku unter 98% ist. Ab da fängt die PS an immer wieder zyklisch auf 0W zu gehen... regelt dann langsam auf 600W hoch um dann wieder auszuschalten. Das macht sie mehrere male (kann leider nicht sagen, wie oft, aber erst wenn der Akku wieder unter 96% ist scheint alles normal zu regeln.
Ich habe die neueste Version V1.2.1 drauf.Was kann ich in diesem Fall tun? Hängt das mit dem fehlenden WLAN der D2M zusammen? Und warum verbindet sich das WLAN nicht?
Hat das Problem noch jemand, und es gelöst?
Vielen Dank für eure Unterstützung. -
@guhfy9966 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Geht es, dass man in dem Script die "Cell Temperatur" einer Delta abgreift und die Variable "hasBat" der Powerstream entsprechend dynamisch regelt?
Denn: Wenn die Temperatur zu niedrig ist, lädt er nicht in die Batterie und der Powerstream nutzt auch die Energie nicht, um in das Netz einzuspeisen.
Das wäre eine Idee, dies zu umgehen und wenigstens die Solar Power nicht zu verschwenden.Das ist machbar. ich würde das aber extern, mit eigenem Script regeln.
mit externConfig kannst du ja jeden Punkt der Konfiguration über eigene States steuern. Du musst also nur regelmäßig "Cell Temperatur" abfragen und den Konfigurationspunkt entsprechend setzen. Das geht auch mit einem Blocky. -
@accu sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Was muss ich beim Basepower und Zusatzpower einstellen, um die 50 Watt aus dem Netz auf 0 zu korrigieren?
wie hast du denn Basepower im Moment eingestellt?
Sagen wir es steht auf 30W und Dein Stromzähler zeigt noch 50W an.
Dann muss theoretisch Basepower auf -20 gestellt werden, damit 0W angesteuert werden können.Ich rate davon aber grundsätzlich ab. Denn damit wird vermutlich häufiger ins Netz eingespeist. Für die normalen Anwender einer Balkon Kraftwerk Anlage ist es günstige ständig ein paar Watt aus dem Netz zu beziehen, als immer wieder ein paar einzuspeisen, für die es nichts gibt.
-
@micha-6 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Ich habe folgende Konfiguration und immer wieder neue Probleme.
PS: hat 2x 400W Solar und hängt an einer Delta 2 Max.
Diese D2M hat ebenfalls PV-Module (in Summe 800W) am PV Eingang.
Jetzt habe ich folgendes festgestellt:
Die PS und D2M schalten sich über Nacht völlig aus. Sobald die Sonne scheint, schalten sich beide ein. Aber die D2M verbindet sich nicht mit dem WLAN. Schalte ich die D2M Manuel Aus und Ein, dann verbindet sich diese immer mit dem WLAN.
Des Weiteren hab ich festgestellt, dass sowohl die PS als auch die D2M erst sehr spät zu laden, bzw einspeisen anfangen. Eine weitere Anlage die unabhängig von der oben beschriebenen Kombination ist, liefert bereits 500W bevor die PS und D2M irgend was machen.
Ich kann auch beobachten, dass die PS richtig einspeist, solange der Akku unter 98% ist. Ab da fängt die PS an immer wieder zyklisch auf 0W zu gehen... regelt dann langsam auf 600W hoch um dann wieder auszuschalten. Das macht sie mehrere male (kann leider nicht sagen, wie oft, aber erst wenn der Akku wieder unter 96% ist scheint alles normal zu regeln.
Ich habe die neueste Version V1.2.1 drauf.Was kann ich in diesem Fall tun? Hängt das mit dem fehlenden WLAN der D2M zusammen? Und warum verbindet sich das WLAN nicht?
Hat das Problem noch jemand, und es gelöst?
Vielen Dank für eure Unterstützung.Das klingt nach den typischen Problemen von Ecoflow. Neben den üblichen Ratschlägen wie: Firmware erneuern, WLAN LAN, Stärke an der Stelle überprüfen, unter Umständen einen Repeater in der Nähe anbringen... kann ich dir nur empfehlen, dich an den Ecoflow-Support zu wenden.
Mit dem Skript scheint das nichts zu tun zu haben.
Beachte bitte auch, dass das Skript nicht vernünftig arbeiten kann, wenn nicht alle Geräte mit dem WLAN verbunden sind, weil dann die Messdaten der Geräte nicht verarbeitet werden können -
Nur zur Information: ich hab im Moment nicht so viel Gelegenheit, an dem Projekt zu arbeiten, bitte zu entschuldigen, dass ich nicht so schnell antworten kann.
Dazu kommt noch ein paar gesundheitliche Probleme mit den Augen. Ich hoffe, dass sich das schnell erledigt.Seit ein paar Tagen habe ich jetzt auch eine große PV Anlage mit circa 14 kW Peak auf dem Dach. Daher werde ich in Zukunft versuchen die große Anlage mit den Ecoflow-Geräten und meinen Mikrowechselrichter sowie meiner Wärmepumpe und anderen Verbraucher zum zusammenarbeiten zu bewegen. Es geht also sicher weiter
-
@waly_de Gute Besserung und wie immer herzlichen Danke für deine Zeit und geduld.
Spannendes Thema und schön dass du weiter am Script arbeiten möchtest.
Da ich den Platz für einen "Solar-Smartmeter" beim Neubau vom Zählerschrank berücksichtigt hatte, ist aktuell
ein Finder 3 Phasen-Zähler mit Modbus an diesem Platz eingebaut. Mit diesen Zähler und deinem Script kann ich mein größeres Balkonkraftwerk mit 1,5 kWp super steuern. Vielleicht hast du ja bei deinen Geräte passende Schnittstellen, diese auszulesen oder darüber zu steuern. Wie sich auch gerade wieder bei Ecoflow in den vergangenen Tages zeigt ist eine lokale Quelle nicht von anderen Seververbindungen abhängig. Wenn du wen fürs Brainstorming braucht, meld dich einfach. -
@waly_de Gute Besserung!
Ich hätte noch ein Feature Request für das Tibber-Script. Wenn es eh schon CHEAP und VERY_CHEAP ausliest und danach die Steckdose steuert, kann man noch einbauen, dass er schaut wie lange die CHEAP und/oder VERY_CHEAP Phase dauert, und danach die AC-Geschwindigkeit anpasst?
Also z.B. wenn man eine DM 2000 hat und die Zeitspanne 5 Std. beträgt dass er dann die Lade-Geschwindigkeit auf 400W stellt etc.
-
@waly_de danke. Aktuell sieht es bei mir so aus:
BasePowerOffset: 20, // Wird vom aktuellen Verbrauch abgezogen, um die Einspeiseleistung zu berechnen Zusatzpower_Offset: 10, // Zusatzpower startet ab einer Batterieladeleistung von MaxPower - Zusatzpower_Offset
Was macht denn der Zusatzpower Parameter?
-
@waly_de ich habe dein Skript (ecoflow-connector_v121_05.01.2024.txt) erfolgreich im Einsatz. Ganz herzlichen Dank dafür. Ich habe allerdings ein seltsames Phänomen. Die Stromeinspeisung (lowestValue) bleibt eine Zeitlang sehr gut unter dem Verbrauch, geht dann aber irgend wann über den tatsächlichen Verbrauch und bleibt dann dort unverändert stehen (so ca. bei 500 Watt). D.h. lowestValue wird nicht mehr aktualisiert, bleibt bei einem hohen Wert stehen und wenn der Stromverbrauch sinkt, bleibt die Einspeisung gleich. Ich speise dann z.T. mehr Strom ein, als ich verbrauche. Ich habe mir jetzt temporär beholfen, in dem ich Deinen im Skript auskommentierten Part zum loggen von lowestValue wieder aktiviert habe (ab Zeile 1024). Seltsamerweise wird dann der lowestValue durchgängig korrekt gesetzt. Kann es sein, dass die Berechnung von lowestValue in Deinem Skript noch in einer Schleife ergänzt werden müsste? Vielleicht gibt es aber auch einen Speicherüberlauf für diese Variable nur bei mir? RealPower wird korrekt weiterberechnet, das Skript läuft also weiter. Nur LowestValue wird nicht mehr aktualisiert. Ich bin leider Anfänger und kann kein JavaSkript, vielleicht siehst du das ja auf einen Blick. Ansonsten habe ich einen Ecoflow Smartmeter mit einer DeltaPro (3,7KW Akku). Am Smartmeter habe ich je ein Solarmodul mit 430W angeschlossen und an der DeltaPro habe ich 6 Solarmodule angeschlossen (2 Stränge, die aus je 3 in Serie geschalteten Solarmodulen a 430W bestehen), die über einen XT60 Stecker den Akku laden. Iobroker und alle Adapter habe ich auf dem neuesten Stand. Hier mein temporärer Workaround: für Zeile 1024:
var intervalID2 = setInterval(function () { getLowestValue(ConfigData.statesPrefix + ".RealPower", 2) .then(lowestValue => { null // log( "lowestValue:" + lowestValue)// }) .catch((error) => { console.warn('Fehler beim Abrufen des niedrigsten Werts:', error); }); }, 2 * 1000);
-
Hallo,
Ich habe noch eine Frage zu den InWatts-/InputtWatts-Werten und die Übertragung in die Objekte des IOBroker.
Ich habe im Moment nur ein Solarmodul angeschlossen.
In der D2M habe ich für den PV1 Eingang
0_userdata.0.ecoflow.app_device_property_R351Zxxxxxxx.data.params.mppt.inWatts
und für den PV2 Eingang
0_userdata.0.ecoflow.app_device_property_R351Zxxxxxxxx.data.params.mppt.pv2InWatts
genommen, um die Eingangsleistung anzuzeigen (im VIS).
Ich war hier etwas irritiert, dass das Objekt für den PV1 Eingang nicht "...pv1InWatts" betitelt wurde.
Ist das Absicht und so gewollt?
Oder habe ich das falsche Objekt ausgewählt?Beim PS wiederum habe ich für PV1
0_userdata.0.ecoflow.app_device_property_HW51Zxxxxxx.data.InverterHeartbeat.pv1InputWatts
und für PV2
0_userdata.0.ecoflow.app_device_property_HW51Zxxxxxx.data.InverterHeartbeat.pv2InputWatts
genommen.
Beim PS habe ich jedoch das Phänomen, dass dort ein dreistelliger Wert übertragen wird, obwohl in der APP nur zweistellig ist. Es scheint, als ob hier noch eine Nachkommastelle im IOBroker dargestellt wird. Ist das korrekt? Ist das so gewollt?
Oder bin ich einfach am falschen Objekt dran?
Danke für eure Hilfe
Gruß Kai -
@kaiausbrieselang
Wenn ich nicht irre, so werden die Daten bei der Verwendung des scripts einfach übernommen. Für normierte Werte mit Einheit empfehle ich den ecoflow-mqtt Adapter, der kann auch parallel zum Script laufen (nur nicht mit identischen Android-Gerätekennung).