Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Einbindung von Geräten
    5. Adapter für Ecoflow Einbindung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Adapter für Ecoflow Einbindung

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      AngelLuck @Newan last edited by

      @newan said in Adapter für Ecoflow Einbindung:

      Fakt ist das dem Adapter eigentlich aus meiner sicht nur das schalten also post oder put fehlt.

      Möchte mich hier auch mal ein Klinken.
      Vielen Dank auch für die tolle Arbeit am Adapter.

      Für mich persönlich wären auch die Temperatur Daten des Akkus von Bedeutung. Da meine Ecoflow bei mir in einem unbeheizten Kämmerchen auf dem Balkon steht und ich diese Woche festellen musste das der Akku bei 3°C nicht mehr lädt obwohl das Solarpanel den ganzen Tag pralle Sonne abbekommen hat.

      Genauso fände ich es schön wenn man irgendwie das Laden über Steckdose und über das Solarpannel getrennt aufzeichnen könnte. In der App wird das ja ebenfalls getrennt dargestellt.

      Newan 1 Reply Last reply Reply Quote 0
      • Newan
        Newan @AngelLuck last edited by

        @angelluck Stell den Adapter mal bitte auf Debug. Ich glaube nicht das die gewünschten Daten über die API kommen

        A 1 Reply Last reply Reply Quote 0
        • Newan
          Newan @Netfreak25 last edited by

          @moritzkuhn Probiere mal ein GET (holen) über Mqtt und mit der ID ein setzen?

          1 Reply Last reply Reply Quote 0
          • A
            AngelLuck @Newan last edited by

            @newan said in Adapter für Ecoflow Einbindung:

            @angelluck Stell den Adapter mal bitte auf Debug. Ich glaube nicht das die gewünschten Daten über die API kommen

            Nein, ich glaube auch nicht das die Daten über die API rein kommen. Dachte eher an den Weg den @MoritzKuhn gegangen ist. In der Handy App sind die Temperaturdaten ja Verfügbar.

            Netfreak25 1 Reply Last reply Reply Quote 0
            • Netfreak25
              Netfreak25 @AngelLuck last edited by Netfreak25

              @AngelLuck

              8dcdcb44-d2f9-444e-af02-1da28f7bb5d4-image.png
              bei mqtt gibt es einige temperaturen die übermittelt werden

              005209a8-c1db-4320-95c3-5ca5b1768b39-image.png
              es gibt wattsInSum

              f73beb48-c0f5-421d-be74-682b007c2a5a-image.png
              den MPPT Eingang

              f1351a50-518d-4a6e-9fc8-4fff6fea37a4-image.png
              DC Eingang

              d492c69d-cee8-4d37-9c49-15b832d2cc55-image.png
              AC Eingang

              Mir wurde heute gesagt das die Anfrage zum API-Access weitergegeben wurde. Anscheinend erhöhte Nachfrage aktuell

              1 Reply Last reply Reply Quote 2
              • A
                AngelLuck last edited by

                @moritzkuhn Wow das sind ja mehr Daten als ich dachte und du hast sie auch schon im ioBroker wenn ich das so richtig sehe.

                Leider habe ich nicht ganz im Detail verstanden wie du darauf zugreifst. Über MQTT ist klar. Allerdings bekomme bei deinen ganzen Links meistens nur die Meldung das ich nicht authorisiert bin.
                Vielleicht könntest du das Vorgenehen etwas genauer ausführen?

                Netfreak25 1 Reply Last reply Reply Quote 0
                • Netfreak25
                  Netfreak25 @AngelLuck last edited by Netfreak25

                  @angelluck aktuell würde ich sagen fehlen dir die zugangsdaten zum mqtt server, welche ich per men in the middle aus dem app traffic habe.
                  ich schaue mal ob ich den login und das abrufen der mqtt daten als skript umgesetzt bekomme

                  achso: und die links oben sind keine aktuellen api links. so hat es zur zeit vor der api funktioniert. ich dachte nur ihr mit api zugriff könntet damit eventuell was anfangen um eure links zu konstruieren

                  Netfreak25 1 Reply Last reply Reply Quote 0
                  • Netfreak25
                    Netfreak25 @Netfreak25 last edited by

                    @moritzkuhn

                    @moritzkuhn said in Adapter für Ecoflow Einbindung:

                    @angelluck aktuell würde ich sagen fehlen dir die zugangsdaten zum mqtt server, welche ich per men in the middle aus dem app traffic habe.
                    ich schaue mal ob ich den login und das abrufen der mqtt daten als skript umgesetzt bekomme

                    achso: und die links oben sind keine aktuellen api links. so hat es zur zeit vor der api funktioniert. ich dachte nur ihr mit api zugriff könntet damit eventuell was anfangen um eure links zu konstruieren

                    Quick und Dirty:

                    Mit App Benutzerdaten einloggen, dann bekommt man die MQTT Daten zurück

                    https://raw.githubusercontent.com/Netfreak25/EcoFlow_MQTT_Creds/main/ecoflow_mqtt_creds.sh

                    Netfreak25 1 Reply Last reply Reply Quote 0
                    • Netfreak25
                      Netfreak25 @Netfreak25 last edited by Netfreak25

                      e6c33e6f-fd5e-4f7d-abac-d0226cde413d-image.png

                      function (cname, cvalue)

                      var objectName = cname;
                      var MyString = cvalue;
                      
                      if ( !existsState(objectName )) {
                      createState(objectName,MyString,{name: " ",  type: 'string', role: 'value'}, function () {}); 
                      } else {
                      setState(objectName,"" + MyString);
                      }
                      

                      Blockly zum import:
                      https://raw.githubusercontent.com/Netfreak25/EcoFlow_MQTT_Creds/main/Blockly

                      JavaScript zum import:
                      https://raw.githubusercontent.com/Netfreak25/EcoFlow_MQTT_Creds/main/Javascript

                      • MQTT Adapter muss angepasst werden (ist bei mir halt mqtt.5. )
                      • Zielpfad kann angepasst werden (e.g. 0_userdata.0.EcoFlow.MQTT.DeineSerial. )
                      • Seriennummer muss angepasst werden

                      Ich habe für jedes meiner Ecoflow Geräte ein eigenes Skript. Klappt mit Delta Max / River 2 / Smart Generator Dual.
                      Zusatzakkus werden über das Hauptgerät übermittelt

                      Für MQTT reicht eine einzelne Instanz, man muss aber jedes Device explizit abfragen. Wildcard # ist im MQTT Server von ecoflow inaktiv.
                      /app/property/device/DEINESERIENNUMMER

                      Edit:
                      Wenn man im Code vor dem schreiben der Werte nochmal prüft ob sich diese verändert haben, und nur änderungen schreibt ist es nicht so cpu lastig
                      e.g.
                      f8df1fb8-7b92-47ac-99bf-416d6a4e370b-image.png

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

                        Und weil heute Weihnachten ist 😉

                        AC Enable/Disable

                        Published nach:
                        /app/UserID/Seriennummer/thing/property/set

                        Die UserID bekommt man auch von meinem mqqt credentials skript.

                        {
                          "from": "Android",
                          "id": "1",
                          "moduleType": 0,
                          "operateType": "TCP",
                          "params": {
                            "id": 66,
                            "enabled": 1
                          },
                          "version": "1.0"
                        }
                        

                        Für disable ne 0 statt der 1 bei enable
                        "enabled": 0

                        Zum Sniffen einfach dieses Topic subscriben und dann den traffic beobachten
                        Die id in params steht für AC. Das habe ich per try and error / traffic sniffen herausbekommen

                        Es gibt zudem noch /app/UserID/Seriennummer/thing/property/get

                        Wen es fasziniert:
                        Android App dekompilieren (Mit jadex) - um die neuen Pfade zu bekommen für das ansteuern (leider mit unbekannten variablen)
                        PiHole/MQTT Server - um den DNS umzubiegen das sich die App mit dem eigenen Server verbindet (hier hat man den Pfad mit eingefüllter variable gesehen -> mqtt server im debug modus, man muss nur vorher die user für die app anlegen)
                        Charles Proxy - um den ssl traffic mitlesen zu können (generell praktisch wenn es keine api gibt)

                        id 81 = 12V DC
                        id 34 = USB

                        Für xboost:
                        "params": {
                        "xboost": 1,
                        "id": 66
                        }
                        wiedermal 1 oder 0

                        Wechselstrom Ladegeschwindigkeit:
                        "params": {
                        "slowChgPower": 2000,
                        "id": 69
                        }

                        Entlade/Ladezustand:
                        "params": {
                        "maxChgSoc": 100,
                        "id": 49
                        }
                        "params": {
                        "id": 51,
                        "minDsgSoc": 30
                        }

                        Generator:
                        "params": {
                        "closeOilSoc": 80,
                        "id": 53
                        }
                        "params": {
                        "openOilSoc": 27,
                        "id": 52
                        }

                        Autoeingang:
                        "params": {
                        "currMa": 8000,
                        "id": 71
                        }

                        Standby:
                        "params": {
                        "id": 33,
                        "standByMode": 30
                        }

                        Wechselstrom Zeitüberschreitung:
                        "params": {
                        "standByMins": 1440,
                        "id": 153
                        }

                        AC immer eingeschaltet:
                        "params": {
                        "id": 84,
                        "enabled": 1
                        }

                        Der vollständigkeit halber Bildschirmtimeout:
                        "params": {
                        "lcdTime": 300,
                        "id": 39
                        }

                        A haus-automatisierung 2 Replies Last reply Reply Quote 0
                        • A
                          AngelLuck @Netfreak25 last edited by

                          @netfreak25 Wow Danke da hast du dir ja echt viel Arbeit gemacht. Ich habe jetzt sofort leider keine Zeit zum Testen, werde es mir aber die nächsten Tage mal ansehen. Bin schon sehr gespannt.

                          A 1 Reply Last reply Reply Quote 0
                          • A
                            AngelLuck @AngelLuck last edited by AngelLuck

                            Also ich habe das Script mittlerweile angesehen und auch grundsätzlich zum laufen gebracht.
                            Ich habe allerdings noch ein Problem und zwar werden die unterschiedlichen Werte in ein einziges Object als Json gespeichert. Wenn ich den Code richtig verstehe sollte das eigentlich nicht der Fall sein. Sondern für jedes i sollte ein eigenes Objekt im iobroker angelegt werden. Leider bekomme ich das auch nicht korregiert. Vielleicht kann mir hier jemand helfen.

                            Im Grunde brauch ich die Werte auch einzelnd damit ich sie in die InfluxDB und von dort in Grafana bekomme. Ich muss allerdings auch zugeben das ich mit json bisher nie befasst habe vielleicht gibt es hier also auch einen einfacheren Weg um die Daten in die InfluxDB zu bekommen.

                            Damit ihr auch wisst was ich meine. Bei mir wird nur dieses einzige rot Marikierte Objekt angelegt und dort werden wechselnde Json Werte hinterlegt.
                            8b39d830-0d9d-47cb-870d-0614ee7ac5c0-grafik.png

                            mike2507 1 Reply Last reply Reply Quote 0
                            • mike2507
                              mike2507 @AngelLuck last edited by

                              @angelluck darf ich dich fragen welche Einstellungen du im Mqtt Adapter gemacht hast damit du überhaupt Werte bekommst? Habe mir mal die Benutzerdaten mit dem Script besorgt, komme aber irgendwie nicht weiter.

                              Danke

                              A 1 Reply Last reply Reply Quote 0
                              • A
                                AngelLuck @mike2507 last edited by AngelLuck

                                @mike2507 said in Adapter für Ecoflow Einbindung:

                                @angelluck darf ich dich fragen welche Einstellungen du im Mqtt Adapter gemacht hast damit du überhaupt Werte bekommst? Habe mir mal die Benutzerdaten mit dem Script besorgt, komme aber irgendwie nicht weiter.

                                Danke

                                Ich habe tatsächlich auch nur die Benutzerdaten aus dem Script eingetragen. Anfangs habe ich auch keine Werte bekommen. Kann sein das ich den Adapter noch mal neugestartet habe oder irgend so etwas gemacht habe.
                                36aa9b37-a7fb-4687-9a6c-199cee0e49ed-grafik.png

                                3d1f1ec3-45f5-4471-9031-08c612ecccd8-grafik.png

                                Auch ja und wichtig war noch folgende Einträge selbst anzulegen.
                                070933f6-da55-468e-a35f-ae9abb39fbfe-grafik.png

                                mike2507 1 Reply Last reply Reply Quote 0
                                • mike2507
                                  mike2507 @AngelLuck last edited by

                                  @angelluck sagte in Adapter für Ecoflow Einbindung:

                                  @mike2507 said in Adapter für Ecoflow Einbindung:

                                  @angelluck darf ich dich fragen welche Einstellungen du im Mqtt Adapter gemacht hast damit du überhaupt Werte bekommst? Habe mir mal die Benutzerdaten mit dem Script besorgt, komme aber irgendwie nicht weiter.

                                  Danke

                                  Ich habe tatsächlich auch nur die Benutzerdaten aus dem Script eingetragen. Anfangs habe ich auch keine Werte bekommen. Kann sein das ich den Adapter noch mal neugestartet habe oder irgend so etwas gemacht habe.
                                  36aa9b37-a7fb-4687-9a6c-199cee0e49ed-grafik.png

                                  3d1f1ec3-45f5-4471-9031-08c612ecccd8-grafik.png

                                  Auch ja und wichtig war noch folgende Einträge selbst anzulegen.
                                  070933f6-da55-468e-a35f-ae9abb39fbfe-grafik.png

                                  Habe meinen Fehler gefunden,
                                  Hab die Pfade in Subscribe Pattern nicht richtig eingetragen und musste den ganzen iobroker neu starten damit es funktioniert. Mich wundert, das es bei dir mit # als Pfad funktioniert laut @Netfreak25 soll das nicht funktionieren.
                                  Damit du die Werte einzel bekommst musst du dir nur noch das Blockly oder Java Script importieren und anpassen.

                                  Das ein und ausschalten von den Ausgängen hab ich noch nicht richtig verstanden. Vielleicht kann mir da @Netfreak25 noch weiter helfen.

                                  74E78A37-BF69-4C73-BF8B-EF3D78F81D21.jpeg

                                  A 1 Reply Last reply Reply Quote 0
                                  • A
                                    AngelLuck @mike2507 last edited by

                                    @mike2507
                                    Ich habe jetzt auch die Werte im Subscribe Patern geändert. Hatte nicht verstanden das da was rein muss.
                                    Das Blocky Script läuft ja schon bei mir. Sonst hätte ich gar keine Ausgabe im IoBroker. Aber ich bekomme halt mehrere Json Tabellen in einer Variablen gespeichert. Das ist irgendwie ungünstig.

                                    Kannst du mal zeigen wie das bei dir jetzt aussieht im Iobroker also den Teil mit meinem letzten Screenshot? Bei mir sieht es genauso aus wie zu vor.

                                    mike2507 1 Reply Last reply Reply Quote 0
                                    • mike2507
                                      mike2507 @AngelLuck last edited by

                                      @angelluck sagte in Adapter für Ecoflow Einbindung:

                                      @mike2507
                                      Ich habe jetzt auch die Werte im Subscribe Patern geändert. Hatte nicht verstanden das da was rein muss.
                                      Das Blocky Script läuft ja schon bei mir. Sonst hätte ich gar keine Ausgabe im IoBroker. Aber ich bekomme halt mehrere Json Tabellen in einer Variablen gespeichert. Das ist irgendwie ungünstig.

                                      Kannst du mal zeigen wie das bei dir jetzt aussieht im Iobroker also den Teil mit meinem letzten Screenshot? Bei mir sieht es genauso aus wie zu vor.

                                      C3C86BB6-CCF8-4049-BD2C-F29DFFF16F63.jpeg

                                      Du musst aber auch den Ordner in der 0_userdata anlegen den du ganz oben im blockly auswählst damit er dir dort alle Datenpunkte automatisch anlegt.
                                      E5F4B171-9DEE-4B75-9E90-359179B56C0F.jpeg

                                      B7785918-5AFC-4A04-B9D2-AECBD73CEFFD.jpeg

                                      A 1 Reply Last reply Reply Quote 0
                                      • A
                                        AngelLuck @mike2507 last edited by AngelLuck

                                        @mike2507

                                        Bei mir scheint einiges verkehrt zu sein. In das Blocky Script hatte ich die Seriennr. eingetragen nicht diese R331... Nr.

                                        Hatte mir schon gedacht das irgendwas nicht stimmt.

                                        Auf jedenfall haben mir deine Screenshots sehr geholfen, ich glaube jetzt funktioniert es bei mir auch. Danke!

                                        1 Reply Last reply Reply Quote 1
                                        • G
                                          g.polat last edited by

                                          Hallo zusammen,
                                          habe es nun nach den tollen Anleitungen hier ebenfalls zum laufen gebracht. Jedoch bekomme ich bei Mqtt immer :"Disconnected from mqtt.ecoflow.com: undefined" danach wird sofort wieder connectet. Habe schon im Forum gesucht aber nix gefunden, jemand eine Idee?
                                          log.png
                                          mqtt-1.png
                                          mqtt-2.png

                                          1 Reply Last reply Reply Quote 0
                                          • haus-automatisierung
                                            haus-automatisierung Developer Most Active @Netfreak25 last edited by haus-automatisierung

                                            Hallo zusammen, ich lese hier schon fleißig mit und teste parallel. Wahnsinns Arbeit! Danke an @Netfreak25 - da steckt wirklich viel Zeit drin!

                                            Meine MQTT-Verbindung steht und es werden jede Menge Werte erfasst. Aber:

                                            @netfreak25 sagte in Adapter für Ecoflow Einbindung:

                                            AC Enable/Disable
                                            Published nach:
                                            /app/UserID/Seriennummer/thing/property/set

                                            Das funktioniert bei mir nicht. Habe die UserID und die Seriennummer im Topic mehrfach kontrolliert. Muss moduleType je nach angesteuertem Wert angepasst werden? Oder kann man da immer mit 0 arbeiten? Im Status bekommt man ja auch unterschiedliche Infos für alle möglichen Module Types.

                                            Ist es wichtig, wie JSON formatiert ist (Spaces, Tabs, Line Breaks)? Laut Spezifikation sind Whitespaces zwar egal, aber manche implementieren das nicht so super gründlich. Daher die Frage.

                                            Hier noch ein Script, mit welchem ich alle Datenpunkte automatisch anlege und aktualisiere. Die ID muss natürlich angepasst werden.

                                            const prefix = '0_userdata.0.ecoflow';
                                            const valueCache = {};
                                            
                                            on({ id: 'mqtt.1.app.device.property.R621XXXXX', change: 'ne', ack: true }, async (obj) => {
                                                try {
                                                    const msgObj = JSON.parse(obj.state.val);
                                            
                                                    for (let [key, value] of Object.entries(msgObj.params)) {
                                                        const vType = typeof value;
                                                        const isObject = vType === 'object';
                                            
                                                        if (!await existsObjectAsync(`${prefix}.${key}`)) {
                                                            await createStateAsync(`${prefix}.${key}`, {
                                                                name: key,
                                                                role: isObject ? 'json' : 'state',
                                                                type: isObject ? 'string' : vType,
                                                                read: true,
                                                                write: false
                                                            });
                                                        }
                                            
                                                        if (isObject) {
                                                            value = JSON.stringify(value);
                                                        }
                                            
                                                        if (!Object.prototype.hasOwnProperty.call(valueCache, key) || valueCache[key] !== value) {
                                                            await setStateAsync(`${prefix}.${key}`, { val: value, ack: true });
                                                            valueCache[key] = value;
                                                        }
                                                    }
                                                } catch (err) {
                                                    console.error(JSON.stringify(err));
                                                }
                                            });
                                            
                                            haus-automatisierung 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            673
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            42
                                            212
                                            46305
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo