Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Gibt es einen Adapter für ecoflow PowerOcean ?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Gibt es einen Adapter für ecoflow PowerOcean ?

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

      Hallo,

      bei meiner zukünftigen PV-Anlage habe ich mich komplett für ecoflow (WR + Speicher + Wallbox) entschieden.

      Die Suche hier brachte mir auch Treffer zu ecoflow mit mqtt, jedoch waren das immer nur für die Balkonfkraftwerkslösungen und nicht für Hybrid-WR mit Speicher.

      Deshalb frage ich, ob es da schon einen Adapter gibt, oder ob der obige auch dafür verwendet werden kann?

      D C 2 Replies Last reply Reply Quote 0
      • D
        DiHi @Allodo last edited by

        @allodo Hi, bekomme bald auch Ecoflow. Bist du mir der Anbindung weiter gekommen?

        wendy2702 A 2 Replies Last reply Reply Quote 0
        • wendy2702
          wendy2702 @DiHi last edited by

          @dihi hier nichts dabei

          https://forum.iobroker.net/search?term=Ecoflow&in=posts&matchWords=all&sortBy=timestamp&sortDirection=desc&showAs=posts

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

            @dihi
            Also @foxthefox hat einen Adapter "ecoflow-mqtt", wo man die PowerOcean einbinden kann.

            Ich habe für mich selbst, nach einiger Recherche, ein Script geschrieben, womit ich mir die Daten vom Server hole und in Datenpunkte schreibe. Das läuft relativ stabil. Das einzige Problem ist, das man ab und zu veraltete Werte erhält. Wenn man dann die Webseite oder die App von Ecoflow öffnet, sind sie wieder aktuell.

            Ecoflow soll wohl derzeit an einer lokalen API arbeiten, so dass man die Werte direkt von der PO einlesen kann.

            Bei Interesse kann ich das Script gerne hier anfügen. Weise aber darauf hin, das es keine Garantie gebe, dass es einwandfrei läuft 😉

            Für das Script werden nur die Zugangsdaten der App benötigt. Wobei ich, wenn ich mal wieder Zeit habe, die 2te Möglichkeit testen möchte, und zwar per offizieller API-Anbindung. Dafür braucht man aber einen Developer-Account von Ecoflow. Den man aber auch relativ leicht bekommt.

            D 1 Reply Last reply Reply Quote 0
            • D
              DiHi @Allodo last edited by

              @allodo Das mit dem Script wäre super!

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

                @dihi
                Die Datenpunkte und die Pfade können natürlich je nach Gusto verändert werden.
                Man kann sich einmal alles aus dem Response ausgeben lassen, um zu schauen, welche Datenpunkte man gerne hätte. Dafür einfach in Zeile 141 die "//" vor dem console.log entfernen . Nachdem man die Ausgabe analysiert hat, einfach wieder einfügen, da ansonsten immer alle Datenpunkte in der Ausgabe erscheinen.

                Da dies mein erstes Script ist, habt bitte Nachsicht. Für Verbesserung bin ich immer offen 😉

                Hier das Script:

                
                // Variablendeklaration 
                    const fetch = require('node-fetch');
                
                // Datenpunktpfad (Änderbar)
                // Info: So stehen die Daten nachher im iobroker
                    const datenordner = '0_userdata.0.ecoflow.powerocean.';
                
                //Userdaten: Mailadresse, Passwort und Seriennummer der PO
                    const seriennummer = "HJxxxxxxxxxx";
                    const mailadresse = "mailadresse";
                    const passwort = "xxxxxxx";
                
                // URL's (nicht ändern)
                    const url_iot_app = "https://api.ecoflow.com/auth/login";
                    const url_user_fetch = `https://api-e.ecoflow.com/provider-service/user/device/detail?sn=${seriennummer}`;
                
                // Liste der gewünschten Datenpunkte
                    var items = [
                        {
                            "ecoflowname": "bpSoc",
                            "name": "e_Ladezustand_Batterie",
                            "unit":"%"
                        }, 
                        {
                            "ecoflowname": "todayElectricityGeneration",
                            "name": "f_Tagesertrag",
                            "unit":"kW"
                        },
                        {
                            "ecoflowname": "monthElectricityGeneration",
                            "name": "j_Monatsertrag",
                            "unit":"kW"
                        }, 
                        {
                            "ecoflowname": "yearElectricityGeneration",
                            "name": "k_Jahresertrag",
                            "unit":"kW"
                        },
                        {
                            "ecoflowname": "evPwr",
                            "name": "i_Wallbox_Leistung",
                            "unit":"W"
                        },
                        {
                            "ecoflowname": "mpptPwr",
                            "name": "a_Solarertrag",
                            "unit":"W"
                        },
                        {
                            "ecoflowname": "sysGridPwr",
                            "name": "c_Netzeinspeisung",
                            "unit":"W"
                        },
                        {
                            "ecoflowname": "sysLoadPwr",
                            "name": "b_Hausnetz",
                            "unit":"W"
                        },
                        {
                            "ecoflowname": "bpPwr",
                            "name": "d_Batterieleistung",
                            "unit":"W"
                        },
                        {
                            "ecoflowname": "mpptPv.0.pwr",
                            "name": "g_PV1_Leistung",
                            "unit":"W"
                        },
                        {
                            "ecoflowname": "mpptPv.1.pwr",
                            "name": "h_PV2_Leistung",
                            "unit":"W"
                        }
                    ]
                   
                
                /******************************************************************************************************/
                // Ablaufsteuerung
                    authorize(); // Aufbau der Verbindung zu Ecoflow mit Authentifizierung
                
                    schedule('*/2 * * * * *', async () => { // Alle 3 Sekunden werden die Daten geholt
                        try {
                            await fetch_data(); // Holen der Daten und Schreiben bzw. Erzeugung von Datenpunkten
                        } catch (err) {
                            console.error(err);
                        }
                
                    });
                
                /******************************************************************************************************/
                // Funktionen
                
                // Aufbau der Verbindung zu Ecoflow mit Authentifizierung
                    async function authorize() {
                        /** Function authorize */
                        let auth_ok = false; // default
                        const headers = { "lang": "en_US", "content-type": "application/json" };
                        const data = {
                            email: mailadresse,
                            password: Buffer.from(passwort).toString('base64'),
                            scene: "IOT_APP",
                            userType: "ECOFLOW",
                        };
                        
                        try {
                            const url = url_iot_app;
                            //console.info(`Login to EcoFlow API ${url}`);
                            const request = await fetch(url, {
                                method: 'POST',
                                headers: headers,
                                body: JSON.stringify(data)
                            });
                            const response = await get_json_response(request);
                
                            this.token = response.data.token;
                            
                            this.user_id = response.data.user.userId;
                            const user_name = response.data.user.name || "<no user name>";
                            auth_ok = true;
                
                            //console.info(`Successfully logged in: ${user_name}`);
                
                        } catch (error) {
                            console.warn(`Unable to connect to ${url_iot_app}. Device might be offline.`);
                            throw new Error(error);
                        }
                
                        return auth_ok;
                    }
                
                // Aufbereitung des Reqquest zum JSON-Objekt
                    async function get_json_response(request) {
                        if (request.status !== 200) {
                            throw new Error(`Got HTTP status code ${request.status}: ${await request.text()}`);
                        }
                        const response = await request.json();
                        const response_message = response.message;
                
                                    // Testausgabe aller Werte der PO-Geräte
                                    //console.log("DATA: " + response.data);
                
                        if (response_message.toLowerCase() !== "success") {
                            throw new Error(response_message);
                        }
                
                        return response;
                    }
                
                // Holen der Daten vom Ecoflow-Server
                    async function fetch_data() {
                        /** Function fetch data from Url. */
                        const url = url_user_fetch;
                        try {
                            const headers = { "authorization": `Bearer ${this.token}` };
                            const request = await fetch(url, { headers: headers, timeout: 30000 });
                            const response = await get_json_response(request);
                            
                            setStatesFromJSON(JSON.stringify(response.data));
                        } catch (error) {
                            console.error(error);
                        }
                    }
                
                // Verarbeitung der Daten und setzen bzw. erzeugen von Datenpunkten
                    async function setStatesFromJSON(ecoflowResponse) {
                        let data = ecoflowResponse;
                
                        var obj2 = JSON.parse(data);
                
                        insertElements(obj2)
                
                        function insertElements(elems, parent="") {
                            if(typeof(elems) === 'object') {
                                for (const key in elems) {
                                    insertElements(elems[key], parent !== "" ? parent + '.' + key : key)
                                }
                            } else {
                                insertelement(elems, parent)
                            }
                        }
                
                        function insertelement(element, parent="") {
                            //console.log('inserting: ' + id + parent + '=' + element)
                            items.forEach(function(item) {
                                if (parent.match(item.ecoflowname)) {
                                    if(!existsState(datenordner + "." + parent + "." + element)) {
                                        createState(datenordner + item.name , "", {name: parent, unit: item.unit})  
                                        setState(datenordner+ item.name, element, true);
                                    } 
                                    else {
                                        setState(datenordner + item.name, element, true);
                                    }
                                }
                            })
                        }
                    }
                
                1 Reply Last reply Reply Quote 0
                • C
                  CatShape @Allodo last edited by CatShape

                  @allodo
                  Hallo, ich habe einen Adapter programmiert der die offizielle EcoFlow HTTP API benutzt: https://github.com/CatShape/ioBroker.ecoflow_catshape
                  Mein EcoFlow Adapter ist sehr schlank gehalten. Einfach in der Adapter-Config die Seriennummer vom Gerät und den API-Key eintragen und man sieht im Zustand "quota" sofort alle Daten wie sie von EcoFlow geliefert werden.

                  Ich habe mich bewusst dafür entschieden, dass man die Zustände selber anlegen muss (am besten mittels JSON-Datei importieren). Dafür hat man volle Flexibilität:

                  • Man muss nur diejenigen Zustände anlegen, die man braucht; und man kann jederzeit weitere Zustände hinzufügen oder bestehende löschen.
                  • Man kann sie benennen und in Kanäle organisieren wie man will.
                  • Man kann auch den Typ der Zustände selber bestimmen.

                  Der Adapter funktioniert mit allen Geräte-Typen - auch zukünftigen - vorausgesetzt natürlich, der Geräte-Typ wird von der EcoFlow-API unterstützt. Aber wie oben gesagt - einfach mit der Seriennummer vom Gerät mal ausprobieren; und falls es unterstützt wird, sieht man das Gerät im Objektbaum und die gelieferten Daten im Zustand "quota".

                  Der Adapter kann mittels "installieren aus eigener URL --> Benutzerdefiniert" installiert werden.
                  URL: https://github.com/CatShape/ioBroker.ecoflow_catshape

                  A R 2 Replies Last reply Reply Quote 0
                  • A
                    Allodo @CatShape last edited by

                    @CatShape

                     iobroker url https://github.com/CatShape/ioBroker.ecoflow_catshape --host iobroker --debug
                    
                    install CatShape/ioBroker.ecoflow_catshape#782590f8adbecfe1e158cffb9dcc3ce8a5d4aee2
                    
                    NPM version: 9.6.7
                    
                    Installing CatShape/ioBroker.ecoflow_catshape#782590f8adbecfe1e158cffb9dcc3ce8a5d4aee2... (System call)
                    
                    npm ERR! code EBADENGINE
                    
                    npm ERR! notsup Not compatible with your version of node/npm: iobroker.ecoflow_catshape@0.0.6
                    
                    npm ERR! notsup Required: {"node":">= 20"}npm ERR! notsup Actual: {"npm":"9.6.7","node":"v18.17.1"}
                    
                    npm ERR! A complete log of this run can be found in: /home/iobroker/.npm/_logs/2024-12-03T14_57_21_436Z-debug-0.log
                    
                    npm ERR! code EBADENGINEnpm ERR! engine Unsupported enginenpm ERR! engine Not compatible with your version of node/npm: iobroker.ecoflow_catshape@0.0.6npm ERR! notsup Not compatible with your version of node/npm: iobroker.ecoflow_catshape@0.0.6npm ERR! notsup Required: {"node":">= 20"}npm ERR! notsup Actual: {"npm":"9.6.7","node":"v18.17.1"}npm ERR! A complete log of this run can be found in: /home/iobroker/.npm/_logs/2024-12-03T14_57_21_436Z-debug-0.log
                    
                    host.iobroker Cannot install CatShape/ioBroker.ecoflow_catshape#782590f8adbecfe1e158cffb9dcc3ce8a5d4aee2: 1
                    
                    ERROR: Process exited with code 25
                    

                    Bekomme immer diese Fehlermeldung beim installieren 😞

                    H C Thomas Braun 3 Replies Last reply Reply Quote 0
                    • H
                      holgerwolf @Allodo last edited by

                      @allodo Du brauchst node Version > 20
                      Steht auch so in der Fehlermeldung.

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

                        @allodo Danke für den Hinweis. Diese Abhängigkeit hat mir der Adapter-Creator automatisch reingeschrieben. Sorry, ich hatte das bisher gar nicht gesehen. Mein Adapter sollte natürlich auch mit älteren Node Versionen laufen.
                        Ich habe das nun angepasst --> kannst das installieren nochmals versuchen, müsste jetzt funktionieren.

                        1 Reply Last reply Reply Quote 0
                        • Thomas Braun
                          Thomas Braun Most Active @Allodo last edited by Thomas Braun

                          @allodo sagte in Gibt es einen Adapter für ecoflow PowerOcean ?:

                          Bekomme immer diese Fehlermeldung beim installieren

                          Unabhängig von der Anpassung ist es so langsam an der Zeit die nodejs v18 hinter sich zu lassen.
                          20 ist schon geraume Zeit die vorgesehene Version und es gibt mittlerweile einige Adapter, die 20 als Mindestversion haben.
                          Also updaten... Geht mit

                          iob nodejs-update
                          

                          ja auch leicht von der Hand.

                          A 1 Reply Last reply Reply Quote 0
                          • A
                            Allodo @Thomas Braun last edited by

                            @thomas-braun
                            Ehrlich gesagt habe ich gar nicht auf die Node-js-Version geachtet, da iobroker einen ja immer informiert, wenn etwas aktualisiert werden sollte. Dachte das wäre bei node-js auch der Fall, scheint aber wohl nicht so zu sein 😞

                            Thomas Braun 1 Reply Last reply Reply Quote 0
                            • Thomas Braun
                              Thomas Braun Most Active @Allodo last edited by

                              @allodo

                              Natürlich gibt es Hinweise.

                              1.)

                              npm ERR! notsup Not compatible with your version of node/npm: iobroker.ecoflow_catshape@0.0.6
                              npm ERR! notsup Required: {"node":">= 20"}npm ERR! notsup Actual: {"npm":"9.6.7","node":"v18.17.1"}
                              

                              2.)
                              d12b3828-58d3-4ae1-be2e-33108f6496b2-grafik.png

                              3.) In iob diag

                              Nodejs-Installation:
                              /usr/bin/nodejs         v20.18.1
                              /usr/bin/node           v20.18.1
                              /usr/bin/npm            10.8.2
                              /usr/bin/npx            10.8.2
                              /usr/bin/corepack       0.29.4
                              
                              Recommended versions are nodejs 20.18.1 and npm 10.8.2
                              nodeJS installation is correct
                              

                              4.) Im Forum wird es auch immer angekündigt:
                              https://forum.iobroker.net/topic/74831/wir-empfehlen-node-js-20-x

                              1 Reply Last reply Reply Quote 0
                              • R
                                Ralf 8 @CatShape last edited by Ralf 8

                                Vielen Dank für Deinen Adapter.

                                Da der ecoflow-mqtt Adapter bei mir nur Daten liefert, wenn ich vorher die Ecoflow-App auf dem Handy aufgerufen hatte, bin ich dafür sehr dankbar.

                                Kann man auch Daten ändern?

                                Um Energie-Abgabe aus dem Akku zu regeln,
                                muss ich am PowerStream den Wert für den Haushaltsstrom
                                heartbeat.permanentWatts
                                dynamisch verändern, je nachdem wieviel Strom verbraucht wird.

                                Leider stellt der Wert sich wieder zurück wenn ich dort einen Wert eintrage.

                                Gruß
                                Ralf

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

                                  @ralf-8
                                  Ja, dort wo die EcoFlow API das zulässt, lassen sich Werte auch ändern.
                                  permanentWatts ist einer der Werte die sich mittels API ändern lassen.
                                  Damit dies mit meinem Adapter funktioniert, muss der Zustand entsprechend konfiguriert sein:
                                  Wenn Du im ioBroker GUI beim Zustand auf Objekt bearbeiten gehst und dann auf den Reiter OBJEKTDATEN, sollte der Abschnitt native folgendermassen aussehen:

                                    ...
                                    "native": {
                                      "ecoflowApi": {
                                        "quotaValueKey": "20_1.permanentWatts",
                                        "valueFactor": 0.1,
                                        "setValueKey": "params.permanentWatts",
                                        "setValueData": {
                                          "sn": "",
                                          "cmdCode": "WN511_SET_PERMANENT_WATTS_PACK",
                                          "params": {
                                            "permanentWatts": 0
                                          }
                                        }
                                      }
                                    },
                                    ...
                                  
                                  

                                  Dann müsste es gehen (Adapter-Instanz neu starten nachdem Du dort etwas änderst).

                                  Wenn es nicht geht, obwohl der Zustand so definiert ist, könnte es daran liegen, dass Du die Adapter-Instanz nicht neu gestartet hast, nachdem Du diesen Zustand angelegt/importiert hast.

                                  R 1 Reply Last reply Reply Quote 0
                                  • R
                                    Ralf 8 @CatShape last edited by Ralf 8

                                    @catshape

                                    Habe heute früh versucht, permanentWatts (= Haushaltsstrom) einzustellen:
                                    es benötigt mehrere Versuche, damit der Wert nicht wieder zurückgestellt wird

                                    Muss die Änderung mit der Daten-Aktualisierung des Adapters zusammentreffen?.

                                    Meine Einstellung für
                                    node-cron Zeitplan für die Abfrage der Daten von EcoFlow
                                    ist wie bei Installation auf alle 10 sec. eingestellt.

                                    Wenn ich das per Javascript einstellen möchte, müsste ich den Wert für permanentWatts also mehrmals innerhalb von 10 sek. umstellen und überprüfen, ob der Wert auch dauerhaft geändert wurde. Oder kann man den Adapter per JS steuern, um die Daten sofort zu aktualisieren?

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

                                      @ralf-8
                                      Es ist ja so: Der Adapter (die API) kann nicht direkt mit den Geräten kommunizieren sondern nur mit der EcoFlow-Platform. Die eigentliche Kommunikation mit den Geräten macht dann eben die EF-Platform.
                                      In meiner Erfahrung werden Wertänderungen von der Platform sofort an das Gerät weitergegeben - normalerweise dauert das weniger als eine Sekunde. Man kann das testen, indem man im ioBroker etwas ändert, dessen Effekt am Gerät selber direkt sichtbar ist. Zum Beispiel bei einer Power-Station den AC-Ausgang ein- und ausschalten, oder beim PowerStream die Helligkeit des LED-Indikators ändern.
                                      Jetzt kommt aber das, was vielleicht für Verwirrung sorgen kann: Auf der EF-Platform selber werden ja die "aktuellen" Werte des Geräts auch gespeichert. Und nachdem ein Wert auf dem Gerät geändert wurde, meldet das Gerät diesen neuen Wert an die Platform und überschreibt dort den alten Wert. Diese Aktion erfolgt jedoch leider mit etwas Verzögerung. Nach meiner Erfahrung dauert es normalerweise etwa 3 bis 4 Sekunden bis der gespeicherte Wert auf der EF-Platform auf den neuen Wert gesetzt ist. (Ich könnte mir aber durchaus vorstellen, dass das z.B. bei Server-Problemen auch noch länger dauern kann.)

                                      Immer wenn der Adapter die Daten des Geräts von der EF-Platform anfordert, liefert die Platform diejenigen Werte, die in dem Moment dort gerade gespeichert sind. Das ist dann halt kurz nach einer Wertänderung leider immer noch der alte Wert und deshalb siehst Du im ioBroker den Wert auf alt zurückspringen. Spätestens bei der nächsten Daten-Aktualisierung (10 Sekunden später) wird dann aber der "korrekte" neue Wert geliefert und angezeigt. Du musst den Wert im ioBroker also definitiv nur einmal ändern.

                                      R 1 Reply Last reply Reply Quote 0
                                      • R
                                        Ralf 8 @CatShape last edited by

                                        @catshape
                                        Vielen Dank. Funktioniert. Zuerst sieht es so aus, als ob der Wert nicht geändert werde.
                                        Nach 10 sec erscheint aber tatsächlich der neu eingestellte Wert!

                                        Darf ich noch eine allgemeine Anfänger-Frage stellen:

                                        Ich habe versucht, für pvToInvWatts einen Alias anzulegen, einfach wegen der Übersichtlichkeit.
                                        In ecoflow_catshape.0.HW51Zxxxxxx.quota stehen ja alle Werte zur Verfügung.

                                        Das klappt für JSON.parse(val).deviceName auch problemlos.

                                        Aber für pvToInvWatts steht in Quota "20_1.pvToInvWatts"
                                        Mit dem Punkt komme ich aber nicht klar, egal wie ich Klammern oder "" oder '' setze:

                                        "alias": {
                                        "read": "JSON.parse(val).['20_1.pvToInvWatts']",
                                        "id": "ecoflow_catshape.0.HW51ZOH4SF6T4876.quota"
                                        }

                                        JSON.parse(val).20_1.pvToInvWatts
                                        JSON.parse(val).[20_1.pvToInvWatts]
                                        JSON.parse(val).['20_1.pvToInvWatts']
                                        JSON.parse(val).'20_1.pvToInvWatts'

                                        alle Versionen funktionieren nicht

                                        R C 2 Replies Last reply Reply Quote 0
                                        • R
                                          Ralf 8 @Ralf 8 last edited by Ralf 8

                                          @ralf-8 Anfänger-Frage [GELÖST]

                                          Der Punkt musste weg:

                                          falsch: JSON.parse(val).['20_1.pvToInvWatts']

                                          richtig: JSON.parse(val)['20_1.pvToInvWatts']

                                          Hier die vollständigen Objektdaten des Alias

                                          {
                                            "common": {
                                              "name": "Test",
                                              "desc": "Manuell erzeugt",
                                              "role": "state",
                                              "type": "json",
                                              "read": true,
                                              "write": true,
                                              "alias": {
                                                "id": "ecoflow_catshape.0.HW51Zxxxxx.quota",
                                                "read": "JSON.parse(val)['20_1.pvToInvWatts']"
                                              }
                                            },
                                            "type": "state",
                                            "native": {},
                                            "_id": "alias.0.catshape.Test",
                                            "acl": {
                                              "object": 1636,
                                              "state": 1636,
                                              "owner": "system.user.admin",
                                              "ownerGroup": "system.group.administrator"
                                            },
                                            "from": "system.adapter.admin.0",
                                            "user": "system.user.admin",
                                            "ts": 1741699783228
                                          }
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • C
                                            CatShape @Ralf 8 last edited by CatShape

                                            @ralf-8
                                            Das wäre dann (EDIT: sehe gerade, dass Du das bereits selber herausgefunden hast)

                                            JSON.parse(val)['20_1.pvToInvWatts']
                                            

                                            Prinzipiell wäre die Idee bei diesem Adapter eigentlich für alle Werte die Dich interessieren einen eigenen "gewöhnlichen" Zustand im Gerät anzulegen, also in diesem Fall so etwas:

                                            "ecoflow_catshape.0.HW51ZXXXXXXXXXXX.heartbeat.pvToInvWatts": {
                                                "type": "state",
                                                "common": {
                                                  "type": "number",
                                                  "unit": "W",
                                                  "name": "PV to inverter power",
                                                  "desc": "PV to inverter power",
                                                  "read": true,
                                                  "write": false,
                                                  "def": 0
                                                },
                                                "native": {
                                                  "ecoflowApi": {
                                                    "quotaValueKey": "20_1.pvToInvWatts",
                                                    "valueFactor": 0.1
                                                  }
                                                },
                                                "_id": "ecoflow_catshape.0.HW51ZXXXXXXXXXXX.heartbeat.pvToInvWatts",
                                                "acl": {
                                                  "object": 1636,
                                                  "state": 1636,
                                                  "owner": "system.user.admin",
                                                  "ownerGroup": "system.group.administrator"
                                                },
                                                "from": "system.adapter.admin.0",
                                                "user": "system.user.admin",
                                                "ts": 1732458125426
                                              }
                                            

                                            Darauf kannst Du dann bei Bedarf ja noch einen Alias anlegen.

                                            Versteh mich nicht falsch, wenn Du z.B. Zustände "einsparen" willst, kannst Du das natürlich so machen und Dir die Infos direkt aus dem quota-Zustand holen 👍
                                            Vergiss nicht bei den Instanz-Einstellungen den Haken bei "Update quota state" zu setzen, denn sonst wird dieser Zustand gar nicht aktualisiert.

                                            U 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

                                            714
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            10
                                            47
                                            2134
                                            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