Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Shelly Verbrauchsdaten direkt aus der Ecoflow Cloud holen

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    484

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

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

Shelly Verbrauchsdaten direkt aus der Ecoflow Cloud holen

Geplant Angeheftet Gesperrt Verschoben JavaScript
17 Beiträge 6 Kommentatoren 4.3k Aufrufe 6 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.
  • D Offline
    D Offline
    dpleiss
    schrieb am zuletzt editiert von
    #1

    Ich habe zwei Tage gebraucht, um das ecoflow-connector-script-zur-dynamischen-leistungsanpassung zu verstehen.
    Danke an Markus Walber @Waly_de für die ganzen Grundlagen-Arbeit und die vielen Features in seinem Skript.
    Ich habe mir dann einen Shelly 3EM zugelegt und wiederum einen Tag gebraucht, um den einzubauen und mit dem Shelly Adapter im IOBroker zusammenzubringen. IOBroker läuft bei mir auf einem ur-alten MacBook Air, mit altem System und entsprechend älterem Docker.
    Zuguterletzt habe ich es dann hingekriegt, dass Shelly über MQTT mit dem Shelly Adapter im IOBroker im Docker redet. Das bringt allerdings mit sich, dass Shelly nicht mehr mit der Shelly Cloud reden kann.
    (Mit erheblichem Terminal-Fu habe ich inzwischen IOBroker auch nativ, ohne Docker, auf dem alten MacBook Air und auf einem M2 MacBook Air zum Laufen gebracht)

    Am nächsten Tag begann ich nachzudenken
    Seit kurzem unterstützt EcoFlow eine Integration von Shelly Geräten, dies es zumindest erlaubt, die Verbrauchsdaten der z.B. Shelly 3EM in der EcoFlow App zu sehen. Es gibt noch keine Unterstützung, damit wirklich direkt den PowerStream zu steuern, aber das wird wohl früher oder später kommen. :thinking_face: Wenn es nun aber doch so ist, dass praktisch alles was die EcoFlow App zeigt, vom EcoFlow MQTT Server kommt, dann könnte es doch eigentlich auch sein, dass man die in der App angezeigten Shelly Daten vom EcoFlow MQTT Server holen kann. Dann könnte mein Shelly 3EM in der Shelly-Cloud bleiben. Der Shelly-Adapter vom IOBroker könnte komplett aussen vor bleiben und - zumindest mit Shelly Geräten könnte alles komplett über die EcoFlow Cloud abgehandelt werden.

    Also begann ich zu experimentieren
    Ich konnte wirklich Shelly in EcoFlow als Plattform von Drittanbietern verknüpfen und dann meinen Shelly 3EM als verknüpftes Gerät auswählen. (Anleitung folgt unten)
    Der erscheint dann in der App bei Geräten und wenn man ihn anklickt erscheinen die entsprechenden Verbrauchswerte.
    Dabei hat sich EcoFlow nur den Spaß erlaubt, dass das Ganze nur funktioniert, wenn der Schalter im Shelly 3EM eingeschaltet wird. Sonst erscheinen in der App nur lauter Nullen. Ich weiß nicht, was die sich dabei gedacht haben; der Schalter bedient ein physisches Relais im Shelly 3EM, es ist nicht irgendein Software-Schalter im API. Jedenfalls, solange der Schalter im Shelly an ist, erscheinen in der EcoFlow App die gleichen Zahlen wie in der Shelly App.
    In der EcoFlow App erscheint der Shelly 3EM nun bei „Geräten“ mit einer eigenen Pseudo-Seriennummer.
    Nun habe ich diese Seriennummer genommen und im Skript von @Waly_de ein SmartPlug mit dieser Seriennummer konfiguriert.

    Und siehe da
    Plötzlich erscheinen in den IOBroker Objekten unter

    0_userdata.0.ecoflow.app_device_property_<ecoflow-seriennummer>.data.params
    

    Daten, die im Großen und Ganzen denen entsprechen, die der Shelly-Adapter unter

    shelly.0.SHEM-3#<shelly-seriennummer>#1
    

    ablegt. Das Zusammenrechnen der 3 Phasen wurde auch schon erledigt, und unter

    0_userdata.0.ecoflow.app_device_property_<ecoflow-seriennummer>.data.params.total_power
    

    erscheint genau der Hausverbrauchs-Wert den wir brauchen! Es geht! Und das ganz ohne den Shelly Adapter im IOBroker und dessen Port-Weiterleitungen im Docker, und ohne Störung der Shelly Cloud.

    Beim allerersten Lauf des Skripts wird das Objekt mit den Shelly States überhaupt erst angelegt, dann wenn das erste Mal Daten vom EcoFlow-Shelly reinkommen. Vorher existiert das Objekt noch nicht. Es gibt nun eine Stelle im Skript, die anfänglich die History für dieses Objekt anlegt. Das kann es beim allerersten Lauf aber noch nicht tun, weil das Objekt noch nicht existiert. Daher funktioniert das Skript beim allerersten Aufruf noch nicht. Abhilfe: Beim allerersten Lauf des Skripts abwarten, bis das Objekt mit den Shelly Daten auftaucht. Dann einfach das Skript noch einmal re-starten, dann funktioniert es! Es erscheinen zwar immer wieder Warnungen „Invalid selector: selector must be a string but is of type undefined“, das tut der Funktion aber keinen Abbruch.

    Fazit
    Es ist also möglich, den von Shelly gemessenen Stromverbrauch direkt mit den Ecoflow-Daten zu holen.
    Das heisst, damit ist eine dynamische Anpassung möglich, komplett ohne den IOBroker Shelly Adapter und dessen nicht unbedingt triviale Konfiguration (insbesondere in einem nicht-Linux-Docker).
    Ecoflow holt sich die Daten aus der Shelly Cloud. Damit gibt es dann auch keinen Konflikt mehr zwischen entweder Shelly-Adapter mit MQTT oder Shelly Cloud.
    Der kontrollierende IOBroker muss dafür nichtmal zwingend im Heimnetzwerk laufen!

    Anleitung

    • es wird vorausgesetzt, dass der Shelly 3EM mit der Shelly Cloud verbunden ist
    • und eine Installation von IOBroker mit den Adaptern „History“ und „Skriptausführung“ entsprechend der Anleitung zum Skript von @Waly_de
      EcoFlow App
    • In der EcoFlow App unter „Profil“ auf „Verbindung von Plattformen von Drittanbietern“ gehen
      IMG_7889.jpeg
    • dort „Shelly“ auswählen (dieser Tage ist noch „Tapo“ hinzugekommen, da ist man wohl fleißig bei EcoFlow)
      IMG_7890.jpeg
    • den nächsten Schritten folgen, mit Angabe der Zugangsdaten zur Shelly Cloud. (Ich habe beide Berechtigungen erteilt, entscheidend ist wohl nur die Leseberechtigung)
    • das Gerät auswählen, das den Hausstromverbrauch misst, und alles bestätigen
      IMG_7891.jpeg
    • in der EcoFlow App unter „Geräte“ taucht dann das Gerät neu auf
      IMG_7892.jpeg
    • die von EcoFlow vergebene Seriennummer bei diesem Gerät notieren
    • auf das Gerät tippen - die Verbrauchsdaten erscheinen!
      IMG_7893.jpeg
    • wenn die Werte alle 0 sind oder sich nicht ändern: In der Shelly App oder in der Shelly Cloud den Schalter einschalten; evtl. muss man auch ein bisschen abwarten, bis die Werte sich durch all die Clouds gewühlt haben.
      IOBroker
    • Im Skript von @Waly_de eintragen:
    SmartmeterID: "0_userdata.0.ecoflow.app_device_property_<notierteSeriennummer>.data.params.total_power",     // State, der den aktuellen Gesamtverbrauch in Watt anzeigt
    
    • und bei den „seriennummern“ einen Abschnitt für eine SmartPlug, mit der notierten Seriennummer:
    {
                seriennummer: "<notierteSeriennummer>“,
                name: "Shelly 3EM",
                typ: "SM",
                subscribe: true,                            // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt
            },
    
    • das Skript einmal starten und in den IOBroker Objekten nachsehen, bis
    0_userdata.0.ecoflow.app_device_property_<notierteSeriennummer>
    

    erscheint.

    • dann das Skript noch einmal beenden und neu starten
    • jetzt sollte es beginnen, den PowerStream entsprechend der Konfiguration mit den Shelly-Daten zu regulieren; auch hier kann es wieder ein bisschen dauern, bis alle Daten eingetrudelt sind

    Das vereinfachte Skript
    Mein persönlicher Anwendungsfall ist einfach nur einen einzigen PowerStream steuern, auf Grundlage der Daten eines Shelly 3EM.
    Da kommt mir das vereinfachte Skript aus automatisierte-einspeisung-für-powerstream von @cptmozz (ebenfalls vielen Dank!) genau recht, abgespeckt auf genau diesen Anwendungsfall, den wahrscheinlich die meisten so haben: eben genau einen PowerStream aufgrund einer Hausstrom-Messung zu steuern.
    Auch dieses Skript lässt sich mit den Shelly Verbrauchsdaten direkt von EcoFlow verwenden: Indem man das Skript von @Waly_de mit ausgeschalteter Regulation laufen lässt, liefert es die Shelly-Daten ins oben angegebene Objekt. Dieses kann man im CptMozz Skript konfigurieren und dann beide Skripte gleichzeitig laufen lassen. Dann liefert das @Waly_de - Skript die Verbrauchsdaten und das @CptMozz - Skript steuert! Das funktioniert zwar, ist aber nicht schön und könnte viel ressourcenschonender ablaufen, wenn das Abrufen der Shelly-Daten ins @CptMozz - Skript integriert wird. Dann müssen nicht zwei Skripte parallel die EcoFlow Cloud kontaktieren. Ich denke, das werde ich mir am Wochenende mal vornehmen.

    (Viel Vergnügen beim Experimentieren - ich selber habe nur eine Shelly 3EM installiert und kann keine Aussagen zu anderen Shelly-Produkten in der Ecoflow Integration treffen.)

    D B 2 Antworten Letzte Antwort
    0
    • D dpleiss

      Ich habe zwei Tage gebraucht, um das ecoflow-connector-script-zur-dynamischen-leistungsanpassung zu verstehen.
      Danke an Markus Walber @Waly_de für die ganzen Grundlagen-Arbeit und die vielen Features in seinem Skript.
      Ich habe mir dann einen Shelly 3EM zugelegt und wiederum einen Tag gebraucht, um den einzubauen und mit dem Shelly Adapter im IOBroker zusammenzubringen. IOBroker läuft bei mir auf einem ur-alten MacBook Air, mit altem System und entsprechend älterem Docker.
      Zuguterletzt habe ich es dann hingekriegt, dass Shelly über MQTT mit dem Shelly Adapter im IOBroker im Docker redet. Das bringt allerdings mit sich, dass Shelly nicht mehr mit der Shelly Cloud reden kann.
      (Mit erheblichem Terminal-Fu habe ich inzwischen IOBroker auch nativ, ohne Docker, auf dem alten MacBook Air und auf einem M2 MacBook Air zum Laufen gebracht)

      Am nächsten Tag begann ich nachzudenken
      Seit kurzem unterstützt EcoFlow eine Integration von Shelly Geräten, dies es zumindest erlaubt, die Verbrauchsdaten der z.B. Shelly 3EM in der EcoFlow App zu sehen. Es gibt noch keine Unterstützung, damit wirklich direkt den PowerStream zu steuern, aber das wird wohl früher oder später kommen. :thinking_face: Wenn es nun aber doch so ist, dass praktisch alles was die EcoFlow App zeigt, vom EcoFlow MQTT Server kommt, dann könnte es doch eigentlich auch sein, dass man die in der App angezeigten Shelly Daten vom EcoFlow MQTT Server holen kann. Dann könnte mein Shelly 3EM in der Shelly-Cloud bleiben. Der Shelly-Adapter vom IOBroker könnte komplett aussen vor bleiben und - zumindest mit Shelly Geräten könnte alles komplett über die EcoFlow Cloud abgehandelt werden.

      Also begann ich zu experimentieren
      Ich konnte wirklich Shelly in EcoFlow als Plattform von Drittanbietern verknüpfen und dann meinen Shelly 3EM als verknüpftes Gerät auswählen. (Anleitung folgt unten)
      Der erscheint dann in der App bei Geräten und wenn man ihn anklickt erscheinen die entsprechenden Verbrauchswerte.
      Dabei hat sich EcoFlow nur den Spaß erlaubt, dass das Ganze nur funktioniert, wenn der Schalter im Shelly 3EM eingeschaltet wird. Sonst erscheinen in der App nur lauter Nullen. Ich weiß nicht, was die sich dabei gedacht haben; der Schalter bedient ein physisches Relais im Shelly 3EM, es ist nicht irgendein Software-Schalter im API. Jedenfalls, solange der Schalter im Shelly an ist, erscheinen in der EcoFlow App die gleichen Zahlen wie in der Shelly App.
      In der EcoFlow App erscheint der Shelly 3EM nun bei „Geräten“ mit einer eigenen Pseudo-Seriennummer.
      Nun habe ich diese Seriennummer genommen und im Skript von @Waly_de ein SmartPlug mit dieser Seriennummer konfiguriert.

      Und siehe da
      Plötzlich erscheinen in den IOBroker Objekten unter

      0_userdata.0.ecoflow.app_device_property_<ecoflow-seriennummer>.data.params
      

      Daten, die im Großen und Ganzen denen entsprechen, die der Shelly-Adapter unter

      shelly.0.SHEM-3#<shelly-seriennummer>#1
      

      ablegt. Das Zusammenrechnen der 3 Phasen wurde auch schon erledigt, und unter

      0_userdata.0.ecoflow.app_device_property_<ecoflow-seriennummer>.data.params.total_power
      

      erscheint genau der Hausverbrauchs-Wert den wir brauchen! Es geht! Und das ganz ohne den Shelly Adapter im IOBroker und dessen Port-Weiterleitungen im Docker, und ohne Störung der Shelly Cloud.

      Beim allerersten Lauf des Skripts wird das Objekt mit den Shelly States überhaupt erst angelegt, dann wenn das erste Mal Daten vom EcoFlow-Shelly reinkommen. Vorher existiert das Objekt noch nicht. Es gibt nun eine Stelle im Skript, die anfänglich die History für dieses Objekt anlegt. Das kann es beim allerersten Lauf aber noch nicht tun, weil das Objekt noch nicht existiert. Daher funktioniert das Skript beim allerersten Aufruf noch nicht. Abhilfe: Beim allerersten Lauf des Skripts abwarten, bis das Objekt mit den Shelly Daten auftaucht. Dann einfach das Skript noch einmal re-starten, dann funktioniert es! Es erscheinen zwar immer wieder Warnungen „Invalid selector: selector must be a string but is of type undefined“, das tut der Funktion aber keinen Abbruch.

      Fazit
      Es ist also möglich, den von Shelly gemessenen Stromverbrauch direkt mit den Ecoflow-Daten zu holen.
      Das heisst, damit ist eine dynamische Anpassung möglich, komplett ohne den IOBroker Shelly Adapter und dessen nicht unbedingt triviale Konfiguration (insbesondere in einem nicht-Linux-Docker).
      Ecoflow holt sich die Daten aus der Shelly Cloud. Damit gibt es dann auch keinen Konflikt mehr zwischen entweder Shelly-Adapter mit MQTT oder Shelly Cloud.
      Der kontrollierende IOBroker muss dafür nichtmal zwingend im Heimnetzwerk laufen!

      Anleitung

      • es wird vorausgesetzt, dass der Shelly 3EM mit der Shelly Cloud verbunden ist
      • und eine Installation von IOBroker mit den Adaptern „History“ und „Skriptausführung“ entsprechend der Anleitung zum Skript von @Waly_de
        EcoFlow App
      • In der EcoFlow App unter „Profil“ auf „Verbindung von Plattformen von Drittanbietern“ gehen
        IMG_7889.jpeg
      • dort „Shelly“ auswählen (dieser Tage ist noch „Tapo“ hinzugekommen, da ist man wohl fleißig bei EcoFlow)
        IMG_7890.jpeg
      • den nächsten Schritten folgen, mit Angabe der Zugangsdaten zur Shelly Cloud. (Ich habe beide Berechtigungen erteilt, entscheidend ist wohl nur die Leseberechtigung)
      • das Gerät auswählen, das den Hausstromverbrauch misst, und alles bestätigen
        IMG_7891.jpeg
      • in der EcoFlow App unter „Geräte“ taucht dann das Gerät neu auf
        IMG_7892.jpeg
      • die von EcoFlow vergebene Seriennummer bei diesem Gerät notieren
      • auf das Gerät tippen - die Verbrauchsdaten erscheinen!
        IMG_7893.jpeg
      • wenn die Werte alle 0 sind oder sich nicht ändern: In der Shelly App oder in der Shelly Cloud den Schalter einschalten; evtl. muss man auch ein bisschen abwarten, bis die Werte sich durch all die Clouds gewühlt haben.
        IOBroker
      • Im Skript von @Waly_de eintragen:
      SmartmeterID: "0_userdata.0.ecoflow.app_device_property_<notierteSeriennummer>.data.params.total_power",     // State, der den aktuellen Gesamtverbrauch in Watt anzeigt
      
      • und bei den „seriennummern“ einen Abschnitt für eine SmartPlug, mit der notierten Seriennummer:
      {
                  seriennummer: "<notierteSeriennummer>“,
                  name: "Shelly 3EM",
                  typ: "SM",
                  subscribe: true,                            // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt
              },
      
      • das Skript einmal starten und in den IOBroker Objekten nachsehen, bis
      0_userdata.0.ecoflow.app_device_property_<notierteSeriennummer>
      

      erscheint.

      • dann das Skript noch einmal beenden und neu starten
      • jetzt sollte es beginnen, den PowerStream entsprechend der Konfiguration mit den Shelly-Daten zu regulieren; auch hier kann es wieder ein bisschen dauern, bis alle Daten eingetrudelt sind

      Das vereinfachte Skript
      Mein persönlicher Anwendungsfall ist einfach nur einen einzigen PowerStream steuern, auf Grundlage der Daten eines Shelly 3EM.
      Da kommt mir das vereinfachte Skript aus automatisierte-einspeisung-für-powerstream von @cptmozz (ebenfalls vielen Dank!) genau recht, abgespeckt auf genau diesen Anwendungsfall, den wahrscheinlich die meisten so haben: eben genau einen PowerStream aufgrund einer Hausstrom-Messung zu steuern.
      Auch dieses Skript lässt sich mit den Shelly Verbrauchsdaten direkt von EcoFlow verwenden: Indem man das Skript von @Waly_de mit ausgeschalteter Regulation laufen lässt, liefert es die Shelly-Daten ins oben angegebene Objekt. Dieses kann man im CptMozz Skript konfigurieren und dann beide Skripte gleichzeitig laufen lassen. Dann liefert das @Waly_de - Skript die Verbrauchsdaten und das @CptMozz - Skript steuert! Das funktioniert zwar, ist aber nicht schön und könnte viel ressourcenschonender ablaufen, wenn das Abrufen der Shelly-Daten ins @CptMozz - Skript integriert wird. Dann müssen nicht zwei Skripte parallel die EcoFlow Cloud kontaktieren. Ich denke, das werde ich mir am Wochenende mal vornehmen.

      (Viel Vergnügen beim Experimentieren - ich selber habe nur eine Shelly 3EM installiert und kann keine Aussagen zu anderen Shelly-Produkten in der Ecoflow Integration treffen.)

      D Offline
      D Offline
      dpleiss
      schrieb am zuletzt editiert von
      #2

      @dpleiss seit ganz Kurzem hat Ecoflow wohl diese unselige Abhängigkeit vom Schalter des Shelly 3EM korrigiert. Jetzt kommen die Daten immer, unabhängig davon, ob das Relais an- oder aus-geschaltet ist.

      1 Antwort Letzte Antwort
      0
      • F Offline
        F Offline
        foxthefox
        Developer
        schrieb am zuletzt editiert von
        #3

        @dpleiss
        Hast du eine Chance das ankommende Telegramm im JSON Format zu posten? Dann würde ich die shellys auch im ecoflow-mqtt Adapter mit allen Werten als Struktur und Gerät mit aufnehmen.

        Adapterüberblick: Profil Github;

        Wenn der Adapter gefällt und nützlich ist, bitte ins Repo gehen und Star setzen. Danke

        Ein Aufruf: video

        D 1 Antwort Letzte Antwort
        1
        • F foxthefox

          @dpleiss
          Hast du eine Chance das ankommende Telegramm im JSON Format zu posten? Dann würde ich die shellys auch im ecoflow-mqtt Adapter mit allen Werten als Struktur und Gerät mit aufnehmen.

          D Offline
          D Offline
          dpleiss
          schrieb am zuletzt editiert von dpleiss
          #4

          @foxthefox die Shelly Daten kommen gleich als JSON in der MQTT Message an, müssen also nicht erst decodiert werden.
          Hier ein Beispiel:
          shelly.json
          Der Wert der uns interessiert ist params.total_power - Angabe in Watt.

          F 2 Antworten Letzte Antwort
          2
          • D dpleiss

            @foxthefox die Shelly Daten kommen gleich als JSON in der MQTT Message an, müssen also nicht erst decodiert werden.
            Hier ein Beispiel:
            shelly.json
            Der Wert der uns interessiert ist params.total_power - Angabe in Watt.

            F Offline
            F Offline
            foxthefox
            Developer
            schrieb am zuletzt editiert von
            #5

            @dpleiss
            Danke.

            Da wird ganz schön viel verschickt und auch in einer etwas anderen Struktur, aber kein Problem.

            Wie oft kommen die Daten rein? alle 1sec?

            Adapterüberblick: Profil Github;

            Wenn der Adapter gefällt und nützlich ist, bitte ins Repo gehen und Star setzen. Danke

            Ein Aufruf: video

            D 1 Antwort Letzte Antwort
            0
            • B Offline
              B Offline
              BastiB
              schrieb am zuletzt editiert von
              #6

              Eine tolle Idee, mir gefällt der Ansatz, dass ein Smartplug simuliert wird und nicht die Grundlast verstellt wird.

              Würde es glatt ausprobieren, aber ich nutze den Shelly Pro, der wird noch nicht von EcoFlow unterstützt.

              Bis dahin läuft das Script von Markus sehr gut.

              F D 2 Antworten Letzte Antwort
              0
              • B BastiB

                Eine tolle Idee, mir gefällt der Ansatz, dass ein Smartplug simuliert wird und nicht die Grundlast verstellt wird.

                Würde es glatt ausprobieren, aber ich nutze den Shelly Pro, der wird noch nicht von EcoFlow unterstützt.

                Bis dahin läuft das Script von Markus sehr gut.

                F Offline
                F Offline
                foxthefox
                Developer
                schrieb am zuletzt editiert von
                #7

                @bastib
                ein fake-shelly wäre der Hit, man könnte die Leistungen der Verbraucher zusammenfassen und darüber zu, powerstream als variable Last injizieren.
                Dazu müsste allerdings auch mehr als die Anzeige bei EF implementiert sein.

                Adapterüberblick: Profil Github;

                Wenn der Adapter gefällt und nützlich ist, bitte ins Repo gehen und Star setzen. Danke

                Ein Aufruf: video

                1 Antwort Letzte Antwort
                1
                • D dpleiss

                  @foxthefox die Shelly Daten kommen gleich als JSON in der MQTT Message an, müssen also nicht erst decodiert werden.
                  Hier ein Beispiel:
                  shelly.json
                  Der Wert der uns interessiert ist params.total_power - Angabe in Watt.

                  F Offline
                  F Offline
                  foxthefox
                  Developer
                  schrieb am zuletzt editiert von foxthefox
                  #8

                  @dpleiss

                  Ich habe den shelly als Gerät nun im ecoflow-mqtt Adapter verfügbar gemacht.
                  Wenn es dir möglich wäre, würde mich über einen Test deinerseits freuen.
                  Ich habe leider kein Shelly3EM zum messen der Leistung an der Zuleitung.

                  Edit:
                  Adapter version wäre 0.0.32

                  Adapterüberblick: Profil Github;

                  Wenn der Adapter gefällt und nützlich ist, bitte ins Repo gehen und Star setzen. Danke

                  Ein Aufruf: video

                  D 1 Antwort Letzte Antwort
                  0
                  • B BastiB

                    Eine tolle Idee, mir gefällt der Ansatz, dass ein Smartplug simuliert wird und nicht die Grundlast verstellt wird.

                    Würde es glatt ausprobieren, aber ich nutze den Shelly Pro, der wird noch nicht von EcoFlow unterstützt.

                    Bis dahin läuft das Script von Markus sehr gut.

                    D Offline
                    D Offline
                    dpleiss
                    schrieb am zuletzt editiert von
                    #9

                    @bastib hier wird kein Smartplug simuliert, auch hier wird die Grundlast eingestellt.
                    Der Fall liegt bei der Messung des gesamten Wohnungs-Strombedarfs (egal ob mit IOBroker Shelly Adapter oder ohne) auch anders, weil der ja durch die Einspeisung verringert wird. Die Einspeisung ist dynamisch so nachzuregeln, dass im Idealfall vom Shelly 0 gemessen wird. Daher kann so ein Shelly o.ä. nicht einfach genau so wie ein Smartplug verwendet werden.

                    1 Antwort Letzte Antwort
                    1
                    • F foxthefox

                      @dpleiss
                      Danke.

                      Da wird ganz schön viel verschickt und auch in einer etwas anderen Struktur, aber kein Problem.

                      Wie oft kommen die Daten rein? alle 1sec?

                      D Offline
                      D Offline
                      dpleiss
                      schrieb am zuletzt editiert von
                      #10

                      @foxthefox ich glaube es kommen auch nur Daten rein wenn sie sich ändern.

                      1 Antwort Letzte Antwort
                      0
                      • F foxthefox

                        @dpleiss

                        Ich habe den shelly als Gerät nun im ecoflow-mqtt Adapter verfügbar gemacht.
                        Wenn es dir möglich wäre, würde mich über einen Test deinerseits freuen.
                        Ich habe leider kein Shelly3EM zum messen der Leistung an der Zuleitung.

                        Edit:
                        Adapter version wäre 0.0.32

                        D Offline
                        D Offline
                        dpleiss
                        schrieb am zuletzt editiert von
                        #11

                        @foxthefox said in Shelly Verbrauchsdaten direkt aus der Ecoflow Cloud holen:

                        ecoflow-mqtt Adapter

                        Bildschirmfoto 2024-06-02 um 15.27.28.png

                        good job!

                        F 1 Antwort Letzte Antwort
                        0
                        • D dpleiss

                          @foxthefox said in Shelly Verbrauchsdaten direkt aus der Ecoflow Cloud holen:

                          ecoflow-mqtt Adapter

                          Bildschirmfoto 2024-06-02 um 15.27.28.png

                          good job!

                          F Offline
                          F Offline
                          foxthefox
                          Developer
                          schrieb am zuletzt editiert von
                          #12

                          @dpleiss sagte in Shelly Verbrauchsdaten direkt aus der Ecoflow Cloud holen:

                          @foxthefox said in Shelly Verbrauchsdaten direkt aus der Ecoflow Cloud holen:

                          ecoflow-mqtt Adapter

                          Bildschirmfoto 2024-06-02 um 15.27.28.png

                          good job!

                          Danke für den Test!

                          Die Basis ist geschaffen, wenn jemand einen ShellyEM oder ShellyPlug mit EF gekoppelt hat, dann bräuchte ich wieder ein JSON.
                          Anpassungen dürften dann nur gering sein.

                          Adapterüberblick: Profil Github;

                          Wenn der Adapter gefällt und nützlich ist, bitte ins Repo gehen und Star setzen. Danke

                          Ein Aufruf: video

                          I 1 Antwort Letzte Antwort
                          1
                          • F foxthefox

                            @dpleiss sagte in Shelly Verbrauchsdaten direkt aus der Ecoflow Cloud holen:

                            @foxthefox said in Shelly Verbrauchsdaten direkt aus der Ecoflow Cloud holen:

                            ecoflow-mqtt Adapter

                            Bildschirmfoto 2024-06-02 um 15.27.28.png

                            good job!

                            Danke für den Test!

                            Die Basis ist geschaffen, wenn jemand einen ShellyEM oder ShellyPlug mit EF gekoppelt hat, dann bräuchte ich wieder ein JSON.
                            Anpassungen dürften dann nur gering sein.

                            I Offline
                            I Offline
                            IbrokeO
                            schrieb am zuletzt editiert von IbrokeO
                            #13

                            Wie groß ist den die Regellatenz des Shelly im Vergleich zum Smartplug, kann hier jemand eine Aussage treffen?

                            Meinem Verständtnis nach läuft ja alles über die Cloud bei resultierend hoher Latenz und teilweise unzuverlässiger Response wenn die EF Server mal wieder überlastet sind.

                            Eine Möglichkeit einen PS direkt lokal über NW anzusteuern gibt es ja nicht, oder?

                            D 1 Antwort Letzte Antwort
                            0
                            • I IbrokeO

                              Wie groß ist den die Regellatenz des Shelly im Vergleich zum Smartplug, kann hier jemand eine Aussage treffen?

                              Meinem Verständtnis nach läuft ja alles über die Cloud bei resultierend hoher Latenz und teilweise unzuverlässiger Response wenn die EF Server mal wieder überlastet sind.

                              Eine Möglichkeit einen PS direkt lokal über NW anzusteuern gibt es ja nicht, oder?

                              D Offline
                              D Offline
                              dpleiss
                              schrieb am zuletzt editiert von
                              #14

                              @ibrokeo Ja, läuft alles über die Cloud. Eine Möglichkeit zur direkten Ansteuerung im lokalen Netz ist mir nicht bekannt.

                              1 Antwort Letzte Antwort
                              0
                              • E Offline
                                E Offline
                                Educatdcc
                                schrieb am zuletzt editiert von
                                #15

                                Moini,

                                ich bin noch ziemlich neu bei ioBroker...

                                aktuell nutze ich die Daten meines Tibber-Pulse in Verbindung mit dem Script zur dynamischen Einspeisung im ioBroker. Das funktioniert soweit ganz gut, aber wenn Tibber irgendwelche Updates macht, bekomme ich keine Daten. Ausserdem erscheint mir der Lesekopf etwas träge...
                                Ich habe mir eine Shelly 3em gekauft und installiert. Die Daten scheinen deutlich besser und schneller zu sein.
                                Ich würde gerne die Daten meiner Shelly 3em im io-Broker zum Reglen meiner Powerstreams verwenden.

                                Leider bekomme ich das nicht hin, die Zeile für den aktuellen Stromverbrauch zeigt sich bei mir nicht...

                                Die direkte Regelung von Ecoflow funktioniert auch sehr gut, hat aber auch Nachteile. Im ioBroker werden die Akkus im Serialmodus nach ihrem Ladestand entsprechend entladen, was zu einem einheitlicheren Akkustand führt. Bei Ecoflow werden alle Akkus gleich belastet, so dass der Akku mit dem geringsten Akkustand als Erstes leer ist.

                                Wer hat Tips für mich?

                                Liebe Grüße aus dem Norden

                                Christian

                                F 1 Antwort Letzte Antwort
                                0
                                • E Educatdcc

                                  Moini,

                                  ich bin noch ziemlich neu bei ioBroker...

                                  aktuell nutze ich die Daten meines Tibber-Pulse in Verbindung mit dem Script zur dynamischen Einspeisung im ioBroker. Das funktioniert soweit ganz gut, aber wenn Tibber irgendwelche Updates macht, bekomme ich keine Daten. Ausserdem erscheint mir der Lesekopf etwas träge...
                                  Ich habe mir eine Shelly 3em gekauft und installiert. Die Daten scheinen deutlich besser und schneller zu sein.
                                  Ich würde gerne die Daten meiner Shelly 3em im io-Broker zum Reglen meiner Powerstreams verwenden.

                                  Leider bekomme ich das nicht hin, die Zeile für den aktuellen Stromverbrauch zeigt sich bei mir nicht...

                                  Die direkte Regelung von Ecoflow funktioniert auch sehr gut, hat aber auch Nachteile. Im ioBroker werden die Akkus im Serialmodus nach ihrem Ladestand entsprechend entladen, was zu einem einheitlicheren Akkustand führt. Bei Ecoflow werden alle Akkus gleich belastet, so dass der Akku mit dem geringsten Akkustand als Erstes leer ist.

                                  Wer hat Tips für mich?

                                  Liebe Grüße aus dem Norden

                                  Christian

                                  F Offline
                                  F Offline
                                  foxthefox
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #16

                                  @educatdcc
                                  Das hier beschriebene Auslesen ist für den Fall, dass der Shelly an EF gekoppelt ist. Dann taucht er als topic bei EF mit auf und kann somit abonniert werden.
                                  Für alle anderen Fälle entweder Shelly Adapter oder den MQTT im Shelly nutzen.

                                  Adapterüberblick: Profil Github;

                                  Wenn der Adapter gefällt und nützlich ist, bitte ins Repo gehen und Star setzen. Danke

                                  Ein Aufruf: video

                                  1 Antwort Letzte Antwort
                                  0
                                  • D dpleiss

                                    Ich habe zwei Tage gebraucht, um das ecoflow-connector-script-zur-dynamischen-leistungsanpassung zu verstehen.
                                    Danke an Markus Walber @Waly_de für die ganzen Grundlagen-Arbeit und die vielen Features in seinem Skript.
                                    Ich habe mir dann einen Shelly 3EM zugelegt und wiederum einen Tag gebraucht, um den einzubauen und mit dem Shelly Adapter im IOBroker zusammenzubringen. IOBroker läuft bei mir auf einem ur-alten MacBook Air, mit altem System und entsprechend älterem Docker.
                                    Zuguterletzt habe ich es dann hingekriegt, dass Shelly über MQTT mit dem Shelly Adapter im IOBroker im Docker redet. Das bringt allerdings mit sich, dass Shelly nicht mehr mit der Shelly Cloud reden kann.
                                    (Mit erheblichem Terminal-Fu habe ich inzwischen IOBroker auch nativ, ohne Docker, auf dem alten MacBook Air und auf einem M2 MacBook Air zum Laufen gebracht)

                                    Am nächsten Tag begann ich nachzudenken
                                    Seit kurzem unterstützt EcoFlow eine Integration von Shelly Geräten, dies es zumindest erlaubt, die Verbrauchsdaten der z.B. Shelly 3EM in der EcoFlow App zu sehen. Es gibt noch keine Unterstützung, damit wirklich direkt den PowerStream zu steuern, aber das wird wohl früher oder später kommen. :thinking_face: Wenn es nun aber doch so ist, dass praktisch alles was die EcoFlow App zeigt, vom EcoFlow MQTT Server kommt, dann könnte es doch eigentlich auch sein, dass man die in der App angezeigten Shelly Daten vom EcoFlow MQTT Server holen kann. Dann könnte mein Shelly 3EM in der Shelly-Cloud bleiben. Der Shelly-Adapter vom IOBroker könnte komplett aussen vor bleiben und - zumindest mit Shelly Geräten könnte alles komplett über die EcoFlow Cloud abgehandelt werden.

                                    Also begann ich zu experimentieren
                                    Ich konnte wirklich Shelly in EcoFlow als Plattform von Drittanbietern verknüpfen und dann meinen Shelly 3EM als verknüpftes Gerät auswählen. (Anleitung folgt unten)
                                    Der erscheint dann in der App bei Geräten und wenn man ihn anklickt erscheinen die entsprechenden Verbrauchswerte.
                                    Dabei hat sich EcoFlow nur den Spaß erlaubt, dass das Ganze nur funktioniert, wenn der Schalter im Shelly 3EM eingeschaltet wird. Sonst erscheinen in der App nur lauter Nullen. Ich weiß nicht, was die sich dabei gedacht haben; der Schalter bedient ein physisches Relais im Shelly 3EM, es ist nicht irgendein Software-Schalter im API. Jedenfalls, solange der Schalter im Shelly an ist, erscheinen in der EcoFlow App die gleichen Zahlen wie in der Shelly App.
                                    In der EcoFlow App erscheint der Shelly 3EM nun bei „Geräten“ mit einer eigenen Pseudo-Seriennummer.
                                    Nun habe ich diese Seriennummer genommen und im Skript von @Waly_de ein SmartPlug mit dieser Seriennummer konfiguriert.

                                    Und siehe da
                                    Plötzlich erscheinen in den IOBroker Objekten unter

                                    0_userdata.0.ecoflow.app_device_property_<ecoflow-seriennummer>.data.params
                                    

                                    Daten, die im Großen und Ganzen denen entsprechen, die der Shelly-Adapter unter

                                    shelly.0.SHEM-3#<shelly-seriennummer>#1
                                    

                                    ablegt. Das Zusammenrechnen der 3 Phasen wurde auch schon erledigt, und unter

                                    0_userdata.0.ecoflow.app_device_property_<ecoflow-seriennummer>.data.params.total_power
                                    

                                    erscheint genau der Hausverbrauchs-Wert den wir brauchen! Es geht! Und das ganz ohne den Shelly Adapter im IOBroker und dessen Port-Weiterleitungen im Docker, und ohne Störung der Shelly Cloud.

                                    Beim allerersten Lauf des Skripts wird das Objekt mit den Shelly States überhaupt erst angelegt, dann wenn das erste Mal Daten vom EcoFlow-Shelly reinkommen. Vorher existiert das Objekt noch nicht. Es gibt nun eine Stelle im Skript, die anfänglich die History für dieses Objekt anlegt. Das kann es beim allerersten Lauf aber noch nicht tun, weil das Objekt noch nicht existiert. Daher funktioniert das Skript beim allerersten Aufruf noch nicht. Abhilfe: Beim allerersten Lauf des Skripts abwarten, bis das Objekt mit den Shelly Daten auftaucht. Dann einfach das Skript noch einmal re-starten, dann funktioniert es! Es erscheinen zwar immer wieder Warnungen „Invalid selector: selector must be a string but is of type undefined“, das tut der Funktion aber keinen Abbruch.

                                    Fazit
                                    Es ist also möglich, den von Shelly gemessenen Stromverbrauch direkt mit den Ecoflow-Daten zu holen.
                                    Das heisst, damit ist eine dynamische Anpassung möglich, komplett ohne den IOBroker Shelly Adapter und dessen nicht unbedingt triviale Konfiguration (insbesondere in einem nicht-Linux-Docker).
                                    Ecoflow holt sich die Daten aus der Shelly Cloud. Damit gibt es dann auch keinen Konflikt mehr zwischen entweder Shelly-Adapter mit MQTT oder Shelly Cloud.
                                    Der kontrollierende IOBroker muss dafür nichtmal zwingend im Heimnetzwerk laufen!

                                    Anleitung

                                    • es wird vorausgesetzt, dass der Shelly 3EM mit der Shelly Cloud verbunden ist
                                    • und eine Installation von IOBroker mit den Adaptern „History“ und „Skriptausführung“ entsprechend der Anleitung zum Skript von @Waly_de
                                      EcoFlow App
                                    • In der EcoFlow App unter „Profil“ auf „Verbindung von Plattformen von Drittanbietern“ gehen
                                      IMG_7889.jpeg
                                    • dort „Shelly“ auswählen (dieser Tage ist noch „Tapo“ hinzugekommen, da ist man wohl fleißig bei EcoFlow)
                                      IMG_7890.jpeg
                                    • den nächsten Schritten folgen, mit Angabe der Zugangsdaten zur Shelly Cloud. (Ich habe beide Berechtigungen erteilt, entscheidend ist wohl nur die Leseberechtigung)
                                    • das Gerät auswählen, das den Hausstromverbrauch misst, und alles bestätigen
                                      IMG_7891.jpeg
                                    • in der EcoFlow App unter „Geräte“ taucht dann das Gerät neu auf
                                      IMG_7892.jpeg
                                    • die von EcoFlow vergebene Seriennummer bei diesem Gerät notieren
                                    • auf das Gerät tippen - die Verbrauchsdaten erscheinen!
                                      IMG_7893.jpeg
                                    • wenn die Werte alle 0 sind oder sich nicht ändern: In der Shelly App oder in der Shelly Cloud den Schalter einschalten; evtl. muss man auch ein bisschen abwarten, bis die Werte sich durch all die Clouds gewühlt haben.
                                      IOBroker
                                    • Im Skript von @Waly_de eintragen:
                                    SmartmeterID: "0_userdata.0.ecoflow.app_device_property_<notierteSeriennummer>.data.params.total_power",     // State, der den aktuellen Gesamtverbrauch in Watt anzeigt
                                    
                                    • und bei den „seriennummern“ einen Abschnitt für eine SmartPlug, mit der notierten Seriennummer:
                                    {
                                                seriennummer: "<notierteSeriennummer>“,
                                                name: "Shelly 3EM",
                                                typ: "SM",
                                                subscribe: true,                            // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt
                                            },
                                    
                                    • das Skript einmal starten und in den IOBroker Objekten nachsehen, bis
                                    0_userdata.0.ecoflow.app_device_property_<notierteSeriennummer>
                                    

                                    erscheint.

                                    • dann das Skript noch einmal beenden und neu starten
                                    • jetzt sollte es beginnen, den PowerStream entsprechend der Konfiguration mit den Shelly-Daten zu regulieren; auch hier kann es wieder ein bisschen dauern, bis alle Daten eingetrudelt sind

                                    Das vereinfachte Skript
                                    Mein persönlicher Anwendungsfall ist einfach nur einen einzigen PowerStream steuern, auf Grundlage der Daten eines Shelly 3EM.
                                    Da kommt mir das vereinfachte Skript aus automatisierte-einspeisung-für-powerstream von @cptmozz (ebenfalls vielen Dank!) genau recht, abgespeckt auf genau diesen Anwendungsfall, den wahrscheinlich die meisten so haben: eben genau einen PowerStream aufgrund einer Hausstrom-Messung zu steuern.
                                    Auch dieses Skript lässt sich mit den Shelly Verbrauchsdaten direkt von EcoFlow verwenden: Indem man das Skript von @Waly_de mit ausgeschalteter Regulation laufen lässt, liefert es die Shelly-Daten ins oben angegebene Objekt. Dieses kann man im CptMozz Skript konfigurieren und dann beide Skripte gleichzeitig laufen lassen. Dann liefert das @Waly_de - Skript die Verbrauchsdaten und das @CptMozz - Skript steuert! Das funktioniert zwar, ist aber nicht schön und könnte viel ressourcenschonender ablaufen, wenn das Abrufen der Shelly-Daten ins @CptMozz - Skript integriert wird. Dann müssen nicht zwei Skripte parallel die EcoFlow Cloud kontaktieren. Ich denke, das werde ich mir am Wochenende mal vornehmen.

                                    (Viel Vergnügen beim Experimentieren - ich selber habe nur eine Shelly 3EM installiert und kann keine Aussagen zu anderen Shelly-Produkten in der Ecoflow Integration treffen.)

                                    B Offline
                                    B Offline
                                    Ballou
                                    schrieb am zuletzt editiert von
                                    #17

                                    @dpleiss
                                    Hallo,

                                    in meiner ECOFLOW App ist die Serienummer von dem Shelly zu lang. Es wird mir eine Nummer angezeigt und irgendwo mittig wir die Nummer mit Punkten ... aufgefüllt. Wie bekommt man hier jetzt die komplette Seriennummer angezeigt?

                                    IMG_4150.jpg

                                    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

                                    689

                                    Online

                                    32.5k

                                    Benutzer

                                    81.8k

                                    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
                                    • Home
                                    • Aktuell
                                    • Tags
                                    • Ungelesen 0
                                    • Kategorien
                                    • Unreplied
                                    • Beliebt
                                    • GitHub
                                    • Docu
                                    • Hilfe