Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. ecoflow-connector-Script zur dynamischen Leistungsanpassung

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

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

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

ecoflow-connector-Script zur dynamischen Leistungsanpassung

Geplant Angeheftet Gesperrt Verschoben JavaScript
1.6k Beiträge 127 Kommentatoren 742.0k Aufrufe 127 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    Milchbeck
    schrieb am zuletzt editiert von Milchbeck
    #435

    Bekomm seid heute und Update der Delta2Max und angeschlossen Solar Panels die fehler

    12.9.2023, 16:39:15.679 [info ]: javascript.0 (214) script.js.Ecoflow_New: Unbekannter Delta2Max Set Befehl: {"params":{},"from":"iOS","lang":"de-de","id":"xxx","moduleSn":"xxx","moduleType":1,"operateType":"getAllTaskCfg","version":"1.0"}
    12.9.2023, 16:39:15.680 [info ]: javascript.0 (214) script.js.Ecoflow_New: Adresse: app_1664554913946284034_xxxx_thing_property_set
    12.9.2023, 16:39:25.702 [info ]: javascript.0 (214) script.js.Ecoflow_New: Unbekannter Delta2Max Set Befehl: {"params":{},"from":"iOS","lang":"de-de","id":"xxx","moduleSn":"xxx","moduleType":1,"operateType":"getAllTaskCfg","version":"1.0"}
    12.9.2023, 16:39:25.703 [info ]: javascript.0 (214) script.js.Ecoflow_New: Adresse: app_1664554913946284034_xxx_thing_property_set

    Aber das Script läuft soweit

    A 1 Antwort Letzte Antwort
    0
    • M Milchbeck

      Bekomm seid heute und Update der Delta2Max und angeschlossen Solar Panels die fehler

      12.9.2023, 16:39:15.679 [info ]: javascript.0 (214) script.js.Ecoflow_New: Unbekannter Delta2Max Set Befehl: {"params":{},"from":"iOS","lang":"de-de","id":"xxx","moduleSn":"xxx","moduleType":1,"operateType":"getAllTaskCfg","version":"1.0"}
      12.9.2023, 16:39:15.680 [info ]: javascript.0 (214) script.js.Ecoflow_New: Adresse: app_1664554913946284034_xxxx_thing_property_set
      12.9.2023, 16:39:25.702 [info ]: javascript.0 (214) script.js.Ecoflow_New: Unbekannter Delta2Max Set Befehl: {"params":{},"from":"iOS","lang":"de-de","id":"xxx","moduleSn":"xxx","moduleType":1,"operateType":"getAllTaskCfg","version":"1.0"}
      12.9.2023, 16:39:25.703 [info ]: javascript.0 (214) script.js.Ecoflow_New: Adresse: app_1664554913946284034_xxx_thing_property_set

      Aber das Script läuft soweit

      A Offline
      A Offline
      aherby
      schrieb am zuletzt editiert von
      #436

      @milchbeck Der "unbekannter Delta2MaxSet Befehl" den du beschreibst war bei mir auch schon in der vorherrigen Version wo es noch oder nur Delta 2 gab vorhaben. Vielleicht ist es einfach eine Rückmeldung an die App ?

      1 Antwort Letzte Antwort
      1
      • W Waly_de

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

        Nun mein Problem:
        Leider liefert der Heartbeat für die Smart Plugs nur den aktuellen Verbrauch und offenbar keinen Wh Zähler, weder "seit dem Einstecken", noch pro Tag, Woche, Monat, etc. Übersehe ich etwas? So sind sie für mich leider wertlos. In der App sehe ich diese Werte (also nicht nur im Graphen, auch in der UI) und zweifelsohne muss der Plug einen solchen Zähler in irgendeiner Form mitschreiben... Besteht die Möglichkeit diesen Wert irgendwie als Objekte abzufragen? Ist hier nicht alles Subscribed? (Meine MQTT Kenntnisse sind leider zu gering um selbst zu stochern.)

        leider ist mir noch nicht gelungen die Nachrichten, die diese Daten enthalten zu entschlüsseln. Die kommen, aber sehen übel aus. Das gleiche gilt auch für diese Daten der PS.
        Vielleicht möchte jemand sich dem annehmen? In dieser Nachricht sind alle Daten enthalten. Aber mir fehlt die .Proto Definition, oder ich habs noch nicht geschnallt... (auch was für schlechtes Wetter 😉 )

        0a5f0a3308c101120608a89ebba70612060880a3bba706120608d8a7bba706120608b0acbba70612060888b1bba706120608e0b5bba7061035182020012801400248850150335801800103880103ca0110485735325a44483453463635343333330a500a2408ffff03120608b8a0fea70612060890a5fea706120608e8a9fea706120608c0aefea7061035182020012801400248870150245801800103880103ca0110485735325a44483453463635343333330a780a4c08ffff0312220880b1f9a70610051a180000000000000000000000000000000000000000000a000012220880b1f9a70610061a180000000000000000000000000000000000000000000f1f00103518202001280140fe014820504c5801800103880103ca0110485735325a4448345346363534333333
        

        https://protobuf-decoder.netlify.app

        damit kann man in die Nachricht sehen. Aber ich glaube der Decoder versagt da. Mit der richtigen .proto Definition wird es besser klappen.

        Workaround: Schreibe History-Daten für die einzelnen Messwerte mit und rechne selbst in Verbrauch um, bzw. stelle es in float (Adapter) dar,

        B Offline
        B Offline
        BlackEagleBE
        schrieb am zuletzt editiert von BlackEagleBE
        #437

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

        Workaround: Schreibe History-Daten für die einzelnen Messwerte mit und rechne selbst in Verbrauch um, bzw. stelle es in float (Adapter) dar,

        Die Idee hatte ich anfangs schon, aber das ist vermutlich leider viel zu ungenau, da ich ja nicht den Verbrauch Sekundengleich abfrage / logge...

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

        leider ist mir noch nicht gelungen die Nachrichten, die diese Daten enthalten zu entschlüsseln. Die kommen, aber sehen übel aus. Das gleiche gilt auch für diese Daten der PS.
        Vielleicht möchte jemand sich dem annehmen? In dieser Nachricht sind alle Daten enthalten. Aber mir fehlt die .Proto Definition, oder ich habs noch nicht geschnallt... (auch was für schlechtes Wetter 😉 )

        0a5f0a3308c101120608a89ebba70612060880a3bba706120608d8a7bba706120608b0acbba70612060888b1bba706120608e0b5bba7061035182020012801400248850150335801800103880103ca0110485735325a44483453463635343333330a500a2408ffff03120608b8a0fea70612060890a5fea706120608e8a9fea706120608c0aefea7061035182020012801400248870150245801800103880103ca0110485735325a44483453463635343333330a780a4c08ffff0312220880b1f9a70610051a180000000000000000000000000000000000000000000a000012220880b1f9a70610061a180000000000000000000000000000000000000000000f1f00103518202001280140fe014820504c5801800103880103ca0110485735325a4448345346363534333333
        

        https://protobuf-decoder.netlify.app

        damit kann man in die Nachricht sehen. Aber ich glaube der Decoder versagt da. Mit der richtigen .proto Definition wird es besser klappen.

        Danke für deine Antwort... Ich habe mich nun mal mit dem Thema Protobufs beschäftigt und ein wenig Reverse Engineering betrieben 😰 Ich denke die wichtigsten Felder scheine ich aufgelöst zu haben. Bei mir stimmen die Werte überein... wenn die Daten so in der ioBroker Objekt-Struktur landen würden, könnte man die etwas aufbereiten. Versuche es mal mit folgender .proto Datei von mir... Auf https://www.protobufpal.com konnte ich sowohl dein Beispiel als auch meine Daten damit decodieren... die konstanten Werte sind wohl alle aus dem Header.

        message base {
          optional header plugData = 1;
        }
        message header { // --> header
          optional plug_datalists pData = 1;
          optional int32 src = 2; // immer 53  ... src
          optional int32 dest = 3; // immer 32 ... dest
          optional int32 dSrc = 4; // immer 1 ... dSrc
          optional int32 dDest = 5; // immer 1 ... dDest
          optional int32 cmdFunc = 8; // immer 254 ... cmdFunc
          optional int32 cmdId = 9; // immer 32 ... cmdId
          optional int32 dataLen = 10; // immer 76 ... dataLen
          optional int32 needAck = 11; // immer 1 ... needAck
          optional int32 version = 16; // immer 3 ... version
          optional int32 payloadVer = 17; // immer 3 ... payloadVer
          optional string deviceSn = 25; // ... deviceSn
        }
        enum plug_datalist_type {
          WattHours = 5;
          MinutesPoweredOn = 6;
        }
        
        message plug_datalists {
          optional int32 X_Unknown_Field1 = 1; // immer 65535
          repeated plug_datalist data = 2;
        }
        message plug_datalist {
          optional int32 date = 1; // unix timestamp today 00:00 GMT+0
          optional plug_datalist_type valueType = 2;
          optional bytes valuesPerHourGMT = 3;  // one value per GMT hour ... first = 00:00-0:59, second = 01:00 - 01:59, etc
        }
        
        

        Ich hoffe das hilft schonmal.

        Nachtrag... Ach ja, evtl. eine kurze Erklärung: Er speichert den Verbrauch scheinbar je Stunde ab. Also der erste Eintrag in valuesPerHourGMT ist der Verbrauch zwischen 0:00 und 0:59:59 GMT des heutigen Tages, der zweite zwischen 1:00 und 1:59:59, etc... Leider ein bisschen blöd, da die meisten hier nicht in GMT leben 😉 Aber man bekommt alle Werte und kann sie historisieren.

        Nachtrag 2: Ich habe das Script nun so angepasst, dass die Werte automatisch in den iobroker übernommen werden, indem ich die writeables erweitert habe. Dabei ist mir aufgefallen, dass im Code noch mehrfach "SP" bzw. 'SP' verwendet wird, statt dem in der letzten Version geänderten "SM" für SmartPlugs. 😊 Ebenso habe ich gesehen, dass die gleiche CmdId auch für den PS verwendet wird, dort habe ich aber noch nicht geschaut, ob identisch ist oder es ggf. weitere Enums gibt...

        W 2 Antworten Letzte Antwort
        2
        • B BlackEagleBE

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

          Workaround: Schreibe History-Daten für die einzelnen Messwerte mit und rechne selbst in Verbrauch um, bzw. stelle es in float (Adapter) dar,

          Die Idee hatte ich anfangs schon, aber das ist vermutlich leider viel zu ungenau, da ich ja nicht den Verbrauch Sekundengleich abfrage / logge...

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

          leider ist mir noch nicht gelungen die Nachrichten, die diese Daten enthalten zu entschlüsseln. Die kommen, aber sehen übel aus. Das gleiche gilt auch für diese Daten der PS.
          Vielleicht möchte jemand sich dem annehmen? In dieser Nachricht sind alle Daten enthalten. Aber mir fehlt die .Proto Definition, oder ich habs noch nicht geschnallt... (auch was für schlechtes Wetter 😉 )

          0a5f0a3308c101120608a89ebba70612060880a3bba706120608d8a7bba706120608b0acbba70612060888b1bba706120608e0b5bba7061035182020012801400248850150335801800103880103ca0110485735325a44483453463635343333330a500a2408ffff03120608b8a0fea70612060890a5fea706120608e8a9fea706120608c0aefea7061035182020012801400248870150245801800103880103ca0110485735325a44483453463635343333330a780a4c08ffff0312220880b1f9a70610051a180000000000000000000000000000000000000000000a000012220880b1f9a70610061a180000000000000000000000000000000000000000000f1f00103518202001280140fe014820504c5801800103880103ca0110485735325a4448345346363534333333
          

          https://protobuf-decoder.netlify.app

          damit kann man in die Nachricht sehen. Aber ich glaube der Decoder versagt da. Mit der richtigen .proto Definition wird es besser klappen.

          Danke für deine Antwort... Ich habe mich nun mal mit dem Thema Protobufs beschäftigt und ein wenig Reverse Engineering betrieben 😰 Ich denke die wichtigsten Felder scheine ich aufgelöst zu haben. Bei mir stimmen die Werte überein... wenn die Daten so in der ioBroker Objekt-Struktur landen würden, könnte man die etwas aufbereiten. Versuche es mal mit folgender .proto Datei von mir... Auf https://www.protobufpal.com konnte ich sowohl dein Beispiel als auch meine Daten damit decodieren... die konstanten Werte sind wohl alle aus dem Header.

          message base {
            optional header plugData = 1;
          }
          message header { // --> header
            optional plug_datalists pData = 1;
            optional int32 src = 2; // immer 53  ... src
            optional int32 dest = 3; // immer 32 ... dest
            optional int32 dSrc = 4; // immer 1 ... dSrc
            optional int32 dDest = 5; // immer 1 ... dDest
            optional int32 cmdFunc = 8; // immer 254 ... cmdFunc
            optional int32 cmdId = 9; // immer 32 ... cmdId
            optional int32 dataLen = 10; // immer 76 ... dataLen
            optional int32 needAck = 11; // immer 1 ... needAck
            optional int32 version = 16; // immer 3 ... version
            optional int32 payloadVer = 17; // immer 3 ... payloadVer
            optional string deviceSn = 25; // ... deviceSn
          }
          enum plug_datalist_type {
            WattHours = 5;
            MinutesPoweredOn = 6;
          }
          
          message plug_datalists {
            optional int32 X_Unknown_Field1 = 1; // immer 65535
            repeated plug_datalist data = 2;
          }
          message plug_datalist {
            optional int32 date = 1; // unix timestamp today 00:00 GMT+0
            optional plug_datalist_type valueType = 2;
            optional bytes valuesPerHourGMT = 3;  // one value per GMT hour ... first = 00:00-0:59, second = 01:00 - 01:59, etc
          }
          
          

          Ich hoffe das hilft schonmal.

          Nachtrag... Ach ja, evtl. eine kurze Erklärung: Er speichert den Verbrauch scheinbar je Stunde ab. Also der erste Eintrag in valuesPerHourGMT ist der Verbrauch zwischen 0:00 und 0:59:59 GMT des heutigen Tages, der zweite zwischen 1:00 und 1:59:59, etc... Leider ein bisschen blöd, da die meisten hier nicht in GMT leben 😉 Aber man bekommt alle Werte und kann sie historisieren.

          Nachtrag 2: Ich habe das Script nun so angepasst, dass die Werte automatisch in den iobroker übernommen werden, indem ich die writeables erweitert habe. Dabei ist mir aufgefallen, dass im Code noch mehrfach "SP" bzw. 'SP' verwendet wird, statt dem in der letzten Version geänderten "SM" für SmartPlugs. 😊 Ebenso habe ich gesehen, dass die gleiche CmdId auch für den PS verwendet wird, dort habe ich aber noch nicht geschaut, ob identisch ist oder es ggf. weitere Enums gibt...

          W Offline
          W Offline
          Waly_de
          schrieb am zuletzt editiert von
          #438

          @blackeaglebe sehr schön... befasse ich mich nächste Woche mit, wenn ich wieder zuhause bin.

          1 Antwort Letzte Antwort
          0
          • B BlackEagleBE

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

            Workaround: Schreibe History-Daten für die einzelnen Messwerte mit und rechne selbst in Verbrauch um, bzw. stelle es in float (Adapter) dar,

            Die Idee hatte ich anfangs schon, aber das ist vermutlich leider viel zu ungenau, da ich ja nicht den Verbrauch Sekundengleich abfrage / logge...

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

            leider ist mir noch nicht gelungen die Nachrichten, die diese Daten enthalten zu entschlüsseln. Die kommen, aber sehen übel aus. Das gleiche gilt auch für diese Daten der PS.
            Vielleicht möchte jemand sich dem annehmen? In dieser Nachricht sind alle Daten enthalten. Aber mir fehlt die .Proto Definition, oder ich habs noch nicht geschnallt... (auch was für schlechtes Wetter 😉 )

            0a5f0a3308c101120608a89ebba70612060880a3bba706120608d8a7bba706120608b0acbba70612060888b1bba706120608e0b5bba7061035182020012801400248850150335801800103880103ca0110485735325a44483453463635343333330a500a2408ffff03120608b8a0fea70612060890a5fea706120608e8a9fea706120608c0aefea7061035182020012801400248870150245801800103880103ca0110485735325a44483453463635343333330a780a4c08ffff0312220880b1f9a70610051a180000000000000000000000000000000000000000000a000012220880b1f9a70610061a180000000000000000000000000000000000000000000f1f00103518202001280140fe014820504c5801800103880103ca0110485735325a4448345346363534333333
            

            https://protobuf-decoder.netlify.app

            damit kann man in die Nachricht sehen. Aber ich glaube der Decoder versagt da. Mit der richtigen .proto Definition wird es besser klappen.

            Danke für deine Antwort... Ich habe mich nun mal mit dem Thema Protobufs beschäftigt und ein wenig Reverse Engineering betrieben 😰 Ich denke die wichtigsten Felder scheine ich aufgelöst zu haben. Bei mir stimmen die Werte überein... wenn die Daten so in der ioBroker Objekt-Struktur landen würden, könnte man die etwas aufbereiten. Versuche es mal mit folgender .proto Datei von mir... Auf https://www.protobufpal.com konnte ich sowohl dein Beispiel als auch meine Daten damit decodieren... die konstanten Werte sind wohl alle aus dem Header.

            message base {
              optional header plugData = 1;
            }
            message header { // --> header
              optional plug_datalists pData = 1;
              optional int32 src = 2; // immer 53  ... src
              optional int32 dest = 3; // immer 32 ... dest
              optional int32 dSrc = 4; // immer 1 ... dSrc
              optional int32 dDest = 5; // immer 1 ... dDest
              optional int32 cmdFunc = 8; // immer 254 ... cmdFunc
              optional int32 cmdId = 9; // immer 32 ... cmdId
              optional int32 dataLen = 10; // immer 76 ... dataLen
              optional int32 needAck = 11; // immer 1 ... needAck
              optional int32 version = 16; // immer 3 ... version
              optional int32 payloadVer = 17; // immer 3 ... payloadVer
              optional string deviceSn = 25; // ... deviceSn
            }
            enum plug_datalist_type {
              WattHours = 5;
              MinutesPoweredOn = 6;
            }
            
            message plug_datalists {
              optional int32 X_Unknown_Field1 = 1; // immer 65535
              repeated plug_datalist data = 2;
            }
            message plug_datalist {
              optional int32 date = 1; // unix timestamp today 00:00 GMT+0
              optional plug_datalist_type valueType = 2;
              optional bytes valuesPerHourGMT = 3;  // one value per GMT hour ... first = 00:00-0:59, second = 01:00 - 01:59, etc
            }
            
            

            Ich hoffe das hilft schonmal.

            Nachtrag... Ach ja, evtl. eine kurze Erklärung: Er speichert den Verbrauch scheinbar je Stunde ab. Also der erste Eintrag in valuesPerHourGMT ist der Verbrauch zwischen 0:00 und 0:59:59 GMT des heutigen Tages, der zweite zwischen 1:00 und 1:59:59, etc... Leider ein bisschen blöd, da die meisten hier nicht in GMT leben 😉 Aber man bekommt alle Werte und kann sie historisieren.

            Nachtrag 2: Ich habe das Script nun so angepasst, dass die Werte automatisch in den iobroker übernommen werden, indem ich die writeables erweitert habe. Dabei ist mir aufgefallen, dass im Code noch mehrfach "SP" bzw. 'SP' verwendet wird, statt dem in der letzten Version geänderten "SM" für SmartPlugs. 😊 Ebenso habe ich gesehen, dass die gleiche CmdId auch für den PS verwendet wird, dort habe ich aber noch nicht geschaut, ob identisch ist oder es ggf. weitere Enums gibt...

            W Offline
            W Offline
            Waly_de
            schrieb am zuletzt editiert von
            #439

            @blackeaglebe wichtig noch für deine weitere Arbeit:

            mein Beispiel enthält 3 unterschiedliche Nachrichten inclusive Header
            Du musst nur :

             optional header plugData = 1;
            

            gegen

            repeated header plugData = 1;
            

            tauschen, damit das auch in deiner Definition verarbeitet werden kann.
            Den header hab ch ja schon vollständig definiert im Script. vielleicht sogar Definitionen für andere Nachrichten, die ich nur noch nicht richtig zugeteilt habe. Klau dir am besten die schon bestehenden Definitionen aus dem Script. bin gespannt was du noch raus findest.

            B 1 Antwort Letzte Antwort
            0
            • W Waly_de

              @blackeaglebe wichtig noch für deine weitere Arbeit:

              mein Beispiel enthält 3 unterschiedliche Nachrichten inclusive Header
              Du musst nur :

               optional header plugData = 1;
              

              gegen

              repeated header plugData = 1;
              

              tauschen, damit das auch in deiner Definition verarbeitet werden kann.
              Den header hab ch ja schon vollständig definiert im Script. vielleicht sogar Definitionen für andere Nachrichten, die ich nur noch nicht richtig zugeteilt habe. Klau dir am besten die schon bestehenden Definitionen aus dem Script. bin gespannt was du noch raus findest.

              B Offline
              B Offline
              BlackEagleBE
              schrieb am zuletzt editiert von BlackEagleBE
              #440

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

              Den header hab ch ja schon vollständig definiert im Script. vielleicht sogar Definitionen für andere Nachrichten, die ich nur noch nicht richtig zugeteilt habe. Klau dir am besten die schon bestehenden Definitionen aus dem Script.

              Danke für die Info! Brauchte ich aber gar nicht - das macht dein Script scheinbar bereits automatisch 😉
              Ich hatte die .proto-Datei zuerst ohne Einbinden in deinen Code erarbeitet.
              Mir ist daher auch erst später aufgefallen, dass der Header und das Handling bei dir bereits genau so drin ist und das alles von deinem Script korrekt interpretiert wird. Ich musste daher lediglich proto-Defintion (für enum, datalists, datalist) neu hinterlegen und die datalists in die writeables eintragen (und das ignor beim PS rausnehmen). Daher hatte ich kein Problem mit dem optional/repeat und dem Header... Die Daten werden bei mir übrigens bereits erstmal korrekt eingelesen und der Verbrauch (über ein eigenes Script) nach Tag/Monat/Jahr (in der korrekten zeitzone) zusammengezogen... Genau das was ich wollte. Merci.

              bin gespannt was du noch raus findest.

              Was fehlt denn noch außer dem einen Unknown Feld? In dieser Nachricht hatte ich sonst alles, oder? 😊
              Wenn ich dir noch irgendwie helfen kann, meld dich einfach.

              W 1 Antwort Letzte Antwort
              0
              • A Offline
                A Offline
                Accu
                schrieb am zuletzt editiert von
                #441

                @Waly_de weißt Du was dieser Fehler bedeutet und was ich dagegen machen kann?
                Bildschirmfoto 2023-09-14 um 09.24.13.png

                W 1 Antwort Letzte Antwort
                0
                • B BlackEagleBE

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

                  Den header hab ch ja schon vollständig definiert im Script. vielleicht sogar Definitionen für andere Nachrichten, die ich nur noch nicht richtig zugeteilt habe. Klau dir am besten die schon bestehenden Definitionen aus dem Script.

                  Danke für die Info! Brauchte ich aber gar nicht - das macht dein Script scheinbar bereits automatisch 😉
                  Ich hatte die .proto-Datei zuerst ohne Einbinden in deinen Code erarbeitet.
                  Mir ist daher auch erst später aufgefallen, dass der Header und das Handling bei dir bereits genau so drin ist und das alles von deinem Script korrekt interpretiert wird. Ich musste daher lediglich proto-Defintion (für enum, datalists, datalist) neu hinterlegen und die datalists in die writeables eintragen (und das ignor beim PS rausnehmen). Daher hatte ich kein Problem mit dem optional/repeat und dem Header... Die Daten werden bei mir übrigens bereits erstmal korrekt eingelesen und der Verbrauch (über ein eigenes Script) nach Tag/Monat/Jahr (in der korrekten zeitzone) zusammengezogen... Genau das was ich wollte. Merci.

                  bin gespannt was du noch raus findest.

                  Was fehlt denn noch außer dem einen Unknown Feld? In dieser Nachricht hatte ich sonst alles, oder? 😊
                  Wenn ich dir noch irgendwie helfen kann, meld dich einfach.

                  W Offline
                  W Offline
                  Waly_de
                  schrieb am zuletzt editiert von
                  #442

                  @blackeaglebe mega… das sind immer die Besten sagen, die einfach funktionieren 😉
                  Wenn du mir Deine geänderte Version von meinem Script mit Kommentaren an Stellen die du ergänzt bzw. geändert hast schickst, wäre das super.

                  Ich kann im Moment leider nichts machen erst nächste Woche wieder …

                  1 Antwort Letzte Antwort
                  0
                  • A Accu

                    @Waly_de weißt Du was dieser Fehler bedeutet und was ich dagegen machen kann?
                    Bildschirmfoto 2023-09-14 um 09.24.13.png

                    W Offline
                    W Offline
                    Waly_de
                    schrieb am zuletzt editiert von
                    #443

                    @accu Netzwerk Probleme vermutlich… Neustart und warten könnte helfen 🙂

                    1 Antwort Letzte Antwort
                    0
                    • umeleU Offline
                      umeleU Offline
                      umele
                      schrieb am zuletzt editiert von umele
                      #444

                      Hallo zusammen,

                      ich lese hier fleissig mit und bin dank der vielen Inputs (und trotz meiner Inkompetenz) schon recht weit gekommen:
                      Inzwischen bekomme ich die Daten vom Sensor in iobroker, und habe die Sensor-ID im Script eingetragen.
                      Aaaber - ich finde nirgends das Objekt 0_userdata.0.ecoflow.RealPower (und kann auch nicht erkennen, dass sich die Einspeisung anpasst).
                      Was mache ich falsch?

                      Edit: noch ein Screenshot meiner Ecoflow-Objektstruktur Objekte iobroker.png

                      vielen Dank
                      umele

                      umeleU 1 Antwort Letzte Antwort
                      0
                      • P Offline
                        P Offline
                        photon-harvester
                        schrieb am zuletzt editiert von
                        #445

                        Moin Moin,
                        habt ihr einen Tip für mich, wie ich verschiene IDs zu einem Wert addieren kann, um es anschließend zu visualisieren?
                        Bsp. ID:AkkuSoC1 +ID:AkkuSoC2 = ID:AkkuSoCgesammt --> dann ablegen in history für z.B. VIS
                        Danke 🙂
                        PS: kann leider nicht programmieren, nur copy-paste oder Widgets

                        W 1 Antwort Letzte Antwort
                        0
                        • umeleU umele

                          Hallo zusammen,

                          ich lese hier fleissig mit und bin dank der vielen Inputs (und trotz meiner Inkompetenz) schon recht weit gekommen:
                          Inzwischen bekomme ich die Daten vom Sensor in iobroker, und habe die Sensor-ID im Script eingetragen.
                          Aaaber - ich finde nirgends das Objekt 0_userdata.0.ecoflow.RealPower (und kann auch nicht erkennen, dass sich die Einspeisung anpasst).
                          Was mache ich falsch?

                          Edit: noch ein Screenshot meiner Ecoflow-Objektstruktur Objekte iobroker.png

                          vielen Dank
                          umele

                          umeleU Offline
                          umeleU Offline
                          umele
                          schrieb am zuletzt editiert von
                          #446

                          Habe das Script jetzt mal mit voller Protokollausgabe laufen lassen. Es findet anscheinend den Sensor überhaupt nicht.

                          Es kommt noch nicht mal dazu die Funktion SetBasePower auszuführen (in der wird das Objekt RealPower erstellt). Laut Script müsste diese Funktion geloggt werden.

                          Auch im Debug Modus ist nichts zu finden. Bin gerade ratlos...

                          Schade, dass der Debug Modus es nicht erlaubt, das Script step-by-step auszuführen - dann könnte ich das Problem vielleicht finden...

                          Wäre echt toll, wenn jemand eine Idee hat - Danke!!

                          W 1 Antwort Letzte Antwort
                          0
                          • umeleU umele

                            Habe das Script jetzt mal mit voller Protokollausgabe laufen lassen. Es findet anscheinend den Sensor überhaupt nicht.

                            Es kommt noch nicht mal dazu die Funktion SetBasePower auszuführen (in der wird das Objekt RealPower erstellt). Laut Script müsste diese Funktion geloggt werden.

                            Auch im Debug Modus ist nichts zu finden. Bin gerade ratlos...

                            Schade, dass der Debug Modus es nicht erlaubt, das Script step-by-step auszuführen - dann könnte ich das Problem vielleicht finden...

                            Wäre echt toll, wenn jemand eine Idee hat - Danke!!

                            W Offline
                            W Offline
                            Waly_de
                            schrieb am zuletzt editiert von
                            #447

                            @umele wie du sagst, das Script prüft die Existenz des Sensors. Es muss also an der id liegen was genau hast du denn als smartmeterid angegeben?

                            D umeleU 2 Antworten Letzte Antwort
                            0
                            • W Waly_de

                              @umele wie du sagst, das Script prüft die Existenz des Sensors. Es muss also an der id liegen was genau hast du denn als smartmeterid angegeben?

                              D Offline
                              D Offline
                              Dreffi
                              schrieb am zuletzt editiert von
                              #448

                              @waly_de
                              Direkte Frage an Markus:
                              Ich habe jetzt mehrfach beobachtet, dass sich einer meiner Powerstreams im falschen Prio Modus befand.

                              Einer ist konfiguriert bei vollem Akku auf Prio Akku zu schalten, der andere soll voll einspeisen. Das klappt soweit einwandfrei.
                              Gestern und heute fiel mir abends auf, dass der Powerstream der voll einspeisen soll auf Prio Akku stand.

                              Ich kann nicht sagen wieso hier überhaupt die Priorisierung geändert wurde und ob das Script dafür verantwortlich ist. Da der Bedarf irgendwann höher als die abgegebene Leistung war, hätte hier aber irgendwann umgeschaltet werden müssen.

                              Der andere Powerstream wechselte unabhängig davon wunschgemäß wegen Bedarfs von Prio Akku auf Einspeisung. Der Bedarf war schnell wieder gering. Die eingestellte AC Last betrug dann wieder 0 W, aber der Powerstream wurde trotz vollem Akku nicht wieder auf Prio Akku zurückgestellt.

                              Die Trigger für das Umstellen der Priorisierung scheinen nicht so richtig zuverlässig zu funktionieren.

                              1 Antwort Letzte Antwort
                              0
                              • R Offline
                                R Offline
                                Ralf77
                                schrieb am zuletzt editiert von Ralf77
                                #449

                                Hallo zusammen, das Script ist sehr gut bei mir bis vor kurzem gelaufen. Auf einmal hat das Scrip nicht mehr funktioniert. Es ändert die AC-Leistung des Powerstreams nicht mehr. Habe heute das Update auf den neuen Host durchgeführt, leider ohne Erfolg.

                                Generell kommuniziert das Script mit meinem Powerstream

                                19:12:58.284 info javascript.0 (1960) script.js.PowerStream: Batterie runter auf 92%: Normalbetrieb.
                                19:13:13.267 info javascript.0 (1960) script.js.PowerStream: Batterie runter auf 92%: Normalbetrieb.
                                19:13:13.465 info javascript.0 (1960) Stop script script.js.PowerStream
                                19:13:13.474 info javascript.0 (1960) script.js.PowerStream: Ecoflow MQTT-Client beendet
                                19:13:13.612 info javascript.0 (1960) Start javascript script.js.PowerStream
                                19:13:13.852 info javascript.0 (1960) script.js.PowerStream: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                                19:13:14.231 info javascript.0 (1960) script.js.PowerStream: Verbunden mit dem Ecoflow MQTT-Broker

                                Es gibt zudem sehr viele Protokolleinträge, welche ich nicht deuten kann.

                                javascript.0
                                2023-09-16 18:13:13.612 info Start javascript script.js.PowerStream

                                javascript.0
                                2023-09-16 18:13:13.474 info script.js.PowerStream: Ecoflow MQTT-Client beendet

                                javascript.0
                                2023-09-16 18:13:13.465 info Stop script script.js.PowerStream

                                javascript.0
                                2023-09-16 18:13:13.267 info script.js.PowerStream: Batterie runter auf 92%: Normalbetrieb.

                                javascript.0
                                2023-09-16 18:12:58.284 info script.js.PowerStream: Batterie runter auf 92%: Normalbetrieb.

                                admin.0
                                2023-09-16 18:12:48.836 info ==> Connected system.user.admin from ::ffff:192.168.178.48

                                javascript.0
                                2023-09-16 18:12:43.265 info script.js.PowerStream: Batterie runter auf 92%: Normalbetrieb.

                                javascript.0
                                2023-09-16 18:12:28.264 info script.js.PowerStream: Batterie runter auf 92%: Normalbetrieb.

                                javascript.0
                                2023-09-16 18:12:13.265 info script.js.PowerStream: Batterie runter auf 92%: Normalbetrieb.

                                fronius.0
                                2023-09-16 18:12:03.611 warn State "fronius.0.inverter.1.Power_DC_String_2" has no existing object, this might lead to an error in future versions

                                fronius.0
                                2023-09-16 18:12:03.609 warn State "fronius.0.inverter.1.Power_DC_String_2" has no existing object, this might lead to an error in future versions

                                Eventuell kann ja jemand einen Tipp geben, wo das Problem sein könnte.

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

                                  @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 Antworten Letzte Antwort
                                  1
                                  • L Offline
                                    L Offline
                                    LordMinorin
                                    schrieb am zuletzt editiert von LordMinorin
                                    #451

                                    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 Antwort Letzte Antwort
                                    0
                                    • M 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 Offline
                                      P Offline
                                      Ponti92
                                      schrieb am zuletzt editiert von
                                      #452

                                      @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 Antwort Letzte Antwort
                                      0
                                      • P Ponti92

                                        @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 Offline
                                        M Offline
                                        Milchbeck
                                        schrieb am zuletzt editiert von
                                        #453

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

                                        1 Antwort Letzte Antwort
                                        0
                                        • W Waly_de

                                          @umele wie du sagst, das Script prüft die Existenz des Sensors. Es muss also an der id liegen was genau hast du denn als smartmeterid angegeben?

                                          umeleU Offline
                                          umeleU Offline
                                          umele
                                          schrieb am zuletzt editiert von umele
                                          #454

                                          @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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          711

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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