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. Einsteigerfragen
  4. Einbindung von Geräten
  5. Adapter für Ecoflow Einbindung

NEWS

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

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

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

Adapter für Ecoflow Einbindung

Geplant Angeheftet Gesperrt Verschoben Einbindung von Geräten
212 Beiträge 42 Kommentatoren 61.3k Aufrufe 41 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.
  • VespaGamingV VespaGaming

    @waly_de said in Adapter für Ecoflow Einbindung:

    0a3d0a0308fd-1d-10201835200128013803401448fd015003580170-fdfdfd-fd05fd0113fd0101fd0103696f73fd0110485XXXXXXXXXXXXXXXXXXXXXXXXXX

    Kannst du herleiten was du jeweils für Werte an den Powerstream übergeben hast zu

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

    @vespagaming

    interessant auch, wenn ich andere Dinge verstelle ist die Nachricht fast identisch und es ändern sich wieder nur die gleichen Stellen:

    Beleuchtung
    30%   0a3d0a0308fd 02 10201835200128013803401448fd015003580170 fdfdfdfd 06fd0113fd0101fd0103696f73fd0110485735315a4f4834 XXXXXXXXXXXXXXXX
    50%   0a3d0a0308fd 03 10201835200128013803401448fd015003580170   fdfdbc 06fd0113fd0101fd0103696f73fd0110485735315a4f4834 XXXXXXXXXXXXXXXX
    20%   0a3d0a0308fd 01 10201835200128013803401448fd015003580170   fdfd7c 06fd0113fd0101fd0103696f73fd0110485735315a4f4834 XXXXXXXXXXXXXXXX
    Entladezustand
    7%    0a3c0a0208 07   10201835200128013803401448fd015002580170     6efd 06fd0113fd0101fd0103696f73fd0110485735315a4f4834 XXXXXXXXXXXXXXXX
    9%    0a3c0a0208 09   10201835200128013803401448fd015002580170   fdfdfd 06fd0113fd0101fd0103696f73fd0110485735315a4f4834 XXXXXXXXXXXXXXXX
    
    
    1 Antwort Letzte Antwort
    0
    • W Waly_de

      @xnodkane
      hmm das ist interessant!

      Braucht man dazu nicht eine .proto Datei oder sowas?

      Wüsste auch nicht wie ich die Daten aus dem Stringfeld im MQTT-Client in ein gültiges Format bringen soll.
      Ich glaub es braucht hier ein Uint8Array...

      Ich hab wenig Ahnung von Protbuf 😕

      xNodKaneX Offline
      xNodKaneX Offline
      xNodKane
      schrieb am zuletzt editiert von xNodKane
      #135

      @waly_de
      Ich konnte bisher nicht viel entschlüssel, jedoch mit etwas ausprobieren bin ich schon mal soweit.
      Dies betrifft die Einstellungen der PowerStream.
      Habe die Website: https://protobuf-decoder.netlify.app/ benutzt um HEX in ein Proto umzuwandeln.
      Nun kann ich die Klasse auslesen und erhalte z.B.
      {{ "item": [ { "meta": { "value": 1 }, "function": 130, "timestamp": 905534, "serialNumber": "HW51XXXXXXXXXX" } ] }}

      function ist die Funktion, z.B. "Leistungsbedarf am AC..." die man einstellt.
      value ist der Wert der Einstellung

      message PowerItem {
        Meta meta = 1;
        int32 function = 9;
        uint32 timestamp = 14;
        string serialNumber = 25;
      }
      
      message PowerMessage {
        PowerItem item = 1;
      }
      
      message Meta {
        int32 value = 1;
      }
      
      W 1 Antwort Letzte Antwort
      1
      • xNodKaneX xNodKane

        @waly_de
        Ich konnte bisher nicht viel entschlüssel, jedoch mit etwas ausprobieren bin ich schon mal soweit.
        Dies betrifft die Einstellungen der PowerStream.
        Habe die Website: https://protobuf-decoder.netlify.app/ benutzt um HEX in ein Proto umzuwandeln.
        Nun kann ich die Klasse auslesen und erhalte z.B.
        {{ "item": [ { "meta": { "value": 1 }, "function": 130, "timestamp": 905534, "serialNumber": "HW51XXXXXXXXXX" } ] }}

        function ist die Funktion, z.B. "Leistungsbedarf am AC..." die man einstellt.
        value ist der Wert der Einstellung

        message PowerItem {
          Meta meta = 1;
          int32 function = 9;
          uint32 timestamp = 14;
          string serialNumber = 25;
        }
        
        message PowerMessage {
          PowerItem item = 1;
        }
        
        message Meta {
          int32 value = 1;
        }
        
        W Offline
        W Offline
        Waly_de
        schrieb am zuletzt editiert von
        #136

        @xnodkane wow .. das ist großartig. Hast du meine Daten verwendet? Ich bekomme damit nämlich nichts sinnvolles bei https://protobuf-decoder.netlify.app/ angezeigt.

        xNodKaneX 1 Antwort Letzte Antwort
        0
        • W Waly_de

          @xnodkane wow .. das ist großartig. Hast du meine Daten verwendet? Ich bekomme damit nämlich nichts sinnvolles bei https://protobuf-decoder.netlify.app/ angezeigt.

          xNodKaneX Offline
          xNodKaneX Offline
          xNodKane
          schrieb am zuletzt editiert von xNodKane
          #137

          @waly_de
          Habe meine eigenen Daten genommen, da man alle hex stellen benötigt um etwas lesen zu können.
          Das empfangene ByteArray in HEX umwandeln und als string ausgeben ohne Sonderzeichen (zusammenhängende kette).

          Danach in die App werfen und nun versuchen zu interpretieren was da für eine Proto Datei das sein könnte.
          Nun muss man die proto als Klasse erstellen und das auf die Klasse "mergen".
          Nutze dafür halt .NET mit MQTTnet und Google.Protobuf.
          In der message steht dann der lesbare string.

          var payload = e.ApplicationMessage.PayloadSegment.ToArray();
              var inputStream = new CodedInputStream(payload);
              PowerMessage message = new();
              message.MergeFrom(inputStream);
          

          Wie oben gezeigt habe ich manche Felder schon identifizieren können.

          7eca80da-71ee-409e-a5c4-0464ce778fb7-image.png

          Habe noch weiter herumprobiert und habe mir auch die .java Dateien der .apk angesehen um zu schlussfolgern wie die Daten zusammenhängen.

           C4231d.m10767h().mo33598m(this.f29190c, Common.Send_Header_Msg.newBuilder().addMsg(Common.Header.newBuilder().setSrc(32).setDest(53).setSeq(291).setNeedAck(1).setCmdFunc(20).setCmdId(129).setDeviceSn(this.f29190c).setDataLen(build8.toByteString().size()).setPdata(build8.toByteString()).build()).build().toByteArray());
          

          Hier die neuste .proto

          syntax = "proto3";
          
          message PowerItem {
            optional Meta meta = 1;
            uint32 src = 2;
            uint32 dest = 3;
            uint32 cmdFunc = 8;
            CmdFunction cmdId = 9;
            uint32 unknown = 10;
            uint32 needAck = 11;
            uint64 timestamp = 14;
            string serialNumber = 25;
          }
          
          message PowerMessage {
            PowerItem item = 1;
          }
          
          message Meta {
            int32 value = 1;
          }
          
          enum CmdFunction {
          	Unknown = 0;
          	PermanentWattsPack = 129;
          	SupplyPriorityPack = 130;
          }
          
          1 Antwort Letzte Antwort
          2
          • A Offline
            A Offline
            applepro
            schrieb am zuletzt editiert von
            #138

            Hi zusammen,
            bis eben habe ich immer nur fleißig mitgelesen und zu Hause selber getüftelt. Aktuell auch leider nur mit ernüchternden Ergebnissen. Ich habe mal dem Support geschrieben und diese Antwort erhalten…
            IMG_2133.jpeg
            Da ich ebenfalls die Einspeisemenge des Powerstreams mit dem Hausverbrauch abgleichen und dementsprechend einstellen will, hoffe ich, dass wir hier vorher eine Lösung hinbekommen, bis Ecoflow etwas „einfacheres und offizielleres“ freigibt….richtig Lust haben die darauf ja nicht.

            W 1 Antwort Letzte Antwort
            1
            • A applepro

              Hi zusammen,
              bis eben habe ich immer nur fleißig mitgelesen und zu Hause selber getüftelt. Aktuell auch leider nur mit ernüchternden Ergebnissen. Ich habe mal dem Support geschrieben und diese Antwort erhalten…
              IMG_2133.jpeg
              Da ich ebenfalls die Einspeisemenge des Powerstreams mit dem Hausverbrauch abgleichen und dementsprechend einstellen will, hoffe ich, dass wir hier vorher eine Lösung hinbekommen, bis Ecoflow etwas „einfacheres und offizielleres“ freigibt….richtig Lust haben die darauf ja nicht.

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

              @applepro Es sieht ganz gut aus 🙂 Dank xNodKane's Arbeit hab ich es inzwischen geschafft sowohl einige der Statusmeldungen (PV1 und PV2 Watt sowie Leistung zum Haus) auszulesen, als auch den Wert für "Leistungsbedarf am AC..." zu schreiben.
              Allerdings gibt es noch einige Probleme.

              Das wichtigste ist, die entsprechenden Felder im MQTT auf den Typ "file" zu stellen und dann den Adapter neu zu starten...

              Danach könnt ihr mit diesem Script den Inhalt auslesen und mit https://protobuf-decoder.netlify.app/ entschlüsseln.

              getBinaryState('mqtt.<Instanznummer>.app.<USER_ID>.<SERIENNUMMER>.thing.property.set', function (err, data) {
                log("frisch ausgelesen:"+ data.toString("hex"))
              });
              

              Senden geht dann so:

              sendTo('mqtt.<Instanznummer>', 'sendMessage2Client', {topic: '/app/.<USER_ID>/<SERIENNUMMER>/thing/property/set', message:<buffer>});
              

              die Daten müssen als Buffer object übergeben werden.

              Viel Erfolg 🙂

              Ein Problem, wofür vielleicht einer von Euch eine Lösung weiß:
              Wenn ich den STATE im MQTT auf 'file' umstelle, kann ich keine Änderungen mehr Monitoren.

              on({id: /mqtt.2.app.device.property.HWXXXXXXXXXXXX/, change: 'any'}, function (obj) {
                  log("EVENT!")
              });
              

              ...da kommt nach der Umstellung nichts mehr. Hat jemand eine Idee?

              VG
              Markus

              xNodKaneX A 3 Antworten Letzte Antwort
              3
              • W Waly_de

                @applepro Es sieht ganz gut aus 🙂 Dank xNodKane's Arbeit hab ich es inzwischen geschafft sowohl einige der Statusmeldungen (PV1 und PV2 Watt sowie Leistung zum Haus) auszulesen, als auch den Wert für "Leistungsbedarf am AC..." zu schreiben.
                Allerdings gibt es noch einige Probleme.

                Das wichtigste ist, die entsprechenden Felder im MQTT auf den Typ "file" zu stellen und dann den Adapter neu zu starten...

                Danach könnt ihr mit diesem Script den Inhalt auslesen und mit https://protobuf-decoder.netlify.app/ entschlüsseln.

                getBinaryState('mqtt.<Instanznummer>.app.<USER_ID>.<SERIENNUMMER>.thing.property.set', function (err, data) {
                  log("frisch ausgelesen:"+ data.toString("hex"))
                });
                

                Senden geht dann so:

                sendTo('mqtt.<Instanznummer>', 'sendMessage2Client', {topic: '/app/.<USER_ID>/<SERIENNUMMER>/thing/property/set', message:<buffer>});
                

                die Daten müssen als Buffer object übergeben werden.

                Viel Erfolg 🙂

                Ein Problem, wofür vielleicht einer von Euch eine Lösung weiß:
                Wenn ich den STATE im MQTT auf 'file' umstelle, kann ich keine Änderungen mehr Monitoren.

                on({id: /mqtt.2.app.device.property.HWXXXXXXXXXXXX/, change: 'any'}, function (obj) {
                    log("EVENT!")
                });
                

                ...da kommt nach der Umstellung nichts mehr. Hat jemand eine Idee?

                VG
                Markus

                xNodKaneX Offline
                xNodKaneX Offline
                xNodKane
                schrieb am zuletzt editiert von xNodKane
                #140

                @waly_de @applepro
                Habe gerade noch mal etwas probiert:
                Wenn man auf folgendes Topic hört bekommt man alle Powerstream Daten (in .proto format).

                /app/device/property/{serialNumber}
                

                Dann das Proto PowerMessage benutzen und dann kommt im Feld 38 der Wert für PV Sum (muss man durch 10 teilen um den Wert in W zu erhalten).
                Für alle SmartPlug user, diese können über PlugPower Feld 10 die Leistungsaufnahme messen. Auch hier wieder durch 10 teilen.

                syntax = "proto3";
                message PowerMessage {
                  PowerItem item = 1;
                }
                message PowerItem {
                  optional Meta meta = 1;
                  string serialNumber = 25;
                }
                message Meta {
                  int32 value = 1;
                  int32 pvPowerSum = 38;
                  int32 plugPower = 10;
                }
                

                Da jedoch noch viele weitere verschiedene Daten hier in das Topic kommen, weiß ich noch nicht nach was ich filtern muss.
                Vielleicht weiß da jemand schon mehr.

                W 1 Antwort Letzte Antwort
                2
                • A Offline
                  A Offline
                  applepro
                  schrieb am zuletzt editiert von applepro
                  #141

                  1 Antwort Letzte Antwort
                  0
                  • W Waly_de

                    @applepro Es sieht ganz gut aus 🙂 Dank xNodKane's Arbeit hab ich es inzwischen geschafft sowohl einige der Statusmeldungen (PV1 und PV2 Watt sowie Leistung zum Haus) auszulesen, als auch den Wert für "Leistungsbedarf am AC..." zu schreiben.
                    Allerdings gibt es noch einige Probleme.

                    Das wichtigste ist, die entsprechenden Felder im MQTT auf den Typ "file" zu stellen und dann den Adapter neu zu starten...

                    Danach könnt ihr mit diesem Script den Inhalt auslesen und mit https://protobuf-decoder.netlify.app/ entschlüsseln.

                    getBinaryState('mqtt.<Instanznummer>.app.<USER_ID>.<SERIENNUMMER>.thing.property.set', function (err, data) {
                      log("frisch ausgelesen:"+ data.toString("hex"))
                    });
                    

                    Senden geht dann so:

                    sendTo('mqtt.<Instanznummer>', 'sendMessage2Client', {topic: '/app/.<USER_ID>/<SERIENNUMMER>/thing/property/set', message:<buffer>});
                    

                    die Daten müssen als Buffer object übergeben werden.

                    Viel Erfolg 🙂

                    Ein Problem, wofür vielleicht einer von Euch eine Lösung weiß:
                    Wenn ich den STATE im MQTT auf 'file' umstelle, kann ich keine Änderungen mehr Monitoren.

                    on({id: /mqtt.2.app.device.property.HWXXXXXXXXXXXX/, change: 'any'}, function (obj) {
                        log("EVENT!")
                    });
                    

                    ...da kommt nach der Umstellung nichts mehr. Hat jemand eine Idee?

                    VG
                    Markus

                    A Offline
                    A Offline
                    applepro
                    schrieb am zuletzt editiert von
                    #142

                    @waly_de Ich habe folgenden Code benutzt:

                    on({id: 'mqtt.<Instanznummer>.app.<USER_ID>.<SERIENNUMMER>.thing.property.set', change: 'any'}, async function (obj) {
                        log("EVENT!")
                    });
                    

                    Damit läuft das Monitoring!

                    VG
                    Jannick

                    W 1 Antwort Letzte Antwort
                    0
                    • A applepro

                      @waly_de Ich habe folgenden Code benutzt:

                      on({id: 'mqtt.<Instanznummer>.app.<USER_ID>.<SERIENNUMMER>.thing.property.set', change: 'any'}, async function (obj) {
                          log("EVENT!")
                      });
                      

                      Damit läuft das Monitoring!

                      VG
                      Jannick

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

                      @applepro hmm bei mir leider nicht ... welche Version vom js-controller und welche node.js nutzt Du?

                      A 1 Antwort Letzte Antwort
                      0
                      • xNodKaneX xNodKane

                        @waly_de @applepro
                        Habe gerade noch mal etwas probiert:
                        Wenn man auf folgendes Topic hört bekommt man alle Powerstream Daten (in .proto format).

                        /app/device/property/{serialNumber}
                        

                        Dann das Proto PowerMessage benutzen und dann kommt im Feld 38 der Wert für PV Sum (muss man durch 10 teilen um den Wert in W zu erhalten).
                        Für alle SmartPlug user, diese können über PlugPower Feld 10 die Leistungsaufnahme messen. Auch hier wieder durch 10 teilen.

                        syntax = "proto3";
                        message PowerMessage {
                          PowerItem item = 1;
                        }
                        message PowerItem {
                          optional Meta meta = 1;
                          string serialNumber = 25;
                        }
                        message Meta {
                          int32 value = 1;
                          int32 pvPowerSum = 38;
                          int32 plugPower = 10;
                        }
                        

                        Da jedoch noch viele weitere verschiedene Daten hier in das Topic kommen, weiß ich noch nicht nach was ich filtern muss.
                        Vielleicht weiß da jemand schon mehr.

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

                        @xnodkane sehr gut ... hab auch ein wenig geforscht. Meinst du nicht das 38 der wert für "Andere Verbraucher" ist?
                        Und kann man nicht eine .proto für alles machen. Die anderen Felder scheint es da ja auch zu geben.
                        Ich hatte das hier erstellt. Spricht da etwas gegen?

                        syntax = "proto3";
                        
                        message PowerItem {
                          optional Meta meta = 1;
                          uint32 src = 2;
                          uint32 dest = 3;
                          uint32 cmdFunc = 8;
                          CmdFunction cmdId = 9;
                          uint32 unknown = 10;
                          uint32 needAck = 11;
                          uint64 timestamp = 14;
                          string serialNumber = 25;
                        }
                        
                        message PowerMessage {
                          PowerItem item = 1;
                        }
                        
                        message Meta {
                          optional int32 value = 1;
                          optional int32 PV1_Watt = 19;
                          optional int32 PV2_Watt = 24;
                          optional int32 ToHome_Watt = 38;
                        }
                        
                        enum CmdFunction {
                            Unknown = 0;
                            PermanentWattsPack = 129;
                            SupplyPriorityPack = 130;
                        }
                        
                        xNodKaneX 1 Antwort Letzte Antwort
                        1
                        • W Waly_de

                          @applepro hmm bei mir leider nicht ... welche Version vom js-controller und welche node.js nutzt Du?

                          A Offline
                          A Offline
                          applepro
                          schrieb am zuletzt editiert von
                          #145

                          @waly_de js-controller: 4.0.24 und node.js: v16.17.1, hier werde ich gleich mal updaten

                          1 Antwort Letzte Antwort
                          0
                          • A Offline
                            A Offline
                            applepro
                            schrieb am zuletzt editiert von applepro
                            #146

                            auch nach update auf v16.20.1 läuft es weiterhin, es funktioniert nur dann nicht mehr, wenn man auf file umstellt, so wie du beschrieben hast, man sollte vlt richtig lesen....

                            W 1 Antwort Letzte Antwort
                            0
                            • A applepro

                              auch nach update auf v16.20.1 läuft es weiterhin, es funktioniert nur dann nicht mehr, wenn man auf file umstellt, so wie du beschrieben hast, man sollte vlt richtig lesen....

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

                              @applepro Das ist seltsam. Bist Du sicher das du das Feld auf "File" umgestellt hast? Hab einen Bug dazu gemeldet und es wurde bestätigt das das so ist, und uns leider auch noch ziemlich lange erhalten bleibt...

                              https://github.com/ioBroker/ioBroker.mqtt/issues/369

                              haus-automatisierungH 1 Antwort Letzte Antwort
                              1
                              • W Waly_de

                                @applepro Das ist seltsam. Bist Du sicher das du das Feld auf "File" umgestellt hast? Hab einen Bug dazu gemeldet und es wurde bestätigt das das so ist, und uns leider auch noch ziemlich lange erhalten bleibt...

                                https://github.com/ioBroker/ioBroker.mqtt/issues/369

                                haus-automatisierungH Online
                                haus-automatisierungH Online
                                haus-automatisierung
                                Developer Most Active
                                schrieb am zuletzt editiert von haus-automatisierung
                                #148

                                @waly_de sagte in Adapter für Ecoflow Einbindung:

                                Bist Du sicher das du das Feld auf "File" umgestellt hast?

                                File / Binary states sind doch eh deprecated (und müssen auch ganz anders geschrieben werden als normale states). Das wird niemand mehr implementieren, da es gerade aus allen Adaptern rausfliegt.

                                Eine Lösung wäre ja, dass der Wert als base64 oder hex geschrieben wird, falls Binärdaten kommen.

                                🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                📚 Meine inoffizielle ioBroker Dokumentation

                                W 1 Antwort Letzte Antwort
                                0
                                • haus-automatisierungH haus-automatisierung

                                  @waly_de sagte in Adapter für Ecoflow Einbindung:

                                  Bist Du sicher das du das Feld auf "File" umgestellt hast?

                                  File / Binary states sind doch eh deprecated (und müssen auch ganz anders geschrieben werden als normale states). Das wird niemand mehr implementieren, da es gerade aus allen Adaptern rausfliegt.

                                  Eine Lösung wäre ja, dass der Wert als base64 oder hex geschrieben wird, falls Binärdaten kommen.

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

                                  @haus-automatisierung sagte in Adapter für Ecoflow Einbindung:

                                  Eine Lösung wäre ja, dass der Wert als base64 oder hex geschrieben wird, falls Binärdaten kommen.

                                  Gute Idee... müsste dann in den MQTT implementiert werden... magst Du einen Request stellen, oder gibt es den schon?

                                  @haus-automatisierung sagte in Adapter für Ecoflow Einbindung:

                                  File / Binary states sind doch eh deprecated (und müssen auch ganz anders geschrieben werden als normale states). Das wird niemand mehr implementieren, da es gerade aus allen Adaptern rausfliegt.

                                  Es gibt aber auch noch keine funktionierende Alternative, oder? File wird ja implementiert, aber das Handling ist noch nicht eingebaut. Soweit ich weiss braucht es dazu js-controller 5.0.x

                                  haus-automatisierungH 1 Antwort Letzte Antwort
                                  0
                                  • W Waly_de

                                    @haus-automatisierung sagte in Adapter für Ecoflow Einbindung:

                                    Eine Lösung wäre ja, dass der Wert als base64 oder hex geschrieben wird, falls Binärdaten kommen.

                                    Gute Idee... müsste dann in den MQTT implementiert werden... magst Du einen Request stellen, oder gibt es den schon?

                                    @haus-automatisierung sagte in Adapter für Ecoflow Einbindung:

                                    File / Binary states sind doch eh deprecated (und müssen auch ganz anders geschrieben werden als normale states). Das wird niemand mehr implementieren, da es gerade aus allen Adaptern rausfliegt.

                                    Es gibt aber auch noch keine funktionierende Alternative, oder? File wird ja implementiert, aber das Handling ist noch nicht eingebaut. Soweit ich weiss braucht es dazu js-controller 5.0.x

                                    haus-automatisierungH Online
                                    haus-automatisierungH Online
                                    haus-automatisierung
                                    Developer Most Active
                                    schrieb am zuletzt editiert von
                                    #150

                                    @waly_de sagte in Adapter für Ecoflow Einbindung:

                                    File wird ja implementiert, aber das Handling ist noch nicht eingebaut. Soweit ich weiss braucht es dazu js-controller 5.0.x

                                    Doch, das ist alles in den Adaptern soweit vorbereitet. Im JavaScript-Adapter gibt es schon "onFile" usw. Das funktioniert aber nur mit der js-controller 5.x beta. Die gibts ja schon.

                                    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                    📚 Meine inoffizielle ioBroker Dokumentation

                                    1 Antwort Letzte Antwort
                                    0
                                    • W Waly_de

                                      @xnodkane sehr gut ... hab auch ein wenig geforscht. Meinst du nicht das 38 der wert für "Andere Verbraucher" ist?
                                      Und kann man nicht eine .proto für alles machen. Die anderen Felder scheint es da ja auch zu geben.
                                      Ich hatte das hier erstellt. Spricht da etwas gegen?

                                      syntax = "proto3";
                                      
                                      message PowerItem {
                                        optional Meta meta = 1;
                                        uint32 src = 2;
                                        uint32 dest = 3;
                                        uint32 cmdFunc = 8;
                                        CmdFunction cmdId = 9;
                                        uint32 unknown = 10;
                                        uint32 needAck = 11;
                                        uint64 timestamp = 14;
                                        string serialNumber = 25;
                                      }
                                      
                                      message PowerMessage {
                                        PowerItem item = 1;
                                      }
                                      
                                      message Meta {
                                        optional int32 value = 1;
                                        optional int32 PV1_Watt = 19;
                                        optional int32 PV2_Watt = 24;
                                        optional int32 ToHome_Watt = 38;
                                      }
                                      
                                      enum CmdFunction {
                                          Unknown = 0;
                                          PermanentWattsPack = 129;
                                          SupplyPriorityPack = 130;
                                      }
                                      
                                      xNodKaneX Offline
                                      xNodKaneX Offline
                                      xNodKane
                                      schrieb am zuletzt editiert von
                                      #151

                                      @waly_de sagte in Adapter für Ecoflow Einbindung:

                                      Ich hatte das hier erstellt. Spricht da etwas gegen?

                                      Ich habe gerade noch mal bei mir auf das Dashboard geschaut im Reiter "Bereich" und dann nochmal auf das Powerstream system drücken (Die große Ansicht).
                                      Würde jedenfalls hier noch die SmartPlug Daten ergänzen 😉

                                      syntax = "proto3";
                                      
                                      message PowerItem {
                                        optional Meta meta = 1;
                                        uint32 src = 2;
                                        uint32 dest = 3;
                                        uint32 cmdFunc = 8;
                                        CmdFunction cmdId = 9;
                                        uint32 unknown = 10;
                                        uint32 needAck = 11;
                                        uint64 timestamp = 14;
                                        string serialNumber = 25;
                                      }
                                      
                                      message PowerMessage {
                                        PowerItem item = 1;
                                      }
                                      
                                      message Meta {
                                        optional int32 value = 1;
                                        optional int32 plugPower = 10;   // power/10=W
                                        optional int32 pv1_Power = 19;   // power/10=W
                                        optional int32 pv2_Power = 24;   // power/10=W
                                        optional int32 toHomePower = 38; // power/10=W
                                      }
                                      
                                      enum CmdFunction {
                                          Unknown = 0;
                                          PermanentWattsPack = 129;
                                          SupplyPriorityPack = 130;
                                      }
                                      
                                      W 1 Antwort Letzte Antwort
                                      1
                                      • xNodKaneX xNodKane

                                        @waly_de sagte in Adapter für Ecoflow Einbindung:

                                        Ich hatte das hier erstellt. Spricht da etwas gegen?

                                        Ich habe gerade noch mal bei mir auf das Dashboard geschaut im Reiter "Bereich" und dann nochmal auf das Powerstream system drücken (Die große Ansicht).
                                        Würde jedenfalls hier noch die SmartPlug Daten ergänzen 😉

                                        syntax = "proto3";
                                        
                                        message PowerItem {
                                          optional Meta meta = 1;
                                          uint32 src = 2;
                                          uint32 dest = 3;
                                          uint32 cmdFunc = 8;
                                          CmdFunction cmdId = 9;
                                          uint32 unknown = 10;
                                          uint32 needAck = 11;
                                          uint64 timestamp = 14;
                                          string serialNumber = 25;
                                        }
                                        
                                        message PowerMessage {
                                          PowerItem item = 1;
                                        }
                                        
                                        message Meta {
                                          optional int32 value = 1;
                                          optional int32 plugPower = 10;   // power/10=W
                                          optional int32 pv1_Power = 19;   // power/10=W
                                          optional int32 pv2_Power = 24;   // power/10=W
                                          optional int32 toHomePower = 38; // power/10=W
                                        }
                                        
                                        enum CmdFunction {
                                            Unknown = 0;
                                            PermanentWattsPack = 129;
                                            SupplyPriorityPack = 130;
                                        }
                                        
                                        W Offline
                                        W Offline
                                        Waly_de
                                        schrieb am zuletzt editiert von Waly_de
                                        #152

                                        @xnodkane
                                        gut .. hab nämlich keine Smartplugs...

                                        Hab heute auch getüftelt...
                                        Hier mal meine Version ... Hab auch alles eingefügt was ich gesehen habe aber nicht zuordnen kann.

                                        syntax = "proto3";
                                        
                                        message PowerItem {
                                          optional Meta meta = 1;
                                          optional uint32 src = 2;
                                          optional uint32 dest = 3;
                                          optional uint32 unknown1 = 4;
                                          optional uint32 unknown2 = 5;
                                          optional uint32 unknown3 = 6;
                                          optional uint32 unknown4 = 7;
                                          optional uint32 cmdFunc = 8;
                                          optional CmdFunction cmdId = 9;
                                          optional uint32 unknown5 = 10;
                                          optional uint32 needAck = 11;
                                          uint64 timestamp = 14;
                                          optional uint32 unknown6 = 16; //3 Byte?
                                          optional uint32 unknown7 = 17; //3 Byte?
                                          optional string OS = 23;
                                          optional string serialNumber = 25;
                                        }
                                        
                                        message PowerMessage {
                                          PowerItem item = 1;
                                        }
                                        
                                        message Meta {
                                        
                                          optional int32 value = 1;
                                          optional int32 plugPower = 10; 
                                          optional int32 M_Unknown7 = 14; // bei Prio-änderung gesehen
                                          optional int32 M_Unknown8 = 15; //bei Prio-änderung gesehen
                                          
                                          optional int32 PV1_Power = 19;
                                          optional int32 M_Unknown1 = 21;
                                          optional int32 PV2_Power = 24;
                                          optional int32 From_Bat_Power = 29;
                                          optional int32 Batt_Poz = 31;
                                          optional int32 M_Unknown2 = 33;
                                          optional int32 M_Unknown3 = 35;
                                          optional int32 M_Unknown6 = 37;
                                          optional int32 ToHome_Power = 38;
                                          optional int32 M_Unknown9 = 43; //prio Power von summe PVx_Power abziehen ?
                                          optional int32 Needed_Power = 48;
                                          optional int32 M_Unknown4 = 59;
                                          optional int32 M_Unknown5 = 60;
                                        }
                                        
                                        enum CmdFunction {
                                            Unknown = 0;
                                            PermanentWattsPack = 129;
                                            SupplyPriorityPack = 130;
                                        }
                                        
                                        1 Antwort Letzte Antwort
                                        2
                                        • W Waly_de

                                          @applepro Es sieht ganz gut aus 🙂 Dank xNodKane's Arbeit hab ich es inzwischen geschafft sowohl einige der Statusmeldungen (PV1 und PV2 Watt sowie Leistung zum Haus) auszulesen, als auch den Wert für "Leistungsbedarf am AC..." zu schreiben.
                                          Allerdings gibt es noch einige Probleme.

                                          Das wichtigste ist, die entsprechenden Felder im MQTT auf den Typ "file" zu stellen und dann den Adapter neu zu starten...

                                          Danach könnt ihr mit diesem Script den Inhalt auslesen und mit https://protobuf-decoder.netlify.app/ entschlüsseln.

                                          getBinaryState('mqtt.<Instanznummer>.app.<USER_ID>.<SERIENNUMMER>.thing.property.set', function (err, data) {
                                            log("frisch ausgelesen:"+ data.toString("hex"))
                                          });
                                          

                                          Senden geht dann so:

                                          sendTo('mqtt.<Instanznummer>', 'sendMessage2Client', {topic: '/app/.<USER_ID>/<SERIENNUMMER>/thing/property/set', message:<buffer>});
                                          

                                          die Daten müssen als Buffer object übergeben werden.

                                          Viel Erfolg 🙂

                                          Ein Problem, wofür vielleicht einer von Euch eine Lösung weiß:
                                          Wenn ich den STATE im MQTT auf 'file' umstelle, kann ich keine Änderungen mehr Monitoren.

                                          on({id: /mqtt.2.app.device.property.HWXXXXXXXXXXXX/, change: 'any'}, function (obj) {
                                              log("EVENT!")
                                          });
                                          

                                          ...da kommt nach der Umstellung nichts mehr. Hat jemand eine Idee?

                                          VG
                                          Markus

                                          A Offline
                                          A Offline
                                          applepro
                                          schrieb am zuletzt editiert von
                                          #153

                                          @waly_de Hey, das einzige was ich noch nicht hinbekommen habe ist das Schriebn von Daten per Buffer, wie hast du das genau angestellt, ich kann zwar Daten senden, aber es tut sich nichts...

                                          Gruß
                                          Jannick

                                          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

                                          741

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          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