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. Verbindung mit neuer Ecoflow Api

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

Verbindung mit neuer Ecoflow Api

Geplant Angeheftet Gesperrt Verschoben JavaScript
17 Beiträge 5 Kommentatoren 2.0k Aufrufe 7 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.
  • R Offline
    R Offline
    Ralf 8
    schrieb am zuletzt editiert von
    #1

    Hallo,

    hat jemand Erfahrungen, wie man sich in Javascript mit der neuen Ecoflow-Api verbinden kann?

    Die Dokumentation zeigt wie es per https funktioniert:
    https://developer-eu.ecoflow.com/us/document/introduction

    Ist es möglich das auch mit Javascript umzusetzen?

    Um die Stromabgabe der Powerstream abzufragen, müsste man wahrscheinlich diesen String:

    params.quotas=20_1.permanentWatts&sn=meineseriennr&accessKey=meinaccesskey&nonce=123456&timestamp=1725201337126
    

    verschlüsseln und mit Curl senden.

    Hier ein Teil der Original-Doku (siehe Link oben)

    Step 1: request parameters must be sorted by ASCII value and concatenated with characters =, &
    E.g. str=param1=value1&param2=value2
    Step 2: if the type is nested, expand and splice according to the method of step 1.
    Step 3: concatenate accessKey, nonce, timestamp
    E.g. str=param1=value1&param2=value2&accessKey=***&nonce=...&timestamp=...
    Step 4: encrypt
    E.g. byte[] signBytes = HMAC-SHA256(str, secretKey)
    Step 5: convert byte[] to hexadecimal string. String sign = bytesToHexString(signBytes)
    E.g. sign=85776ede686fe4783eac48135b0b1748ba2d7e9bb7791b826dc942fc29d4ada8
    Step 6: add accessKey, nonce, timestamp, sign to HTTP header
    Step 7: get request data according to Content-Type header
    Step8: verify that the steps to generate the signature are correct

    // request
    curl -X GET https://api-e.ecoflow.com/iot-open/sign/device/list \
    -H 'accessKey:OCHzRuj6NLF7o43***' \
    -H 'timestamp:1681796503289' \
    -H 'nonce:234762' \
    -H 'sign:f560c3e31d96ad31e4567939f9b3dca7b2c454ca7003f60***'
    
    // response
    {
        "code":"0",
        "message":"Success",
        "data":[
            {
                "sn":"DCABZ****",
                "online":1
            }
        ]
    }
    
    S haus-automatisierungH C 3 Antworten Letzte Antwort
    1
    • R Ralf 8

      Hallo,

      hat jemand Erfahrungen, wie man sich in Javascript mit der neuen Ecoflow-Api verbinden kann?

      Die Dokumentation zeigt wie es per https funktioniert:
      https://developer-eu.ecoflow.com/us/document/introduction

      Ist es möglich das auch mit Javascript umzusetzen?

      Um die Stromabgabe der Powerstream abzufragen, müsste man wahrscheinlich diesen String:

      params.quotas=20_1.permanentWatts&sn=meineseriennr&accessKey=meinaccesskey&nonce=123456&timestamp=1725201337126
      

      verschlüsseln und mit Curl senden.

      Hier ein Teil der Original-Doku (siehe Link oben)

      Step 1: request parameters must be sorted by ASCII value and concatenated with characters =, &
      E.g. str=param1=value1&param2=value2
      Step 2: if the type is nested, expand and splice according to the method of step 1.
      Step 3: concatenate accessKey, nonce, timestamp
      E.g. str=param1=value1&param2=value2&accessKey=***&nonce=...&timestamp=...
      Step 4: encrypt
      E.g. byte[] signBytes = HMAC-SHA256(str, secretKey)
      Step 5: convert byte[] to hexadecimal string. String sign = bytesToHexString(signBytes)
      E.g. sign=85776ede686fe4783eac48135b0b1748ba2d7e9bb7791b826dc942fc29d4ada8
      Step 6: add accessKey, nonce, timestamp, sign to HTTP header
      Step 7: get request data according to Content-Type header
      Step8: verify that the steps to generate the signature are correct

      // request
      curl -X GET https://api-e.ecoflow.com/iot-open/sign/device/list \
      -H 'accessKey:OCHzRuj6NLF7o43***' \
      -H 'timestamp:1681796503289' \
      -H 'nonce:234762' \
      -H 'sign:f560c3e31d96ad31e4567939f9b3dca7b2c454ca7003f60***'
      
      // response
      {
          "code":"0",
          "message":"Success",
          "data":[
              {
                  "sn":"DCABZ****",
                  "online":1
              }
          ]
      }
      
      S Offline
      S Offline
      sirdir
      schrieb am zuletzt editiert von
      #2

      @ralf-8 ja hab mir das auch mal angeschaut, ich scheitere schon am HMAC-SHA256…

      R 1 Antwort Letzte Antwort
      0
      • S sirdir

        @ralf-8 ja hab mir das auch mal angeschaut, ich scheitere schon am HMAC-SHA256…

        R Offline
        R Offline
        Ralf 8
        schrieb am zuletzt editiert von Ralf 8
        #3

        Beitrag gelöscht

        1 Antwort Letzte Antwort
        0
        • R Ralf 8

          Hallo,

          hat jemand Erfahrungen, wie man sich in Javascript mit der neuen Ecoflow-Api verbinden kann?

          Die Dokumentation zeigt wie es per https funktioniert:
          https://developer-eu.ecoflow.com/us/document/introduction

          Ist es möglich das auch mit Javascript umzusetzen?

          Um die Stromabgabe der Powerstream abzufragen, müsste man wahrscheinlich diesen String:

          params.quotas=20_1.permanentWatts&sn=meineseriennr&accessKey=meinaccesskey&nonce=123456&timestamp=1725201337126
          

          verschlüsseln und mit Curl senden.

          Hier ein Teil der Original-Doku (siehe Link oben)

          Step 1: request parameters must be sorted by ASCII value and concatenated with characters =, &
          E.g. str=param1=value1&param2=value2
          Step 2: if the type is nested, expand and splice according to the method of step 1.
          Step 3: concatenate accessKey, nonce, timestamp
          E.g. str=param1=value1&param2=value2&accessKey=***&nonce=...&timestamp=...
          Step 4: encrypt
          E.g. byte[] signBytes = HMAC-SHA256(str, secretKey)
          Step 5: convert byte[] to hexadecimal string. String sign = bytesToHexString(signBytes)
          E.g. sign=85776ede686fe4783eac48135b0b1748ba2d7e9bb7791b826dc942fc29d4ada8
          Step 6: add accessKey, nonce, timestamp, sign to HTTP header
          Step 7: get request data according to Content-Type header
          Step8: verify that the steps to generate the signature are correct

          // request
          curl -X GET https://api-e.ecoflow.com/iot-open/sign/device/list \
          -H 'accessKey:OCHzRuj6NLF7o43***' \
          -H 'timestamp:1681796503289' \
          -H 'nonce:234762' \
          -H 'sign:f560c3e31d96ad31e4567939f9b3dca7b2c454ca7003f60***'
          
          // response
          {
              "code":"0",
              "message":"Success",
              "data":[
                  {
                      "sn":"DCABZ****",
                      "online":1
                  }
              ]
          }
          
          haus-automatisierungH Offline
          haus-automatisierungH Offline
          haus-automatisierung
          Developer Most Active
          schrieb am zuletzt editiert von
          #4

          @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?

          🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
          🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
          📚 Meine inoffizielle ioBroker Dokumentation

          R 1 Antwort Letzte Antwort
          0
          • haus-automatisierungH haus-automatisierung

            @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 Offline
            R Offline
            Ralf 8
            schrieb am zuletzt editiert von
            #5

            Nicht sehr lange, kann aber schon ein paar Tage dauern

            haus-automatisierungH 1 Antwort Letzte Antwort
            0
            • R Ralf 8

              Nicht sehr lange, kann aber schon ein paar Tage dauern

              haus-automatisierungH Offline
              haus-automatisierungH Offline
              haus-automatisierung
              Developer Most Active
              schrieb am zuletzt editiert von haus-automatisierung
              #6

              @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);
                      }
                  }
              );
              
              

              🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
              🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
              📚 Meine inoffizielle ioBroker Dokumentation

              R 1 Antwort Letzte Antwort
              0
              • haus-automatisierungH Offline
                haus-automatisierungH Offline
                haus-automatisierung
                Developer Most Active
                schrieb am zuletzt editiert von
                #7

                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);
                        })
                    }
                });
                

                🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                📚 Meine inoffizielle ioBroker Dokumentation

                1 Antwort Letzte Antwort
                1
                • haus-automatisierungH Offline
                  haus-automatisierungH Offline
                  haus-automatisierung
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #8

                  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)

                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                  📚 Meine inoffizielle ioBroker Dokumentation

                  M 1 Antwort Letzte Antwort
                  0
                  • haus-automatisierungH haus-automatisierung

                    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 Offline
                    M Offline
                    manny4566
                    schrieb am zuletzt editiert von manny4566
                    #9

                    @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-automatisierungH 1 Antwort Letzte Antwort
                    0
                    • M 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-automatisierungH Offline
                      haus-automatisierungH Offline
                      haus-automatisierung
                      Developer Most Active
                      schrieb am zuletzt editiert von
                      #10

                      @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).

                      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                      📚 Meine inoffizielle ioBroker Dokumentation

                      M 2 Antworten Letzte Antwort
                      0
                      • haus-automatisierungH haus-automatisierung

                        @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 Offline
                        M Offline
                        manny4566
                        schrieb am zuletzt editiert von
                        #11

                        @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 Antwort Letzte Antwort
                        0
                        • haus-automatisierungH haus-automatisierung

                          @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 Offline
                          M Offline
                          manny4566
                          schrieb am zuletzt editiert von manny4566
                          #12

                          @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-automatisierungH 1 Antwort Letzte Antwort
                          0
                          • M 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-automatisierungH Offline
                            haus-automatisierungH Offline
                            haus-automatisierung
                            Developer Most Active
                            schrieb am zuletzt editiert von
                            #13

                            @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.

                            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                            📚 Meine inoffizielle ioBroker Dokumentation

                            M 1 Antwort Letzte Antwort
                            0
                            • haus-automatisierungH haus-automatisierung

                              @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 Offline
                              M Offline
                              manny4566
                              schrieb am zuletzt editiert von
                              #14

                              @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-automatisierungH 1 Antwort Letzte Antwort
                              0
                              • M manny4566

                                @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-automatisierungH Offline
                                haus-automatisierungH Offline
                                haus-automatisierung
                                Developer Most Active
                                schrieb am zuletzt editiert von
                                #15

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

                                🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                📚 Meine inoffizielle ioBroker Dokumentation

                                1 Antwort Letzte Antwort
                                0
                                • R Ralf 8

                                  Hallo,

                                  hat jemand Erfahrungen, wie man sich in Javascript mit der neuen Ecoflow-Api verbinden kann?

                                  Die Dokumentation zeigt wie es per https funktioniert:
                                  https://developer-eu.ecoflow.com/us/document/introduction

                                  Ist es möglich das auch mit Javascript umzusetzen?

                                  Um die Stromabgabe der Powerstream abzufragen, müsste man wahrscheinlich diesen String:

                                  params.quotas=20_1.permanentWatts&sn=meineseriennr&accessKey=meinaccesskey&nonce=123456&timestamp=1725201337126
                                  

                                  verschlüsseln und mit Curl senden.

                                  Hier ein Teil der Original-Doku (siehe Link oben)

                                  Step 1: request parameters must be sorted by ASCII value and concatenated with characters =, &
                                  E.g. str=param1=value1&param2=value2
                                  Step 2: if the type is nested, expand and splice according to the method of step 1.
                                  Step 3: concatenate accessKey, nonce, timestamp
                                  E.g. str=param1=value1&param2=value2&accessKey=***&nonce=...&timestamp=...
                                  Step 4: encrypt
                                  E.g. byte[] signBytes = HMAC-SHA256(str, secretKey)
                                  Step 5: convert byte[] to hexadecimal string. String sign = bytesToHexString(signBytes)
                                  E.g. sign=85776ede686fe4783eac48135b0b1748ba2d7e9bb7791b826dc942fc29d4ada8
                                  Step 6: add accessKey, nonce, timestamp, sign to HTTP header
                                  Step 7: get request data according to Content-Type header
                                  Step8: verify that the steps to generate the signature are correct

                                  // request
                                  curl -X GET https://api-e.ecoflow.com/iot-open/sign/device/list \
                                  -H 'accessKey:OCHzRuj6NLF7o43***' \
                                  -H 'timestamp:1681796503289' \
                                  -H 'nonce:234762' \
                                  -H 'sign:f560c3e31d96ad31e4567939f9b3dca7b2c454ca7003f60***'
                                  
                                  // response
                                  {
                                      "code":"0",
                                      "message":"Success",
                                      "data":[
                                          {
                                              "sn":"DCABZ****",
                                              "online":1
                                          }
                                      ]
                                  }
                                  
                                  C Offline
                                  C Offline
                                  CatShape
                                  schrieb am zuletzt editiert von CatShape
                                  #16

                                  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

                                  Raspberry Pi 5 8GB; Raspberry Pi OS; ioBroker; ecoflow_catshape, shelly-http-cs, tuya-cs

                                  1 Antwort Letzte Antwort
                                  0
                                  • haus-automatisierungH 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 Offline
                                    R Offline
                                    Ralf 8
                                    schrieb am zuletzt editiert von
                                    #17

                                    @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 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

                                    796

                                    Online

                                    32.4k

                                    Benutzer

                                    81.5k

                                    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