Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. ecoflow-connector-Script zur dynamischen Leistungsanpassung

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    ecoflow-connector-Script zur dynamischen Leistungsanpassung

    This topic has been deleted. Only users with topic management privileges can see it.
    • Maik Becker
      Maik Becker @Waly_de last edited by

      @waly_de

      Hallo ich habe heute Nacht wieder festgestellt, das er Lädt ohne das PV da ist und Einspeist zu selben zeit.

      1 Reply Last reply Reply Quote 0
      • F
        foxthefox Developer @eds last edited by

        @eds sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

        @waly_de Denke auch. Melde mich, wenn sie abgeschlossen ist. Dann gebe ich mal Feedback, was out of the box schon läuft.

        Und läuft die Box schon? Gibt es Erkenntnisse zu den Daten die gesendet werden?

        1 Reply Last reply Reply Quote 0
        • cptmozz
          cptmozz last edited by

          @Waly_de Super Skript, vielen Dank dafür!

          Basierend darauf habe ich eine einfache Lösung entwickelt, die momentan ausschließlich den PowerStream-Output steuert.
          Einfache Automatisierung für den Ecoflow PowerStream.
          Ein Vorteil davon ist, dass es sich leichter verstehen und erweitern lässt, falls man eigene Funktionalitäten benötigt.
          Vielen Dank für deine tolle Arbeit, mach weiter so!

          Samson71 1 Reply Last reply Reply Quote 1
          • Samson71
            Samson71 Global Moderator @cptmozz last edited by

            @cptmozz sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

            Basierend darauf habe ich eine einfache Lösung entwickelt,

            Und verweist auf einen neuen Post, der auch nur dazu dient auf GitHub weiter zu verweisen?

            1 Reply Last reply Reply Quote 0
            • P
              Ponti92 @Waly_de last edited by

              @waly_de
              Hi Markus, also ich hab das Skript getestet und es hat die Zusatzpower erfolgreich abschalten können. So läuft es erst mal ganz gut 🙂 Ich beobachte aber noch weiter..

              1 Reply Last reply Reply Quote 0
              • A
                Audiofreak @Audiofreak last edited by

                @audiofreak said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

                Wenn die Akku voll sind, wird Max eingespeist, aber nur die Solarleistung vom Powerstream.
                Ich hätte weitere 1200W die am Delta Pro anliegen, diese werden dann nicht verwendet.
                Kurz gesagt, bei battPozOn hätte ich gerne 600 Watt, auch wenn zB 200 Watt von der Batterie kommen.

                @audiofreak said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

                Hab aber gesehen dass die Ladewerte beim Delta UND beim PS eingestellt werden können. Beim PS waren min 0 max 100 eingestellt, habe dies angepasst und schaue mal was passiert.

                Nachdem ich beim PS die Ladewerte angepasst habe funktioniert es wie gewünscht. Musste den BattPozOn auf 90% runtersetzen. Weil: Akku 99% --> BattPozOn --> es wird 120 Watt vom Akku bezogen --> Akku wird durch die direkt angeschlossene Panel aber mit 1.1kW weiter geladen --> Akku erreicht trotzdem 100% und "stellt ab". Erst wenn etwa 10min Netzstrom bezogen wird, schaltet der PS die Akku wieder dazu.

                1 Reply Last reply Reply Quote 0
                • K
                  Kay Wurl last edited by

                  @waly_de
                  Vielen Dank für Deine Antwort. Ich hatte meinen Post nicht mehr gefunden und dachte, er wäre, warum auch immer, gelöscht worden. War keine Unhöflichkeit!

                  Da wir bei Tibber sind, ist der Strom so ab 10:00 sehr günstig, darum soll erstmal alles in die Batterie gehen.
                  Ich habe das erstmal so gelöst. Per Skript wird um 08:00 Uhr regulate auf false gesetzt. In der App wird dann Prio auf Einspeisung gesetzt mit Grundlast 0W. Nur so wird, wenn Solar 600W überschritten werden der Rest auch eingespeist, sowie alles an Solar, wenn der Akku voll ist. Zu 18:00 wird dann per Skript Dein Skript wieder gestartet und läuft sehr gut.

                  Wenn ich darf, ich habe noch eine andere Frage.
                  Wir habe seit heute einen 2. PS mit D2 Zusatzakku. Im Script eingetragen und läuft.
                  Irgendwie war ich der Meinung mal wo gelesen zu haben, dass die Gesamteinspeisung über die Ecoflow-App auf 600W bzw. 800W gedrosselt wird. Scheint nicht so zu sein, es wird alles eingespeist, was die Dinger hergeben^^.

                  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

                  M 1 Reply Last reply Reply Quote 2
                  • O
                    Ole 1 last edited by Negalein

                    Hallo zusammen,

                    Ich habe versucht alles eizurichten und bekomme nun folgende meldung.

                    00:00:16.733	error	javascript.0 (2085) script.js.EcoflowScript: TypeError: Cannot read properties of undefined (reading 'connect')
                    00:00:16.735	error	javascript.0 (2085) at setupMQTTConnection (script.js.EcoflowScript:1167:25)
                    00:00:16.736	error	javascript.0 (2085) at script.js.EcoflowScript:1471:10
                    00:00:31.273	warn	javascript.0 (2085) at CheckforReconnect (script.js.EcoflowScript:1510:16)
                    00:00:31.274	warn	javascript.0 (2085) at Object.<anonymous> (script.js.EcoflowScript:1018:9)
                    00:00:31.297	error	javascript.0 (2085) at SetBasePower (script.js.EcoflowScript:2166:43)
                    00:00:31.298	error	javascript.0 (2085) at script.js.EcoflowScript:1020:13
                    00:00:31.299	error	javascript.0 (2085) at CheckforReconnect (script.js.EcoflowScript:1519:9)
                    00:00:31.300	error	javascript.0 (2085) at Object.<anonymous> (script.js.EcoflowScript:1018:9)
                    

                    weiss vielleicht jemand was ich falsch gemacht habe ?

                    gruss
                    Ole

                    W 1 Reply Last reply Reply Quote 0
                    • Pesche G
                      Pesche G @Waly_de last edited by Pesche G

                      @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!

                      W 1 Reply Last reply Reply Quote 0
                      • W
                        Waly_de @Pesche G last edited by

                        @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?

                        Pesche G 1 Reply Last reply Reply Quote 0
                        • W
                          Waly_de @Ole 1 last edited by

                          @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

                          1 Reply Last reply Reply Quote 0
                          • Pesche G
                            Pesche G @Waly_de last edited by

                            @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

                            1 Reply Last reply Reply Quote 0
                            • A
                              Accu last edited by

                              @Waly_de ich hatte heute morgen folgende Fehler im Log:
                              Bildschirmfoto 2024-05-19 um 08.02.06.png

                              1 Reply Last reply Reply Quote 0
                              • Maik Becker
                                Maik Becker last edited by

                                @Waly_de

                                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.

                                1 Reply Last reply Reply Quote 0
                                • A
                                  Accu last edited by

                                  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.

                                  Bildschirmfoto 2024-05-24 um 10.33.58.png

                                  P 1 Reply Last reply Reply Quote 0
                                  • P
                                    Ponti92 @Accu last edited by

                                    @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..

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      Dreffi last edited by Dreffi

                                      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.pv2Temp

                                      Die 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.

                                      P B 2 Replies Last reply Reply Quote 0
                                      • M
                                        Milchbeck @Kay Wurl last edited by

                                        @kay-wurl sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

                                        @waly_de

                                        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

                                        1 Reply Last reply Reply Quote 1
                                        • P
                                          Ponti92 @Dreffi last edited by

                                          @dreffi ist bei mir seit dem Update auf 195/196 leider auch der Fall..

                                          1 Reply Last reply Reply Quote 1
                                          • B
                                            BastiB @Dreffi last edited by

                                            @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.

                                            P 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            986
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            126
                                            1630
                                            517861
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo