NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@ponti92 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Jedoch habe ich folgendes Problem, dass bei schwankender Last, wie zb tv schauen, es immer wieder zu großen Überschuss gibt. Er speist manchmal dann über 600W ein, obwohl nur 200-300W benötigt werden. Danach geht alles wieder auf 0W und es dauert wieder bis es weiter geht.
Das sieht wild aus.... hast du irgendwelche Intervalle verändert? Wie schnell ist dein Smartmeter? Hast Du auf Echtzeit gestellt? (Das wird bei 2 und PS vermutlich nicht laufen)
Im Moment ist es so, das bei jedem Messintervall jeder einzelne Powerstream versucht die Gesamtlast zu decken... Im laufenden Betrieb sollte sich das dann einpendeln.
Solche Ausschläge wie bei dir sollte es nicht geben.@waly_de
Meine config ist nicht auf Echtzeit gestellt und sieht so aus

Mein Smart Meter ist der Shelly em3 und eigentlich recht schnell. Mir ist aber aufgefallen, dass der lowestValue ziemlich hoch war und nicht regelmäßig in iobroker history aktualisiere wurde.
Wenn ich aber den balanced mode Stelle, gibt es da eine priorisierung der PS wie viel Prozent die jeweilige Batterie noch hat?
Evtl. Kann man so etwas berücksichtigen, dass die Batterien gleichmäßig entladen werden?Falls ich den sequenziellen Modus einstelle, welche powerstream wird zuerst bedient? Ich tippe mal auf die erste, die im Skript konfiguriert wird oder?
-
@waly_de
Meine config ist nicht auf Echtzeit gestellt und sieht so aus

