NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@pesche-g sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@waly_de
Coole Sache dieses Script, Gratulation!
Läuft auch bei mir, aber leider konnte ich meinen Stromzähler mangels „Scripting-Experience“ noch nicht einbinden. Die Daten von einem gPlugM Zähler kann ich per http abholen als json String im Format {... ,"i":115,"e":0, ...}, wobei "i" den Import in Watt und "e" den Export in Watt beinhaltet.Hat jemand einen Tipp für mich? Für Inputs bin dankbar!
Ich hab mal ChatGPT nach einer Lösung für dich gefragt:
const request = require('request'); // Basis-Pfad für die States const basePath = '0_userdata.0.MyPower'; // Funktion zum Abrufen und Speichern der Daten function fetchAndStoreData() { const options = { url: 'http://deine-gplugm-ip/pfad-zu-den-daten', // Ersetze durch die tatsächliche URL method: 'GET', json: true }; request(options, (error, response, body) => { if (error) { console.error('Fehler beim Abrufen der Daten:', error); return; } if (response.statusCode !== 200) { console.error('Fehler: Server antwortete mit Statuscode', response.statusCode); return; } // Werte extrahieren const importWatt = body.i; const exportWatt = body.e; const combinedWatt = importWatt - exportWatt; // Import positiv, Export negativ // Daten in ioBroker speichern setState(`${basePath}.import`, importWatt, true); setState(`${basePath}.export`, exportWatt, true); setState(`${basePath}.combined`, combinedWatt, true); console.log(`Import (Watt): ${importWatt}`); console.log(`Export (Watt): ${exportWatt}`); console.log(`Kombiniert (Watt): ${combinedWatt}`); }); } // Initiale Erstellung der States in ioBroker (einmalig ausführen) createState(`${basePath}.import`, 0, { name: 'Import in Watt' }); createState(`${basePath}.export`, 0, { name: 'Export in Watt' }); createState(`${basePath}.combined`, 0, { name: 'Kombinierter Wert in Watt' }); // Daten alle 2 Sekunden abrufen und speichern setInterval(fetchAndStoreData, 2000); // Initialer Aufruf, um sofort die Daten zu holen fetchAndStoreData();
Ich denke, das ist selbsterklärend?
-
@ole-1 da gibt es vermutlich eine Verbindungproblem mit dem MQTT Server.
Bitte überprüfe noch mal deine Zugangsdaten und ob es weitere diesbezügliche Fehlermeldung im Log gibt
-
@waly_de sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@pesche-g sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@waly_de
Coole Sache dieses Script, Gratulation!
Läuft auch bei mir, aber leider konnte ich meinen Stromzähler mangels „Scripting-Experience“ noch nicht einbinden. Die Daten von einem gPlugM Zähler kann ich per http abholen als json String im Format {... ,"i":115,"e":0, ...}, wobei "i" den Import in Watt und "e" den Export in Watt beinhaltet.Hat jemand einen Tipp für mich? Für Inputs bin dankbar!
Ich hab mal ChatGPT nach einer Lösung für dich gefragt:
const request = require('request'); // Basis-Pfad für die States const basePath = '0_userdata.0.MyPower'; // Funktion zum Abrufen und Speichern der Daten function fetchAndStoreData() { const options = { url: 'http://deine-gplugm-ip/pfad-zu-den-daten', // Ersetze durch die tatsächliche URL method: 'GET', json: true }; request(options, (error, response, body) => { if (error) { console.error('Fehler beim Abrufen der Daten:', error); return; } if (response.statusCode !== 200) { console.error('Fehler: Server antwortete mit Statuscode', response.statusCode); return; } // Werte extrahieren const importWatt = body.i; const exportWatt = body.e; const combinedWatt = importWatt - exportWatt; // Import positiv, Export negativ // Daten in ioBroker speichern setState(`${basePath}.import`, importWatt, true); setState(`${basePath}.export`, exportWatt, true); setState(`${basePath}.combined`, combinedWatt, true); console.log(`Import (Watt): ${importWatt}`); console.log(`Export (Watt): ${exportWatt}`); console.log(`Kombiniert (Watt): ${combinedWatt}`); }); } // Initiale Erstellung der States in ioBroker (einmalig ausführen) createState(`${basePath}.import`, 0, { name: 'Import in Watt' }); createState(`${basePath}.export`, 0, { name: 'Export in Watt' }); createState(`${basePath}.combined`, 0, { name: 'Kombinierter Wert in Watt' }); // Daten alle 2 Sekunden abrufen und speichern setInterval(fetchAndStoreData, 2000); // Initialer Aufruf, um sofort die Daten zu holen fetchAndStoreData();
Ich denke, das ist selbsterklärend?
@waly_de
Tausend Dank waly! Offenbar habe ich Nachholbedarf sowohl beim Scripten als auch bei der künstlichen Intelligenz Höchste Zeit für den Ruhestand, in 2 Wochen ist es soweit.Der aktuelle Strom Verbrauch wird jetzt korrekt ausgelesen, aber irgendwie funzt es noch nicht mit der Steuerung des PS. Ich muss mir das Ganze noch in Ruhe anschauen. Die Verbindung steht grundsätzlich zum PS aber die laufende Anpassung will noch nicht. Auf die Schnelle habe ich gesehen, dass der Status "RealPower bei den "Objects" fehlt. Allenfalls gibt es auch noch ein Problem mit der Batterie ich habe eine Delta 2 Max. Nochmals vielen Dank und liebe Grüsse, Pesche
-
@Waly_de ich hatte heute morgen folgende Fehler im Log:
-
Ich habe das Problem, das der Delta Power zur gleichen Zeit Lädt und Strom über den Powerstream einstießt.
Ich nutze eine Tasmota Steckdose, zum laden.
-
gibt es eine Möglichkeit dass man von "außen" über ein Blockly den Excess Charge
Wert setzen kann? Ich habe ein paar Situationen, wo ich den Wert auf FALSE setzen muss aber nach einer Zeit wieder auf TRUE und würde gerne nicht jedesmal das im Skript selber editieren müssen. -
@accu Ja das geht über die externe config:
// EXTERNE STATES zum Manipulieren von Konfigurationsvariablen var externConfig = [ //############# Diesen Abschnitt für jeden einzelne Wert anlegen ################ //Beispielwerte: { VarName: "seriennummern[0].lowBatLimitPozOn", //Variabelname aus "ConfigData" bei Aufzählungen [0...X] in der Reihenfolge der Angaben id: "0_userdata.0.ecoflow.ExStateTest", //Das Objekt (State) das den Wert für diese Variable enthalten soll. Muss manuell angelegt werden. create: false, //true: das Object wird unterhalb von "statesPrefix" angelegt. false: Es muss existieren oder manuell angelegt werden }, { VarName: "ExcessCharge", //Variabelname aus "ConfigData" bei Aufzählungen [0...X] in der Reihenfolge der Angaben id: "ExcessCharge", //Das Objekt (State) das den Wert für diese Variable enthalten soll. create: true, //true: das Object wird unterhalb von "statesPrefix" angelegt. false: Es muss existieren oder manuell angelegt werden }, //####################################################################### ];
Jedoch hat es bei Änderung auf false das Laden der Powerstation nicht direkt gestoppt..
-
Bei meinen beiden Powerstreams werden seit dem 20.05. die Objekte für die Temperatur nicht mehr aktualisiert.
0_userdata.0.ecoflow.app_device_property_xxx.data.InverterHeartbeat.llcTemp
0_userdata.0.ecoflow.app_device_property_xxx.data.InverterHeartbeat.pv1Temp
0_userdata.0.ecoflow.app_device_property_xxx.data.InverterHeartbeat.pv2TempDie Temperatur des Akkus wird weiterhin aktualisiert.
Hat noch jemand das Problem bzw. kann mal in den Objekten auf den Zeitstempel gucken?
Ich habe beide Powerstreams am 20.05. auf die WLAN Version 1.1.4.31 aktualisiert. Ich weiß nicht ob es damit zusammenhängt. -
@kay-wurl sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Kann man im Script die Gesamteinspeisung auf 800W begrenzen? Von der Elektrik her sind mehr als 800W kein Problem, würde aber gerne auf der legalen Seite bleiben.
LG und DANKESCHÖN
Würde mich auch interessieren
-
@dreffi ist bei mir seit dem Update auf 195/196 leider auch der Fall..
-
@dreffi
Habe gestern das erstemal das Script installiert und genutzt.
Bei mir werden auch keine Temperaturdaten für die Powerstreams angezeigt. Es ist die akuellste Firmware geladen.
Vielleicht wurden die Daten durch das Update entfernt. -
Vielleicht interessiert euch ja, wie man Shelly Verbrauchsdaten direkt aus der EcoFlow Cloud holen kann.
-
Guten Morgen zusammen, bei mir wird ein neues Update für den Powerstream angezeigt.
Hat schon jemand ausprobiert, ob das Update mit dem Script kompatibel ist? Oder muss ich mir da keine Gedanken machen?
-
@bastib ich hab das Update schon drauf und das Skript läuft noch damit.
Die Temperatur wird leider immer noch nicht aktualisiert..Es gibt nun auch die Möglichkeit die Maximale einspeiseleistung von 400-800W einzustellen, was ja schon oft hier gefordert wurde. Dadurch kann man zwei PS mit 400W betreiben ohne die 800W zu überschreiten.
Vor allem wenn der Akku voll ist, speist der PS unter gewissen Umständen 800W ein, was bei zwei PS dann schnell über die legale Grenze gelangt.. -
@bastib Moin, habe das Update auch ausgeführt und die 600W Beschränkung der Powerstream wurde aufgehoben - ich kann jetzt auch 800W einstellen!
-
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
-
@bombastikde übrigens gibt’s seit heute diese Option in der App. Wurde quasi ohne Update dazugeschaltet..
-
@bastib ich hab heute bei einem PS wieder Temperatur Daten erhalten
Muss mal schauen warum beim zweiten nicht.. -
@ponti92
Nach kurzen Tests ist die Logik des Verhaltens leider noch falsch, da die Leistung des Shelly 3ems wie ein smartplug behandelt wird. Dadurch werden im geregelten Fall nur die Hälfte des Hausverbrauchs eingespeist. -
@waly_de Hallo so nach längere Zet auch mal wider hier aktiv.
Mit dem WLAN und Firmware Update vom Powerstream kann wie schon beschrieben, die maximale Einspeiseleistung ziwschen 400 W und 800 W eingestellt werden.
Ich habe es mal hoffentlich im Log eingefangen:2024-06-04 20:16:03.902 - info: javascript.0 (61576) script.js.Echoflow.Ecoflow_DYM_Script_1_2_5.Ecoflow_DYM_Script_1_2_5: hexString: 0a3d0a03089204102018142001280138034014489201500358017084a9e1a306800113880101ba0103696f73ca0110485735315a4f48345346355434363434 2024-06-04 20:16:03.902 - info: javascript.0 (61576) script.js.Echoflow.Ecoflow_DYM_Script_1_2_5.Ecoflow_DYM_Script_1_2_5: Nachricht: {"header":[{"pdata":"089204","src":32,"dest":20,"dSrc":1,"dDest":1,"checkType":3,"cmdFunc":20,"cmdId":146,"dataLen":3,"needAck":1,"seq":1685607556,"version":19,"payloadVer":1,"from":"ios","deviceSn":"HW51ZOH4SF5T4644"}]}
Kannst du damit etwas anfangen?