Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. xNodKane

    NEWS

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Profile
    • Following 0
    • Followers 0
    • Topics 0
    • Posts 6
    • Best 4
    • Groups 1

    xNodKane

    @xNodKane

    Starter

    6
    Reputation
    11
    Profile views
    6
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    xNodKane Follow
    Starter

    Best posts made by xNodKane

    • RE: Adapter für Ecoflow Einbindung

      @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;
      }
      
      posted in Einbindung von Geräten
      xNodKane
      xNodKane
    • RE: Adapter für Ecoflow Einbindung

      @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.

      posted in Einbindung von Geräten
      xNodKane
      xNodKane
    • RE: Adapter für Ecoflow Einbindung

      @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;
      }
      
      posted in Einbindung von Geräten
      xNodKane
      xNodKane
    • RE: Adapter für Ecoflow Einbindung

      @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;
      }
      
      posted in Einbindung von Geräten
      xNodKane
      xNodKane

    Latest posts made by xNodKane

    • RE: Adapter für Ecoflow Einbindung

      @felixcrafter83 Siehe den Beitrag weiter oben.
      Wenn man sich die Ecoflow APK (Android App) genauer ansieht wie die Codetechnisch funktioniert fällt zum einen Auf das ein import zu Googles Protobuf drinnen ist.
      Ist aber sehr mühselig etwas herauszufinden.

      posted in Einbindung von Geräten
      xNodKane
      xNodKane
    • RE: Adapter für Ecoflow Einbindung

      @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;
      }
      
      posted in Einbindung von Geräten
      xNodKane
      xNodKane
    • RE: Adapter für Ecoflow Einbindung

      @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.

      posted in Einbindung von Geräten
      xNodKane
      xNodKane
    • RE: Adapter für Ecoflow Einbindung

      @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;
      }
      
      posted in Einbindung von Geräten
      xNodKane
      xNodKane
    • RE: Adapter für Ecoflow Einbindung

      @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;
      }
      
      posted in Einbindung von Geräten
      xNodKane
      xNodKane
    • RE: Adapter für Ecoflow Einbindung

      @vespagaming @Waly_de
      Ich bin mir nicht ganz sicher evtl. komm ich noch dahinter.
      Jedoch wenn man die .java Dateien der Ecoflow .apk sich ansieht könnte das Protbuf sein.

      "import com.google.protobuf.CodedInputStream;"
      625beb3a-9bf9-4508-9ed7-05a44086cef7-image.png

      hmm...

      posted in Einbindung von Geräten
      xNodKane
      xNodKane
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo