Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Verbindung mit neuer Ecoflow Api

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Verbindung mit neuer Ecoflow Api

    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      Ralf 8 @sirdir last edited by Ralf 8

      Beitrag gelöscht

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

        @ralf-8 sagte in Verbindung mit neuer Ecoflow Api:

        neuen Ecoflow-Api

        Muss ich mir anschauen, gerade erst registriert.
        Wie lange hat bei Euch die Freischaltung des Entwickler-Kontos gedauert?

        R 1 Reply Last reply Reply Quote 0
        • R
          Ralf 8 @haus-automatisierung last edited by

          Nicht sehr lange, kann aber schon ein paar Tage dauern

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

            @ralf-8 So, habe mir das nun endlich mal angeschaut. Eventuell hilft Dir das Beispiel von mir ja schon weiter:

            const crypto = require('node:crypto');
            
            const sha256 = (str, key) => crypto.createHmac('sha256', key).update(str).digest('hex');
            
            const accessKey = 'xxx';
            const secretKey = 'xxx';
            
            const nonce = String(100000 + Math.floor(Math.random() * 100000));
            const timestamp = String(Date.now());
            
            const uri = `accessKey=${accessKey}&nonce=${nonce}&timestamp=${timestamp}`;
            const sign = sha256(uri, secretKey);
            
            httpGet(
                `https://api.ecoflow.com/iot-open/sign/device/list`,
                {
                    headers: {
                        'Content-Type': 'application/json;charset=UTF-8',
                        accessKey,
                        nonce,
                        timestamp,
                        sign,
                    }
                },
                (err, response) => {
                    if (!err) {
                        const result = JSON.parse(response.data);
                        
                        for (const device of result.data) {
                            console.log(`Found device ${device.productName} with serial number ${device.sn}`);
                        }
                    } else {
                        console.error(err);
                    }
                }
            );
            
            
            R 1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active last edited by

              Hier noch ein Beispiel direkt mit Axios (wenn man später auch PUT nutzen möchte um Werte zu setzen:

              const crypto = require('node:crypto');
              const axios = require('axios');
              
              const accessKey = 'xxx';
              const secretKey = 'xxx';
              
              async function apiRequest(method, url, data) {
                  const sha256 = (str, key) => crypto.createHmac('sha256', key).update(str).digest('hex');
              
                  const nonce = String(100000 + Math.floor(Math.random() * 100000));
                  const timestamp = String(Date.now());
              
                  const uri = `accessKey=${accessKey}&nonce=${nonce}&timestamp=${timestamp}`;
                  const sign = sha256(uri, secretKey);
              
                  const apiResponse = await axios(
                      {
                          method: method,
                          baseURL: 'https://api.ecoflow.com',
                          url,
                          data,
                          headers: {
                              'Content-Type': 'application/json;charset=UTF-8',
                              accessKey,
                              nonce,
                              timestamp,
                              sign,
                          }
                      }
                  );
              
                  if (apiResponse.status === 200) {
                      return apiResponse.data;
                  }
              }
              
              async function apiGetRequest(url) {
                  return apiRequest('get', url);
              }
              
              async function apiPostRequest(url, data) {
                  return apiRequest('post', url, data);
              }
              
              apiGetRequest('/iot-open/sign/device/list').then(response => {
                  for (const device of response.data) {
                      console.log(`Found device ${device.productName} with serial number ${device.sn}`);
              
                      apiGetRequest(`/iot-open/sign/device/quota/all?sn=${device.sn}`).then(reponse => {
                          console.info(reponse.data);
                      })
                  }
              });
              
              1 Reply Last reply Reply Quote 1
              • haus-automatisierung
                haus-automatisierung Developer Most Active last edited by

                Hier nochmal in etwas ausführlicher:

                https://haus-automatisierung.com/hardware/2024/11/06/ecoflow-iot-api.html

                Und damit habe ich heute angefangen: https://github.com/klein0r/ioBroker.ecoflow-iot
                (nein, das kann noch nicht viel - ist nur die Basis - changelog lesen)

                M 1 Reply Last reply Reply Quote 0
                • M
                  manny4566 @haus-automatisierung last edited by manny4566

                  @haus-automatisierung

                  hi wird dein neuer Adapter auch von einem Powerstream 800W die Statistik über die Gesamtproduktion auslesen ?
                  Das benötige ich aktuell. Der jetzige ecoflow-mqtt Adapter ließt es zwar aus. Aber die Werte aktualisieren sich nur, wenn man auch die App zwischenzeitlich geöffnet hat. Der Wechselrichter kommuniziert erst dann die Daten hoch in die Cloud. Das stört mich gerade und dafür suche ich eine Lösung.

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

                    @manny4566 sagte in Verbindung mit neuer Ecoflow Api:

                    wird dein neuer Adapter auch von einem Powerstream 800W die Statistik über die Gesamtproduktion auslesen ?

                    Weißt Du zufällig wie der Wert genau heißt? Dann schaue ich mal, ob ich den bekomme (und wann der aktualisiert wird).

                    M 2 Replies Last reply Reply Quote 0
                    • M
                      manny4566 @haus-automatisierung last edited by

                      @haus-automatisierung
                      Könnte der sein:

                      geneWatt int Power generated

                      Viel Auswahl gibt es da ja laut Doku wohl nicht.
                      https://developer-eu.ecoflow.com/us/document/powerStreamMicroInverter

                      1 Reply Last reply Reply Quote 0
                      • M
                        manny4566 @haus-automatisierung last edited by manny4566

                        @haus-automatisierung said in Verbindung mit neuer Ecoflow Api:

                        @manny4566 sagte in Verbindung mit neuer Ecoflow Api:

                        wird dein neuer Adapter auch von einem Powerstream 800W die Statistik über die Gesamtproduktion auslesen ?

                        Weißt Du zufällig wie der Wert genau heißt? Dann schaue ich mal, ob ich den bekomme (und wann der aktualisiert wird).

                        Hab mir jetzt auch nen Dev Zugang erstellt. Aber keine Ahnung wie ich da die Signatur erstelle -.-
                        Wenn ich die Keys in deinen Adapter einfüge, bekomme ich zwar ne Ordnerstruktur vom Adapter erstellt, aber ohne Werte.
                        Kann es sein, dass der Adapter an der Stelle noch nicht so weit ist Werte auszulesen ?

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

                          @manny4566 sagte in Verbindung mit neuer Ecoflow Api:

                          Kann es sein, dass der Adapter an der Stelle noch nicht so weit ist Werte auszulesen ?

                          Der Adapter kann nicht alle Geräte-Typen die es so gibt. Ich habe gerade die 0.0.6 freigegeben - das ist die erste Version, welche keine offenen ToDos mehr von mir hat. Ist aber noch nicht so ausführlich getestet. Gerne mal probieren.

                          Wie immer: Über npm und nicht über GitHub installieren.

                          M 1 Reply Last reply Reply Quote 0
                          • M
                            manny4566 @haus-automatisierung last edited by

                            @haus-automatisierung

                            Soweit ok, bei mir verändert sich nicht der Status. Er bleibt auf dem gelben Ausrufezeichen stehen. "Verbunden mit Gerät oder Dienst" klappt nicht.

                            Ansonsten erkennt er bei mir ja den PowerStream, der mit meinem Konto verbunden ist. Der Ordner mit der SN wird erzeugt.
                            Nur werden keine Datenpunkte dazu angelegt.

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

                              @manny4566 Wie immer: Debug-Log teilen. Also auf Debug Loglevel. Gern als Issue auf GitHub.

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

                                Ich habe mich auch mal an der EcoFlow HTTP API versucht.
                                Das Ergebnis ist dieser Adapter: https://github.com/CatShape/ioBroker.ecoflow_catshape
                                Mein EcoFlow Adapter ist relativ schlank gehalten und 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 sehr viel Flexibilität.

                                • 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. Das heisst man muss bei neuen Geräten nicht warten bis eine neue Adapter-Version rauskommt, welche diese unterstützt.
                                • 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 ist ganz neu und ich konnte ihn bisher nur mit meiner River Pro ausführlich testen. Bisher läuft er bei mir problemlos.
                                Mit einer PowerStream und einer Delta Pro konnte ich ihn nur kurz testen. Auch da habe ich keine Probleme festgestellt.

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

                                1 Reply Last reply Reply Quote 0
                                • R
                                  Ralf 8 @haus-automatisierung last edited by

                                  @haus-automatisierung Eventuell hilft Dir das Beispiel von mir ja schon weiter

                                  Die Verbindung klappt sehr gut, alle Devices wurden in den Objektbaum eingetragen. Vielen Dank.

                                  Leider komme ich aber nicht weiter, wie die Werte aus der Powerstream ermittelt werden:

                                  • pv1InputWatts
                                  • pv2InputWatts
                                  • pvToInvWatts
                                  • permanentWatts

                                  Für weitere Hilfen bin ich daher sehr dankbar.

                                  Gruß
                                  Ralf
                                  Für eine

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  395
                                  Online

                                  31.8k
                                  Users

                                  80.0k
                                  Topics

                                  1.3m
                                  Posts

                                  5
                                  17
                                  1185
                                  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