Navigation

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

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    ecoflow-connector-Script zur dynamischen Leistungsanpassung

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      foxthefox Developer @lui1307 last edited by

      @lui1307
      Nimm mal DM, die ist am weitesten ähnlich zur pro

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

        @waly_de leider ändert das nichts. Es wird irgendwie nix eingespeist. Hast du noch eine Idee?

        Bildschirmfoto 2024-01-08 um 09.49.01.png

        R W 2 Replies Last reply Reply Quote 0
        • A
          Accu @lui1307 last edited by

          @lui1307 DM

          1 Reply Last reply Reply Quote 0
          • R
            Ralf77 @Accu last edited by

            @accu Hast Du im Script Regulation auf "True" gesetzt?

             //****************************************
                // Erweiterte Einstellungen:
                //****************************************
                SmartmeterTimeoutMin: 4,                            // Wenn der letzte Wert vom Smartmeter älter als "SmartmeterTimeoutMin" ist, wird das Script mit...
                SmartmeterFallbackPower: 150,                       // SmartmeterFallbackPower als aktuellem Realpowerwert weiter arbeiten, bis wieder aktuelle Daten geliefert werden. 
                Regulation: true,                                   // 'false' stellt das Setzen der Einspeiseleistung ab 
                RegulationState: "Regulate",                        // Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unter 0_userdata.0.ecoflow angelegt)
                RegulationMultiPsMode: 0,                           // Wenn mehrere PS reguliert werden sollen. "balance" = 0 oder "serial" = 1
                BasePowerOffset: 30,                                // Wird vom aktuellen Verbrauch abgezogen, um die Einspeiseleistung zu berechnen 
                Zusatzpower_Offset: 10,                             // Zusatzpower startet ab einer Batterieladeleistung von MaxPower - Zusatzpower_Offset
                MinValueMin: 1,                                     // Der Zeitraum in Minuten, aus dem der niedrigste Gesamtverbrauchswert geholt werden soll. 0 für Echtzeitwert
                MinValueAg: 0,                                      // Art der Ermittlung des kleinsten Wertes: 0 = Minimalwert, 1 = Durchschnittswert
                ReconnectMin: 30,                                   // Zeit in Minuten, nach der die Anwendung neu gestartet wird, wenn keine neuen Daten eintreffen
                statesPrefix: "0_userdata.0.ecoflow",               // Hier werden die ecoFlow States angelegt
                latitude: latitude,                                 // Breitengrad des Standortes (wird automatisch eingesetzt)
                longitude: longitude,                               // Längengrad des Standortes (wird automatisch eingesetzt)
            
            A 1 Reply Last reply Reply Quote 0
            • A
              Accu @Ralf77 last edited by Accu

              @ralf77 ja - so sieht meine Config aus:

              ****************************************/
              var ConfigData = {
                  email: "meine mail.com",          // Die App-Zugangsdaten von ecoFlow
                  passwort: "xxxx",
                  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: "HWxxxxxx",           // 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
                      },
                      //#######################################################################
                      {
                          seriennummer: "DCxxxxx",
                          name: "DELTA Pro",
                          typ: "DM",
                          subscribe: true,                            // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt
                      },
                      //#######################################################################
                      {
                          seriennummer: "HWxxxxx",
                          name: "Kaffeemaschine",
                          typ: "SM",
                          subscribe: true,                            // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt
                      },
                      //#######################################################################
                  ],
                  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: "EF PV Ladeleistung",            // Beliebiger Name
                          id: "alias.0.EFINWATT",                // Der Objektpfad zu dem Leistungswert in Watt (W)
                          factor: 1,                             // Divisionsfaktor für den Leistungswert. (10 für die Delta)
                      },
                      //#######################################################################
                  ],
                  //****************************************
                  // Erweiterte Einstellungen:
                  //****************************************
                  SmartmeterTimeoutMin: 4,                            // Wenn der letzte Wert vom Smartmeter älter als "SmartmeterTimeoutMin" ist, wird das Script mit...
                  SmartmeterFallbackPower: 150,                       // SmartmeterFallbackPower als aktuellem Realpowerwert weiter arbeiten, bis wieder aktuelle Daten geliefert werden. 
                  Regulation: true,                                   // 'false' stellt das Setzen der Einspeiseleistung ab 
                  RegulationState: "Regulate",                        // Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unter 0_userdata.0.ecoflow angelegt)
                  RegulationMultiPsMode: 0,                           // Wenn mehrere PS reguliert werden sollen. "balance" = 0 oder "serial" = 1
                  BasePowerOffset: 30,                                // Wird vom aktuellen Verbrauch abgezogen, um die Einspeiseleistung zu berechnen 
                  Zusatzpower_Offset: 10,                             // Zusatzpower startet ab einer Batterieladeleistung von MaxPower - Zusatzpower_Offset
                  MinValueMin: 2,                                     // Der Zeitraum in Minuten, aus dem der niedrigste Gesamtverbrauchswert geholt werden soll. 0 für Echtzeitwert
                  MinValueAg: 0,                                      // Art der Ermittlung des kleinsten Wertes: 0 = Minimalwert, 1 = Durchschnittswert
                  ReconnectMin: 30,                                   // Zeit in Minuten, nach der die Anwendung neu gestartet wird, wenn keine neuen Daten eintreffen
                  statesPrefix: "0_userdata.0.ecoflow",               // Hier werden die ecoFlow States angelegt
                  latitude: latitude,                                 // Breitengrad des Standortes (wird automatisch eingesetzt)
                  longitude: longitude,                               // Längengrad des Standortes (wird automatisch eingesetzt)
                  //****************************************
                  // Überschussladung:
                  //****************************************
                  ExcessCharge: true,                                 //Überschussladung AN/AUS (true/false)
                                                                      //ID zum Einstellen der Ladeleistung des Speichers in Watt: 
                  ExcessChargePowerID: "0_userdata.0.ecoflow.app_15xxxxx_DCxxxx_thing_property_set.writeables.slowChgPower",
                                                                      //ID des aktuellen Ladestandes des Speichers in %: 
                  ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_DCxxxxdata.params.bmsMaster.soc",
                  ExcessChargeSwitchMin: 5,                           //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. 
                  ExcessChargeMaxPower: 2000,                         //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: "sonoff.0.NOUS-DVES_F0A844.ENERGY_Power",
                                                                      //ID des Schalters, der den Speicher aktiviert: 
                  ExcessChargeSwitchID: "sonoff.0.NOUS-DVES_F0A844.POWER", 
                  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, mlog: false,
                  PlotCmdID: 99999,
              }
              
              1 Reply Last reply Reply Quote 0
              • W
                Waly_de @Accu last edited by

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

                @waly_de leider ändert das nichts. Es wird irgendwie nix eingespeist. Hast du noch eine Idee?

                Bildschirmfoto 2024-01-08 um 09.49.01.png

                In dem Bild ist zu sehen, dass das Objekt Regulate auf false steht. ändere das bitte manuell auf True . Also das Objekt, nicht in der Skript, Config

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

                  @waly_de ok - aber ist es nicht so gedacht, dass das Skript das automatisch ändert? Weil im Script ist es ja auf True gesetzt:

                   // Parameter an hier nur für PowerStream.     
                              regulation: true,   
                  

                  Habe es geändert -- leider nix

                  339c486c-c6ea-49ef-820f-f1b4e6a0cee6-Bildschirmfoto 2024-01-08 um 10.52.28.jpeg

                  Bildschirmfoto 2024-01-08 um 10.53.23.png

                  W 2 Replies Last reply Reply Quote 0
                  • W
                    Waly_de @Accu last edited by

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

                    @waly_de ok - aber ist es nicht so gedacht, dass das Skript das automatisch ändert? Weil im Script ist es ja auf True gesetzt:

                     // Parameter an hier nur für PowerStream.     
                                regulation: true,   
                    

                    Nein. Das ist der initiale wert. Wenn ein Regulation-State definiert ist, überschreibt dieser den Parameter. Das ist dazu gedacht, um von außen das Skript deaktivieren zu können, zum Beispiel um mit Billigem Strom von Tibber die Akkus zu laden.

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

                      @accu hast du den history Adapter installiert?

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

                        @waly_de jep der läuft:

                        Bildschirmfoto 2024-01-08 um 11.20.09.png

                        schaut aktuell so aus:
                        Bildschirmfoto 2024-01-08 um 11.21.16.png

                        sehe aber leider immer noch nicht den ExceesCharge Datenpunkt.

                        W R G 4 Replies Last reply Reply Quote 0
                        • W
                          Waly_de @Accu last edited by

                          @accu viel fällt mir da nicht mehr ein… stell mal bitte mlog auf true und stell noch mal sicher, das die id ExcessChargePowerID 100% existiert …

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

                            @accu wenn Du das Script ausschaltest/anhälst/ den ioBroker komplett aus machst und dann nur das "originale System" laufen lässt...
                            speist der PS dann ein?
                            Ich vermute langsam, dass das Problem am PS liegt.
                            Hast du im PS auch auf "Stromversorgung prio" gestellt?

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

                              @accu Hmm ich hab nochmal über die Konfiguration nachgedacht....
                              Du hast die PV Module, die an der Delta hängen unter Additional Power angegeben, richtig?
                              Das könnte aber doch ein Problem sein. Die Leistungquellen, die unter Additional Power angegeben werden sind normalerweise Wechselrichter, die unabhängig ihre Leistung in das Hausnetz einspeisen. Darum addiere ich die Leistung von additionalpower zu dem, was das Smartmeter anzeigt, um zu ermitteln wie der aktuelle Verbrauch tatsächlich aussieht.
                              Die PV Module an der Delta jedoch speisen ja gar nicht in das Hausnetz ein. Vielmehr laden Sie lediglich den Akku der Delta auf.
                              Ich würde also vorschlagen, einmal zu versuchen, die Angabe der PV Leistung am Delta zu entfernen. Sprich, lösche die Einträge unter additional power. und schau mal was passiert.

                              Wenn mlog auf "true" ist, siehst du im Protokoll, welche Werte das Skript berücksichtigt und welche Einstellungen an die Geräte gesendet werden werden. Du kannst ja vielleicht mal einen kurzen Auszug davon posten.

                              A 1 Reply Last reply Reply Quote 0
                              • L
                                lui1307 @Waly_de last edited by

                                @waly_de Habe den IOB nun laufen und möchte als Smartmeter den Tibber Puls einsetzen. Hat das schon mal jemand gemacht? Habe den ioBroker.tibberlink Adapter in den IOB eingebunden und eine Instanz gebildet. Wie geht es weiter? Werde leider aus der Kurzbeschreibung auf GitHub nicht schlau. Gibt es da mehr Doku oder Erfahrung?
                                Vielen Dank im Voraus!

                                G 1 Reply Last reply Reply Quote 0
                                • G
                                  guhfy9966 @Accu last edited by

                                  @Waly_de
                                  ich mache das auch mit mehreren PS und mehreren Delta. Nachteil es aus additional Power zu nehmen ist, dass du das ja auch in TotalPV einberechnest und nur so der gesamte Ertrag messbar ist.

                                  W 1 Reply Last reply Reply Quote 0
                                  • G
                                    guhfy9966 @lui1307 last edited by

                                    @lui1307

                                    Du musst das richtige Objekt (aktueller Verbrauch) nur unter SmartmeterID angeben. Im ersten Post steht dazu noch ein wenig mehr.

                                    L 1 Reply Last reply Reply Quote 0
                                    • G
                                      guhfy9966 last edited by

                                      Gibt es eigentlich eine Möglichkeit das Script so einzustellen, dass es am Tag die Batterie lädt und erst nachts einspeist?

                                      Oder eine Möglichkeit, dass es nur bis zu einer bestimmten Watt Obergrenze eine Nulleinspeisung versucht?
                                      Hintergrund: ich möchte vermeiden, dass die Batterien mit voller Leistung leer gesaugt werden, wenn das E-Auto lädt. Da fällt das sowieso nicht auf und ich finde es schöner den „Nutzen“ zu sehen 😁

                                      W 1 Reply Last reply Reply Quote 0
                                      • L
                                        lui1307 @guhfy9966 last edited by lui1307

                                        @guhfy9966 Da ich ein absoluter Anfänger im IOB bin, ist meine Frage wie und wo kann ich denn die ioBroker.tibberlink-Instanz konfigurieren? Was ist dazu zu tun?

                                        Nachtrag: So wie ich es jetzt sehe, scheint es kein Menü oder Einstellseite zu geben, sondern nur das Exportieren, Konfigurieren und wieder Laden einer JSON-Datei. Richtig?

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

                                          @lui1307 super, das es schon mal läuft.
                                          Ich empfehle dich erstmal mit den Basics von iobroker vertraut zu machen. Es gibt dazu jede Menge schöne Videos auf YouTube und hunderte Beiträge hier im Forum.
                                          https://www.youtube.com/results?search_query=iobroker+einrichten

                                          Die Ultra Kurzversion:
                                          Sämtliche Daten mit den iobroker arbeitet, stehen in den Objekten, die du über den Link links in der Navigationsleiste erreichen kannst. Der Pfad zu diesen Objekten ist das, was du unter ID im Skript hinterlegen musst. Du kannst die entsprechenden Daten über die Oberfläche heraussuchen und auf das kopieren Symbol rechts neben dem Objektnamen klicken, um den Pfad in die Zwischenablage zu speichern.

                                          Die Konfiguration der Adapter erfolgt über Instanzen aus der Navigationsleiste links. Dort gibt es ein Schraubenschlüsselsymbol, hinter dem sich die Einstellung des jeweiligen Adapters verbergen.

                                          Visualisierung und Bedienungen muss man sich in iobroker weitesgehend selbst bauen. Dazu gibt es wiederum den Adapter VIS und diverse anderer Visualisierungadapter. Aber das ist nicht nötig, um die Funktionalität des Skript es zu nutzen. in JSON-Daten muss man eigentlich nichts machen.

                                          L 1 Reply Last reply Reply Quote 0
                                          • W
                                            Waly_de @guhfy9966 last edited by Waly_de

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

                                            @Waly_de
                                            ich mache das auch mit mehreren PS und mehreren Delta. Nachteil es aus additional Power zu nehmen ist, dass du das ja auch in TotalPV einberechnest und nur so der gesamte Ertrag messbar ist.

                                            Richtig. Das müsste ich auch konfigurierbar machen. Also so, dass der Ertrag zwar in totalPV angezeigt wird, aber nicht zur Berechnung von Real power verwendet wird. Mir geht es jetzt erst einmal darum, ob die Funktionalität gewährleistet ist, wenn man die Module nicht unter additional Power einträgt.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            691
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

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