NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@foxthefox Weil der immer die Last einstellt, die am Shelly 3em anzeigt, einstellt. Bei manchen springt es auch von kompletter Deckung des Hausbedarfs (shelly = 0W) zu 100-200W Grundbedarf.
Da ja der Shelly normalerweise den Gesamtverbrauch des Hauses misst, darf Ecoflow da nicht die Daten so behandeln wie einen Smartplug. Das tun sie aber zurzeit und dann kann es entweder hin und her pendeln, oder wie bei mir sich bei der Hälfte des Verbrauchs einpendeln.
Z.b. Shelly zeigt 80W an, Ecoflow speist 80W ein, da einfach der Wert vom Shelly übernommen wird. Grundlast ist aber 160W, sprich Ecoflow kann nur die Hälfte der geforderten Leistung bedienen.
Bei manchen springt es herum, wahrscheinlich am Anfang und bei wechselnden Lastspitzen.
Sagen wir du verbrauchst 200W und Ecolfow speist noch nichts ein. Dann startet die App und Ecoflow sieht die 200W am Shelly und stellt diese ein. Nun werden aber von den 200W die Einspeiseleistung von Ecoflow (~ 200W) abgezogen und der Shelly sieht theoretisch +-0W. Diesen Wert nimmt Ecoflow wieder und schaltet die Einspeisung womöglich aus. Und so schaukelt der Wert hin und her.Hier ist das log als ich es eingeschaltet habe:
Und hier beim Ausschalten:
Weiß nicht ob da was dabei ist, da ziemlich viele EInträge in wenigen Sekunden kommen..
@ponti92
Danke für die Aufklärung wie es derzeitig läuft.
Es ist klar, daß ein ein Shelly3EM nicht direkt wie ein Stecker behandelt werden kann. Mindestens muß die derzeitig abgegebene Leistung mit berücksichtigt werden.
Hätte halt gedacht, daß dies schon so passiert. Aber woher soll es auch kommen.
Wenn man den shelly als mqtt über EF abboniert scheint ja der originale output übermittelt zu werden. Also braucht es einen Umsetzer, der aber zeitgleich noch die aktuelle Leistung braucht.
Wäre interessant ob es nunmehr ein ganz unbekanntes Gerät zu abbonieren gibt. Genaugenommen müsste das dann auch nicht JSON sein, sondern protobuf, da ja der powerstream nichts anderes kennt.PS.
danke für die logs.
Hab mal ein paar angeschaut und dort stehen noch mehr Daten drin als die heutige protobuf Definition kennt.
Die Definition geht bisher bis Feld 61 und da gibt es nun Daten mit höheren Feldnummern!
Da braucht es noch ein paar unknownXX.Edit.
In dem einen sind die Energiedaten drin und siehe da, nicht nur die bekannten watth1..7, sondern auch "watth16":729,"watth17":866,"watth18":866
Da muß man noch rausfinden, was die bedeuten könnten. -
Hallo, ich weiß nicht genau ob das Script mir bei meinem Vorhaben hilft, daher stelle ich mal meine Frage hier. Wenn das Falsch ist, mach ich gern auch ein neues Thema dazu auf.
Ich habe eine PV Anlage mit Speicher und möchte den Speicher ohne Elektriker erweitern. Ich habe mir eine Ecoflow Delta Pro + Powerstream 800 + Smart Plug bestellt.
Ich möchte bei Überschuss oder günstigem Tibber Preis folgende Werte anpassen oder Zustände erreichen.
Alle Werte wie Überschuss, Tibber Preise etc habe ich heute schon im IOBroker.
Wenn der primäre Speicher voll ist, soll der Überschuss in den Ecoflow gehen. Dazu muss ich die Beladung starten/stoppen und ggf die Ladeleistung anpassen können.
Nach bestimmten Uhrzeiten bzw wenn der primäre Speicher leer ist, will ich mit einem festen Wert (Grundlast) entladen.
Sehe ich das Richtig, das Beladen kann ganz einfach zb mit einem Shelly Plug (AN/AUS) gesteuert werden? Oder hilft mir da das Script. Ich habe auch einen MQTT Adapter gesehen. Kann der mir da helfen?? Ich habe auch in einem YT Video gesehen, dass jemand genau das gemacht hat mit einem Shelly am Delta Pro und einem am Powerstream.Kann mir da jemand etwas Orientierung geben? Wir würdet ihr das machen? Danke und Gruß Mike
@mikerow ich habe hinter meiner Delta Pro mit ZA einen Shelly 1 PM plus sitzen. Diesen habe ich dem Skript bekannt gemacht in der Sektion Überschussladung. Wenn überschussladung auf TRUE ist, dann schaltet das Skript den Shelly automatisch an und aus und reguliert die AC Ladeleistung in Abhängigkeit vom Hausstrom verbrauch.
Du müsstest jetzt eigentlich nur noch irgendwie einen Datenpunkt haben, der deinen PV Batteriespeicher misst. Und kannst ja dann eine Bedingung basteln. WENN PV Speciher voll DANN schalte Überschussladung auf TRUE.
Weiter oben hier im Thread gibs ein Codeschnipsel wie man den Überschussladeparameter umsetzt.
-
@mikerow ich habe hinter meiner Delta Pro mit ZA einen Shelly 1 PM plus sitzen. Diesen habe ich dem Skript bekannt gemacht in der Sektion Überschussladung. Wenn überschussladung auf TRUE ist, dann schaltet das Skript den Shelly automatisch an und aus und reguliert die AC Ladeleistung in Abhängigkeit vom Hausstrom verbrauch.
Du müsstest jetzt eigentlich nur noch irgendwie einen Datenpunkt haben, der deinen PV Batteriespeicher misst. Und kannst ja dann eine Bedingung basteln. WENN PV Speciher voll DANN schalte Überschussladung auf TRUE.
Weiter oben hier im Thread gibs ein Codeschnipsel wie man den Überschussladeparameter umsetzt.
-
@Waly_de ich hatte jetzt paar mal den Fall dass abends meine PS nicht eingespeist hat. Hatte dann festgestellt dass auf "Stromspeicher Priorisieren" gestellt war. Ich hatte dann per Hand auf "Stromversorgung priorisieren" umgestellt und sofort ging's wieder.
Das Problem scheint aber sporadisch aufzutreten. Bzw. konnte ich noch kein Muster dafür erkennen. Hast Du einen Rat? -
Ich versuche gerade das Skript mal wieder zum Laufen zu bringen:
Wie bekomme ich diesen Fehler weg?
javascript.0 11:31:21.934 info script.js.Ecoflow.DL: Fehler beim Abrufen des niedrigsten Werts: timeout
javascript.0 11:31:36.912 info script.js.Ecoflow.DL: getLowestValue-error: timeoutZur Info vielleicht: Ich habe eine PS und nur einen Zusatzakku Delta
-
@Waly_de ich hatte jetzt paar mal den Fall dass abends meine PS nicht eingespeist hat. Hatte dann festgestellt dass auf "Stromspeicher Priorisieren" gestellt war. Ich hatte dann per Hand auf "Stromversorgung priorisieren" umgestellt und sofort ging's wieder.
Das Problem scheint aber sporadisch aufzutreten. Bzw. konnte ich noch kein Muster dafür erkennen. Hast Du einen Rat?@accu Hey kannst du das Verhalten näher beschreiben? Ich habe auch etwas das Gefühl das abends nicht mehr alles so funktioniert wie es soll. Durch meinen Aufbau sollte eigentlich auch bis Mitternacht odr länger quasi über Solar eingespeißt werden. Aber hin und wieder "steht" zwar eine Solarspannung an aber es kommt kein Strom. Dann nach Veränderungen, Warten plötzlich funktionert es dann wieder.
-
@accu Hey kannst du das Verhalten näher beschreiben? Ich habe auch etwas das Gefühl das abends nicht mehr alles so funktioniert wie es soll. Durch meinen Aufbau sollte eigentlich auch bis Mitternacht odr länger quasi über Solar eingespeißt werden. Aber hin und wieder "steht" zwar eine Solarspannung an aber es kommt kein Strom. Dann nach Veränderungen, Warten plötzlich funktionert es dann wieder.
@aherby da gibt es eigentlich nicht viel zu beschreiben. Ich hatte ca. 3mal bisher das Problem dass der PS nach Sonnenuntergang nicht eingespeist hat. Hatte erst ewig gesucht und Geräte abgestöpselt aber dann festgestellt, dass der PS in der Setting Batterie bevorzugen stand. Habs dann manuell umgestellt und alles lief wieder. Keine Ahnung ob das im Skript irgendwo getriggert wurde und der Befehl es dann wieder zurück zu setzen nicht funktioniert hat. Wie gesagt kommt äußerst selten vor. Bei mir bisher 3x seitdem ich das Skript nutze.
-
Hallo,
0_userdata.0.ecoflow.app_1765798xxx_DCEBF8ZFAxxxxx_thing_property_set.writeables.slowChgPower sollte ja auch zum regeln der Ladegeschwindigkeit sein. Auch wenn ich diesen manuell ändere, wird es im der App nicht geändert, da scheint es irgend ein Problem zugeben.
Da wenn ich den gleichen Wert ecoflow-mqtt.0.xxxxx.inv.cfgSlowChgWatts ändere, ist dieser sofort in der App, sichtbar und angepasst.
PS: ich arbeite mit dem Zwischenschalter, ich hatte vorher die Delta Max da, lief alles ohne Probleme.
danke für die hilfe.
@maik-becker Ich kann das bei meiner Delta Pro auch feststellen. Konntest du das Problem lösen?
-
ich meine hier mal was gelesen zu haben, dass jmd die EF outdoor Batterie mit dem PS betreibt. Kann hier jemand mal paar Erfarhungsberichte posten zum Gerät und vorallem in Verbindung mit dem Skript. Erkennt das Skript die neue EF 2KWH Outdoorbatterie? wie läuft das dann wenn man schon eine delta mit PS im einsatz hat. Kann das skript beide PS steuern vorallem dann auch beim Einspeisen?
-
ich meine hier mal was gelesen zu haben, dass jmd die EF outdoor Batterie mit dem PS betreibt. Kann hier jemand mal paar Erfarhungsberichte posten zum Gerät und vorallem in Verbindung mit dem Skript. Erkennt das Skript die neue EF 2KWH Outdoorbatterie? wie läuft das dann wenn man schon eine delta mit PS im einsatz hat. Kann das skript beide PS steuern vorallem dann auch beim Einspeisen?
-
@maik-becker Ich kann das bei meiner Delta Pro auch feststellen. Konntest du das Problem lösen?
@MikeRow ja ich habe die werte noch einmal wo anderes her geholt.
-
Hallo,
ich habe jetzt eine Delta Pro und eine Delta Max mit je einem Powerstream und einer Sellysteckdose zum einschalten der AC Ladung, wie kann ich die Überschussladung für beide Geräte einstellen?
-
@accu Ich habe die Outdoor Batterie (2 Kwh). Das Skript funktioniert damit. Allerdings werden die Ganzen Werte (Akkustand etc.) direkt vom PowerStream geliefert. Zu deiner anderen Frage mit der Delta kann ich dir keine Auskunft geben.
@mario1995 scheint leider ausverkauft zu sein

-
Hallo, irgendwie bekomme ich das Script nicht zum laufen. Die an AC angeschlossene Fritz Dect wird nicht geschaltet!
Ich habe eine existierende PV Anlage und habe den WR unter Additional Power angelegt. Als Smartmeter ist der Tibber Pulse angegeben. Am AC Eingang der Delta Pro ist eine Fritz Dect angeschlossen. Ich habe das Script nun schon mehrfach geprüft und die Videos kann ich fast auswendig. Egal was ich einstelle, die Fritz Dect wird nicht geschaltet. Hat jemand eine Idee für mich? @Waly_de kannst du dir mal vielleicht die angehängte Config ansehen. Ich bin sonst mit meinem Latein am Ende

Screenshot 2024-06-18 130625.png
-
Ich versuche gerade das Skript mal wieder zum Laufen zu bringen:
Wie bekomme ich diesen Fehler weg?
javascript.0 11:31:21.934 info script.js.Ecoflow.DL: Fehler beim Abrufen des niedrigsten Werts: timeout
javascript.0 11:31:36.912 info script.js.Ecoflow.DL: getLowestValue-error: timeoutZur Info vielleicht: Ich habe eine PS und nur einen Zusatzakku Delta
@dersmily schau mal ob der History Adapter läuft
-
@dersmily schau mal ob der History Adapter läuft
@Waly_de kann man das Skript prüfen lassen ob der Powerstream Strom einspeist.
Ich habe zur Zeit eine Delta Pro und Max mit je einem Powerstream, aber zur Zeit ist es wieder mal ab und zu, dass er die Batterie ladet und aber auch über den Powerstream 300 Watt einspeist
-
Hallo, irgendwie bekomme ich das Script nicht zum laufen. Die an AC angeschlossene Fritz Dect wird nicht geschaltet!
Ich habe eine existierende PV Anlage und habe den WR unter Additional Power angelegt. Als Smartmeter ist der Tibber Pulse angegeben. Am AC Eingang der Delta Pro ist eine Fritz Dect angeschlossen. Ich habe das Script nun schon mehrfach geprüft und die Videos kann ich fast auswendig. Egal was ich einstelle, die Fritz Dect wird nicht geschaltet. Hat jemand eine Idee für mich? @Waly_de kannst du dir mal vielleicht die angehängte Config ansehen. Ich bin sonst mit meinem Latein am Ende

Screenshot 2024-06-18 130625.png
@mikerow
Hallo, so wie du es beschreibst, willst du die Delta Pro zeitgesteuert über einem FritzDect-Schalter laden. Damit ist die Steuerung der FritzDect zunächst unabhängig vom Leistungsanpassungsscript, sie kann maximal von dort aufgerufen werden.
Ich habe daher zunächst iobroker alle meine FritzDect-Schalter ermitteln lassen, dann den entsprechenden Schalter ausgewählt und schreibe dann in "fritzdect.0.DECT_123456789012.state" (bitte an deine Steckdose anpassen) den Wert "0" für aus bzw. "1" für an. -
@Waly_de das Skript ist einfach toll!! Heute habe ich für einen Anwendungsfall bei zwei Powerstream mit Batterien zusätzlich zum Füllstand noch die Batteriekapazität bei der Watt-Verteilung mit einbezogen, damit wenn ein PS ne 4 kWh Batterie dran hat und der andere eine 2kWh tatsächlich beide gleich schnell entladen werden. Sowas macht einfach Spaß

Falls jemand Interesse hat oder Du @Waly_de die Option einbauen willst (schöner wäre natürlich die Kapazität auszulesen, aber das geht leider nicht so einfach soweit ich das Beurteilen kann):
Bei der Konfiguration pro PS einfügen
battCapacity: 4.096, // Kapazität der angeschlossenen BatterieBei der Berechnung von psBatSumme:
let psCounter = 0, psBatSumme = 0 let psBatSummekWh = 0 // new for (var i = 0; i < ConfigData.seriennummern.length; i++) { const asn = ConfigData.seriennummern[i].seriennummer if (ConfigData.seriennummern[i].typ == "PS" && ConfigData.seriennummern[i].seriennummer != "XXXXXXXXXXXXX" && GlobalObj[asn].regulieren) { psCounter = psCounter + 1 psBatSumme = psBatSumme + GlobalObj[asn].batstate psBatSummekWh = psBatSummekWh + GlobalObj[asn].batstate / 100 * ConfigData.seriennummern[i].battCapacity // new //gapSumme = gapSumme + GlobalObj[asn].GAPdurchschnitt } }Bei der Berechnung von Batfaktor:
let Batfaktor = 1 let BatfaktorkWh = 1 // new if (psBatSumme != 0) { Batfaktor = (BatBedarf / psBatSumme) BatfaktorkWh = (BatBedarf / psBatSummekWh) // new }Und abschließend die Verwendung im Balance Mode:
// Setpower = Setpower + (GlobalObj[asn].batstate * Batfaktor) // mlog("PS:" + GlobalObj[asn].PsName + " Setpower = " + Math.floor(Setpower) + " batstate = " + GlobalObj[asn].batstate + " Batfaktor = " + Batfaktor ) Setpower = Setpower + (GlobalObj[asn].batstate/100 * ConfigData.seriennummern[i].battCapacity * BatfaktorkWh) // new mlog("PS:" + GlobalObj[asn].PsName + " Setpower = " + Math.floor(Setpower) + " batstate = " + GlobalObj[asn].batstate + " BatfaktorkWH = " + BatfaktorkWh ) // new -
@Waly_de das Skript ist einfach toll!! Heute habe ich für einen Anwendungsfall bei zwei Powerstream mit Batterien zusätzlich zum Füllstand noch die Batteriekapazität bei der Watt-Verteilung mit einbezogen, damit wenn ein PS ne 4 kWh Batterie dran hat und der andere eine 2kWh tatsächlich beide gleich schnell entladen werden. Sowas macht einfach Spaß

Falls jemand Interesse hat oder Du @Waly_de die Option einbauen willst (schöner wäre natürlich die Kapazität auszulesen, aber das geht leider nicht so einfach soweit ich das Beurteilen kann):
Bei der Konfiguration pro PS einfügen
battCapacity: 4.096, // Kapazität der angeschlossenen BatterieBei der Berechnung von psBatSumme:
let psCounter = 0, psBatSumme = 0 let psBatSummekWh = 0 // new for (var i = 0; i < ConfigData.seriennummern.length; i++) { const asn = ConfigData.seriennummern[i].seriennummer if (ConfigData.seriennummern[i].typ == "PS" && ConfigData.seriennummern[i].seriennummer != "XXXXXXXXXXXXX" && GlobalObj[asn].regulieren) { psCounter = psCounter + 1 psBatSumme = psBatSumme + GlobalObj[asn].batstate psBatSummekWh = psBatSummekWh + GlobalObj[asn].batstate / 100 * ConfigData.seriennummern[i].battCapacity // new //gapSumme = gapSumme + GlobalObj[asn].GAPdurchschnitt } }Bei der Berechnung von Batfaktor:
let Batfaktor = 1 let BatfaktorkWh = 1 // new if (psBatSumme != 0) { Batfaktor = (BatBedarf / psBatSumme) BatfaktorkWh = (BatBedarf / psBatSummekWh) // new }Und abschließend die Verwendung im Balance Mode:
// Setpower = Setpower + (GlobalObj[asn].batstate * Batfaktor) // mlog("PS:" + GlobalObj[asn].PsName + " Setpower = " + Math.floor(Setpower) + " batstate = " + GlobalObj[asn].batstate + " Batfaktor = " + Batfaktor ) Setpower = Setpower + (GlobalObj[asn].batstate/100 * ConfigData.seriennummern[i].battCapacity * BatfaktorkWh) // new mlog("PS:" + GlobalObj[asn].PsName + " Setpower = " + Math.floor(Setpower) + " batstate = " + GlobalObj[asn].batstate + " BatfaktorkWH = " + BatfaktorkWh ) // new@gooflo Hallo, ich hätte Interesse und da ich zwei Powerstreams mit einer Batterie habe
1x Powerstream mit Delta Pro
1x Powerstream mit Delta MaxKannst du mir beim Einbau helfen.