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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    ecoflow-connector-Script zur dynamischen Leistungsanpassung

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

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

      @foxthefox ist das 0_userdata.0.ecoflow.app_device_property_XXXXXXXX.data.InverterHeartbeat.ratedPower

      aus den Heartbeat Daten?

      nein das waren die Dinge, die in aherby's Daten im Post zuvor drin waren.
      Ich konnte leider noch keinen heartbeat analysieren, da noch keiner gepostet wurde

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

        @foxthefox Sollten die Werte gewesen sein.
        zu
        das sieht doch gut aus:
        {"max_watts_pack":{"maxWatts":460}}
        {"max_watts_pack":{"maxWatts":660}}
        {"max_watts_pack":{"maxWatts":800}}
        hoffe das waren deine Einstellungen.

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

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

          dataLen

          also genaugenommen war {"max_watts_pack":{"maxWatts":450}} in dem Telegramm drin.
          "08c203" ist nicht direkt verwendbar, da noch protobuf codiert.

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

            @waly_de der Wert hat sich wohl nach dem Update gestern verändert aber wenn ich in der App von 800 W runter gehe passiert da nichts.

            erdata.0.ecoflow.app_device_property_XXXXXXXX.data.InverterHeartbeat.ratedPower
            
            1 Reply Last reply Reply Quote 0
            • F
              foxthefox Developer @Ponti92 last edited by foxthefox

              @ponti92
              Danke für die Aufklärung wie es derzeitig läuft.
              Es ist klar, daß ein ein Shelly3EM nicht direkt wie ein Stecker behandelt werden kann. Mindestens muß die derzeitig abgegebene Leistung mit berücksichtigt werden.
              Hätte halt gedacht, daß dies schon so passiert. Aber woher soll es auch kommen.
              Wenn man den shelly als mqtt über EF abboniert scheint ja der originale output übermittelt zu werden. Also braucht es einen Umsetzer, der aber zeitgleich noch die aktuelle Leistung braucht.
              Wäre interessant ob es nunmehr ein ganz unbekanntes Gerät zu abbonieren gibt. Genaugenommen müsste das dann auch nicht JSON sein, sondern protobuf, da ja der powerstream nichts anderes kennt.

              PS.
              danke für die logs.
              Hab mal ein paar angeschaut und dort stehen noch mehr Daten drin als die heutige protobuf Definition kennt.
              Die Definition geht bisher bis Feld 61 und da gibt es nun Daten mit höheren Feldnummern!
              Da braucht es noch ein paar unknownXX.

              Edit.
              In dem einen sind die Energiedaten drin und siehe da, nicht nur die bekannten watth1..7, sondern auch "watth16":729,"watth17":866,"watth18":866
              Da muß man noch rausfinden, was die bedeuten könnten.

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

                @mikerow ich habe hinter meiner Delta Pro mit ZA einen Shelly 1 PM plus sitzen. Diesen habe ich dem Skript bekannt gemacht in der Sektion Überschussladung. Wenn überschussladung auf TRUE ist, dann schaltet das Skript den Shelly automatisch an und aus und reguliert die AC Ladeleistung in Abhängigkeit vom Hausstrom verbrauch.

                Du müsstest jetzt eigentlich nur noch irgendwie einen Datenpunkt haben, der deinen PV Batteriespeicher misst. Und kannst ja dann eine Bedingung basteln. WENN PV Speciher voll DANN schalte Überschussladung auf TRUE.

                Weiter oben hier im Thread gibs ein Codeschnipsel wie man den Überschussladeparameter umsetzt.

                M 1 Reply Last reply Reply Quote 0
                • M
                  MikeRow @Accu last edited by

                  @accu OK, Danke, da setze ich mal an. Vielen Dank

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

                    @Waly_de ich hatte jetzt paar mal den Fall dass abends meine PS nicht eingespeist hat. Hatte dann festgestellt dass auf "Stromspeicher Priorisieren" gestellt war. Ich hatte dann per Hand auf "Stromversorgung priorisieren" umgestellt und sofort ging's wieder.
                    Das Problem scheint aber sporadisch aufzutreten. Bzw. konnte ich noch kein Muster dafür erkennen. Hast Du einen Rat?

                    A 1 Reply Last reply Reply Quote 0
                    • D
                      DerSmily last edited by 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 Bucher M 2 Replies Last reply Reply Quote 0
                      • A
                        aherby @Accu last edited by

                        @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 1 Reply Last reply Reply Quote 0
                        • A
                          Accu @aherby last edited by

                          @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 Reply Last reply Reply Quote 0
                          • M
                            MikeRow @Maik Becker last edited by

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

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

                              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 Reply Last reply Reply Quote 0
                              • M
                                Milchbeck last edited by

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

                                1 Reply Last reply Reply Quote 0
                                • M
                                  Mario1995 @Accu last edited by

                                  @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 Reply Last reply Reply Quote 0
                                  • Maik Becker
                                    Maik Becker @MikeRow last edited by

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

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

                                      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 Reply Last reply Reply Quote 0
                                      • A
                                        Accu @Mario1995 last edited by

                                        @mario1995 scheint leider ausverkauft zu sein 😞

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          MikeRow last edited by

                                          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 Reply Last reply Reply Quote 0
                                          • Thomas Bucher
                                            Thomas Bucher @DerSmily last edited by

                                            @dersmily schau mal ob der History Adapter läuft

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            838
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            126
                                            1639
                                            610125
                                            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