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

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    ecoflow-connector-Script zur dynamischen Leistungsanpassung

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

      @waly_de

      Wow vielen Dank. Ich hoffe ich habe dich richtig verstanden.

      Ich habe eine eigenes Skript unter dem Ecoflow im Java erzeugt, deinen Code reinkopiert und in:

      const StrombezugID = '0_userdata.0.ecoflow.Strombezug'

      mit meiner Variable KNX- Verbrauch ersetzt

      const StromverkaufID = '0_userdata.0.ecoflow.Stromverkauf'

      mit meiner Variable KNX- Erzeugung ersetzt

      und deiine Variable '0_userdata.0.ecoflow.Strom' im Ecoflow Skript bei " SmartmeterID: "0_userdata.0.ecoflow.Strom"," übernommen.

      Jetzt hoffe ich morgen auf Sonne um es testen zu können=) 1000 Dank

      1 Reply Last reply Reply Quote 0
      • Spotimatz
        Spotimatz last edited by

        Guten Abend,
        ich habe noch ein anderes Thema:

        mir zieht es meinen Speicher leer - bis er ausgeht.
        Netzkabel zum Nachspeisen habe ich angeschlossen, und dazwischen einen Shelly Plus Plug S gesteckt.

        Beispiel für Nutzung einer Schlaltersteckdose:
        //----------------------------------------
        //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
        ExcessActualPowerID: "shelly.0.shellyplusplugs#xxx#1.Relay0.Power",
        //ID des Schalters, der den Speicher aktiviert:
        ExcessChargeSwitchID: "shelly.0.shellyplusplugs#xxx#1.Relay0.Switch",
        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"...)
        //----------------------------------------
        //****************************************

        rweiterte 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
        BasePowerOffset: 10, // 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_1781270647322333186_xxx_thing_property_set.writeables.slowChgPower",
        //ID des aktuellen Ladestandes des Speichers in %:
        ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_xxx.data.params.bmsMaster.f32ShowSoc",
        ExcessChargeSwitchMin: 5, //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss.
        ExcessChargeMaxPower: 1500, //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

        findet jemand meinen Fehler? Oder liegt es an einem anderen Teil vom Skript?

        Vielen Dank für die Hilfe.

        1 Reply Last reply Reply Quote 0
        • P
          Ponti92 last edited by Ponti92

          Hi @Waly_de
          Leider funktioniert das noch nicht so ganz mit der zusatzpower, wenn anschließend die Grundlast wieder höher wird.
          Ich habe hier zwei Powerstreams und einer ist in die zusatzpower gegangen bevor die Hauslast hoch ging.
          Dann ging der hausverbrauch hoch, jedoch hat der zweite PS die zusatzpower nicht verlassen.

          Der erste PS war nicht im Zusatzpower Modus und konnte deshalb mehr einspeisen:

          IMG_4055.png

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

            @waly_de hatte gehofft bei der neuen Skriptversion, dass der AC Ladeshelly bei der Überschussladung abgeschaltet wird, wenn die DP voll geladen ist - wäre bei den Änderungen mit dabei 😞

            Meine DP hat mit 99% die obere Ladegrenze erreicht und der Shelly DP Load bleibt weiterhin eingeschaltet. Wäre schön, wenn der dann ausginge, um nicht weiter Strom auf der Leitung bzw. am DP AC Ladeeingang permanent zu haben.

            Bildschirmfoto 2024-04-25 um 14.50.44.png

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

              @waly_de Hi - hab folgende Überlegung angestellt?
              Tagsüber, wenn die Sonne bräzelt, möchte ich das er entsprechend direkt einspeist und nur den Überschuss in die Batterie schickt. Bei Wölkchen etc. soll er weiterhin einspeisen was Modul kommt jedoch nichts aus der Batterie holen. Die Batterie soll erst nach Sonnenuntergang aktiv werden und entsprechend einspeisen.
              Sprich: Tagsüber reines Überschussladen und wenn am Modul nichts mehr kommt regulieren.

              Edit: Ich denke zu sehr "in bewölkteren" Tagen...;-). Ein wenig Akkukunde und die Frage hat sich im Grunde erledigt. Alles andere bekomme ich mit entsrpechenden "Side-Kicks" hin.

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

                ich würde das Skript gerne via Button AUS / AN stellen. Dazu kann man ja glaube ich den Regulate State auf false setzen beim Ausschalten. Hat das hier schon einer irgendwie realisiert? Wenn ja wie?

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

                  @accu Hi - ich hab mir dazu ein kleines Scriptchen erstellt, dass mir den State eines Objektes, welches bei mir aus FHEM kommt, überwacht, und dementsprechend den Regulate auf true bzw. false setzt. Somit hab ich die Möglichkeit das Ganze via Tablet UI aus FHEM heraus Adhoc zu beeinflussen. Darüber hinaus kann der State aus entsprechenden FHEM Logiken heraus gesteuert werden. FHEM stellt bei mir die zentrale der gesamten Gebäudesteuerung dar und sollte somit das EcoFlow Script entsprechend beeinflussen können.

                  05de8c79-ea35-4b3e-9f14-c452a2dc8b75-image.png

                  In diesem Zusammenhang sollte man dann aber die ensprechenden Parameter im EcoFlow Script im Hinterkopf haben. "Was soll er machen, wenn manuell reguliert wird" etc..

                  A 1 Reply Last reply Reply Quote 0
                  • M
                    McCrypto last edited by

                    Hallo zusammen und vielen Dank für das großartige Script!

                    Ich plane, zwei Powerstream-Geräte mit jeweils 800 Watt an unterschiedlichen Phasen anzuschließen. An einem Powerstream ist ein Delta 2 Max angeschlossen und am anderen ein Delta 2 Max Zusatzakku. Beide Wechselrichter befinden sich im gleichen WLAN und im gleichen Hausnetz, sodass eine maximale Einspeisung von 1600 Watt möglich ist. Ein befreundeter Elektriker wird die Installation fachgerecht anmelden, und es wird eventuell auch ein Ausbau auf eine dritte Powerstream in Betracht gezogen.

                    Meine Frage: Ist bei dieser Konfiguration eine Nulleinspeisung möglich? Ich konnte keine entsprechenden Einstellungen dafür finden. Hat jemand Erfahrungen oder Tipps dazu?

                    Auch eine Konfigurationsmöglichkeit für eine Nulleinspeisung mit 1. Powerstream konnte ich nicht finden 😞

                    Vielen Dank im Voraus für eure Unterstützung!

                    G 1 Reply Last reply Reply Quote 0
                    • G
                      gooflo @McCrypto last edited by gooflo

                      @mccrypto

                      1. ja Nulleinspeisung mit mehreren PowerStreams geht, man kann mehrere PowerStreams im Skript eintragen und es gibt sogar eine Option, wie die Regelung dann gemacht wird "balanced" = aufgeteilt unter Berücksichtigung des Batteriestands oder "serial" = der Reihe nach wird versucht den Bedarf abzudecken. Finde ich ziemlich gut gelöst. Und natürlich geht das auch mit einem PowerStream (sofern nicht mehr als 600W / 800W benötigt werden).
                      2. habe ähnliche Pläne und vor allem noch Fragen bezüglich "fachgerechte Anmeldung", könnten wir uns da mal austauschen?
                      M 1 Reply Last reply Reply Quote 0
                      • M
                        McCrypto @gooflo last edited by

                        @gooflo Hallo und danke für die Rückmeldung.

                        Leider ist es bei mir so (aktuell mit einer Powerstream), dass wenn der Akku voll ist, die maximal mögliche PV-Leistung ins Stromnetz eingespeist wird. Das würde ich gerne verhindern und da sehe ich keine Möglichkeit für 😞

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

                          @matz75 schaltet er bei REGULATE = FALSE auch alle vom Skript etwaig eingeschalteten Schalter wieder aus?

                          M W 2 Replies Last reply Reply Quote 0
                          • D
                            Dreffi last edited by Dreffi

                            Ich habe aktuell ein kleineres Problem. Ich habe für LowBatLimit externe States angelegt. Wenn diese geändert werden wird das auch vom Script protokolliert, aber die Regelung wird nicht immer daran angepasst. Es wird weiter mit dem bisherigen Wert gearbeitet.
                            Der aktuelle wird z.B. berücksichtigt wenn ich das Script über RegulationState = false/true neu starte oder der jeweilige Akku neu unter LowBatLimitPozOn fällt.

                            Hintergrund: ich wollte damit morgens bei ausreichender Sonnenenergie die Leistung kontrolliert schon früher freigeben.

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

                              @accu Gute Frage. Würd ich entsprechend testen. Behaupte aber mal nein. Kannst das "Zusatz"-Script aber entsprechend erweitern und die gewünschten Schaltlogiken umsetzen.

                              1 Reply Last reply Reply Quote 0
                              • K
                                Kay Wurl @Waly_de last edited by

                                @waly_de
                                Vielen Dank erstmal für Deine Arbeit^^.
                                Script läuft mit ein paar Änderungen sehr gut.

                                Ich habe battPozOn auf 0 und battPozOff auf 100 gesetzt, so dass als erstes immer die Delta 2 geladen wird (sind bei Tibber, das ist es mittags am billigsten).

                                Die D2 kann ja nur 600W am Eingang. Heute zB. waren per Solar 740W möglich. Der PS schickt 600W zur D2 und der Rest verpufft. Kann man dem PS irgendwie sagen, wenn Solar mehr als 600W, dann schicke die Differenz stur ins Netz?

                                Noch eine Frage. Kann man das zeitlich steuern? Für mich wäre perfekt, bis 10:00 Uhr Einspeisepriorisierung, von 10:00 Uhr bis 18:00 Uhr Prio aufs Akku laden und ab 18:00 Uhr, bis der PS aus geht, wieder Prio auf die Einspeisung ins Netz.

                                Danke Danke Danke^^

                                LG

                                W 1 Reply Last reply Reply Quote 0
                                • T
                                  Thomas 6 last edited by Thomas 6

                                  Hallo,

                                  ich habe nun auch seit ein paar Tagen ein PowerStream mit dem 2kW wetterfestem Speicher. Das Script läuft seit dem ersten Tag und Regelt die Einspeisung ganz ordentlich.
                                  Nun habe ich etwas festgestellt was wahrscheinlich nichts mit dem Script zu tun hat, aber vielleicht hat ja jemand einen Rat.

                                  Je höher ich oder das Script die Einspeiseleistung einstelle, um so niedriger wird mein Solarertrag. Die Screenshots sind innerhalb weniger Minuten entstanden und die Panels wahren immer voll in der Sonne. Das Verhalten lässt sich auch Reproduzieren.
                                  IMG_1550.PNG IMG_1547.PNG IMG_1548.PNG IMG_1549.PNG

                                  Hat jemand eine Idee was da los ist?

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

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

                                    @waly_de hatte gehofft bei der neuen Skriptversion, dass der AC Ladeshelly bei der Überschussladung abgeschaltet wird, wenn die DP voll geladen ist - wäre bei den Änderungen mit dabei 😞

                                    Meine DP hat mit 99% die obere Ladegrenze erreicht und der Shelly DP Load bleibt weiterhin eingeschaltet. Wäre schön, wenn der dann ausginge, um nicht weiter Strom auf der Leitung bzw. am DP AC Ladeeingang permanent zu haben.

                                    Bildschirmfoto 2024-04-25 um 14.50.44.png

                                    ExcessChargeBatSocMax: 95, // Batterieladestand muss <= sein damit die Überschussladung gestartet wird
                                    ExcessChargeBatSocOff: 100, // Batterieladestand bei dem die Überschussladung abgeschaltet wird

                                    hast du das angepasst? wenn 100 % nicht erreicht wird, wird das Skript auch nicht abschalten. Stell es also auf 99.

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

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

                                      @gooflo Hallo und danke für die Rückmeldung.

                                      Leider ist es bei mir so (aktuell mit einer Powerstream), dass wenn der Akku voll ist, die maximal mögliche PV-Leistung ins Stromnetz eingespeist wird. Das würde ich gerne verhindern und da sehe ich keine Möglichkeit für 😞

                                      Das ist so gewollt, warum sollte man wenn die Speicher voll sind und mehr Energie zur Verfügung steht als gebraucht wird diese nicht der Allgemeinheit zur Verfügung stellen? Wir wollen doch alle den Planeten retten. Ausserdem ist das herunterregeln der PV leistung auch nicht gut für die Hardware.

                                      Warum Nulleinspeisung keine gute Idee ist:
                                      https://www.youtube.com/watch?v=wxP5uMdtMmk

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

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

                                        @matz75 schaltet er bei REGULATE = FALSE auch alle vom Skript etwaig eingeschalteten Schalter wieder aus?

                                        ich glaube auch nicht (du meinst den Schalter für die Überschussladung? Sonst wird ja nichts geschaltet) Die Einspeiseleistung des PS kannst du mit dem Parameter: RegulationOffPower einstellen

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

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

                                          Ich habe aktuell ein kleineres Problem. Ich habe für LowBatLimit externe States angelegt. Wenn diese geändert werden wird das auch vom Script protokolliert, aber die Regelung wird nicht immer daran angepasst. Es wird weiter mit dem bisherigen Wert gearbeitet.
                                          Der aktuelle wird z.B. berücksichtigt wenn ich das Script über RegulationState = false/true neu starte oder der jeweilige Akku neu unter LowBatLimitPozOn fällt.

                                          Hintergrund: ich wollte damit morgens bei ausreichender Sonnenenergie die Leistung kontrolliert schon früher freigeben.

                                          ich denke das ist normal, wenn die batterie dann schon im low-bat modus ist. es muss dann lowBatLimitPozOff erreicht werden damit der modus wieder verlassen wird. es sind ja nur die Schaltschwellen. du könntest also auch lowBatLimitPozOff kurz ändern um zu erreichen das er sofort umschaltet

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

                                            @kay-wurl sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

                                            @waly_de
                                            Vielen Dank erstmal für Deine Arbeit^^.
                                            Script läuft mit ein paar Änderungen sehr gut.

                                            Ich habe battPozOn auf 0 und battPozOff auf 100 gesetzt, so dass als erstes immer die Delta 2 geladen wird (sind bei Tibber, das ist es mittags am billigsten).

                                            Die D2 kann ja nur 600W am Eingang. Heute zB. waren per Solar 740W möglich. Der PS schickt 600W zur D2 und der Rest verpufft. Kann man dem PS irgendwie sagen, wenn Solar mehr als 600W, dann schicke die Differenz stur ins Netz?

                                            Noch eine Frage. Kann man das zeitlich steuern? Für mich wäre perfekt, bis 10:00 Uhr Einspeisepriorisierung, von 10:00 Uhr bis 18:00 Uhr Prio aufs Akku laden und ab 18:00 Uhr, bis der PS aus geht, wieder Prio auf die Einspeisung ins Netz.

                                            Danke Danke Danke^^

                                            LG

                                            Diese Konfiguration ist nicht sinnvoll. Das Skript regelt so gar nichts, sondern stellt ab 0 % Batterie schon auf Batterieprioritätsmodus. Im normalen Regelmodus macht das Skript genau das, was du willst. Es stellt über 'Zusatzpower' die Leistung langsam höher, wenn 600 W in die Batterie gehen.

                                            Eine Zeitsteuerung ist über externe Skripte möglich. Es gibt dazu Beispiele in diesem Thread

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            730
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            126
                                            1630
                                            500745
                                            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