Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  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.2k

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

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

ecoflow-connector-Script zur dynamischen Leistungsanpassung

Geplant Angeheftet Gesperrt Verschoben JavaScript
1.6k Beiträge 127 Kommentatoren 742.4k Aufrufe 127 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • A aherby

    @accu Hey kannst du das Verhalten näher beschreiben? Ich habe auch etwas das Gefühl das abends nicht mehr alles so funktioniert wie es soll. Durch meinen Aufbau sollte eigentlich auch bis Mitternacht odr länger quasi über Solar eingespeißt werden. Aber hin und wieder "steht" zwar eine Solarspannung an aber es kommt kein Strom. Dann nach Veränderungen, Warten plötzlich funktionert es dann wieder.

    A Offline
    A Offline
    Accu
    schrieb am zuletzt editiert von
    #1308

    @aherby da gibt es eigentlich nicht viel zu beschreiben. Ich hatte ca. 3mal bisher das Problem dass der PS nach Sonnenuntergang nicht eingespeist hat. Hatte erst ewig gesucht und Geräte abgestöpselt aber dann festgestellt, dass der PS in der Setting Batterie bevorzugen stand. Habs dann manuell umgestellt und alles lief wieder. Keine Ahnung ob das im Skript irgendwo getriggert wurde und der Befehl es dann wieder zurück zu setzen nicht funktioniert hat. Wie gesagt kommt äußerst selten vor. Bei mir bisher 3x seitdem ich das Skript nutze.

    1 Antwort Letzte Antwort
    0
    • Maik BeckerM Maik Becker

      @waly_de

      Hallo,

      0_userdata.0.ecoflow.app_1765798xxx_DCEBF8ZFAxxxxx_thing_property_set.writeables.slowChgPower sollte ja auch zum regeln der Ladegeschwindigkeit sein. Auch wenn ich diesen manuell ändere, wird es im der App nicht geändert, da scheint es irgend ein Problem zugeben.

      Da wenn ich den gleichen Wert ecoflow-mqtt.0.xxxxx.inv.cfgSlowChgWatts ändere, ist dieser sofort in der App, sichtbar und angepasst.

      PS: ich arbeite mit dem Zwischenschalter, ich hatte vorher die Delta Max da, lief alles ohne Probleme.

      danke für die hilfe.

      M Offline
      M Offline
      MikeRow
      schrieb am zuletzt editiert von
      #1309

      @maik-becker Ich kann das bei meiner Delta Pro auch feststellen. Konntest du das Problem lösen?

      Maik BeckerM 1 Antwort Letzte Antwort
      0
      • A Offline
        A Offline
        Accu
        schrieb am zuletzt editiert von
        #1310

        ich meine hier mal was gelesen zu haben, dass jmd die EF outdoor Batterie mit dem PS betreibt. Kann hier jemand mal paar Erfarhungsberichte posten zum Gerät und vorallem in Verbindung mit dem Skript. Erkennt das Skript die neue EF 2KWH Outdoorbatterie? wie läuft das dann wenn man schon eine delta mit PS im einsatz hat. Kann das skript beide PS steuern vorallem dann auch beim Einspeisen?

        M 1 Antwort Letzte Antwort
        0
        • M Offline
          M Offline
          Milchbeck
          schrieb am zuletzt editiert von
          #1311

          Wenn ich im einspeise Script den wer von 1 auf 0.5 stelle wäre das dann alle 30 Sekunden
          MinValueMin 0.5

          1 Antwort Letzte Antwort
          0
          • A Accu

            ich meine hier mal was gelesen zu haben, dass jmd die EF outdoor Batterie mit dem PS betreibt. Kann hier jemand mal paar Erfarhungsberichte posten zum Gerät und vorallem in Verbindung mit dem Skript. Erkennt das Skript die neue EF 2KWH Outdoorbatterie? wie läuft das dann wenn man schon eine delta mit PS im einsatz hat. Kann das skript beide PS steuern vorallem dann auch beim Einspeisen?

            M Offline
            M Offline
            Mario1995
            schrieb am zuletzt editiert von
            #1312

            @accu Ich habe die Outdoor Batterie (2 Kwh). Das Skript funktioniert damit. Allerdings werden die Ganzen Werte (Akkustand etc.) direkt vom PowerStream geliefert. Zu deiner anderen Frage mit der Delta kann ich dir keine Auskunft geben.

            A 1 Antwort Letzte Antwort
            0
            • M MikeRow

              @maik-becker Ich kann das bei meiner Delta Pro auch feststellen. Konntest du das Problem lösen?

              Maik BeckerM Offline
              Maik BeckerM Offline
              Maik Becker
              schrieb am zuletzt editiert von
              #1313

              @MikeRow ja ich habe die werte noch einmal wo anderes her geholt.

              1 Antwort Letzte Antwort
              0
              • Maik BeckerM Offline
                Maik BeckerM Offline
                Maik Becker
                schrieb am zuletzt editiert von
                #1314

                Hallo,

                ich habe jetzt eine Delta Pro und eine Delta Max mit je einem Powerstream und einer Sellysteckdose zum einschalten der AC Ladung, wie kann ich die Überschussladung für beide Geräte einstellen?

                1 Antwort Letzte Antwort
                0
                • M Mario1995

                  @accu Ich habe die Outdoor Batterie (2 Kwh). Das Skript funktioniert damit. Allerdings werden die Ganzen Werte (Akkustand etc.) direkt vom PowerStream geliefert. Zu deiner anderen Frage mit der Delta kann ich dir keine Auskunft geben.

                  A Offline
                  A Offline
                  Accu
                  schrieb am zuletzt editiert von
                  #1315

                  @mario1995 scheint leider ausverkauft zu sein :(

                  1 Antwort Letzte Antwort
                  0
                  • M Offline
                    M Offline
                    MikeRow
                    schrieb am zuletzt editiert von
                    #1316

                    Hallo, irgendwie bekomme ich das Script nicht zum laufen. Die an AC angeschlossene Fritz Dect wird nicht geschaltet!

                    Ich habe eine existierende PV Anlage und habe den WR unter Additional Power angelegt. Als Smartmeter ist der Tibber Pulse angegeben. Am AC Eingang der Delta Pro ist eine Fritz Dect angeschlossen. Ich habe das Script nun schon mehrfach geprüft und die Videos kann ich fast auswendig. Egal was ich einstelle, die Fritz Dect wird nicht geschaltet. Hat jemand eine Idee für mich? @Waly_de kannst du dir mal vielleicht die angehängte Config ansehen. Ich bin sonst mit meinem Latein am Ende :-(

                    Screenshot 2024-06-18 130625.png

                    email: "XXXXXX@outlook.de",                             // Die App-Zugangsdaten von ecoFlow
                    passwort: "XXXXXX",
                    SmartmeterID: "tibberlink.0.Homes.XXXXXX.LiveMeasurement.power",     // State, der den aktuellen Gesamtverbrauch in Watt anzeigt
                    seriennummern: [
                        //############# Diesen Abschnitt für jedes einzelne Gerät anlegen ################
                        {
                            seriennummer: "XXXXXXXXXXXXX",              // 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/Delta Pro: "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: 100, battPozOff: 97,              // 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: 250,                           // "lowBatLimit" limitiert, bis der Ladezustand wieder bei "lowBatLimitPozOff" ist
                        },
                        //#######################################################################
                        {
                            seriennummer: "XXXXXXX",
                            name: "DELTA PRO",
                            typ: "D2M",
                            subscribe: true,                            // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt
                        },
                        //#######################################################################
                        {
                            seriennummer: "XXXXXXXXXXXXX",
                            name: "SmartPlug 1",
                            typ: "SM",
                            subscribe: true,                            // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt
                        },
                        //#######################################################################
                    ],
                    AdditionalPowerAvgPeriod: 15000,                    // Zeitraum in ms in denen ein Durchschittswert der Summe von AdditionalPower erstellt wird
                    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: "STP8",                       // Beliebiger Name
                            id: "modbus.0.inputRegisters.30775_PV_Leistung_Gesamt_Aktuell",      // Der Objektpfad zu dem Leistungswert in Watt (W)
                            factor: 1,                                  // Divisionsfaktor für den Leistungswert. (10 für die Delta)
                            offset: 0,                                  // Wert wird zum Messwert addiert um Messabweichungen ausgleichen zu können 
                            NoFeedIn: false,                            // true setzen, wenn die enthaltene Leistung nicht ins Hausnetz fließt. (Nur in PVTotal aufnehmen)
                            NoPV: false,                                // true setzen, wenn die enthaltene Leistung nicht in TotalPV einfließen soll. (Nur in Realpower aufnehmen)   
                    
                    //#######################################################################
                    //****************************************
                    // 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. 
                    RegulationIntervalSec: 15,                          // Intervall in Sekunden in denen gemessen und reguliert wird 
                    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
                    SerialReverse: false,                               // true: im serial Mode (RegulationMultiPsMode: 1) werden die PS in umgekehrter Rheihenfolge duchfaufen 
                    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_XXXXXXXXXXX_thing_property_set.writeables.slowChgPower",
                                                                        //ID des aktuellen Ladestandes des Speichers in %: 
                    ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_XXXXXXXXXXX.data.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.
                    ExcessChargeMinRegulatePause: 1,                    //Mindestpause in Minuten zwischen einzelnen Regelbefehlen (EEPROM-Schutz)
                    ExcessChargeRegulateSteps: 100,                     //Stufen in Watt, in denen die Werte geändert werden sollen 
                    ExcessChargeBatSocMax: 95,                          // Batterieladestand muss <= sein damit die Überschussladung gestartet wird
                    ExcessChargeBatSocOff: 100,                         // Batterieladestand bei dem die Überschussladung abgeschaltet 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: "fritzdect.0.DECT_116570551682.power",
                                                                        //ID des Schalters, der den Speicher aktiviert: 
                    ExcessChargeSwitchID: "fritzdect.0.DECT_116570551682.state", 
                    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: true,
                    PlotCmdID: 99999,
                    

                    U 1 Antwort Letzte Antwort
                    0
                    • D DerSmily

                      Ich versuche gerade das Skript mal wieder zum Laufen zu bringen:

                      Wie bekomme ich diesen Fehler weg?
                      javascript.0 11:31:21.934 info script.js.Ecoflow.DL: Fehler beim Abrufen des niedrigsten Werts: timeout
                      javascript.0 11:31:36.912 info script.js.Ecoflow.DL: getLowestValue-error: timeout

                      Zur Info vielleicht: Ich habe eine PS und nur einen Zusatzakku Delta

                      Thomas BucherT Offline
                      Thomas BucherT Offline
                      Thomas Bucher
                      schrieb am zuletzt editiert von
                      #1317

                      @dersmily schau mal ob der History Adapter läuft

                      Maik BeckerM 1 Antwort Letzte Antwort
                      0
                      • Thomas BucherT Thomas Bucher

                        @dersmily schau mal ob der History Adapter läuft

                        Maik BeckerM Offline
                        Maik BeckerM Offline
                        Maik Becker
                        schrieb am zuletzt editiert von
                        #1318

                        @Waly_de kann man das Skript prüfen lassen ob der Powerstream Strom einspeist.

                        Ich habe zur Zeit eine Delta Pro und Max mit je einem Powerstream, aber zur Zeit ist es wieder mal ab und zu, dass er die Batterie ladet und aber auch über den Powerstream 300 Watt einspeist

                        1 Antwort Letzte Antwort
                        0
                        • M MikeRow

                          Hallo, irgendwie bekomme ich das Script nicht zum laufen. Die an AC angeschlossene Fritz Dect wird nicht geschaltet!

                          Ich habe eine existierende PV Anlage und habe den WR unter Additional Power angelegt. Als Smartmeter ist der Tibber Pulse angegeben. Am AC Eingang der Delta Pro ist eine Fritz Dect angeschlossen. Ich habe das Script nun schon mehrfach geprüft und die Videos kann ich fast auswendig. Egal was ich einstelle, die Fritz Dect wird nicht geschaltet. Hat jemand eine Idee für mich? @Waly_de kannst du dir mal vielleicht die angehängte Config ansehen. Ich bin sonst mit meinem Latein am Ende :-(

                          Screenshot 2024-06-18 130625.png

                          email: "XXXXXX@outlook.de",                             // Die App-Zugangsdaten von ecoFlow
                          passwort: "XXXXXX",
                          SmartmeterID: "tibberlink.0.Homes.XXXXXX.LiveMeasurement.power",     // State, der den aktuellen Gesamtverbrauch in Watt anzeigt
                          seriennummern: [
                              //############# Diesen Abschnitt für jedes einzelne Gerät anlegen ################
                              {
                                  seriennummer: "XXXXXXXXXXXXX",              // 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/Delta Pro: "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: 100, battPozOff: 97,              // 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: 250,                           // "lowBatLimit" limitiert, bis der Ladezustand wieder bei "lowBatLimitPozOff" ist
                              },
                              //#######################################################################
                              {
                                  seriennummer: "XXXXXXX",
                                  name: "DELTA PRO",
                                  typ: "D2M",
                                  subscribe: true,                            // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt
                              },
                              //#######################################################################
                              {
                                  seriennummer: "XXXXXXXXXXXXX",
                                  name: "SmartPlug 1",
                                  typ: "SM",
                                  subscribe: true,                            // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt
                              },
                              //#######################################################################
                          ],
                          AdditionalPowerAvgPeriod: 15000,                    // Zeitraum in ms in denen ein Durchschittswert der Summe von AdditionalPower erstellt wird
                          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: "STP8",                       // Beliebiger Name
                                  id: "modbus.0.inputRegisters.30775_PV_Leistung_Gesamt_Aktuell",      // Der Objektpfad zu dem Leistungswert in Watt (W)
                                  factor: 1,                                  // Divisionsfaktor für den Leistungswert. (10 für die Delta)
                                  offset: 0,                                  // Wert wird zum Messwert addiert um Messabweichungen ausgleichen zu können 
                                  NoFeedIn: false,                            // true setzen, wenn die enthaltene Leistung nicht ins Hausnetz fließt. (Nur in PVTotal aufnehmen)
                                  NoPV: false,                                // true setzen, wenn die enthaltene Leistung nicht in TotalPV einfließen soll. (Nur in Realpower aufnehmen)   
                          
                          //#######################################################################
                          //****************************************
                          // 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. 
                          RegulationIntervalSec: 15,                          // Intervall in Sekunden in denen gemessen und reguliert wird 
                          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
                          SerialReverse: false,                               // true: im serial Mode (RegulationMultiPsMode: 1) werden die PS in umgekehrter Rheihenfolge duchfaufen 
                          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_XXXXXXXXXXX_thing_property_set.writeables.slowChgPower",
                                                                              //ID des aktuellen Ladestandes des Speichers in %: 
                          ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_XXXXXXXXXXX.data.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.
                          ExcessChargeMinRegulatePause: 1,                    //Mindestpause in Minuten zwischen einzelnen Regelbefehlen (EEPROM-Schutz)
                          ExcessChargeRegulateSteps: 100,                     //Stufen in Watt, in denen die Werte geändert werden sollen 
                          ExcessChargeBatSocMax: 95,                          // Batterieladestand muss <= sein damit die Überschussladung gestartet wird
                          ExcessChargeBatSocOff: 100,                         // Batterieladestand bei dem die Überschussladung abgeschaltet 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: "fritzdect.0.DECT_116570551682.power",
                                                                              //ID des Schalters, der den Speicher aktiviert: 
                          ExcessChargeSwitchID: "fritzdect.0.DECT_116570551682.state", 
                          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: true,
                          PlotCmdID: 99999,
                          

                          U Offline
                          U Offline
                          ub35bo
                          schrieb am zuletzt editiert von
                          #1319

                          @mikerow
                          Hallo, so wie du es beschreibst, willst du die Delta Pro zeitgesteuert über einem FritzDect-Schalter laden. Damit ist die Steuerung der FritzDect zunächst unabhängig vom Leistungsanpassungsscript, sie kann maximal von dort aufgerufen werden.
                          Ich habe daher zunächst iobroker alle meine FritzDect-Schalter ermitteln lassen, dann den entsprechenden Schalter ausgewählt und schreibe dann in "fritzdect.0.DECT_123456789012.state" (bitte an deine Steckdose anpassen) den Wert "0" für aus bzw. "1" für an.

                          1 Antwort Letzte Antwort
                          0
                          • G Offline
                            G Offline
                            gooflo
                            schrieb am zuletzt editiert von
                            #1320

                            @Waly_de das Skript ist einfach toll!! Heute habe ich für einen Anwendungsfall bei zwei Powerstream mit Batterien zusätzlich zum Füllstand noch die Batteriekapazität bei der Watt-Verteilung mit einbezogen, damit wenn ein PS ne 4 kWh Batterie dran hat und der andere eine 2kWh tatsächlich beide gleich schnell entladen werden. Sowas macht einfach Spaß :-)

                            Falls jemand Interesse hat oder Du @Waly_de die Option einbauen willst (schöner wäre natürlich die Kapazität auszulesen, aber das geht leider nicht so einfach soweit ich das Beurteilen kann):

                            Bei der Konfiguration pro PS einfügen

                                        battCapacity: 4.096, // Kapazität der angeschlossenen Batterie
                            

                            Bei der Berechnung von psBatSumme:

                             let psCounter = 0, psBatSumme = 0
                             let psBatSummekWh = 0 // new
                             for (var i = 0; i < ConfigData.seriennummern.length; i++) {
                                 const asn = ConfigData.seriennummern[i].seriennummer
                                 if (ConfigData.seriennummern[i].typ == "PS" && ConfigData.seriennummern[i].seriennummer != "XXXXXXXXXXXXX" && GlobalObj[asn].regulieren) {
                                     psCounter = psCounter + 1
                                     psBatSumme = psBatSumme + GlobalObj[asn].batstate
                                     psBatSummekWh = psBatSummekWh + GlobalObj[asn].batstate / 100 * ConfigData.seriennummern[i].battCapacity // new
                                     //gapSumme = gapSumme + GlobalObj[asn].GAPdurchschnitt
                                 }
                             }
                            

                            Bei der Berechnung von Batfaktor:

                            let Batfaktor = 1
                            let BatfaktorkWh = 1 // new
                            if (psBatSumme != 0) {
                              Batfaktor = (BatBedarf / psBatSumme)
                              BatfaktorkWh = (BatBedarf / psBatSummekWh) // new
                            }
                            

                            Und abschließend die Verwendung im Balance Mode:

                            // Setpower = Setpower + (GlobalObj[asn].batstate * Batfaktor)
                            // mlog("PS:" + GlobalObj[asn].PsName + " Setpower =  " + Math.floor(Setpower) + " batstate = " + GlobalObj[asn].batstate + " Batfaktor = " + Batfaktor )
                            Setpower = Setpower + (GlobalObj[asn].batstate/100 * ConfigData.seriennummern[i].battCapacity * BatfaktorkWh) // new
                            mlog("PS:" + GlobalObj[asn].PsName + " Setpower =  " + Math.floor(Setpower) + " batstate = " + GlobalObj[asn].batstate + " BatfaktorkWH = " + BatfaktorkWh ) // new
                            
                              
                            
                            Maik BeckerM W 2 Antworten Letzte Antwort
                            0
                            • G gooflo

                              @Waly_de das Skript ist einfach toll!! Heute habe ich für einen Anwendungsfall bei zwei Powerstream mit Batterien zusätzlich zum Füllstand noch die Batteriekapazität bei der Watt-Verteilung mit einbezogen, damit wenn ein PS ne 4 kWh Batterie dran hat und der andere eine 2kWh tatsächlich beide gleich schnell entladen werden. Sowas macht einfach Spaß :-)

                              Falls jemand Interesse hat oder Du @Waly_de die Option einbauen willst (schöner wäre natürlich die Kapazität auszulesen, aber das geht leider nicht so einfach soweit ich das Beurteilen kann):

                              Bei der Konfiguration pro PS einfügen

                                          battCapacity: 4.096, // Kapazität der angeschlossenen Batterie
                              

                              Bei der Berechnung von psBatSumme:

                               let psCounter = 0, psBatSumme = 0
                               let psBatSummekWh = 0 // new
                               for (var i = 0; i < ConfigData.seriennummern.length; i++) {
                                   const asn = ConfigData.seriennummern[i].seriennummer
                                   if (ConfigData.seriennummern[i].typ == "PS" && ConfigData.seriennummern[i].seriennummer != "XXXXXXXXXXXXX" && GlobalObj[asn].regulieren) {
                                       psCounter = psCounter + 1
                                       psBatSumme = psBatSumme + GlobalObj[asn].batstate
                                       psBatSummekWh = psBatSummekWh + GlobalObj[asn].batstate / 100 * ConfigData.seriennummern[i].battCapacity // new
                                       //gapSumme = gapSumme + GlobalObj[asn].GAPdurchschnitt
                                   }
                               }
                              

                              Bei der Berechnung von Batfaktor:

                              let Batfaktor = 1
                              let BatfaktorkWh = 1 // new
                              if (psBatSumme != 0) {
                                Batfaktor = (BatBedarf / psBatSumme)
                                BatfaktorkWh = (BatBedarf / psBatSummekWh) // new
                              }
                              

                              Und abschließend die Verwendung im Balance Mode:

                              // Setpower = Setpower + (GlobalObj[asn].batstate * Batfaktor)
                              // mlog("PS:" + GlobalObj[asn].PsName + " Setpower =  " + Math.floor(Setpower) + " batstate = " + GlobalObj[asn].batstate + " Batfaktor = " + Batfaktor )
                              Setpower = Setpower + (GlobalObj[asn].batstate/100 * ConfigData.seriennummern[i].battCapacity * BatfaktorkWh) // new
                              mlog("PS:" + GlobalObj[asn].PsName + " Setpower =  " + Math.floor(Setpower) + " batstate = " + GlobalObj[asn].batstate + " BatfaktorkWH = " + BatfaktorkWh ) // new
                              
                                
                              
                              Maik BeckerM Offline
                              Maik BeckerM Offline
                              Maik Becker
                              schrieb am zuletzt editiert von
                              #1321

                              @gooflo Hallo, ich hätte Interesse und da ich zwei Powerstreams mit einer Batterie habe

                              1x Powerstream mit Delta Pro
                              1x Powerstream mit Delta Max

                              Kannst du mir beim Einbau helfen.

                              G 1 Antwort Letzte Antwort
                              0
                              • Maik BeckerM Maik Becker

                                @gooflo Hallo, ich hätte Interesse und da ich zwei Powerstreams mit einer Batterie habe

                                1x Powerstream mit Delta Pro
                                1x Powerstream mit Delta Max

                                Kannst du mir beim Einbau helfen.

                                G Offline
                                G Offline
                                gooflo
                                schrieb am zuletzt editiert von gooflo
                                #1322

                                @maik-becker klar, gerne. Du musst eigentlich nur die Code-Schnipsel an die richtige Stelle im Code kopieren und den alten Code damit ersetzen. "battCapacity" natürlich pro PS einmal in die Config aufnehmen bei den ganzen anderen Parametern und die Werte für Deine Speichergröße anpassen (Größe in kWh).

                                Und zur Sicherheit natürlich vorher mal ein Backup des gerade bei Dir laufenden Skripts machen :-)

                                Maik BeckerM 1 Antwort Letzte Antwort
                                0
                                • G gooflo

                                  @maik-becker klar, gerne. Du musst eigentlich nur die Code-Schnipsel an die richtige Stelle im Code kopieren und den alten Code damit ersetzen. "battCapacity" natürlich pro PS einmal in die Config aufnehmen bei den ganzen anderen Parametern und die Werte für Deine Speichergröße anpassen (Größe in kWh).

                                  Und zur Sicherheit natürlich vorher mal ein Backup des gerade bei Dir laufenden Skripts machen :-)

                                  Maik BeckerM Offline
                                  Maik BeckerM Offline
                                  Maik Becker
                                  schrieb am zuletzt editiert von
                                  #1323

                                  @gooflo danke, werde ich probieren, kannst du das auch für das laden einstellen, ich lade nur über AC.

                                  G 1 Antwort Letzte Antwort
                                  0
                                  • Maik BeckerM Maik Becker

                                    @gooflo danke, werde ich probieren, kannst du das auch für das laden einstellen, ich lade nur über AC.

                                    G Offline
                                    G Offline
                                    gooflo
                                    schrieb am zuletzt editiert von
                                    #1324

                                    @maik-becker mit AC Laden habe ich mich noch nicht beschäftigt. Kannst Du mir die Stelle im Code sagen? Wir bei AC Laden nicht sowieso immer so viel geladen wie geht?

                                    Maik BeckerM 1 Antwort Letzte Antwort
                                    0
                                    • G gooflo

                                      @maik-becker mit AC Laden habe ich mich noch nicht beschäftigt. Kannst Du mir die Stelle im Code sagen? Wir bei AC Laden nicht sowieso immer so viel geladen wie geht?

                                      Maik BeckerM Offline
                                      Maik BeckerM Offline
                                      Maik Becker
                                      schrieb am zuletzt editiert von
                                      #1325

                                      @gooflo Hallo, leider nein. Ich nutze zur Zeit die Überschussladung mit Steckdose.

                                      1 Antwort Letzte Antwort
                                      0
                                      • G gooflo

                                        @Waly_de das Skript ist einfach toll!! Heute habe ich für einen Anwendungsfall bei zwei Powerstream mit Batterien zusätzlich zum Füllstand noch die Batteriekapazität bei der Watt-Verteilung mit einbezogen, damit wenn ein PS ne 4 kWh Batterie dran hat und der andere eine 2kWh tatsächlich beide gleich schnell entladen werden. Sowas macht einfach Spaß :-)

                                        Falls jemand Interesse hat oder Du @Waly_de die Option einbauen willst (schöner wäre natürlich die Kapazität auszulesen, aber das geht leider nicht so einfach soweit ich das Beurteilen kann):

                                        Bei der Konfiguration pro PS einfügen

                                                    battCapacity: 4.096, // Kapazität der angeschlossenen Batterie
                                        

                                        Bei der Berechnung von psBatSumme:

                                         let psCounter = 0, psBatSumme = 0
                                         let psBatSummekWh = 0 // new
                                         for (var i = 0; i < ConfigData.seriennummern.length; i++) {
                                             const asn = ConfigData.seriennummern[i].seriennummer
                                             if (ConfigData.seriennummern[i].typ == "PS" && ConfigData.seriennummern[i].seriennummer != "XXXXXXXXXXXXX" && GlobalObj[asn].regulieren) {
                                                 psCounter = psCounter + 1
                                                 psBatSumme = psBatSumme + GlobalObj[asn].batstate
                                                 psBatSummekWh = psBatSummekWh + GlobalObj[asn].batstate / 100 * ConfigData.seriennummern[i].battCapacity // new
                                                 //gapSumme = gapSumme + GlobalObj[asn].GAPdurchschnitt
                                             }
                                         }
                                        

                                        Bei der Berechnung von Batfaktor:

                                        let Batfaktor = 1
                                        let BatfaktorkWh = 1 // new
                                        if (psBatSumme != 0) {
                                          Batfaktor = (BatBedarf / psBatSumme)
                                          BatfaktorkWh = (BatBedarf / psBatSummekWh) // new
                                        }
                                        

                                        Und abschließend die Verwendung im Balance Mode:

                                        // Setpower = Setpower + (GlobalObj[asn].batstate * Batfaktor)
                                        // mlog("PS:" + GlobalObj[asn].PsName + " Setpower =  " + Math.floor(Setpower) + " batstate = " + GlobalObj[asn].batstate + " Batfaktor = " + Batfaktor )
                                        Setpower = Setpower + (GlobalObj[asn].batstate/100 * ConfigData.seriennummern[i].battCapacity * BatfaktorkWh) // new
                                        mlog("PS:" + GlobalObj[asn].PsName + " Setpower =  " + Math.floor(Setpower) + " batstate = " + GlobalObj[asn].batstate + " BatfaktorkWH = " + BatfaktorkWh ) // new
                                        
                                          
                                        
                                        W Offline
                                        W Offline
                                        Waly_de
                                        schrieb am zuletzt editiert von
                                        #1326

                                        @gooflo das ist ja cool! :-) sehr schöne Idee!
                                        Ich hab leider im Moment privat so viel um die Ohren, dass ich mich um nichts kümmern kann.
                                        Wenn du magst, schick mir doch bitte die letzte Version vom Skript mit deinem Code. Dann stelle ich das so online für alle. ich denke, wenn standardmäßig die Batteriekapazität auf null eingestellt wird, dürfte die Regelung auch wenn man es nicht eingestellt keinen Unterschied machen, oder?
                                        Ich muss dieses Skript unbedingt mal auf github bringen, damit sowas einfacher wird.

                                        Maik BeckerM 1 Antwort Letzte Antwort
                                        0
                                        • W Waly_de

                                          @gooflo das ist ja cool! :-) sehr schöne Idee!
                                          Ich hab leider im Moment privat so viel um die Ohren, dass ich mich um nichts kümmern kann.
                                          Wenn du magst, schick mir doch bitte die letzte Version vom Skript mit deinem Code. Dann stelle ich das so online für alle. ich denke, wenn standardmäßig die Batteriekapazität auf null eingestellt wird, dürfte die Regelung auch wenn man es nicht eingestellt keinen Unterschied machen, oder?
                                          Ich muss dieses Skript unbedingt mal auf github bringen, damit sowas einfacher wird.

                                          Maik BeckerM Offline
                                          Maik BeckerM Offline
                                          Maik Becker
                                          schrieb am zuletzt editiert von
                                          #1327

                                          @waly_de Hallo, auch wenn du Privat viel zu tun hast, wäre es möglich, wenn das mit einbaust noch prüfen zu lassen ob die PS schon Strom einspeisen. Wenn ja den soll er die DM D2M nicht weiter laden. Wäre nett von dir.

                                          W 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          801

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe