Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. ecoflow-connector-Script zur dynamischen Leistungsanpassung

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

ecoflow-connector-Script zur dynamischen Leistungsanpassung

ecoflow-connector-Script zur dynamischen Leistungsanpassung

Scheduled Pinned Locked Moved JavaScript
1.6k Posts 127 Posters 741.3k Views 127 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Waly_de

    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 3EM

    Tibber-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-auslesen

    Das 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:
    Bildschirmfoto 2023-09-04 um 09.55.08.jpg
    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")

    Bildschirmfoto 2023-07-17 um 10.56.49.jpg

    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-auslesen

    Unterstü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 Spenden

    Dieses Script wird bei Änderungen und Updates immer aktualisiert:
    Nutzung auf eigene Gefahr !

    [Bildschirmfoto 2024-03-29 um 09.37.51.jpg

    • 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):

    • ecoflow-connector_v125.txt (13.05.2024)
    • 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)
    L Offline
    L Offline
    lui1307
    wrote on last edited by
    #892

    @waly_de Hallo, ich bin auf der Suche nach einer dynamischen Leistungsanpassung für die ecoflow Delta Pro in Verbindung mit PowerStream auf dieses Script gestoßen. Leider bin ich völlig unerfahren mit ioBroker. Meine SmartHome Instanz ist ein Homey Pro, der mir auch einen scheinbar einfacheren Zugang zur Einrichtung von SmartHome Komponenten geben kann. Meine Frage wäre, welche Möglichkeiten mir für eine ähnliche Anwendung innerhalb meiner Homey Pro Umgebung zur Verfügung stehen. Gibt es eine Möglichkeit das Script in meiner Umgebung zu betreiben?

    W 1 Reply Last reply
    0
    • L lui1307

      @waly_de Hallo, ich bin auf der Suche nach einer dynamischen Leistungsanpassung für die ecoflow Delta Pro in Verbindung mit PowerStream auf dieses Script gestoßen. Leider bin ich völlig unerfahren mit ioBroker. Meine SmartHome Instanz ist ein Homey Pro, der mir auch einen scheinbar einfacheren Zugang zur Einrichtung von SmartHome Komponenten geben kann. Meine Frage wäre, welche Möglichkeiten mir für eine ähnliche Anwendung innerhalb meiner Homey Pro Umgebung zur Verfügung stehen. Gibt es eine Möglichkeit das Script in meiner Umgebung zu betreiben?

      W Offline
      W Offline
      Waly_de
      wrote on last edited by Waly_de
      #893

      @lui1307 leider läuft mein Script nur in einer IO-Broker Instanz. Ich kann nur empfehlen iobroker mal eine Chance hingeben. Die Installation ist schnell erledigt und Kommunikation mit anderen Systemen über diverse Schnittstellen möglich. Es gibt auch eine Docker Version die z.B. auf einem Unraid-Server in 2 min installiert und einsatzfähig ist.

      A L 2 Replies Last reply
      0
      • A Offline
        A Offline
        Accu
        wrote on last edited by Accu
        #894

        mal ne Frage zu dem Skript:
        ich habe die neuste Version geladen und im Konfig Bereich meine Daten eingetragen (zwischen die Gänsefüsschen) und die Seriennummern meiner Geräte (Powerstream & Delta Pro (als DM)).
        Auch meinen Sonoff IR Volkszähler Datenpunkt.

        Bildschirmfoto 2024-01-04 um 10.01.14.png

        bekomme aber auch einen Fehler für meine Delta Pro:
        Bildschirmfoto 2024-01-04 um 10.01.38.png

        Leider speist der Powerstream nicht ein. Sollte der nicht automatisch anspringen wenn das Skript gestartet ist?

        wie ist das mit der Location Variablen? Muss da noch was für die XXX eingetragen werden?
        Bildschirmfoto 2024-01-04 um 09.59.29.png

        A W 3 Replies Last reply
        0
        • R Offline
          R Offline
          Ralf77
          wrote on last edited by Ralf77
          #895

          @Waly_de ich habe gerade Dein neuestes Script vom 04.12 mit Überschussladung installiert. Habe aber nicht ganz verstanden, wie es funktioniert (und funktioniert aktuell bei mir mit meinem DeltaPro auch nicht).

          Ich verwende ja eine Tuya-Steckdose zum Schalten der AC-Überschussladung. Leider funktioniert das AC-Laden nicht (auch nicht, wenn ich es ohne Tuya Steckdose realisiere). Es wird in den "Writebales" für "SlowChragePower" immer "Null" eingetragen... hast Du eine Idee wo mein Fehler liegt?

           // Überschussladung:
              //****************************************
              ExcessCharge: true,                                //Überschussladung AN/AUS (true/false)
                                                                  //ID zum Einstellen der Ladeleistung des Speichers in Watt: 
              ExcessChargePowerID: "0_userdata.0.ecoflow.app_1695477XXXXXX_DCEBZ8ZEXXXXXX_thing_property_set.writeables.slowChgPower",
                                                                  //ID des aktuellen Ladestandes des Speichers in %: 
              ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_DCEBZ8ZEXXXXXX.data.params.bmsMaster.soc",
              ExcessChargeSwitchMin: 2,                           //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. 
              ExcessChargeMaxPower: 2500,                         //Maximale Ladeleistung des Speichers in Watt
              ExcessChargeOffsetPower: -50,                         //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. 
              ExcessChargeStartPower: -200,                         //Mindest-Überschussleistung zum Einschalten des Speichers
              ExcessChargeStartPowerDurationMin: 2,               //Mindestdauer in Minuten, die ExcessChargeStartPower nicht unterschritten werden darf, bevor der Speicher eingeschaltet wird.
              //----------------------------------------
             // Beispiel für Delta-Nutzung ohne Schlaltersteckdose:
              // Wird an einer Delta auch der PV-Eingang genutzt, bitte die PV-Leistung unter AdditionalPower anlegen. Die passende ID ist:
              // 0_userdata.0.ecoflow.app_device_property_xxx.data.params.mppt.inWatts
              // Bei der Delta: "subscribe: true" konfigurieren
              //----------------------------------------
                                                                 //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
              //ExcessActualPowerID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.inv.inputWatts",
                                                                  //ID des Schalters, der den Speicher aktiviert: 
              //ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.chgPause", 
              //ExcessChargeSwitchOn: 0,                          //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
              //ExcessChargeSwitchOff: 1,                         //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
              //----------------------------------------
              // Beispiel für Nutzung einer Schlaltersteckdose:
              //----------------------------------------
                                                                  //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
              ExcessActualPowerID: "tuya.0.bf86dbXXXXXXXX.19",
                                                                  //ID des Schalters, der den Speicher aktiviert: 
              ExcessChargeSwitchID: "tuya.0.bf86dbXXXXXXXXX.1", 
              ExcessChargeSwitchOn: true,                        //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
              ExcessChargeSwitchOff: false,                       //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
              //----------------------------------------
              //****************************************
              Debug: false,
              PlotCmdID: 99999,
          

          Ich wäre Die sehr Dankbar, wenn Du mir helfen könntest...dann kann ich mein eigens Script in die Rente schicken 🙂

          R W 2 Replies Last reply
          0
          • R Ralf77

            @Waly_de ich habe gerade Dein neuestes Script vom 04.12 mit Überschussladung installiert. Habe aber nicht ganz verstanden, wie es funktioniert (und funktioniert aktuell bei mir mit meinem DeltaPro auch nicht).

            Ich verwende ja eine Tuya-Steckdose zum Schalten der AC-Überschussladung. Leider funktioniert das AC-Laden nicht (auch nicht, wenn ich es ohne Tuya Steckdose realisiere). Es wird in den "Writebales" für "SlowChragePower" immer "Null" eingetragen... hast Du eine Idee wo mein Fehler liegt?

             // Überschussladung:
                //****************************************
                ExcessCharge: true,                                //Überschussladung AN/AUS (true/false)
                                                                    //ID zum Einstellen der Ladeleistung des Speichers in Watt: 
                ExcessChargePowerID: "0_userdata.0.ecoflow.app_1695477XXXXXX_DCEBZ8ZEXXXXXX_thing_property_set.writeables.slowChgPower",
                                                                    //ID des aktuellen Ladestandes des Speichers in %: 
                ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_DCEBZ8ZEXXXXXX.data.params.bmsMaster.soc",
                ExcessChargeSwitchMin: 2,                           //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. 
                ExcessChargeMaxPower: 2500,                         //Maximale Ladeleistung des Speichers in Watt
                ExcessChargeOffsetPower: -50,                         //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. 
                ExcessChargeStartPower: -200,                         //Mindest-Überschussleistung zum Einschalten des Speichers
                ExcessChargeStartPowerDurationMin: 2,               //Mindestdauer in Minuten, die ExcessChargeStartPower nicht unterschritten werden darf, bevor der Speicher eingeschaltet wird.
                //----------------------------------------
               // Beispiel für Delta-Nutzung ohne Schlaltersteckdose:
                // Wird an einer Delta auch der PV-Eingang genutzt, bitte die PV-Leistung unter AdditionalPower anlegen. Die passende ID ist:
                // 0_userdata.0.ecoflow.app_device_property_xxx.data.params.mppt.inWatts
                // Bei der Delta: "subscribe: true" konfigurieren
                //----------------------------------------
                                                                   //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                //ExcessActualPowerID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.inv.inputWatts",
                                                                    //ID des Schalters, der den Speicher aktiviert: 
                //ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.chgPause", 
                //ExcessChargeSwitchOn: 0,                          //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                //ExcessChargeSwitchOff: 1,                         //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                //----------------------------------------
                // Beispiel für Nutzung einer Schlaltersteckdose:
                //----------------------------------------
                                                                    //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                ExcessActualPowerID: "tuya.0.bf86dbXXXXXXXX.19",
                                                                    //ID des Schalters, der den Speicher aktiviert: 
                ExcessChargeSwitchID: "tuya.0.bf86dbXXXXXXXXX.1", 
                ExcessChargeSwitchOn: true,                        //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                ExcessChargeSwitchOff: false,                       //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                //----------------------------------------
                //****************************************
                Debug: false,
                PlotCmdID: 99999,
            

            Ich wäre Die sehr Dankbar, wenn Du mir helfen könntest...dann kann ich mein eigens Script in die Rente schicken 🙂

            R Offline
            R Offline
            Ralf77
            wrote on last edited by Ralf77
            #896

            Hier noch meine Umsetzung der Überschussladung ohne Tuya-Steckdose...wie gesagt hat es leider auch nicht funktioniert. Der Wert in SlowCharge wurde nicht gesetzt/ entsprechend des Überschusses gesetzt 😞

             //****************************************
                // Überschussladung:
                //****************************************
                ExcessCharge: true,                                //Überschussladung AN/AUS (true/false)
                                                                    //ID zum Einstellen der Ladeleistung des Speichers in Watt: 
                ExcessChargePowerID: "0_userdata.0.ecoflow.app_1695477127540752386_DCEBZ8ZXXXXXX_thing_property_set.writeables.slowChgPower",
                                                                    //ID des aktuellen Ladestandes des Speichers in %: 
                ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_DCEBZ8ZEXXXXXXX.data.params.bmsMaster.soc",
                ExcessChargeSwitchMin: 0,5,                           //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. 
                ExcessChargeMaxPower: 2500,                         //Maximale Ladeleistung des Speichers in Watt
                ExcessChargeOffsetPower: 0,                         //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. 
                ExcessChargeStartPower: 200,                         //Mindest-Überschussleistung zum Einschalten des Speichers
                ExcessChargeStartPowerDurationMin: 1,               //Mindestdauer in Minuten, die ExcessChargeStartPower nicht unterschritten werden darf, bevor der Speicher eingeschaltet wird.
                //----------------------------------------
               // Beispiel für Delta-Nutzung ohne Schlaltersteckdose:
                // Wird an einer Delta auch der PV-Eingang genutzt, bitte die PV-Leistung unter AdditionalPower anlegen. Die passende ID ist:
                // 0_userdata.0.ecoflow.app_device_property_xxx.data.params.mppt.inWatts
                // Bei der Delta: "subscribe: true" konfigurieren
                //----------------------------------------
                                                                    //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                //ExcessActualPowerID: "0_userdata.0.ecoflow.app_device_property_DCEBZ8ZXXXXXX.data.params.inv.inputWatts",
                                                                    //ID des Schalters, der den Speicher aktiviert: 
                //ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_1695477127540752386_DCEBZ8ZXXXXXX_thing_property_set.writeables.chgPause", 
                //ExcessChargeSwitchOn: 0,                          //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                //ExcessChargeSwitchOff: 1,                         //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                //----------------------------------------
                // Beispiel für Nutzung einer Schlaltersteckdose:
                //----------------------------------------
                                                                    //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                ExcessActualPowerID: "0_userdata.0.ecoflow.app_device_property_DCEBZ8ZXXXXXXX.data.params.inv.inputWatt",
                                                                    //ID des Schalters, der den Speicher aktiviert: 
                ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_1695477127540752386_DCEBZ8ZXXXXXXX_thing_property_set.writeables.chgPause", 
                ExcessChargeSwitchOn: true,                        //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                ExcessChargeSwitchOff: false,                       //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                //----------------------------------------
                //****************************************
                Debug: false,
                PlotCmdID: 99999,
            }
            //***************************************/
            

            Additional Power habe ich natürlich gesetzt... und DP auf True laufen.

            AdditionalPower: [                                     // Wenn es weitere Wechselrichter gibt, die in IOBroker erfasst werden, können diese hier Angelegt werden
                    //############# Diesen Abschnitt für jedes einzelne Gerät anlegen ################
                    {
                        name: "PV_Leistung am Delta",                       // Beliebiger Name
                        id: "0_userdata.0.ecoflow.app_device_property_DCEBZ8ZXXXXXX.data.params.mppt.inWatts",      // Der Objektpfad zu dem Leistungswert in Watt (W)
                        factor: 10,                                  // Divisionsfaktor für den Leistungswert. (10 für die Delta)
                    },
                    //#######################################################################
            
            1 Reply Last reply
            0
            • W Waly_de

              @lui1307 leider läuft mein Script nur in einer IO-Broker Instanz. Ich kann nur empfehlen iobroker mal eine Chance hingeben. Die Installation ist schnell erledigt und Kommunikation mit anderen Systemen über diverse Schnittstellen möglich. Es gibt auch eine Docker Version die z.B. auf einem Unraid-Server in 2 min installiert und einsatzfähig ist.

              A Offline
              A Offline
              aherby
              wrote on last edited by
              #897

              @waly_de Es schein ja eine neue Funktion durch das aktuelle Update das z.B. iOS-App zu geben.
              Nun können Shelly-Gerate geschaltet und wohl auch Leistungsdaten übertragen. Hat hier wer schon Erfahrungen gesammelt?

              Thomas WellerT A 2 Replies Last reply
              0
              • A aherby

                @waly_de Es schein ja eine neue Funktion durch das aktuelle Update das z.B. iOS-App zu geben.
                Nun können Shelly-Gerate geschaltet und wohl auch Leistungsdaten übertragen. Hat hier wer schon Erfahrungen gesammelt?

                Thomas WellerT Offline
                Thomas WellerT Offline
                Thomas Weller
                wrote on last edited by Thomas Weller
                #898

                @aherby
                Meines Wissen`s nach funktioniert die Shelly Integration noch bei niemandem. Wird nur in der App angezeigt und es kommt bei Auswahl der Shelly Komponenten der Fehler der Verbindung, so bei mir auch.
                Soll bis Ende Januar funktionieren lt. einem PV-Forum Mitglied.

                @Waly_de
                Bin relativ neu in der IO Broker Welt...
                Habe jetzt einen Raspberry Pi4 mit IOBroker und deinen zwei Skripten Ecoflow+Tibber am laufen.

                Wird die AC Ladeleistung nicht gesteuert mit deinem Skript?
                Er zieht bei mir immer die max. Eingestellte AC Leistung in die DeltaPro!
                Der Haushaltsstrombedarf wird per Skript angepasst, da regelt zumindest mal was über den "Sensor" des TibberSkript...

                edit...
                Ich hab noch keine PV-Module an meiner DeltaPRO mit 1x Zusatzakku und auch nicht am PowerStream.
                Lade PV Überschuss aus meiner 37kWp SolarEdge PV-Anlage über eine geschaltete Shelly Steckdose mit max. 2,3kW.
                Ziel ist es über so ein Skript zu machen, ohne Shelly Steckdose dazwischen.

                Der TibberPulse Wert meines Stromzählers muss hier doch einwandfrei dafür geeignet sein.

                Bei Negativen Watt Werten Laden der DeltaPro über AC und bei Positiven Watt Werten Powerstream Einspeisung anpassen.
                Mehr brauch ich gar nicht 🙂

                A W 2 Replies Last reply
                1
                • Thomas WellerT Thomas Weller

                  @aherby
                  Meines Wissen`s nach funktioniert die Shelly Integration noch bei niemandem. Wird nur in der App angezeigt und es kommt bei Auswahl der Shelly Komponenten der Fehler der Verbindung, so bei mir auch.
                  Soll bis Ende Januar funktionieren lt. einem PV-Forum Mitglied.

                  @Waly_de
                  Bin relativ neu in der IO Broker Welt...
                  Habe jetzt einen Raspberry Pi4 mit IOBroker und deinen zwei Skripten Ecoflow+Tibber am laufen.

                  Wird die AC Ladeleistung nicht gesteuert mit deinem Skript?
                  Er zieht bei mir immer die max. Eingestellte AC Leistung in die DeltaPro!
                  Der Haushaltsstrombedarf wird per Skript angepasst, da regelt zumindest mal was über den "Sensor" des TibberSkript...

                  edit...
                  Ich hab noch keine PV-Module an meiner DeltaPRO mit 1x Zusatzakku und auch nicht am PowerStream.
                  Lade PV Überschuss aus meiner 37kWp SolarEdge PV-Anlage über eine geschaltete Shelly Steckdose mit max. 2,3kW.
                  Ziel ist es über so ein Skript zu machen, ohne Shelly Steckdose dazwischen.

                  Der TibberPulse Wert meines Stromzählers muss hier doch einwandfrei dafür geeignet sein.

                  Bei Negativen Watt Werten Laden der DeltaPro über AC und bei Positiven Watt Werten Powerstream Einspeisung anpassen.
                  Mehr brauch ich gar nicht 🙂

                  A Offline
                  A Offline
                  aherby
                  wrote on last edited by
                  #899

                  @thomas-weller Also ich habe es gerade mal getestet und ich kann den Shelly Plus 1 PM damit schalten aber da um diese Uhrzeit keine Sonne hier scheint, sehe ich eben keine Leistungswerte. Aber mehr wird sicher eh nicht über Matter übertragen. Dache im Log sehe ich einen ungewöhnlichen Eintrag aber nichts aufgefallen.

                  1 Reply Last reply
                  0
                  • A aherby

                    @waly_de Es schein ja eine neue Funktion durch das aktuelle Update das z.B. iOS-App zu geben.
                    Nun können Shelly-Gerate geschaltet und wohl auch Leistungsdaten übertragen. Hat hier wer schon Erfahrungen gesammelt?

                    A Offline
                    A Offline
                    Accu
                    wrote on last edited by
                    #900

                    @aherby was bedeutet das? Dass man einen Shelly schalten kann, der hinter der Delta am AC Eingang sitzt? Bisher schalte ich diesen via Shelly Regel.

                    A 1 Reply Last reply
                    0
                    • A Accu

                      mal ne Frage zu dem Skript:
                      ich habe die neuste Version geladen und im Konfig Bereich meine Daten eingetragen (zwischen die Gänsefüsschen) und die Seriennummern meiner Geräte (Powerstream & Delta Pro (als DM)).
                      Auch meinen Sonoff IR Volkszähler Datenpunkt.

                      Bildschirmfoto 2024-01-04 um 10.01.14.png

                      bekomme aber auch einen Fehler für meine Delta Pro:
                      Bildschirmfoto 2024-01-04 um 10.01.38.png

                      Leider speist der Powerstream nicht ein. Sollte der nicht automatisch anspringen wenn das Skript gestartet ist?

                      wie ist das mit der Location Variablen? Muss da noch was für die XXX eingetragen werden?
                      Bildschirmfoto 2024-01-04 um 09.59.29.png

                      A Offline
                      A Offline
                      Accu
                      wrote on last edited by
                      #901

                      Hat niemand eine Idee bzw. kann mir sagen, was ich falsch mache bzw. warum meine Delta Pro trotz Ladestand von 35% und Netzverbrauch von 350W nicht automatisch einspeist?
                      Ich nutze den Sonoff IR Volkszähler um meinen Stromverbrauch im Haus zu ermitteln.

                      R 1 Reply Last reply
                      0
                      • A Accu

                        Hat niemand eine Idee bzw. kann mir sagen, was ich falsch mache bzw. warum meine Delta Pro trotz Ladestand von 35% und Netzverbrauch von 350W nicht automatisch einspeist?
                        Ich nutze den Sonoff IR Volkszähler um meinen Stromverbrauch im Haus zu ermitteln.

                        R Offline
                        R Offline
                        Ralf77
                        wrote on last edited by
                        #902

                        @accu bist du im PS auf „Stromversorgung Prio“?
                        Schau doch mal im ioBroker nach, was im Protokoll steht.

                        1 Reply Last reply
                        0
                        • A Accu

                          mal ne Frage zu dem Skript:
                          ich habe die neuste Version geladen und im Konfig Bereich meine Daten eingetragen (zwischen die Gänsefüsschen) und die Seriennummern meiner Geräte (Powerstream & Delta Pro (als DM)).
                          Auch meinen Sonoff IR Volkszähler Datenpunkt.

                          Bildschirmfoto 2024-01-04 um 10.01.14.png

                          bekomme aber auch einen Fehler für meine Delta Pro:
                          Bildschirmfoto 2024-01-04 um 10.01.38.png

                          Leider speist der Powerstream nicht ein. Sollte der nicht automatisch anspringen wenn das Skript gestartet ist?

                          wie ist das mit der Location Variablen? Muss da noch was für die XXX eingetragen werden?
                          Bildschirmfoto 2024-01-04 um 09.59.29.png

                          W Offline
                          W Offline
                          Waly_de
                          wrote on last edited by
                          #903

                          Es gibt eine neue Version:
                          ecoflow-connector_v121_05.01.2024.txt

                          (1.2.1) 05.01.2024

                            • Neuer Parameter "ExcessChargeStopPower": Überschussleistung bei der der Zusatzspeicher wieder abgeschaltet werden soll.
                            • Verschiedene Optimierungen und Bugfixes
                            • LogAllOfSerial kann nun verwendet werden um jede nachricht von einer bestimmten seriennummer in ein Logfile zu schreibnen.

                          Ich habe vor allem bei der Überschussladung noch einiges angepasst und die Bezugswerte geändert. Leider ist nach wie vor ohne Sonne kein wirklicher Feldtest möglich. Aber bei mir läuft es, wenn es mal hell wird, sehr gut.

                          1 Reply Last reply
                          0
                          • A Accu

                            mal ne Frage zu dem Skript:
                            ich habe die neuste Version geladen und im Konfig Bereich meine Daten eingetragen (zwischen die Gänsefüsschen) und die Seriennummern meiner Geräte (Powerstream & Delta Pro (als DM)).
                            Auch meinen Sonoff IR Volkszähler Datenpunkt.

                            Bildschirmfoto 2024-01-04 um 10.01.14.png

                            bekomme aber auch einen Fehler für meine Delta Pro:
                            Bildschirmfoto 2024-01-04 um 10.01.38.png

                            Leider speist der Powerstream nicht ein. Sollte der nicht automatisch anspringen wenn das Skript gestartet ist?

                            wie ist das mit der Location Variablen? Muss da noch was für die XXX eingetragen werden?
                            Bildschirmfoto 2024-01-04 um 09.59.29.png

                            W Offline
                            W Offline
                            Waly_de
                            wrote on last edited by
                            #904

                            @accu Bitte möglichst keine Bider posten, sondern die Protokolle und Code kopieren und mithilfe der CODE Funktion (</>) Button oben Einfügen.

                            Das ist einfacher zu lesen ;-)
                            

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

                            ich habe die neuste Version geladen und im Konfig Bereich meine Daten eingetragen (zwischen die Gänsefüsschen) und die Seriennummern meiner Geräte (Powerstream & Delta Pro (als DM)).
                            Auch meinen Sonoff IR Volkszähler Datenpunkt.

                            Das sieht zunächst gut aus.die Meldung unten ist nur ein Hinweis und kann ignoriert werden.
                            An den logpath und SERIAL_TO_LOG Daten muss nichts geändert werden.

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

                            Leider speist der Powerstream nicht ein. Sollte der nicht automatisch anspringen wenn das Skript gestartet ist?

                            Wenn alle Bedingungen erfüllt sind, ja.
                            Gibt es genug PV-Power, ist die Batteriemindestladung gegeben, werden die Objekte:
                            "0_userdata.0.ecoflow.RealPower", "0_userdata.0.ecoflow.totalPV" mit den richtigen Werten regelmäßig aktualisiert?

                            A 1 Reply Last reply
                            0
                            • R Ralf77

                              @Waly_de ich habe gerade Dein neuestes Script vom 04.12 mit Überschussladung installiert. Habe aber nicht ganz verstanden, wie es funktioniert (und funktioniert aktuell bei mir mit meinem DeltaPro auch nicht).

                              Ich verwende ja eine Tuya-Steckdose zum Schalten der AC-Überschussladung. Leider funktioniert das AC-Laden nicht (auch nicht, wenn ich es ohne Tuya Steckdose realisiere). Es wird in den "Writebales" für "SlowChragePower" immer "Null" eingetragen... hast Du eine Idee wo mein Fehler liegt?

                               // Überschussladung:
                                  //****************************************
                                  ExcessCharge: true,                                //Überschussladung AN/AUS (true/false)
                                                                                      //ID zum Einstellen der Ladeleistung des Speichers in Watt: 
                                  ExcessChargePowerID: "0_userdata.0.ecoflow.app_1695477XXXXXX_DCEBZ8ZEXXXXXX_thing_property_set.writeables.slowChgPower",
                                                                                      //ID des aktuellen Ladestandes des Speichers in %: 
                                  ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_DCEBZ8ZEXXXXXX.data.params.bmsMaster.soc",
                                  ExcessChargeSwitchMin: 2,                           //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. 
                                  ExcessChargeMaxPower: 2500,                         //Maximale Ladeleistung des Speichers in Watt
                                  ExcessChargeOffsetPower: -50,                         //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. 
                                  ExcessChargeStartPower: -200,                         //Mindest-Überschussleistung zum Einschalten des Speichers
                                  ExcessChargeStartPowerDurationMin: 2,               //Mindestdauer in Minuten, die ExcessChargeStartPower nicht unterschritten werden darf, bevor der Speicher eingeschaltet wird.
                                  //----------------------------------------
                                 // Beispiel für Delta-Nutzung ohne Schlaltersteckdose:
                                  // Wird an einer Delta auch der PV-Eingang genutzt, bitte die PV-Leistung unter AdditionalPower anlegen. Die passende ID ist:
                                  // 0_userdata.0.ecoflow.app_device_property_xxx.data.params.mppt.inWatts
                                  // Bei der Delta: "subscribe: true" konfigurieren
                                  //----------------------------------------
                                                                                     //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                                  //ExcessActualPowerID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.inv.inputWatts",
                                                                                      //ID des Schalters, der den Speicher aktiviert: 
                                  //ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.chgPause", 
                                  //ExcessChargeSwitchOn: 0,                          //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                  //ExcessChargeSwitchOff: 1,                         //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                  //----------------------------------------
                                  // Beispiel für Nutzung einer Schlaltersteckdose:
                                  //----------------------------------------
                                                                                      //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                                  ExcessActualPowerID: "tuya.0.bf86dbXXXXXXXX.19",
                                                                                      //ID des Schalters, der den Speicher aktiviert: 
                                  ExcessChargeSwitchID: "tuya.0.bf86dbXXXXXXXXX.1", 
                                  ExcessChargeSwitchOn: true,                        //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                  ExcessChargeSwitchOff: false,                       //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                  //----------------------------------------
                                  //****************************************
                                  Debug: false,
                                  PlotCmdID: 99999,
                              

                              Ich wäre Die sehr Dankbar, wenn Du mir helfen könntest...dann kann ich mein eigens Script in die Rente schicken 🙂

                              W Offline
                              W Offline
                              Waly_de
                              wrote on last edited by
                              #905

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

                              Ich verwende ja eine Tuya-Steckdose zum Schalten der AC-Überschussladung. Leider funktioniert das AC-Laden nicht (auch nicht, wenn ich es ohne Tuya Steckdose realisiere). Es wird in den "Writebales" für "SlowChragePower" immer "Null" eingetragen... hast Du eine Idee wo mein Fehler liegt?

                              Also da ist einiges in der Konfiguration problematisch... ExcessChargeStartPower sollte z.b. nicht negativ sein. Ich ändere Deine Konfiguration mal so, wie ich glaube das sie Funktionieren sollte (bitte mit der neuen Version von heute testen):

                              // Überschussladung:
                                   //****************************************
                                   ExcessCharge: true,                                //Überschussladung AN/AUS (true/false)
                                                                                       //ID zum Einstellen der Ladeleistung des Speichers in Watt: 
                                   ExcessChargePowerID: "0_userdata.0.ecoflow.app_1695477XXXXXX_DCEBZ8ZEXXXXXX_thing_property_set.writeables.slowChgPower",
                                                                                       //ID des aktuellen Ladestandes des Speichers in %: 
                                   ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_DCEBZ8ZEXXXXXX.data.params.bmsMaster.soc",
                                   ExcessChargeSwitchMin: 2,                           //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. 
                                   ExcessChargeMaxPower: 2500,                         //Maximale Ladeleistung des Speichers in Watt
                                   ExcessChargeOffsetPower: 0,                         //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. 
                                   ExcessChargeStartPower: 50,                         //Mindest-Überschussleistung zum Einschalten des Speichers
                                   ExcessChargeStopPower: 0,                           //Überschussleistung bei der der Speicher abgeschaltet werden soll.
                              
                                   ExcessChargeStartPowerDurationMin: 1,               //Mindestdauer in Minuten, die ExcessChargeStartPower nicht unterschritten werden darf, bevor der Speicher eingeschaltet wird.
                                   //----------------------------------------
                                  // Beispiel für Delta-Nutzung ohne Schlaltersteckdose:
                                   // Wird an einer Delta auch der PV-Eingang genutzt, bitte die PV-Leistung unter AdditionalPower anlegen. Die passende ID ist:
                                   // 0_userdata.0.ecoflow.app_device_property_xxx.data.params.mppt.inWatts
                                   // Bei der Delta: "subscribe: true" konfigurieren
                                   //----------------------------------------
                                                                                      //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                                   //ExcessActualPowerID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.inv.inputWatts",
                                                                                       //ID des Schalters, der den Speicher aktiviert: 
                                   //ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.chgPause", 
                                   //ExcessChargeSwitchOn: 0,                          //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                   //ExcessChargeSwitchOff: 1,                         //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                   //----------------------------------------
                                   // Beispiel für Nutzung einer Schlaltersteckdose:
                                   //----------------------------------------
                                                                                       //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                                   ExcessActualPowerID: "tuya.0.bf86dbXXXXXXXX.19",
                                                                                       //ID des Schalters, der den Speicher aktiviert: 
                                   ExcessChargeSwitchID: "tuya.0.bf86dbXXXXXXXXX.1", 
                                   ExcessChargeSwitchOn: true,                        //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                   ExcessChargeSwitchOff: false,                       //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                   //----------------------------------------
                                   //****************************************
                                   Debug: false,
                                   PlotCmdID: 99999,
                              

                              Sollte, wenn alle ID's Passen folgendes machen:
                              Wenn 0_userdata.0.ecoflow.ExcessPower für mindesten eine Minute ununterbrochen > 50W ist, wird "tuya.0.bf86dbXXXXXXXXX.1" auf true gesetzt (Schaltet die Tuba-Dose?)
                              ExcessChargeSwitchMin bewirkt das sie mindestens 2 Minuten an bleibt, auch wenn die 0_userdata.0.ecoflow.ExcessPower für auf 0 fällt.

                              "0_userdata.0.ecoflow.app_1695477XXXXXX_DCEBZ8ZEXXXXXX_thing_property_set.writeables.slowChgPower" sollte nun an die Überschussleistung angepasst werden.

                              R 1 Reply Last reply
                              0
                              • W Waly_de

                                @accu Bitte möglichst keine Bider posten, sondern die Protokolle und Code kopieren und mithilfe der CODE Funktion (</>) Button oben Einfügen.

                                Das ist einfacher zu lesen ;-)
                                

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

                                ich habe die neuste Version geladen und im Konfig Bereich meine Daten eingetragen (zwischen die Gänsefüsschen) und die Seriennummern meiner Geräte (Powerstream & Delta Pro (als DM)).
                                Auch meinen Sonoff IR Volkszähler Datenpunkt.

                                Das sieht zunächst gut aus.die Meldung unten ist nur ein Hinweis und kann ignoriert werden.
                                An den logpath und SERIAL_TO_LOG Daten muss nichts geändert werden.

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

                                Leider speist der Powerstream nicht ein. Sollte der nicht automatisch anspringen wenn das Skript gestartet ist?

                                Wenn alle Bedingungen erfüllt sind, ja.
                                Gibt es genug PV-Power, ist die Batteriemindestladung gegeben, werden die Objekte:
                                "0_userdata.0.ecoflow.RealPower", "0_userdata.0.ecoflow.totalPV" mit den richtigen Werten regelmäßig aktualisiert?

                                A Offline
                                A Offline
                                Accu
                                wrote on last edited by
                                #906

                                @waly_de im Skript sehe ich beim Starten im Debug Fenster folgende Fehlermeldung:

                                javascript.0 (53248) script.js.Test.EF_Integration: Unbekannter Set Befehl: {"params":{"hour":9,"min":33,"sec":25,"day":5,"week":6,"month":1,"year":2024},"from":"iOS","lang":"de-de","id":"605402678","moduleSn":"DCExxxxxx","moduleType":1,"operateType":"setRtcTime","version":"1.0"}
                                

                                Meine Delta Pro steht laut EF App auf: "Stromversorgung priorisieren".

                                   SmartmeterID: "sonoff.0.IRHub.SML_Watt_Summe",     // State, der den aktuellen Gesamtverbrauch in Watt anzeigt
                                    seriennummern: [
                                        //############# Diesen Abschnitt für jedes einzelne Gerät anlegen ################
                                        {
                                            seriennummer: "HW51xxxxxx",           // Die Seriennummer des Gerätes
                                            name: "PowerStream",                        // beliebiger Name
                                            MaxPower: 600,                              // 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: PowerStream:"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 geschaltet wird. 0 für kein Rückschalten.   
                                            lowBatLimitPozOn: 5, lowBatLimitPozOff: 15, // Bei Unterschreiten der Batterieladung von "lowBatLimitPozOn" % ist die maximale Einspeiseleistung auf 
                                            lowBatLimit: 100,                           // "lowBatLimit" limitiert, bis der Ladezustand wieder bei "lowBatLimitPozOff" ist
                                        },
                                        //#######################################################################
                                

                                (Noch eine Frage: Könntest Du noch auf der ersten Seite (im Skript und/oder hier im Forum) einen allgemeinen Text zur Funktionalität des Skripts hinzufügen? Also was das Skript genau macht. Ich denke das wäre für viele Newbies sehr hilfreich.)

                                Ich nutze die EF Delta Pro mit 4 Panels (2p2s) direkt daran angeschlossen. Aktuell kommt bei der Wetterlage fast nichts rein. (gestern hatte ich über Mittag mal 150W) aber auch da ist der PS nicht angesprungen.
                                Aber das Skript liest doch auch nicht aus, was an PV reinkommt oder? Ich habe zumindest die stelle wo der Hoymiles vorkommt auskommentiert, da ich ne PV Anlage auf dem Gartenhaus habe. (Ich habe aber einen Datenpunkt im ioBroker wo der Gesamte PV Strom erfasst wird. ggf. kann ich den da einsetzen?)

                                W 1 Reply Last reply
                                0
                                • Thomas WellerT Thomas Weller

                                  @aherby
                                  Meines Wissen`s nach funktioniert die Shelly Integration noch bei niemandem. Wird nur in der App angezeigt und es kommt bei Auswahl der Shelly Komponenten der Fehler der Verbindung, so bei mir auch.
                                  Soll bis Ende Januar funktionieren lt. einem PV-Forum Mitglied.

                                  @Waly_de
                                  Bin relativ neu in der IO Broker Welt...
                                  Habe jetzt einen Raspberry Pi4 mit IOBroker und deinen zwei Skripten Ecoflow+Tibber am laufen.

                                  Wird die AC Ladeleistung nicht gesteuert mit deinem Skript?
                                  Er zieht bei mir immer die max. Eingestellte AC Leistung in die DeltaPro!
                                  Der Haushaltsstrombedarf wird per Skript angepasst, da regelt zumindest mal was über den "Sensor" des TibberSkript...

                                  edit...
                                  Ich hab noch keine PV-Module an meiner DeltaPRO mit 1x Zusatzakku und auch nicht am PowerStream.
                                  Lade PV Überschuss aus meiner 37kWp SolarEdge PV-Anlage über eine geschaltete Shelly Steckdose mit max. 2,3kW.
                                  Ziel ist es über so ein Skript zu machen, ohne Shelly Steckdose dazwischen.

                                  Der TibberPulse Wert meines Stromzählers muss hier doch einwandfrei dafür geeignet sein.

                                  Bei Negativen Watt Werten Laden der DeltaPro über AC und bei Positiven Watt Werten Powerstream Einspeisung anpassen.
                                  Mehr brauch ich gar nicht 🙂

                                  W Offline
                                  W Offline
                                  Waly_de
                                  wrote on last edited by
                                  #907

                                  @thomas-weller sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

                                  @Waly_de
                                  Bin relativ neu in der IO Broker Welt...
                                  Habe jetzt einen Raspberry Pi4 mit IOBroker und deinen zwei Skripten Ecoflow+Tibber am laufen.
                                  Wird die AC Ladeleistung nicht gesteuert mit deinem Skript?
                                  Er zieht bei mir immer die max. Eingestellte AC Leistung in die DeltaPro!
                                  Der Haushaltsstrombedarf wird per Skript angepasst, da regelt zumindest mal was über den "Sensor" des TibberSkript...
                                  edit...
                                  Ich hab noch keine PV-Module an meiner DeltaPRO mit 1x Zusatzakku und auch nicht am PowerStream.
                                  Lade PV Überschuss aus meiner 37kWp SolarEdge PV-Anlage über eine geschaltete Shelly Steckdose mit max. 2,3kW.
                                  Ziel ist es über so ein Skript zu machen, ohne Shelly Steckdose dazwischen.
                                  Der TibberPulse Wert meines Stromzählers muss hier doch einwandfrei dafür geeignet sein.
                                  Bei Negativen Watt Werten Laden der DeltaPro über AC und bei Positiven Watt Werten Powerstream Einspeisung anpassen.
                                  Mehr brauch ich gar nicht

                                  Willkommen in der wunderbaren Welt von IOBroker 😉
                                  Dafür ist das Skript eigentlich nicht gemacht... Will heissen ich hab nicht getestet was passiert, wenn die PS keine eigenen PV haben. Aber bitte versuch es mal mit der neuen Version von heute.
                                  Da sind die Bezugswerte geändert. Schlau bitte mal was bei Dir in 0_userdata.0.ecoflow.ExcessPower geschrieben wird.

                                  A 1 Reply Last reply
                                  0
                                  • A Accu

                                    @waly_de im Skript sehe ich beim Starten im Debug Fenster folgende Fehlermeldung:

                                    javascript.0 (53248) script.js.Test.EF_Integration: Unbekannter Set Befehl: {"params":{"hour":9,"min":33,"sec":25,"day":5,"week":6,"month":1,"year":2024},"from":"iOS","lang":"de-de","id":"605402678","moduleSn":"DCExxxxxx","moduleType":1,"operateType":"setRtcTime","version":"1.0"}
                                    

                                    Meine Delta Pro steht laut EF App auf: "Stromversorgung priorisieren".

                                       SmartmeterID: "sonoff.0.IRHub.SML_Watt_Summe",     // State, der den aktuellen Gesamtverbrauch in Watt anzeigt
                                        seriennummern: [
                                            //############# Diesen Abschnitt für jedes einzelne Gerät anlegen ################
                                            {
                                                seriennummer: "HW51xxxxxx",           // Die Seriennummer des Gerätes
                                                name: "PowerStream",                        // beliebiger Name
                                                MaxPower: 600,                              // 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: PowerStream:"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 geschaltet wird. 0 für kein Rückschalten.   
                                                lowBatLimitPozOn: 5, lowBatLimitPozOff: 15, // Bei Unterschreiten der Batterieladung von "lowBatLimitPozOn" % ist die maximale Einspeiseleistung auf 
                                                lowBatLimit: 100,                           // "lowBatLimit" limitiert, bis der Ladezustand wieder bei "lowBatLimitPozOff" ist
                                            },
                                            //#######################################################################
                                    

                                    (Noch eine Frage: Könntest Du noch auf der ersten Seite (im Skript und/oder hier im Forum) einen allgemeinen Text zur Funktionalität des Skripts hinzufügen? Also was das Skript genau macht. Ich denke das wäre für viele Newbies sehr hilfreich.)

                                    Ich nutze die EF Delta Pro mit 4 Panels (2p2s) direkt daran angeschlossen. Aktuell kommt bei der Wetterlage fast nichts rein. (gestern hatte ich über Mittag mal 150W) aber auch da ist der PS nicht angesprungen.
                                    Aber das Skript liest doch auch nicht aus, was an PV reinkommt oder? Ich habe zumindest die stelle wo der Hoymiles vorkommt auskommentiert, da ich ne PV Anlage auf dem Gartenhaus habe. (Ich habe aber einen Datenpunkt im ioBroker wo der Gesamte PV Strom erfasst wird. ggf. kann ich den da einsetzen?)

                                    W Offline
                                    W Offline
                                    Waly_de
                                    wrote on last edited by
                                    #908

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

                                    Ich nutze die EF Delta Pro mit 4 Panels (2p2s) direkt daran angeschlossen. Aktuell kommt bei der Wetterlage fast nichts rein. (gestern hatte ich über Mittag mal 150W) aber auch da ist der PS nicht angesprungen.
                                    Aber das Skript liest doch auch nicht aus, was an PV reinkommt oder? Ich habe zumindest die stelle wo der Hoymiles vorkommt auskommentiert, da ich ne PV Anlage auf dem Gartenhaus habe. (Ich habe aber einen Datenpunkt im ioBroker wo der Gesamte PV Strom erfasst wird. ggf. kann ich den da einsetzen?)

                                    Die Meldung mit dem unbekannten Set Befehl kannst du ignorieren.
                                    Der Rest sieht soweit gut aus.

                                    Grundsätzlich ist es ja so, dass das Skript dafür sorgen soll, dass möglichst die gesamte PV Leistung sofort verbraucht wird und nur das, was gerade nicht verbraucht werden kann, in einen Akku geladen wird.
                                    Damit das funktioniert, muss das Skript natürlich genau wissen, was genau gerade wirklich in deinem Haus verbraucht wird. Beziehungsweise wie viel der am Stromzähler angezeigten Leistung zum einen aus der PV Anlage kommt und zum anderen unter Umständen in Batterien eingespeist wird usw.
                                    Wenn du also einen Datenpunkt hast, der anzeigt, wie viel PVLeistung gerade aus anderen Quellen als aus deinemPower Stream kommt und sich das auch auf den Wert auswirkt, den das Script als "SmartmeterID" einließt, dann solltest du diesen unbedingt unter "AdditionalPower" angeben.

                                    Wenn dein Power Stream nicht anspringt, kann das neben einem leeren Akku auf jeden Fall der Grund sein. Bitte beobachte den Wert der Unter Objekte "0_userdata.0.ecoflow.RealPower" steht. Das ist der Wert, der für das Skript die Grundlage der Regelung darstellt. Ist der < "BasePowerOffset" passiert gar nichts. Ist der Wert größer, Versuch, das Skript, die Einspeisung des Power Stream auf RealPower - BasePowerOffset zu setzen.
                                    Das funktioniert aber auch nur dann, wenn der Akku den Mindest Ladestand erreicht hat. Den hat Ecoflow. festgelegt und ist bei mir zwischen 7% und 10 %. Wenn der Ladestand darunter liegt, geht die gesamte Leistung in den Akku, egal was das Skript als AC-Leistung einstellt.

                                    A 1 Reply Last reply
                                    0
                                    • W Waly_de

                                      @thomas-weller sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

                                      @Waly_de
                                      Bin relativ neu in der IO Broker Welt...
                                      Habe jetzt einen Raspberry Pi4 mit IOBroker und deinen zwei Skripten Ecoflow+Tibber am laufen.
                                      Wird die AC Ladeleistung nicht gesteuert mit deinem Skript?
                                      Er zieht bei mir immer die max. Eingestellte AC Leistung in die DeltaPro!
                                      Der Haushaltsstrombedarf wird per Skript angepasst, da regelt zumindest mal was über den "Sensor" des TibberSkript...
                                      edit...
                                      Ich hab noch keine PV-Module an meiner DeltaPRO mit 1x Zusatzakku und auch nicht am PowerStream.
                                      Lade PV Überschuss aus meiner 37kWp SolarEdge PV-Anlage über eine geschaltete Shelly Steckdose mit max. 2,3kW.
                                      Ziel ist es über so ein Skript zu machen, ohne Shelly Steckdose dazwischen.
                                      Der TibberPulse Wert meines Stromzählers muss hier doch einwandfrei dafür geeignet sein.
                                      Bei Negativen Watt Werten Laden der DeltaPro über AC und bei Positiven Watt Werten Powerstream Einspeisung anpassen.
                                      Mehr brauch ich gar nicht

                                      Willkommen in der wunderbaren Welt von IOBroker 😉
                                      Dafür ist das Skript eigentlich nicht gemacht... Will heissen ich hab nicht getestet was passiert, wenn die PS keine eigenen PV haben. Aber bitte versuch es mal mit der neuen Version von heute.
                                      Da sind die Bezugswerte geändert. Schlau bitte mal was bei Dir in 0_userdata.0.ecoflow.ExcessPower geschrieben wird.

                                      A Offline
                                      A Offline
                                      Accu
                                      wrote on last edited by
                                      #909

                                      @waly_de ah ok - d.h. das Skript läuft nur wenn der PS an Solar hängt? Ich nutze den PS leider nur zur Einspeisung. Meine Panels hängen direkt an der Delta Pro. Wobei man doch sicher auch den Datenpunkt abgreifen kann (WattIn)?

                                      W 1 Reply Last reply
                                      0
                                      • A Accu

                                        @waly_de ah ok - d.h. das Skript läuft nur wenn der PS an Solar hängt? Ich nutze den PS leider nur zur Einspeisung. Meine Panels hängen direkt an der Delta Pro. Wobei man doch sicher auch den Datenpunkt abgreifen kann (WattIn)?

                                        W Offline
                                        W Offline
                                        Waly_de
                                        wrote on last edited by Waly_de
                                        #910

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

                                        ah ok - d.h. das Skript läuft nur wenn der PS an Solar hängt?

                                        d.h. ich weiss es nicht genau 😉 Aber es besteht eine gute Chance, dass das neue Script auch in Deiner Konfiguration läuft... Teste mal und gib Rückmeldung, auch zu den Zuständen, nach denen ich gefragt hab.

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

                                        Wobei man doch sicher auch den Datenpunkt abgreifen kann (WattIn)?

                                        Vermutlich. Bitte vorher in den Objekten überprüfen, ob der Wert stimmig ist. Dann unter "AdditionalPower" angeben

                                        A 1 Reply Last reply
                                        0
                                        • W Waly_de

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

                                          Ich verwende ja eine Tuya-Steckdose zum Schalten der AC-Überschussladung. Leider funktioniert das AC-Laden nicht (auch nicht, wenn ich es ohne Tuya Steckdose realisiere). Es wird in den "Writebales" für "SlowChragePower" immer "Null" eingetragen... hast Du eine Idee wo mein Fehler liegt?

                                          Also da ist einiges in der Konfiguration problematisch... ExcessChargeStartPower sollte z.b. nicht negativ sein. Ich ändere Deine Konfiguration mal so, wie ich glaube das sie Funktionieren sollte (bitte mit der neuen Version von heute testen):

                                          // Überschussladung:
                                               //****************************************
                                               ExcessCharge: true,                                //Überschussladung AN/AUS (true/false)
                                                                                                   //ID zum Einstellen der Ladeleistung des Speichers in Watt: 
                                               ExcessChargePowerID: "0_userdata.0.ecoflow.app_1695477XXXXXX_DCEBZ8ZEXXXXXX_thing_property_set.writeables.slowChgPower",
                                                                                                   //ID des aktuellen Ladestandes des Speichers in %: 
                                               ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_DCEBZ8ZEXXXXXX.data.params.bmsMaster.soc",
                                               ExcessChargeSwitchMin: 2,                           //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. 
                                               ExcessChargeMaxPower: 2500,                         //Maximale Ladeleistung des Speichers in Watt
                                               ExcessChargeOffsetPower: 0,                         //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. 
                                               ExcessChargeStartPower: 50,                         //Mindest-Überschussleistung zum Einschalten des Speichers
                                               ExcessChargeStopPower: 0,                           //Überschussleistung bei der der Speicher abgeschaltet werden soll.
                                          
                                               ExcessChargeStartPowerDurationMin: 1,               //Mindestdauer in Minuten, die ExcessChargeStartPower nicht unterschritten werden darf, bevor der Speicher eingeschaltet wird.
                                               //----------------------------------------
                                              // Beispiel für Delta-Nutzung ohne Schlaltersteckdose:
                                               // Wird an einer Delta auch der PV-Eingang genutzt, bitte die PV-Leistung unter AdditionalPower anlegen. Die passende ID ist:
                                               // 0_userdata.0.ecoflow.app_device_property_xxx.data.params.mppt.inWatts
                                               // Bei der Delta: "subscribe: true" konfigurieren
                                               //----------------------------------------
                                                                                                  //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                                               //ExcessActualPowerID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.inv.inputWatts",
                                                                                                   //ID des Schalters, der den Speicher aktiviert: 
                                               //ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.chgPause", 
                                               //ExcessChargeSwitchOn: 0,                          //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                               //ExcessChargeSwitchOff: 1,                         //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                               //----------------------------------------
                                               // Beispiel für Nutzung einer Schlaltersteckdose:
                                               //----------------------------------------
                                                                                                   //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                                               ExcessActualPowerID: "tuya.0.bf86dbXXXXXXXX.19",
                                                                                                   //ID des Schalters, der den Speicher aktiviert: 
                                               ExcessChargeSwitchID: "tuya.0.bf86dbXXXXXXXXX.1", 
                                               ExcessChargeSwitchOn: true,                        //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                               ExcessChargeSwitchOff: false,                       //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                               //----------------------------------------
                                               //****************************************
                                               Debug: false,
                                               PlotCmdID: 99999,
                                          

                                          Sollte, wenn alle ID's Passen folgendes machen:
                                          Wenn 0_userdata.0.ecoflow.ExcessPower für mindesten eine Minute ununterbrochen > 50W ist, wird "tuya.0.bf86dbXXXXXXXXX.1" auf true gesetzt (Schaltet die Tuba-Dose?)
                                          ExcessChargeSwitchMin bewirkt das sie mindestens 2 Minuten an bleibt, auch wenn die 0_userdata.0.ecoflow.ExcessPower für auf 0 fällt.

                                          "0_userdata.0.ecoflow.app_1695477XXXXXX_DCEBZ8ZEXXXXXX_thing_property_set.writeables.slowChgPower" sollte nun an die Überschussleistung angepasst werden.

                                          R Offline
                                          R Offline
                                          Ralf77
                                          wrote on last edited by Ralf77
                                          #911

                                          @waly_de vielen Dank für Deine Hilfe auf meinen Post. Folgende Beobachtung habe ich gemacht:

                                          • Die Tuya Steckdose schaltet ein. Das klappt.
                                          • Die Regelung der AC-Ladung startet. Das klappt auch
                                          • Die Regelung stellt aber meist eine zu hohe Ladelseitung ein. Es wurde dann imme rzwischen 100Watt und 200 Watt zusätzlich zum PV-Überschuss aus dem Netz gezogen
                                          • Die Regelung klappte nur, wenn es keine großen Änderungen im Verbrauch gab (also deutlich weniger/mehr Überschuss auf einmal zur Verfügung stand)

                                          Meine Erkenntnisse:

                                          • Ich vermmute, dass mit der Berechnung von "0_userdata.0.ecoflow.ExcessPower" etwas nicht stimmt. Als Test habe ich Verbraucher im Haus zugeschalten bis die aktuelle PV-Produktion nicht mehr gerreicht hat und wollte so eine Abschaltung der AC-Ladung erzwingen. Da shat aber leider nicht geklappt. Als ich dann die Verbraucher wieder abgeschaltet hatte und ein Überschuss im Haus wieder verfügbar war, ist die AC-Ladeleistung auf 2900Watt gestiegen (in der App wurde sogar ein Wert von über 6000 Watt angezeigt). Die Berechnung der Ladeleistung scheint also noch nicht für alle möglichen Fälle zu passen.

                                          Hier mal ein Bild als ich die Verbraucher im Haus manuell zugeschalten habe:

                                          • Ich habe vom Netz 990 Watt bezogen
                                          • ExcessPower ist positiv auf 1019 geblieben
                                          • slowChgPower blieb auf 869 Watt
                                            -AC Ladung stoppte nicht (Tuya Steckdose hat sich nicht abgeschalten)

                                          39d06c96-7d82-4116-9178-aab5d91c0342-image.png

                                          Ich vermute, dass es an der Berechnung noch Probleme gibt, da ja Überschuss ein negativer Wert ist und Netzbezug ein positiver Wert...

                                          Gerne noch mal mein Script, welches ich als separates Script laufen habe (ChatGPT generiert- sicherlich noch zu verbessern).
                                          Es funktioniert aber sehr gut und regelt die AC-Ladung sehr zuverlässig mit einer Resteinspeisung von 20-70 Watt.

                                          Einziges Problem:
                                          Teilweise schaltet sich die Steckdose in der Nacht ein, wenn ich z.B.

                                          • einen Verbrauch von 250 Watt aus dem Akku ziehe (Grundlast).
                                          • Wenn ich dann z.B. den Wasserkocher anschalte, dann liefert der Akku 600 Watt ins Hausnetz (Verbrauch ist ja dann bei ~2kW).
                                          • Dann schaltet sich er Wasserkocher aus und ich habe einen "Negativen Wert = Einspeisung" in Höhe von 350 Watt bis der Akku zurückregelt
                                          • Dann springt die Teckdose an, der Akku bleibt auf 600 Watt und fängt an über AC zu laden...da muss ich dann manuell eingreifen
                                          const vPower = 'fronius.0.meter.0.PowerReal_P_Sum'; // Pfad zur Leistung des Fronius Smartmeters
                                          const Schalter = 'tuya.0.bf86db8XXXXX.1'; // Pfad zur Tuya Steckdose
                                          let timeout = null;
                                          const ecoflowObject = "0_userdata.0.ecoflow.app_1695477127XXXX_DCEBZ8ZEXXXXXX_thing_property_set.writeables.slowChgPower"; // Pfad zum Ecoflow-Objekt
                                          
                                          // Funktion zum Abrufen und Umrechnen des Werts vom Fronius Smartmeter alle 60 Sekunden
                                          const EINSCHALT_POWER = 200
                                          const AUSSCHALT_POWER = 0
                                          let powerValue = 0
                                          intervalId = setInterval(function () {
                                              const froniusValue = Math.floor(getState(vPower).val); // Wert vom Fronius Smartmeter
                                              const aktuelle_powerValue  =  getState(ecoflowObject).val
                                              let Entscheidungswert = (froniusValue * -1) + aktuelle_powerValue
                                           
                                              if (Entscheidungswert >= EINSCHALT_POWER){
                                                  Entscheidungswert = Math.floor(Entscheidungswert / 100) * 100; // Runde den positiven Wert auf die vollen hundert ab
                                                  powerValue = Entscheidungswert
                                              }
                                              if (powerValue > 0 && Entscheidungswert > AUSSCHALT_POWER){
                                                  Entscheidungswert = Math.ceil(Entscheidungswert / 100) * 100; // Runde den negativen Wert auf die vollen hundert auf
                                                  powerValue = Entscheidungswert
                                              }
                                              if (Entscheidungswert <= AUSSCHALT_POWER){
                                                  powerValue = 0
                                              }
                                              let setValue = powerValue
                                           
                                              if (setValue < 200) setValue = 200
                                              if (setValue > 2600) setValue = 2600
                                              
                                              setState(ecoflowObject, setValue); // Wert in das Ecoflow-Objekt schreiben
                                          }, 30000); // alle 30 Sekunden
                                          
                                          on(vPower, function(dp) {
                                            if (dp.state.val <= -250) { // Überschussleistung in Watt
                                              if (timeout) {
                                                clearTimeout(timeout);
                                                timeout = null;
                                              }
                                              setState(Schalter, true); // Steckdose einschalten
                                                } else if (dp.state.val >= 100) {
                                              if (!timeout) {
                                                timeout = setTimeout(function() {
                                                  if (getState(vPower).val >= 0) { // Prüfen, ob der Wert des Fronius Smart Meters innerhalb von 2 Minuten wieder negativ wird
                                                    setState(Schalter, false); // Steckdose ausschalten nach 2 Minuten
                                                            }
                                                  timeout = null;
                                                }, 120000); // Verzögerung von 2 Minuten
                                              }
                                            }
                                          });
                                          
                                          
                                          W 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          637

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe