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.
    • P
      Ponti92 @Waly_de last edited by Ponti92

      @waly_de ratedPower ist bei mir obwohl ich auf Maximal 400W gestellt habe bei 8000

      Wenn ich den Wert in der App verstelle, dann zeigt mir das log folgendes an:

      10:10:34.569	info	javascript.0 (21466) script.js.Ecoflow1_2_5: hexString: 0a3d0a0308c20310201814200128013803401448920150035801709ecdccbb06800113880101ba0103696f73ca0110485735315a4f48345346355435353130
      10:10:34.570	info	javascript.0 (21466) script.js.Ecoflow1_2_5: Nachricht: {"header":[{"pdata":"08c203","src":32,"dest":20,"dSrc":1,"dDest":1,"checkType":3,"cmdFunc":20,"cmdId":146,"dataLen":3,"needAck":1,"seq":1735599774,"version":19,"payloadVer":1,"from":"ios","deviceSn":"XXXXXXXXXXXXXX"}]}
      
      F 1 Reply Last reply Reply Quote 0
      • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            775
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            126
                                            1640
                                            617711
                                            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