Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Adapter ecoflow_catshape - Problem bei inaktiver App

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Adapter ecoflow_catshape - Problem bei inaktiver App

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      milo58 last edited by

      @CatShape
      Ich verwende Deinen Adapter für meine Ecoflow PowerOcean. Er funktioniert grundsätzlich prima. Es gibt aber offenbar ein grundsätzliches Problem: Sobald die Ecoflow-App nicht mehr aktiv ist, werden die Daten in der Cloud nicht mehr aktualisiert. Ich habe zu dem Problem schon etwas geforscht und es scheint auch in anderen Smarthome-Anwendungen das gleiche Phänomen zu geben: Die Ecoflow-Geräte senden Daten offenbar nur bei aktiver App in die Cloud. Hast Du (oder jemand anders) eine Idee, wie man die Datenübertragung am Leben erhalten kann oder die Daten direkt vom Wechselrichter beziehen kann - was die eindeutig bessere Lösung wäre.

      Michael

      mcm1957 C 2 Replies Last reply Reply Quote 0
      • mcm1957
        mcm1957 @milo58 last edited by mcm1957

        Dieser Adapter ist nicht in einem offiziellen Repository gelistet. Bitte kontaktiere den Maintainer und ersuche ihn den Adapter in die Repositories aufnehmen zu lassen.

        Hast du dir die beiden im Repository verfügbaren Adapter ioBroker.ecoflow und ioBroker.ecoflow-mqtt angesehen ob diese für dich geeignet sind?

        Von direkten Installation von GitHub - insbesondere auf produktiven Systemen - wird explizit abgeraten.

        GitHub Versionen können sich jederzeit (auch kurzfristig) ändern und durchaus auch in sich inkonsistent und fehlerhaft sein. Versionsangaben von GitHub Installationen sind Schall und Rauch da die Versionsnummer zumindest bei Verwendung der standardmäßigen Umgebung erst im Zuge der Releaseerstellung geändert wird.

        Auf explizite Aufforderung durch den Entwickler kann eine GitHub Installation zur Fehlereingrenzung oder zum Test neuer Funktionalität - unter Inkaufnahme des erhöhten Risikos - natürlich erfolgen.

        Adapter die nur via GitHub oder npm (also NICHT aus einem der beiden Repositories) installierbar sind sind mit erhöhter Vorsicht zu betrachten. Hier sollte der Entwickler drum ersucht werden eine Aufnahme in die Repositories zu veranlassen indem z.B. ein Issue im Adapterrepository erstellt wird.

        Und falls es irgendwie unklar ist:

        ioBroker unterstützt folgende Arten von Installation:

        • aus dem STABLE Repository

          Das sind Adapter Releases die keine groben Fehler aufweisen (sollten). Natürlich kann es auch dort Fehler geben, die Behebung davon obliegt dem jeweiligen Dev und kann ggF auch dauern.

        • aus dem LATEST Repository

          Das sind Adapter Releases die neu erstellt wurden und nur rudimentär getestet sind - oft auch als BETA Releases bezeichnet. Releases aus dem LATEST sind primär für unsere zahlreichen freiwilligen Tester gedacht. BETA / LATEST Releases können durchaus Fehler aufweisen - auch wenn ich davon ausgehe dass jeder aintainer dies zu vermeiden versucht. Vom Einsatz auf produktiven Systemen wird abgeraten außer man braucht irgenein neues Feature (z.B. neues Gerät) unbedingt. Hier muss dann jeder Entscheiden was ihm wichtig ist.

        • direkt von GITHUB

          Von Installationen direkt aus Giuthub wird definitiv abgeraten außer auf Anweisung des Maintainers und für den Fall dass man gemeinsam mit diesem etwas testen will. Details siehe oben.

        • direkt von npm

          Diese Installation kann erforderlich sein, wenn man eine bestimmte Version installieren möchte / muss. Im Normalfall sollte man direkte npm Installationen ebenso meiden wie direkte GitHub Installationen - ausgenommen um z.B. zu einer bekannten Version downzugraden - obwohl hier wenigstens ein definierter Stand garantiert ist.

        Adapter die NUR via npm und/oder nur via GitHub installierbar sind sollte man meiden - diese wurden nicht mal einem rudimentären Review unterzogen und sollten mit dem Attribut "vollständig auf eigenes Risiko verwenden" installiert werden. Hier empfiehlt es sich den Developer zu ersuchen eine Aufnahme in die Repos zu veranlassen. Wenn dieser darauf nicht reagiert sollte man von einer eher kurzen und unklaren Lebensdauer des Adapters ausgehen. Support meiner-/unsererseits für solche Adapter ist mit Sicherheit minimalistisch.

        @mcm1957

        M 1 Reply Last reply Reply Quote 0
        • M
          milo58 @mcm1957 last edited by

          @mcm1957 Ich habe nur noch den ecoflow-mqtt gefunden, hatte aber Probleme mit der Konfiguration und habe deshalb schnell aufgegeben, zumal ich den Ansatz von catshape mit der neuen Ecoflow-Api zu arbeiten interessant und einfacher fand. Der Zugfriff klappt ja auch prima und erfüllt bei mir grundsätzlich den Zweck im rein privaten und experimentellem Umfeld (Schaltung einer Außen-Steckdose zum Laden meines Autos). Ich vermute, dem catshape-Aapter fehlt lediglich die Option, einen automatisierten reconnect durchzuführen, um sich am Ecoflow-Server wie eine aktive App zu verhalten.

          1 Reply Last reply Reply Quote 0
          • C
            CatShape @milo58 last edited by CatShape

            @milo58
            Hallo Michael, das ist natürlich ärgerlich, wenn für deine PowerOcean die Daten in der Cloud nur aktualisiert werden solange die EcoFlow-App aktiv ist.

            Ich kann dazu folgendes sagen:
            Ich habe 3 EcoFlow-Geräte (1 * PowerStream, 1 * Delta Pro, 1 * River Pro) und die sind alle in meinen Adapter mit URL "https://api-e.ecoflow.com (other)" und Abfrage alle 10 Sekunden eingebunden. Der Adapter läuft bei mir seit mehr als 5 Monaten. In dieser ganzen Zeit habe ich nie erlebt, dass Daten nicht aktualisiert wurden. Ich benutze die EcoFlow-App so gut wie nie, das heisst die ist bei mir fast nie aktiv (auch nicht irgendwo im Hintergrund).

            Bisher habe ich vom Verhalten das du beschreibst nur im Zusammenhang mit der inoffiziellen API gelesen. Also bei Programmen welche die App simulieren und so via MQTT mit der Cloud kommunizieren (zum Beispiel der ioBroker Adapter "ecoflow-mqtt" und einige Home Assistant Integrationen). Du hast nicht zufälligerweise irgendwo so eine Verbindung am laufen? Das wäre dann eine mögliche Erklärung für dein Problem.

            Es gibt die Facebook Gruppe "EcoFlow Official API Group (for DIYer and programmer)". Dort habe ich auch schon über Probleme mit der offiziellen MQTT-API gelesen, jedoch nicht mit der HTTP-API.

            Vor kurzem hat @ulofemi (https://forum.iobroker.net/topic/74533/gibt-es-einen-adapter-für-ecoflow-powerocean/21) meinen Adapter anscheinend mit einer PowerOcean getestet. Vielleicht kannst Du ihn ja mal fragen ob er auch Probleme mit der Datenaktualisierung hatte.

            Leider sehe ich aktuell mit der offiziellen EcoFlow-API keine Möglichkeit auf den Datentransfer vom physischen Gerät zur EcoFlow-Cloud Einfluss zu nehmen.

            Was ich an deiner Stelle noch ausprobieren würde:

            • In der Adapter-Konfiguration statt "https://api-e.ecoflow.com (other)" mal "https://api.ecoflow.com (???)" auswählen.
            • Das Abfrage-Interval nicht zu klein wählen, also zum Beispiel auf maximal 1-mal pro Minute stellen.

            Ich kann mir zwar kaum vorstellen, dass etwas davon mit deinem Problem zu tun hat, aber probieren kann man es ja mal.

            M 1 Reply Last reply Reply Quote 0
            • M
              milo58 @CatShape last edited by

              @catshape Hallo Catshape, ich habe den Api-Eintrag geändert. Es scheint aber keine Abhilfe gebracht zu haben. Ich beobachte allerdings ein merkwürdiges Phänomen in der Javascript-Konsole: Jeweils nach ca 10 Minuten inaktiver App wird nur noch der quota-Wert gesendet, die Werte für PV_Erzeugung, Strom_Haus, Strom_Netz und Strom_Batterie nicht mehr, obwohl diese sich defintiv verändert haben. Hier mal ein Screenshot des Logs.

              e494ef89-5713-41f3-a522-cf225ae376aa-grafik.png

              @ulofemi arbeitet offenbar mit der quota. Das könnte ich auch versuchen. Ich brache für meine Anwendung aktuell nur Strom_Batterie und PV_Erzeugung.

              Frage: Erzeugst du die vier aktuellen Leistungswerte auch aus der quota oder fragst Du die separat ab?

              paul53 C 2 Replies Last reply Reply Quote 0
              • paul53
                paul53 @milo58 last edited by paul53

                @milo58 sagte: wird nur noch der quota-Wert gesendet

                Nachdem ich mit ioBroker auf einen neuen PC umgezogen bin, funktionierte dort der Adapter "ecoflow-mqtt" nicht mehr (auf dem alten PC schon noch). Also habe ich den Adapter "ecoflow_catshape" installiert und habe neben 3 Konstanten nur den Datenpunkt "quota", der alle 10 s aktualisiert wird. Dieser DP enthält alle Werte meines River-2 als JSON. Die für mich wichtigen Werte hole ich per Skript aus dem JSON:

                const idJson = 'ecoflow_catshape.0.R601ZEB5HF123456.quota';
                const idSoC  = '0_userdata.0.Ecoflow.Batterie.SoC';
                const idNetz = '0_userdata.0.Ecoflow.Netz.Stromausfall';
                const idRest = '0_userdata.0.Ecoflow.Batterie.Restzeit';
                
                const attVol = 'inv.acInVol';
                const attSoc = 'bms_emsStatus.f32LcdShowSoc';
                const attChg = 'bms_emsStatus.chgRemainTime';
                const attDis = 'bms_emsStatus.dsgRemainTime';
                
                function showRest(minuten) {
                    if(minuten < 5999) {
                        let hour = Math.floor(minuten / 60).toString();
                        let min = minuten % 60;
                        if(min < 10) min = '0' + min;
                        let rest = hour + ':' + min;
                        setState(idRest, rest, true);
                    }
                }
                
                on(idJson, function(dp) {
                    const obj = JSON.parse(dp.state.val);
                    setState(idSoC, obj[attSoc], true);
                    const voltIn = obj[attVol] / 1000;
                    let keinNetz = voltIn < 100;
                    if(keinNetz) showRest(obj[attDis]);
                    else showRest(obj[attChg]);    
                    if(keinNetz != getState(idNetz).val) {
                        setState(idNetz, keinNetz, true);
                        sendTo('email.0', 'send', {
                            text: keinNetz ? 'Stromausfall!' : 'Netz wieder vorhanden',
                            subject: 'Ecoflow River 2'
                        });
                    }
                });
                
                on(idSoC, function(dp) {
                    if(dp.state.val < 20 && dp.oldState.val >= 20) {
                        sendTo('email.0', 'send', {
                            text: 'Batterie < 20 %',
                            subject: 'Ecoflow River 2'
                        });
                    }
                });
                

                Die Ecoflow-App ist permanent inaktiv.

                1 Reply Last reply Reply Quote 1
                • C
                  CatShape @milo58 last edited by CatShape

                  @milo58
                  Wie du ja in der ursprünglichen Nachricht geschrieben hast, scheint das Problem darin zu liegen, dass die Daten deiner PowerOcean in der Cloud nicht aktualisiert werden, wenn die App nicht aktiv ist.

                  Die offizielle API (und somit auch mein Adapter) kann halt nur mit der Cloud kommunizieren. So wie es scheint funktioniert mein Adapter so wie er soll. Er fordert in der Cloud die Werte an und schreibt die Antwort in deine Zustände, und zusätzlich wird der gesamte Antwort-Text in den Zustand quota geschrieben. Wenn ein gelieferter Wert sich nicht verändert hat (gelieferter Wert ist gleich dem, der bereits im Zustand steht), dann wird der Zustand nicht aktualisiert, das heisst es findet kein stateChange statt (es macht mMn keinen Sinn denselben Wert nochmals in den Zustand zu schreiben). Das erklärt dann auch deine Beobachtung.
                  Der Umstand, dass der Zustand quota jedes Mal einen stateChange erfährt, bedeutet eigentlich, dass zumindest irgendwas in der Antwort geändert hat. Du könntest ja mal schauen was sich dort jeweils verändert.

                  Für mich ist die eigentliche Frage: Weshalb werden deine Daten in der Cloud nur bei aktiver App aktualisiert?

                  • Ist das bei allen PowerOceans so? (Du könntest @ulofemi oder andere PowerOcean Besitzer fragen. Wie bereits gesagt, habe ich das Problem so noch von keinem anderen HTTP-API Nutzer gehört/gelesen)
                  • Kannst Du das irgendwie beeinflussen? (Ich würde recherchieren und im Zweifel EcoFlow fragen)
                  • Ist deine PowerOcean immer mit dem Internet verbunden?
                  • Wird deine PowerOcean immer als "Online" gemeldet? (Zustand online)
                  • Hast du mit deinem richtigen EcoFlow-Account einen API-Key von EcoFlow angefordert und bekommen? (Nicht dass du irgendeinen verwendest, den du irgendwo im Internet gefunden hast)

                  Mein Fazit: So wie ich das verstehe, ist das Problem die Kommunikation von deiner PowerOcean mit der EcoFlow-Cloud und nicht mein Adapter. Ich wüsste leider nicht wie ich dir da jetzt weiterhelfen kann.

                  M 1 Reply Last reply Reply Quote 0
                  • M
                    milo58 @CatShape last edited by

                    @catshape Vielen Dank für Deine Mühe und die vielen Hinweise, die ich in den nächsten Tagen nach und nach abarbeiten werde. Ich werde vor allem versuchen, nach den Vorbildern von @ulofemi und @paul53 die benötigten Daten direkt aus der quota zu ziehen. Ich werde zudem mal bei Ecoflow nachfragen, ob von es von deren Seite eine Erklärung gibt. Die Fritzbox zeigt jedenfalls die OpenOcean immer als im Netzwerk (WLAN) verbunden an. Allerdings habe ich in der App tatsächlich nach längerer Inaktivität immer wieder mal einen roten Balken "Gerät getrennt". Der verschwindet bei Zugriff auf die App von selbst, aber oftmals muss ich die App dann schließen und neu starten. Ich habe schon die Einstellungen durchsucht, ob es dort einen beeinflussbaren Timeout o.ä. gibt, aber nichts gefunden.

                    C 1 Reply Last reply Reply Quote 0
                    • C
                      CatShape @milo58 last edited by CatShape

                      @milo58
                      Ich würde gerne verstehen, wie die von der EcoFlow-API gelieferten Daten bei PowerOceans überhaupt aussehen. Die API-Dokumentation von EcoFlow ist da leider nicht sehr zuverlässig.
                      Könntest Du, während die App nicht aktiv ist (und die Daten in der Cloud NICHT aktualisiert werden), den Wert vom Zustand quota auslesen und dann dasselbe etwa 1-2 Minuten später wiederholen und die beiden Werte hier reinschreiben (die Seriennummer unkenntlich machen).
                      Mein Adapter soll während dieser Zeit natürlich laufen, nur die App soll nicht aktiv sein, damit die Daten in der Cloud nicht aktualisiert werden.
                      Dann könnte ich

                      1. sehen welche Werte in welcher Struktur überhaupt geliefert werden
                      2. die beiden Werte miteinander vergleichen um zu sehen ob es vielleicht irgendwelche Daten gibt, die trotzdem aktualisiert werden
                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      504
                      Online

                      31.7k
                      Users

                      79.7k
                      Topics

                      1.3m
                      Posts

                      ecoflow powerocean
                      4
                      9
                      308
                      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