Mein Smart Meter ist der Shelly em3 und eigentlich recht schnell. Mir ist aber aufgefallen, dass der lowestValue ziemlich hoch war und nicht regelmäßig in iobroker history aktualisiere wurde.
Wenn ich aber den balanced mode Stelle, gibt es da eine priorisierung der PS wie viel Prozent die jeweilige Batterie noch hat?
Evtl. Kann man so etwas berücksichtigen, dass die Batterien gleichmäßig entladen werden?Falls ich den sequenziellen Modus einstelle, welche powerstream wird zuerst bedient? Ich tippe mal auf die erste, die im Skript konfiguriert wird oder?
@ponti92 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Mein Smart Meter ist der Shelly em3 und eigentlich recht schnell. Mir ist aber aufgefallen, dass der lowestValue ziemlich hoch war und nicht regelmäßig in iobroker history aktualisiere wurde.
ok, guck dir bitte mal an, in welchen abständen Realpower und LowestValue bei Dir aktualisiert werden?
Wenn ich aber den balanced mode Stelle, gibt es da eine priorisierung der PS wie viel Prozent die jeweilige Batterie noch hat?
nein noch nicht...
Falls ich den sequenziellen Modus einstelle, welche powerstream wird zuerst bedient? Ich tippe mal auf die erste, die im Skript konfiguriert wird oder?
richtig
-
@karo2204 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Das Script läuft seit ein paar Tagen super. Hatte ja schon ein Lob ausgesprochen.
Jetzt nicht eine Frage. Mir kam die Idee, von Sonnenuntergang bis Sonnenaufgang die Powerstream in den Einspeisemodus zu schalten. Mit der dynamischen Leistungsanpassung. Und morgens dann wieder in den Lademodus. Eventuell ab 50% SoC.
Ist das möglich? Wie kann ich das realisieren?
Vielen Dank schonmal für Eure Hilfe.
Das könnte ich schon einbauen. Aber ich verstehe noch nicht ganz den Sinn dahinter. Kannst Du mir das näher erläutern?
Im Moment ist es ja so, dass am Tag (bei Sonne) eingespeist und die Batterie mit dem Überschuss geladen wird. Und am Abend wird aus der batterie geregelt eingespeist.
Am wirtschaftlichsten ist es ja, wenn die erzeugte Energie sofort, ohne Umwandlung verwendet wird. (Beim speichern in den Akku kannst Du mit ca. 20% Verlust rechnen und außerdem mit einer Reduktion der Batterielebensdauer)@waly_de Ok, danke für Deine Antwort. Vielleicht muss ich das einfach mal laufen lassen. Im Moment steht der Status in der App auf "Power Storage", weil ich eigentlich will dass die Delta Max erst einmal voll wird.
Aber wenn Du sagst, es ist besser die Energie direkt zu verwenden, dann vielleicht immer auf "Einspeisen" lassen? Die Delta Max hat im Moment nur 21%. -
@ponti92 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Jedoch habe ich folgendes Problem, dass bei schwankender Last, wie zb tv schauen, es immer wieder zu großen Überschuss gibt. Er speist manchmal dann über 600W ein, obwohl nur 200-300W benötigt werden. Danach geht alles wieder auf 0W und es dauert wieder bis es weiter geht.
Das sieht wild aus.... hast du irgendwelche Intervalle verändert? Wie schnell ist dein Smartmeter? Hast Du auf Echtzeit gestellt? (Das wird bei 2 und PS vermutlich nicht laufen)
Im Moment ist es so, das bei jedem Messintervall jeder einzelne Powerstream versucht die Gesamtlast zu decken... Im laufenden Betrieb sollte sich das dann einpendeln.
Solche Ausschläge wie bei dir sollte es nicht geben.@waly_de said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Im Moment ist es so, das bei jedem Messintervall jeder einzelne Powerstream versucht die Gesamtlast zu decken... Im laufenden Betrieb sollte sich das dann einpendeln.
Solche Ausschläge wie bei dir sollte es nicht geben.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?
LG
-
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"} -
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"}@marcxx sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Was möchte mir mein Script sagen???
Das Bild sagt auf jeden Fall erstmal, dass der Text für potentielle Helfer nicht als Mäusekino-Bild hierher gehört, sondern die Meldung als Text anständig in Code Tags.
-
@marcxx sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Was möchte mir mein Script sagen???
Das Bild sagt auf jeden Fall erstmal, dass der Text für potentielle Helfer nicht als Mäusekino-Bild hierher gehört, sondern die Meldung als Text anständig in Code Tags.
-
Hatte vorhin schon gefragt. Was ist besser, Einspeise-Modus oder Batterie-Modus? Auf was habt Ihr es stehen?
Ach ja und was ist "Regulation State"? Was muss man da genau einstellen?
Soweit funktioniert das Script, der Grundbedarf ändert sich laufend. Genauso wollte ich es.
-
Hatte vorhin schon gefragt. Was ist besser, Einspeise-Modus oder Batterie-Modus? Auf was habt Ihr es stehen?
Ach ja und was ist "Regulation State"? Was muss man da genau einstellen?
Soweit funktioniert das Script, der Grundbedarf ändert sich laufend. Genauso wollte ich es.
@karo2204
Im Batterie Modus wird die Batterie nur geladen und das Skript würde nichts regeln.Im einspeise Modus wird das Skript die Einspeisung anhand deiner Grundlast regeln und den Überschuss in die Batterie leiten. Das sollte der Standard sein, wenn man nicht nur die Batterie voll laden möchte.
Bei schönen Wetter habe ich dauerhaft auf einspeise Modus stehen, da die Batterie nie leer wird bis zum nächsten Tag.
-
@karo2204
Im Batterie Modus wird die Batterie nur geladen und das Skript würde nichts regeln.Im einspeise Modus wird das Skript die Einspeisung anhand deiner Grundlast regeln und den Überschuss in die Batterie leiten. Das sollte der Standard sein, wenn man nicht nur die Batterie voll laden möchte.
Bei schönen Wetter habe ich dauerhaft auf einspeise Modus stehen, da die Batterie nie leer wird bis zum nächsten Tag.
@ponti92 Danke für die Erklärung. Bin bei Tibber und will eigentlich wenn der Strompreis günstig ist, die Batterie laden und wenn es dann wieder teuer wird (so ab 18 Uhr bis ca. 9 Uhr morgens), würde ich gerne den Strom aus der Batterie nehmen. So meine Denke.
Wie machst Du das mit dem Wetter? Manuell oder hast Du da nen coolen Tipp für mich?
-
@ponti92 Danke für die Erklärung. Bin bei Tibber und will eigentlich wenn der Strompreis günstig ist, die Batterie laden und wenn es dann wieder teuer wird (so ab 18 Uhr bis ca. 9 Uhr morgens), würde ich gerne den Strom aus der Batterie nehmen. So meine Denke.
Wie machst Du das mit dem Wetter? Manuell oder hast Du da nen coolen Tipp für mich?
@karo2204 hast du den Strompreis von tibber irgendwie in iobroker zur Verfügung?
Die haben doch auch eine Vorhersage wie der Strom in den nächsten Stunden sein wird. Wenn du das auslesen kannst, dann steht dir der Weg offen das zu Skripten.Dann könntest du dir ein Skript schreiben und die Priorität bei unterschiedlichen Preisen ändern.
Die Priorität kann man ja durch dieses Skript ganz einfach in den Objekten ändern (setPrio auf 0, oder 1)
D.h du speicherst alles in der Zeit, in der der Strom günstig ist und stellst dann abends um auf Prio Einspeisung wenn es teuer ist.Je nachdem wie groß dein Speicher ist, wird der Speicher aber schon im laufe des Tages voll, also wirst du bei 100% alles darüber wieder einspeisen und die Frage ist, ob es dann überhaupt dieses Skript benötigt. Denn dann hättest du in der Anfangszeit trotzdem (günstigen) Strom verbraucht, nur um dann deinen solarstrom am Nachmittag, wenn der Speicher voll ist, zu verschenken.
Darüber hinaus kann man, wenn im Batterie Modus, nur 600W Leistung nutzen, da die maximale Leistung in die Batterie 600W sind. Im einspeise Modus kannst du bis zu 600W laden und 200W gleichzeitig einspeisen.Wie ist denn deine Auslastung und PV Ertrag zurzeit? Wird der Akku voll, oder schaffst du es nicht ihn voll zu bringen?
Wenn der Akku mittags schon voll ist und die Sonne den ganzen Tag scheint, dann macht das wohl keinen sinn..
aber das hängt ganz davon ab, wie bei dir die Gegebenheiten sind. -
Da ich ich oft gehört habe, dass die Lösung mit dem Script nichts für jeden ist, weil es zu kompliziert einzurichten ist, habe ich mir Gedanken gemacht wie ich das ändern könnte.
Wie wäre es, wenn ich ein Paket mit allen benötigten Teilen und einem vorkonfigurierten Raspsberry Pi anbieten würde. Es gäbe dann noch ein Video mit den wichtigsten Schritten der Einrichtung und natürlich persönlichen Support.
Alternativ könnte ich auch eine SD-Karte mit vorinstalliertem Iobroker und Skript erstellen, die nur noch in einen Raspsberry Pi eingesetzt werden muss.
Ich finde das auch deswegen spannend, weil es ein prima Einstieg in die SmartHome Welt sein kann, denn mit IoBroker kann man natürlich viel mehr machen als nur ECOFLOW- Geräte steuern. Bei mir wird die gesamte Haustechnik von verschiedensten Hersteller damit gesteuert und überwacht inclusive Alexa als Ausgabe- und Eingabewerkzeug.
Was denkt Ihr?
@waly_de Danke erstmal für die Mühe und die Dankesmail für die Spende - eigentlich sollten wir Dir danken für die geleistete Arbeit. Ich verfolge die Diskussionen hier schon seit geraumer Zeit und nutze das Skript aktiv.
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.
-
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.
-
@ponti92 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Mein Smart Meter ist der Shelly em3 und eigentlich recht schnell. Mir ist aber aufgefallen, dass der lowestValue ziemlich hoch war und nicht regelmäßig in iobroker history aktualisiere wurde.
ok, guck dir bitte mal an, in welchen abständen Realpower und LowestValue bei Dir aktualisiert werden?
Wenn ich aber den balanced mode Stelle, gibt es da eine priorisierung der PS wie viel Prozent die jeweilige Batterie noch hat?
nein noch nicht...
Falls ich den sequenziellen Modus einstelle, welche powerstream wird zuerst bedient? Ich tippe mal auf die erste, die im Skript konfiguriert wird oder?
richtig
@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.818sWoran 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.
-
So, meine Anbindung läuft jetzt seit einigen Tagen sauber. Daher spendiere ich dem Skript mal einen eigenen Thread.
Anbei findet ihr ein Skript, das eine Verbindung zwischen euren ecoflow-Geräten und ioBroker herstellen kann. Dabei nutzt es die gleiche Schnittstelle wie die ecoFlow App. Ihr benötigt lediglich eure Zugangsdaten zur App und die Seriennummern eurer Geräte, um dieses Skript nutzen zu können. Alle bekannten übermittelten Daten werden in ioBroker als Zustände angelegt. Viele davon sind noch unbekannt. Wenn ihr herausfindet, was sich hinter den unbekannten Daten verbirgt, kann ich die Zustandsnamen anpassen.
Achtung: Der ecoflow-Server sendet unfassbar viele Nachrichten. Wenn ihr mehrere Geräte habt, kann dies euer System stark belasten und sogar zu Abstürzen führen. Vielleicht bekommt Ihr auch diese Meldung und das Script wird beendet:
[error]: javascript.0 (5490) Script script.js.EcoFlow is calling setState more than 1000 times per minute! Stopping Script now! Please check your script!Daher empfehle ich, nicht alle Geräte dauerhaft zu abonnieren (dies kann über einen Parameter in der Einstellungssektion festgelegt werden). Es werden nur die PowerStreams benötigt, um die Einspeiseleistung anpassen zu können.
Sonst kann dieser Grenzwert aber auch in den Einstellungen der Javascript-Instanz heraufgesetzt werden. 3000 dürfte für die meisten Szenarien reichen. (Siehe Screenshot weiter unten. Der Wert befindet sich unten links)Damit kommen wir zur eigentlichen interessanten Funktion des Skripts:
Wenn ihr ein Smartmeter habt, das euren aktuellen Stromverbrauch in Echtzeit anzeigen kann, könnt ihr es an ioBroker anbinden. Informationen dazu findet ihr im Netz.Hier hab ich das Ding gekauft (Wenn ihr über die Links kauft, bekomme ich ein paar Cent Provision ab ;-)):
Hichi Wifi, IR Lesekopf für Stromzähler
https://ebay.us/3X1pkH
Der Verkäufer hat auch ein tolles Video gemacht, wie man es einrichtet
Es funktionieren aber auch viele andere Zähler wie z.B.:
Der Shelly 3EMTibber-Kunden mit Pulse empfehle ich die lokale Einbindung des Pulse als Smartmeter mit meinem Script:
https://forum.iobroker.net/topic/70758/tibber-pulse-verbrauchsdaten-lokal-auslesenDas Skript passt dann die Einspeiseleistung des PowerStream dynamisch an, sodass möglichst der gesamte Verbrauch durch die Einspeisung gedeckt wird, aber nichts ins Netz verschenkt wird. Erst wenn die Batterie voll geladen ist, wird die gesamte Leistung ins Netz eingespeist (wenn ihr das möchtet).
Das Smartmeter muss den aktuellen Verbrauch möglichst in Echtzeit und in der Einheit Watt in einem Objekt von IOBroker zur Verfügung stellen. Im Script muss dann nur noch der Pfad zu diesem Objekt unter "SmartmeterID:" eingetragen werden. Am einfachsten geht das über die Adminoberfläche von IOBroker. Klickt auf Objekte und sucht das Objekt eures Smartmeters mit dem "Watt"-Wert im Objektbaum:

Wenn Ihr auf das markierte Symbol klickt, ist der Pfad in euerer Zwischenablage gespeichert.
Jetzt müsst Ihr ihn nur noch hinter "SmartmeterID:" im Script einfügen. Achtet darauf, dass Ihr es zwischen die "" einfügt.
Wenn alles geklappt hat, der Pfad stimmt und das Script läuft, solltet Ihr unter Objekte: "0_userdata.0.ecoflow.RealPower" sehen, dass sich dieser Wert regelmäßig anpasst.Es können mehrere PowerStreams konfiguriert werden. Im Moment wird jedoch nur der erste in der Konfiguration gesteuert. Ich habe zum Beispiel zwei PowerStreams, einen mit und einen ohne Batterie. Dadurch steht tagsüber mehr Leistung zum Laden der Batterie zur Verfügung. Die Daten werden vom Skript verwendet, um die optimale Einspeiseleistung zu berechnen. In Zukunft könnten auch mehrere PowerStreams gesteuert werden.
Nochmals vielen Dank an alle hier im Forum, die mit Ihrer Arbeit die Anbindung erst möglich gemacht haben!
Ursprünglicher Beitrag: https://forum.iobroker.net/topic/54929/adapter-für-ecoflow-einbindung/Wichtig: Zur Installation müssen 2 Module installiert werden. Einfach in den Einstellungen der Javascriptinstanz unter Zusätzliche Module die beiden Namen eintragen und speichern ("mqtt" und "protobufjs")

Erweiterungen:
Tibber Modul
Kann als eigenes, neues Script neben dem Hauptscript angelegt werden.//************************************************************* // Tibber Modul //************************************************************* // Schaltet die Regelung der Powerstation ab, wenn der Strom billig ist // und einen beliebigen Schalter zum Aktivieren der AC-Ladung ein, bis die Batterie // den durch der "BatMax" festgelegten Ladestand in % erreicht hat // // Diese Parameter aus dem Hauptscript sind wichtig: // RegulationOffPower: -2 // Wird die Regulation per State abgestellt, wird die Einspeiseleistung des ersten Powerstreams auf diesen Wert gesetzt (-1 = keine Änderung, -2 = Batterie Priomodus) // RegulationState: "Regulate" // Erzeugt der State zum Ein und Aus-Schalten der Regulation. // // Das Script versucht selbst die ID's für den TibberStatus und den Batteriestand zu ermitteln. // Wenn das nicht klappt bitte einfach die richtigen ID's hinter "batSocID" und "tibberID" angeben. // //************************************************************* //************************************************************* // Konfiguration laden, wenn nicht im Originalscript eingefügt //************************************************************* var ConfigData = { statesPrefix: '0_userdata.0.ecoflow', RegulationState: "Regulate" } if (typeof ConfigData.email === 'undefined') { try { let tempConfigData = getState("0_userdata.0.ecoflow.Settings.ConfigData").val if (typeof tempConfigData !== 'object' && tempConfigData !== null) { tempConfigData = JSON.parse(tempConfigData) } if (typeof tempConfigData === 'object' && tempConfigData !== null) { if (tempConfigData.email !== undefined) { ConfigData = tempConfigData; //log("wurde geladen als object") } } } catch (error) { log("Konfiguration wurde nicht geladen: " + error.message) } } /*************************************** ********** YOUR DATA HERE ************ ****************************************/ var tibberConfig = { BatMax: 99, //Bei diesem Ladestand stoppt die AC-Ladung und das Script wird wieder eingeschaltet BatMin: 95, //Der Ladestand der Batterie muss kleiner sein als BatMin , damit der Akku per AC-Ladung geladen wird SwitchID: "sonoff.0.NOUS-DVES_F0A844.POWER", //ID des Schalters, der die AC-Ladung einschaltet. "true" und "false" werden gesetzt LevelToSwitch: [ //Hier die Werte definieren, bei denen die AC-Ladung eingeschaltet werden soll //"NORMAL", //"CHEAP", //Einkommentieren falls gewüscht "VERY_CHEAP" ], } //***************************************/ // Nur angeben, wenn automatische Ermittlung fehlschlägt //***************************************/ let batSocID = getState(ConfigData.statesPrefix + ".Settings.Tibber.tibberBatSocID").val let tibberID = getState(ConfigData.statesPrefix + ".Settings.Tibber.tibberID").val //***************************************/ var idOK = false if (!batSocID || !tibberID) { log("Versuche die IDs für Tibber und Batterielevel zu finden") $("tibberlink.*.Homes.*.CurrentPrice.level").each(function (id, i) { tibberID = id createState(ConfigData.statesPrefix + ".Settings.Tibber.tibberID", tibberID, false) log("TibberID gefunden und gespeichert:" + id) }) $(ConfigData.statesPrefix + ".app_device_property_*.data.InverterHeartbeat.batSoc").each(function (id, i) { if (getState(id).val > 0) { batSocID = id createState(ConfigData.statesPrefix + ".Settings.Tibber.tibberBatSocID", batSocID, false) log("batSocID gefunden und gespeichert:" + id) } }) if (!batSocID || !tibberID) { log("Fehler bei der Ermittlung der IDs. Bitte händisch ins Script eintragen", 'error') } else { idOK = true } } else { idOK = true } if (idOK) { checkTibber() on({ id: tibberID, change: "ne" }, function (obj) { //log("Tibber Modul. tibberID Event:" + obj.state.val) checkTibber() }); on({ id: batSocID, change: "ne" }, function (obj) { //log("Tibber Modul. batSocID Event:" + obj.state.val + "%") checkTibber() }); } function checkTibber() { if (tibberID && batSocID) { const RegulateID = ConfigData.statesPrefix + "." + ConfigData.RegulationState let priceLevel = getState(tibberID).val; let batsoc = Number(getState(batSocID).val) let OldRegulate = toBoolean(getState(RegulateID).val) //log("Tibber Preislevel: " + priceLevel + " OldRegulate: " + OldRegulate + " batsoc: " + (batsoc)) if ((tibberConfig.LevelToSwitch.includes(priceLevel))) { if (OldRegulate) { if (batsoc <= tibberConfig.BatMin) { setState(RegulateID, false); // Regulierung aus setState(tibberConfig.SwitchID, true) //Schalter einschalten log("Script abgeschaltet AC-Ladung Ein, weil priceLevel:" + priceLevel + " batsoc:" + batsoc + "%") } } else { if (batsoc >= tibberConfig.BatMax) { setState(RegulateID, true); // Regulierung an setState(tibberConfig.SwitchID, false) //Schalter ausschalten log(" Batterie bei BatMax. Script eingeschaltet AC-Ladung Aus. priceLevel:" + priceLevel + " batsoc:" + batsoc + "%") } } } else { if (!OldRegulate) { setState(RegulateID, true); // Regulierung an setState(tibberConfig.SwitchID, false) //Schalter ausschalten log("Script eingeschaltet AC-Ladung Aus. priceLevel:" + priceLevel + " batsoc:" + batsoc + "%") } } } else { //log("checkTibber skip. batsocID und/oder tibberID fehlen.") } } //*************************************************************
Tibber-Pulse als Smartmeter nutzen und lokal auslesen:
https://forum.iobroker.net/topic/70758/tibber-pulse-verbrauchsdaten-lokal-auslesenUnterstütze das Projekt 'ecoflow-connector'
Wenn dir das Script zur dynamischen Leistungsanpassung für den IObroker gefällt und du es nützlich findest, ziehe bitte in Erwägung, eine kleine Spende via PayPal zu hinterlassen.
Jeder Beitrag hilft, das Projekt am Laufen zu halten und weitere Updates zu ermöglichen.
Danke für deine Unterstützung!
Jetzt SpendenDieses Script wird bei Änderungen und Updates immer aktualisiert:
Nutzung auf eigene Gefahr 
- Installation von ioBroker und Skript unter UNRAID in nur 12 Minuten
- Video mit Erklärung der Basiskonfiguration
- Video mit Erklärung zu AdditionalPower und Überschussladung
Download (neues JS-Script in IOBroker anlegen und den Inhalt der Datei einfügen):
- 1.2.5.f1 Fork von Florian Vogt (25.06.2024)
Feature hinzugefügt, um die Größe der Delta-Speicher beim Ausbalancieren der Entladeleistung zu berücksichtigen, damit die Batterien gleichmäßig geleert werden.
Parameter battCapacity bei den Einstellungen für PowerStream = Kapazität der angeschlossenen Batterie in kWh, default = 1
ecoflow-connector_v125_mod_FV.txt (25.06.2024)
ältere Versionen:
- ecoflow-connector_v124.txt (22.04.2024)
- ecoflow-connector_v123.txt (21.02.2024)
- ecoflow-connector_v121_05.01.2024.txt
- ecoflow-connector_v12_.04.12.2023.txt
- ecoflow-connector_v1162_04.11.2023.txt
- ecoflow-connector_v115_02.10.2023.txt
- ecoflow-connector_v1142_26.09.2023
- ecoflow-connector_v1132_31.08.2023
- ecoflow-connector_v112_17.08.2023)
@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.

