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.
    • M
      Milchbeck last edited by Milchbeck

      @Waly_de hab mal ne frage wie wäre es im Script einzubauen, wenn der smartmeter oder powerfox ect mal keine Daten sendet das Script auf einen grundverbrauch sagen wir mal wie bei mir 140 Watt es dann eigenständig dem Powerstream das meldet und sobald wieder Daten ankommen es wieder ganz normal läuft? Also 5 Minuten oder was auch immer keine Daten dann Grundverbrauch 140 Watt und sobald wieder Daten eintreffen Normalbetrieb…

      Weil bei mir fällt ab und zu mal Server seitig der Bezug aus und wenn dann zuletzt mal 400 Watt benötigt worden sind haut der Powerstream solange den Wert bis ich dann manuell eingreife und das würde es einfach im Hintergrund erledigen

      P W 2 Replies Last reply Reply Quote 1
      • L
        LordMinorin last edited by LordMinorin

        Ich habe es jetzt endlich geschafft die akutelle Version mal einzubinden.

        Leider fliegen mir sofort Fehlermeldungen um die Ohren:

        javascript.0
        2023-09-16 20:36:48.567 error at processTimers (node:internal/timers:514:7)
        javascript.0
        2023-09-16 20:36:48.566 error at listOnTimeout (node:internal/timers:573:17)
        javascript.0
        2023-09-16 20:36:48.566 error at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2743:34)
        javascript.0
        2023-09-16 20:36:48.566 error at Object.<anonymous> (script.js.EcoFlow_Script_v0.v1132.v1132:790:9)
        javascript.0
        2023-09-16 20:36:48.566 error at CheckforReconnect (script.js.EcoFlow_Script_v0.v1132.v1132:1151:9)
        javascript.0
        2023-09-16 20:36:48.565 error at script.js.EcoFlow_Script_v0.v1132.v1132:791:13
        javascript.0
        2023-09-16 20:36:48.565 error at SetBasePower (script.js.EcoFlow_Script_v0.v1132.v1132:1711:74)
        javascript.0
        2023-09-16 20:36:48.564 error Error in callback: TypeError: GetValAkt(...).val.toFixed is not a function

        Die GetValAkt funktion habe ich daraufhin modifiziert das keine nicht numerischen Werte ausgegeben werden:

        function GetValAkt(id, minuten = 15, reset = true) {
            if (isState2(id)) {
                const state = getState(id)
                if (state.ts > Date.now() - minuten * 60 * 1000) {
                    return state.val; // Gib den Wert direkt zurück
                } else {
                    if (typeof state.val === 'number') {
                        if (reset && state.val !== 0) setState(id, 0, true)
                    } else {
                        if (reset && state.val !== "0") setState(id, "0", true)
                    }
                    state.val = 0;
                    return state.val; // Gib den Wert direkt zurück
                }
            } else {
                //log("Kein State: " + id + "lege an.")
                createState(id, "0", false);
                //return getState(id)
        
                const leerstate = {}
                leerstate.val = "0"
                leerstate.ts = Date.now()
                return leerstate.val; // Gib den Wert direkt zurück
            }
        }
        

        Jetzt sehen die Fehler so aus:

        javascript.0
        2023-09-16 20:59:57.034 error at processTimers (node:internal/timers:514:7)
        javascript.0
        2023-09-16 20:59:57.034 error at listOnTimeout (node:internal/timers:573:17)
        javascript.0
        2023-09-16 20:59:57.034 error at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2743:34)
        javascript.0
        2023-09-16 20:59:57.033 error at Object.<anonymous> (script.js.EcoFlow_Script_v0.v1132.v1132:790:9)
        javascript.0
        2023-09-16 20:59:57.033 error at CheckforReconnect (script.js.EcoFlow_Script_v0.v1132.v1132:1151:9)
        javascript.0
        2023-09-16 20:59:57.033 error at script.js.EcoFlow_Script_v0.v1132.v1132:791:13
        javascript.0
        2023-09-16 20:59:57.033 error at SetBasePower (script.js.EcoFlow_Script_v0.v1132.v1132:1711:73)
        javascript.0
        2023-09-16 20:59:57.033 error Error in callback: TypeError: Cannot read properties of undefined (reading 'toFixed'

        Bitte um Ideen

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

          @milchbeck wann passiert das bei dir?
          Kann es sein, dass das bei dir auch abends ist, dass er manchmal hängen bleibt?
          Dann könntest du das selbe Problem wie ich haben, dass er abends/nachts zu selten sich mit dem Server verbindet.
          Dazu kannst du das Intervall für abends z.B. auf 1min setzen, anstatt 15 min.

          
          //bis eine Stunde nach Sonneuntergang kurze Reconnects dann 15 min.
          if (istTag (60)) wartezeit = 1
          
          

          Seitdem läufts wieder rund um die Uhr perfekt 👌

          M 1 Reply Last reply Reply Quote 0
          • M
            Milchbeck @Ponti92 last edited by

            @ponti92 es liegt daran wenn der ir lesekopf mal ausfällt kein Strom ect.

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

              @waly_de ich weiss ehrlich gesagt nicht, ob das Script den Sensor sucht. Zumindest finde ich im Log keinen Hinweis - "SmartmeterID" oder "SetBasePower" erscheinen im Log nicht.

              Die ID habe ich aus dem Objekt mit der Watt-Angabe des Sensors ins Script eingetragen:
              59aa0b0a-f9a0-489b-b4cc-3857ecc80ffd-image.png

              5318c1d9-c95f-4a0d-a17d-cdff0f11eb6f-image.png


              Danke für Deine Unterstützung!

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

                @umele was du bei smartmeterID angegeben hast ist der Name, nicht die id des Sensors. Wenn du mit der Maus da klickst wo sie im Screenshot zu sehen ist wird die richtige ID in die Zwischenablage kopiert. Sie beginnt mit „sonoff.0.“

                D umele 2 Replies Last reply Reply Quote 0
                • D
                  Dreffi @Waly_de last edited by

                  @waly_de
                  Also mit der Version 1.1.3.2 läuft bei mir irgendwas schief.

                  Ich hatte heut wieder den Fall, dass einer der beiden Powerstreams ständig auf Prio Akku umgestellt wurde. Das sollte eigentlich nur beim Abschalten per RegulationState passieren.
                  Der Andere wiederum blieb stur auf Prio Einspeisung mit AC Last 0 W. Dieser hätte eigentlich auf Prio Akku schalten müssen.

                  Ich habe auch den Eindruck es gibt hier zeitweise Probleme die AC Last richtig einzustellen:
                  Bildschirmfoto 2023-09-17 um 20.53.34.png

                  Irgendwie wird scheint hier jeweils der falsche Powerstream angesteuert zu werden.

                  Ich habe jetzt wieder auf die Version 1.1.3 umgestellt und seitdem liegt der Bezug wieder annähernd durchgehend konstant bei 10-15 W.

                  Ich beobachte...

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

                    Bei mir klappt das Script leider auch nicht mehr.... obwohl generell erst mal alles gut aussieht, klappt die Regulierung der Einspeisung leider nicht.
                    Auch ist mein Akku z.B. aktuell auf 70% geladen....
                    Es scheint aber irgendwas "los" zu sein. Kurz danach kam die Meldung, dass mein Akku wieder über 25% geladen ist und die Einspeisung wieder auf 600 Watt angehoben wird.
                    Geändert hat sich an der Einspeisung aber nichts.

                    2:16:33.566 info javascript.0 (2518) Stop script script.js.PowerStream
                    22:16:33.570 info javascript.0 (2518) script.js.PowerStream: Ecoflow MQTT-Client beendet
                    22:16:33.834 info javascript.0 (2518) Start javascript script.js.PowerStream
                    22:16:34.017 info javascript.0 (2518) script.js.PowerStream: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                    22:16:34.355 info javascript.0 (2518) script.js.PowerStream: Verbunden mit dem Ecoflow MQTT-Broker
                    22:16:49.002 info javascript.0 (2518) script.js.PowerStream: Batteriestand unter Limit:15% (0%). Limitiere Einspeiseleistung auf: 150W

                    R 1 Reply Last reply Reply Quote 0
                    • umele
                      umele @Waly_de last edited by

                      @waly_de -oh mein Gott - das ist mir jetzt echt super peinlich..... 😵 😨

                      Vielen, vielen lieben Dank - das war's... 👍 👍

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

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

                        @waly_de
                        Also mit der Version 1.1.3.2 läuft bei mir irgendwas schief.
                        [...]
                        Ich habe jetzt wieder auf die Version 1.1.3 umgestellt und seitdem liegt der Bezug wieder annähernd durchgehend konstant bei 10-15 W.

                        Seit Umstellung auf 1.1.3 lief heute wieder alles makellos.

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

                          @ralf77 said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

                          Bei mir klappt das Script leider auch nicht mehr.... obwohl generell erst mal alles gut aussieht, klappt die Regulierung der Einspeisung leider nicht.
                          Auch ist mein Akku z.B. aktuell auf 70% geladen....
                          Es scheint aber irgendwas "los" zu sein. Kurz danach kam die Meldung, dass mein Akku wieder über 25% geladen ist und die Einspeisung wieder auf 600 Watt angehoben wird.
                          Geändert hat sich an der Einspeisung aber nichts.

                          2:16:33.566 info javascript.0 (2518) Stop script script.js.PowerStream
                          22:16:33.570 info javascript.0 (2518) script.js.PowerStream: Ecoflow MQTT-Client beendet
                          22:16:33.834 info javascript.0 (2518) Start javascript script.js.PowerStream
                          22:16:34.017 info javascript.0 (2518) script.js.PowerStream: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                          22:16:34.355 info javascript.0 (2518) script.js.PowerStream: Verbunden mit dem Ecoflow MQTT-Broker
                          22:16:49.002 info javascript.0 (2518) script.js.PowerStream: Batteriestand unter Limit:15% (0%). Limitiere Einspeiseleistung auf: 150W

                          Also bei mir läuft soweit wieder alles dank der Hilfe vom @Dreffi !

                          Mein Fehler: Mein RP3 kommt an die Leistungsgrenze. Aus dem Grund habe ich nicht benötigte Instanzen gelöscht und dabei die Instanz „History“ gelöscht.

                          History scheint aber zwingend nötig zu sein für die Regelung. Nachdem ich „History“ erneut installiert hatte funktionierte die Regelung direkt wieder!

                          Noch einmal vielen Dank an @Dreffi für die Geduld und das Schritt-für-Schritt Trouble Shooting meines System.

                          Viele Grüße,
                          Ralf

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

                            @Waly_de
                            Hi,
                            Ich würd mal meine Ideen zum PV Überschuss laden preisgeben:
                            Seit letztem D2M Update ist es möglich den PV Überschuss im Haus, zb. Von einer anderen Anlage, in die Delta zu leiten. Dies funktioniert nun parallel zum Laden des Powerstreams. D.h. PS lädt die D2M und über AC wird diese parallel geladen. (Das ganze soll auch über den PV Input der D2M parallel zum PS funktionieren)

                            Manuell hat es schon super funktioniert und wäre cool wenn das evtl im Skript mit eingebaut wird, dass die Regelung nicht gegen das AC Laden ankämpft..
                            Denn wenn die Sonne dann weiter unter geht, wird ja der Überschuss weniger und die Ladeleistung der D2M muss angepasst werden.

                            Natürlich könnte man auch andere powerstations von EcoFlow einbinden, wie zb die River, die unabhängig von PS geladen werden.

                            Das ganze macht zb nur Sinn wenn:

                            1. PV Überschuss von einer anderen Anlage besteht, die nicht gespeichert werden kann.
                            2. der Akku an einem PS 100% voll ist und dann im im Batteriemodus die übrige PV Leistung einspeist wird.

                            Gibt es evtl. Szenarien die ich nicht berücksichtigt habe?

                            Fall 1. und 2. berücksichtigen auch wenn man mehrere PS mit D2M hat, und eine Anlage schneller voll wird als die andere. Dann könnte man den Überschuss der vollen Anlage in die andere zusätzlich einspeisen.
                            Die Frage ist, ob dabei auch kleinere Sprünge bei der AC ladeleistung als 100W/200W erlaubt sind

                            LG

                            G W 2 Replies Last reply Reply Quote 0
                            • K
                              karo2204 last edited by

                              @Waly_de oder all die Anderen 🙂

                              Kannst Du mir bitte helfen? Dein Script ist super, aber irgendwie dümpelt meine Delta Max immer bei 10% rum, und wird nicht voll. Ich habe ein bisschen was an den Einstellungen verändert und im Log steht folgendes:

                              script.js.ecoflow: Batterie runter auf 80%: Normalbetrieb.

                              Die Batterie hat aber nur 10% . Hier meine Einstellungen:

                              Screenshot 2023-09-21 at 13.48.45.png

                              Was mache ich falsch?

                              Danke Dir schonmal für die Hilfe.

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

                                @karo2204
                                Hi, ich seh du hast die Werte bei battPozOn verstellt, sodass die Batterie ab diesem Wert entladen wird.
                                D.h. Ab 15% wird deine Batterie volle Kanne entladen bis wahrscheinlich 10%
                                Stell das mal auf 99-100% damit das nur passiert wenn die Batterie komplett voll ist.

                                K 2 Replies Last reply Reply Quote 0
                                • Stephane Martinez
                                  Stephane Martinez @Dreffi last edited by

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

                                  Seit Umstellung auf 1.1.3 lief heute wieder alles makellos.

                                  Seit Umstellung auf 1.1.3 lief heute wieder alles makellos.

                                  hallo an alle

                                  Sie sprechen von der Firmware des Powerstreams.
                                  Wenn ja, wie können Sie ein Downgrade mit der Firmware durchführen?

                                  ich bin Franzose und benutze deepl zum Übersetzen

                                  A 1 Reply Last reply Reply Quote 0
                                  • O
                                    oli2023 last edited by

                                    @Waly_de Erstmal 1000 Dank für deine super Arbeit!

                                    Ich nutze seit ein paar Wochen zwei PowerStreams gepaart mit einer Delta Pro. Dein Script hat mich nun dazu verleitet mir endlich ein Raspberry Pi anzuschaffen und ich habe mich da durchgekämpft. Iobroker läuft, die Daten kommen vom Poweropti.

                                    Jetzt meine Frage: Ich verstehe die Funktion "BasePowerOffset" und die Anmerkung im Script "Wird vom aktuellen Verbrauch abgezogen, um die Einspeiseleistung zu berechnen" nicht wirklich.
                                    Wenn der Wert auf den vorgegebenen 30 steht, wird die Zahl wie beschrieben von der Einspeisung abgezogen. Allerdings geht dem entsprechend auch der Wert meines aktuellen Netzbezugs hoch.
                                    Stelle ich den Wert auf 0, habe ich ebenso einen Netzbezug von 0 Watt, sieht natürlich schön aus, stelle ich ihn hoch, steigt dementsprechend der Wert der "anderen Verbraucher" in der Ecoflow App und der Netzbezug geht hoch auf 20 bis 30 Watt.

                                    Vielleicht kann mir jemand hier erklären, was es genau damit auf sich hat. Ich möchte das Script nicht blind benutzen, sondern bestenfalls verstehen warum was passiert.

                                    LG,

                                    Oli

                                    W 1 Reply Last reply Reply Quote 0
                                    • A
                                      aherby @Stephane Martinez last edited by

                                      @stephane-martinez Guten Abend, es wird hier nicht von der Frimware von Ecoflow sondern einer älteren Version vom Script gesprochen. Wobei ich glaube dass hier auch ein Tippfehler vorhanden ist.
                                      Die Version 1.1.2 ist auf der ersten Seite von diesem Thema zum download vorhanden.

                                      1 Reply Last reply Reply Quote 0
                                      • K
                                        karo2204 @Ponti92 last edited by

                                        @ponti92 Ich habe mir das jetzt nochmal 5x durchgelesen und BattPozOn auf 100 gestellt und BattPozOff auf 50. Im Moment lädt er.

                                        Scheint jetzt zu funktionieren. Mal sehen was er ab 50% macht.

                                        D 1 Reply Last reply Reply Quote 0
                                        • D
                                          Dreffi @karo2204 last edited by

                                          @Waly_de
                                          Folgender Bug bei mir:
                                          Einer meiner Powerstreams startet wie gewünscht mit dem für "lowBatLimit" eingestellten Wert als Bedarf. Der Andere steht morgens auf 0 W. Der Wert wird auch nicht irgendwann aktualisiert. Erst beim überschreiten der Grenze "LowBatLimitPozOff" wird der Wert aktualisiert.
                                          Neustart des Scripts behebt das Problem.

                                          In den Verlaufsdaten des Objektes 0_userdata.0.ecoflow.app_device_property_HW51ZOH*****.data.InverterHeartbeat.permanentWatts wurde dieser heute Nacht irgendwann auf 0 W gesetzt, weil der andere Powerstream die ganze Last zugeteilt bekam und der Wechselrichter muss dann so schlafen gegangen sein, weil er zuvor schon die Entladegrenze erreicht hatte aber noch online war.

                                          Normal müssten morgens beide den Wert für "lowBatLimit" zugewiesen bekommen, da der Bedarf zu dem Zeitpunkt immer darüber liegt.

                                          Aktuelle Version: 1.1.3

                                          1 Reply Last reply Reply Quote 0
                                          • K
                                            karo2204 @Ponti92 last edited by

                                            @ponti92 @Waly_de noch ne doofe Frage. Auf welchen Status soll ich in der App stellen: Batterie-Prio oder Stromversorgung-Prio? Aktuell habe ich es auf Batterie-Prio stehen, damit die DM mal etwas mehr % rein bekommt.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

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