Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. ecoflow-connector-Script zur dynamischen Leistungsanpassung

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    221

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

ecoflow-connector-Script zur dynamischen Leistungsanpassung

Scheduled Pinned Locked Moved JavaScript
1.7k Posts 127 Posters 781.2k Views 127 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Waly_de

    @sirdir guter Hinweis mit der Client ID.
    Ich hab das Grip mal angepasst und eine Client ID fest vergeben. Damit sollte das Problem erledigt sein.

    const axios = require('axios');
    const mqtt = require('mqtt');
    const crypto = require('crypto');
     
    //****** HIER DEINE DATEN ******
    const accessKey = 'XXXXXXXXXXXXXXXX'; // Ersetze dies mit deinem tatsächlichen Access Key
    const secretKey = 'XXXXXXXXXXXXXXXX'; // Ersetze dies mit deinem tatsächlichen Secret Key
    const deviceSNs = ['XXXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXX']; // Mehrere Geräte-Seriennummern
    const MQTT_Clientid = 1
    //*********************/
     
     
    // Konfigurationen
    const host = 'api-e.ecoflow.com';
    const mqttHost = 'mqtt.ecoflow.com';
    const mqttPort = 8883;
    const mqttProtocol = 'mqtts';
    const mqttCert = '0_userdata.0.ecoflow.mqttCert'
    // Globale Variablen für client und certification
    let client;
    let certification;
     
    if (!existsState(mqttCert)) {
        createState(mqttCert, "");
    }
     
    // Hilfsfunktion zur Erstellung eines HMAC-SHA256-Signatur
    function createSignature(params, secretKey) {
        const queryString = Object.keys(params)
            .sort()
            .map(key => `${key}=${params[key]}`)
            .join('&');
        return crypto.createHmac('sha256', secretKey).update(queryString).digest('hex');
    }
     
    // Funktion zur Überprüfung, ob Zertifikat bereits vorhanden ist
    async function loadMQTTCertification() {
        return new Promise((resolve, reject) => {
            // Überprüfen, ob der State existiert
     
            getState(mqttCert, (err, state) => {
                if (err) {
                    console.error('Fehler beim Überprüfen des Zertifikat-States:', err);
                    return reject(err);
                }
                if (state && state.val) {
                    try {
                        const storedCert = JSON.parse(state.val);
                        // Überprüfen, ob die Felder im Zertifikat vorhanden sind
                        if (storedCert.certificateAccount && storedCert.certificatePassword) {
                            console.log('Zertifikat aus ioBroker geladen');
                            return resolve(storedCert);
                        }
                    } catch (error) {
                        console.error('Fehler beim Parsen des Zertifikats:'+ error);
                    }
                }
                resolve(null); // Kein Zertifikat gefunden oder ungültig
            });
        });
    }
     
    // Zertifikate für MQTT abrufen und speichern
    async function getMQTTCertification() {
        const nonce = Math.floor(Math.random() * 1000000);
        const timestamp = Date.now();
        const params = {
            accessKey: accessKey,
            nonce: nonce,
            timestamp: timestamp
        };
     
        const signature = createSignature(params, secretKey);
     
        try {
            const response = await axios.get(`https://${host}/iot-open/sign/certification`, {
                headers: {
                    accessKey: accessKey,
                    nonce: nonce,
                    timestamp: timestamp,
                    sign: signature
                }
            });
     
            const certData = response.data.data;
            // Zertifikat in ioBroker speichern
            setState(mqttCert, JSON.stringify(certData), true);
            console.log('Zertifikat erfolgreich abgerufen und in ioBroker gespeichert');
            return certData;
        } catch (error) {
            console.error('Fehler beim Abrufen der MQTT-Zertifikate:'+ error);
            throw error;
        }
    }
     
    // Funktion zum Setzen von Parametern (z.B. permanentWatts) ohne client und certification als Parameter
    function setPermanentWatts(deviceSN, wattsValue) {
        if (!client || !certification) {
            console.error("MQTT-Client oder Zertifizierung nicht bereit.");
            return;
        }
     
        const setTopic = `/open/${certification.certificateAccount}/${deviceSN}/set`;
     
        const message = {
            id: Date.now(), // Einzigartige ID
            version: "1.0",
            cmdCode: "WN511_SET_PERMANENT_WATTS_PACK", // Befehlscode zum Setzen von permanentWatts
            params: {
                permanentWatts: wattsValue // Der Wert, den du setzen möchtest
            }
        };
     
        client.publish(setTopic, JSON.stringify(message), (err) => {
            if (!err) {
                console.log(`Befehl zum Setzen von permanentWatts auf ${wattsValue} W für Gerät ${deviceSN} wurde gesendet.`);
            } else {
                console.error(`Fehler beim Senden des permanentWatts-Befehls für Gerät ${deviceSN}:` + err);
            }
        });
    }
     
    // MQTT-Verbindung herstellen und Daten empfangen
    async function startMQTTClient() {
        try {
            // Zertifikat aus ioBroker laden, falls vorhanden
            certification = await loadMQTTCertification();
            if (!certification) {
                // Zertifikat neu generieren, wenn es nicht vorhanden ist
                certification = await getMQTTCertification();
            }
     
            client = mqtt.connect(`${mqttProtocol}://${mqttHost}:${mqttPort}`, {
                clientId: 'EcoFlowClient_' + MQTT_Clientid,
                username: certification.certificateAccount,
                password: certification.certificatePassword,
                protocol: mqttProtocol
            });
     
            client.on('connect', () => {
                console.log('Verbunden mit dem MQTT-Broker');
     
                // Abonnieren von Status und anderen Daten für jedes Gerät
                deviceSNs.forEach((deviceSN) => {
                    const quotaTopic = `/open/${certification.certificateAccount}/${deviceSN}/quota`;
                    const statusTopic = `/open/${certification.certificateAccount}/${deviceSN}/status`;
     
                    // Abonnieren des Status-Themas
                    client.subscribe(statusTopic, (err) => {
                        if (!err) {
                            console.log(`Abonniert auf Status-Topic: ${statusTopic}`);
                        } else {
                            console.error(`Fehler beim Abonnieren des Status-Themas für Gerät ${deviceSN}:` + err);
                        }
                    });
     
                    // Abonnieren des Quota-Themas
                    client.subscribe(quotaTopic, (err) => {
                        if (!err) {
                            console.log(`Abonniert auf Quota-Topic: ${quotaTopic}`);
                        } else {
                            console.error(`Fehler beim Abonnieren des Quota-Themas für Gerät ${deviceSN}:` + err);
                        }
                    });
                });
            });
     
            client.on('message', (topic, message) => {
                console.log(`Nachricht empfangen von Topic ${topic}: ${message.toString()}`);
            });
     
            client.on('error', (err) => {
                console.error('MQTT-Verbindungsfehler:' + err);
                client.end();  // Trenne die Verbindung bei einem Fehler
                console.log('Verbindung getrennt aufgrund eines Fehlers ' + err);
            });
     
            client.on('close', () => {
                console.log('MQTT-Verbindung geschlossen');
            });
     
        } catch (error) {
            console.error('Fehler beim Starten des MQTT-Clients:' + error);
        }
    }
    // Schließe die Verbindung, wenn das Skript gestoppt wird
    onStop(function (callback) {
        if (client) {
            client.end();
            log("Script gestoppt");
        }
        callback();
    }, 2000);
    // Start der MQTT-Client-Verbindung
    startMQTTClient();
     
     
     
    // Beispielaufruf von setPermanentWatts außerhalb von startMQTTClient()
    setTimeout(() => {
        setPermanentWatts(deviceSNs[0], 3000); // Setzt permanentWatts für ein bestimmtes Gerät auf 300 W
    }, 5000); // Warte 5 Sekunden, damit der Client verbunden ist
    
    
    S Offline
    S Offline
    sirdir
    wrote on last edited by sirdir
    #1517

    @waly_de das war @giovanne :)

    Ich hab das Format jetzt verstanden un konnte diverse Werte setzen.

    Was mir noch nicht ganz klar ist, der z.B. batSoc taucht im quota wohl nur auf, wenn er sich ändert… abfragen kann man den nicht?
    und z.B. die Einspeisekontrolle ein/ausschalten, dafür gibt’s keinen Parameter? Dann liesse sich das Script ja schon mal nicht komplett umschreiben…

    G S 2 Replies Last reply
    0
    • S sirdir

      @waly_de das war @giovanne :)

      Ich hab das Format jetzt verstanden un konnte diverse Werte setzen.

      Was mir noch nicht ganz klar ist, der z.B. batSoc taucht im quota wohl nur auf, wenn er sich ändert… abfragen kann man den nicht?
      und z.B. die Einspeisekontrolle ein/ausschalten, dafür gibt’s keinen Parameter? Dann liesse sich das Script ja schon mal nicht komplett umschreiben…

      G Offline
      G Offline
      giovanne
      wrote on last edited by giovanne
      #1518

      @sirdir , aktiv abfragen kannst wenn es per mqtt nicht geht, mit http. Auch setzen geht (alternativ) per http.

      Ich nutze mqtt auch mehr fürs monitoring, man subscribed /abonniert ja topic die einen interessieren und dementsprechend finde ich es korrekt das nur Änderungen mitgeteilt werden.
      Aktiv schalten und co dann per http...

      Aber gibt sicherlich verschiedene Wege nach Rom 😜

      Edit: ich glaube Einspeisekontrolle fehlt tatsächlich (vermutlich) noch, war zumindest damals so. Die kam ja erst in späterer Firmware und müsste von Ecoflow in die API aufgenommen werden (wenn nicht vorhanden).
      Ich nutze die nicht deshalb habe ich die nicht weiter verfolgt.

      S 1 Reply Last reply
      0
      • G giovanne

        @sirdir , aktiv abfragen kannst wenn es per mqtt nicht geht, mit http. Auch setzen geht (alternativ) per http.

        Ich nutze mqtt auch mehr fürs monitoring, man subscribed /abonniert ja topic die einen interessieren und dementsprechend finde ich es korrekt das nur Änderungen mitgeteilt werden.
        Aktiv schalten und co dann per http...

        Aber gibt sicherlich verschiedene Wege nach Rom 😜

        Edit: ich glaube Einspeisekontrolle fehlt tatsächlich (vermutlich) noch, war zumindest damals so. Die kam ja erst in späterer Firmware und müsste von Ecoflow in die API aufgenommen werden (wenn nicht vorhanden).
        Ich nutze die nicht deshalb habe ich die nicht weiter verfolgt.

        S Offline
        S Offline
        sirdir
        wrote on last edited by sirdir
        #1519

        @giovanne OK, ich brauch das mit der Einspeisekontrolle… 
        So oder so, ist doch ne ganz schöne Arbeit das Originalscript anzupassen, zumal ich das erst mal richtg analysieren müsste.
        Ich fühl mich so doof, hab jetzt nochmal den http Weg versuchen wollen und mit der Funktion von Wally zu signieren versucht, aber der Wert den ich raus krieg wenn ich die Parameter aus dem Beispiel von Ecoflow übergebe stimmt nicht überein…

        Edit: Man sollte Funktionen, die man benutzt vielleicht auch mal anschauen :) er sortiert das ja um.. ohne das stimmt der Wert.

        1 Reply Last reply
        0
        • A Offline
          A Offline
          Accu
          wrote on last edited by Accu
          #1520

          jetzt hats mich auch erwischt und das Script speist nicht mehr ein. Muss irgendwann letzte Nacht um 5 Uhr morgens passiert sein. Seltsamerweise lief es jetzt all die Zeit problemlos, bis ich gestern an der Anlage rumgespielt hatte und den Powerstream AC-seitig vom Strom getrennt hatte. Was ein Mist. Der Realpower -Wert wird in den Objekten noch angezeigt. Woran sieht man eigentlich, dass von EF MQTT nichts mehr zuürck kommt in den Objekten?

          Gibt es irgendwelche Alternativen was man jetzt machen kann? wie habt ihr das alle jetzt gelöst. Vorallem dass ich die Überschussladung jetzt nicht mehr nutzen kann nervt ohne Ende.

          Im Skript schein er bestimmte Werte vom PS nicht mehr zu lesen.

          IMG_0099.jpeg

          R 1 Reply Last reply
          0
          • A Accu

            jetzt hats mich auch erwischt und das Script speist nicht mehr ein. Muss irgendwann letzte Nacht um 5 Uhr morgens passiert sein. Seltsamerweise lief es jetzt all die Zeit problemlos, bis ich gestern an der Anlage rumgespielt hatte und den Powerstream AC-seitig vom Strom getrennt hatte. Was ein Mist. Der Realpower -Wert wird in den Objekten noch angezeigt. Woran sieht man eigentlich, dass von EF MQTT nichts mehr zuürck kommt in den Objekten?

            Gibt es irgendwelche Alternativen was man jetzt machen kann? wie habt ihr das alle jetzt gelöst. Vorallem dass ich die Überschussladung jetzt nicht mehr nutzen kann nervt ohne Ende.

            Im Skript schein er bestimmte Werte vom PS nicht mehr zu lesen.

            IMG_0099.jpeg

            R Offline
            R Offline
            Ralf77
            wrote on last edited by Ralf77
            #1521

            @accu das ist normal soweit ich weiß und and dauert immer kurze Zeit nach eine, Neustart, bis wieder entsprechend historische Werte angelegt sind. Das sollte alles schon wieder funktionieren. Di3se Meldung bekomme ich auch, wenn ich neu starte… nach ein paar Minuten geht es dann wieder normal weiter.

            Generell habe ich aber auch ein Problem… Immer gegen 2 Uhr in der Nacht verdoppelt der ioBroker die Einspeisung. Keine Ahnung, was das ist… wir schlafen da alle und es ist auch genügend Energie im Speicher. Das ist so jetzt schon die 2 Nacht. Jemand eine Ahnung, was das sein kann?

            f8343db1-48cc-4e7b-b207-4c6dd25c9e24-image.jpeg

            A 1 Reply Last reply
            0
            • S sirdir

              @waly_de das war @giovanne :)

              Ich hab das Format jetzt verstanden un konnte diverse Werte setzen.

              Was mir noch nicht ganz klar ist, der z.B. batSoc taucht im quota wohl nur auf, wenn er sich ändert… abfragen kann man den nicht?
              und z.B. die Einspeisekontrolle ein/ausschalten, dafür gibt’s keinen Parameter? Dann liesse sich das Script ja schon mal nicht komplett umschreiben…

              S Offline
              S Offline
              sirdir
              wrote on last edited by sirdir
              #1522

              @Waly_de Ich hab jetzt die für mich wichtigsten Dinge implementiert (ohne Feed-Prio, weil das wohl nicht geht) und es klappt so weit. Eine Frage, ist es normal, dass die Verbindung in unregelmässigen Abständen (wenige Sekunden) geschlossen und wieder aufgebaut wird?

              O 1 Reply Last reply
              0
              • S sirdir

                @Waly_de Ich hab jetzt die für mich wichtigsten Dinge implementiert (ohne Feed-Prio, weil das wohl nicht geht) und es klappt so weit. Eine Frage, ist es normal, dass die Verbindung in unregelmässigen Abständen (wenige Sekunden) geschlossen und wieder aufgebaut wird?

                O Offline
                O Offline
                Odi77
                wrote on last edited by Odi77
                #1523

                @sirdir Ich hatte seit ich die gleiche "clientId" wie Waly_de im Test-Skript verwendet hatte ("Ecoflow_1") den selben Effekt.
                Ich habe nun einen komplett kryptischen jedoch konstanten Wert gewählt. - Nun scheint dieses Problem behoben zu sein.

                S 1 Reply Last reply
                0
                • O Odi77

                  @sirdir Ich hatte seit ich die gleiche "clientId" wie Waly_de im Test-Skript verwendet hatte ("Ecoflow_1") den selben Effekt.
                  Ich habe nun einen komplett kryptischen jedoch konstanten Wert gewählt. - Nun scheint dieses Problem behoben zu sein.

                  S Offline
                  S Offline
                  sirdir
                  wrote on last edited by
                  #1524

                  @odi77 Versuch ich mal - also auch fix, nicht generiert pro neustart oder so? Lustig ist auch, dass es nicht immer auftrat. Jetzt, nach ändern der ClientID seh ich’s auch nicht, aber eben, war auch vorher nicht immer so.

                  1 Reply Last reply
                  0
                  • R Ralf77

                    @accu das ist normal soweit ich weiß und and dauert immer kurze Zeit nach eine, Neustart, bis wieder entsprechend historische Werte angelegt sind. Das sollte alles schon wieder funktionieren. Di3se Meldung bekomme ich auch, wenn ich neu starte… nach ein paar Minuten geht es dann wieder normal weiter.

                    Generell habe ich aber auch ein Problem… Immer gegen 2 Uhr in der Nacht verdoppelt der ioBroker die Einspeisung. Keine Ahnung, was das ist… wir schlafen da alle und es ist auch genügend Energie im Speicher. Das ist so jetzt schon die 2 Nacht. Jemand eine Ahnung, was das sein kann?

                    f8343db1-48cc-4e7b-b207-4c6dd25c9e24-image.jpeg

                    A Offline
                    A Offline
                    Accu
                    wrote on last edited by
                    #1525

                    @ralf77 gestern lief mein Skript plötzlich wieder. Ab heute Morgen 5 uhr wieder das gleich wie am Tag zu vor. Es speist nicht mehr ein.
                    Hast du irgendeinenen Tipp?

                    S R 2 Replies Last reply
                    0
                    • A Accu

                      @ralf77 gestern lief mein Skript plötzlich wieder. Ab heute Morgen 5 uhr wieder das gleich wie am Tag zu vor. Es speist nicht mehr ein.
                      Hast du irgendeinenen Tipp?

                      S Offline
                      S Offline
                      sirdir
                      wrote on last edited by sirdir
                      #1526

                      @accu Hast du dasselbe Problem wie ich vielleicht? Zusatzakku geht schlafen oder so? (battErrorCode: 8 ) und PS speist deswegen nichts ein. Hab jetzt mein Script so angepasst, dass in dem Fall der andere PS das Doppelte Einspeist, bis die Batterie irgendwann aufwacht…
                      Weiss auch nicht warum das mit der Batterie jetzt passiert und ob das auch irgendwie von Ecoflow gesteuert wird…

                      1 Reply Last reply
                      0
                      • A Accu

                        @ralf77 gestern lief mein Skript plötzlich wieder. Ab heute Morgen 5 uhr wieder das gleich wie am Tag zu vor. Es speist nicht mehr ein.
                        Hast du irgendeinenen Tipp?

                        R Offline
                        R Offline
                        Ralf77
                        wrote on last edited by
                        #1527

                        @accu gestern war bei mir auch wieder alles ok. Keine Ahnung warum…

                        Hast Du mal geschaut, ob Du irgendwo eine geplante Aufgabe noch aktiv hast oder eine Automatisierung aktiv ist?

                        Ich hatte es bisher noch nie, dass die Einspeisung komplett gestoppt wurde. Das kommt eigentlich bei mir nur vor, wenn ich z.B gesetzte Limits erreicht habe oder ich ein Abschalten durch Wechsel in den Speicher-Prio Modus aktiviert hatte .

                        Oder hast Du im Script eventuell den BattPrio Modus mit gewissen Zuständen verknüpft?

                        S 1 Reply Last reply
                        0
                        • R Ralf77

                          @accu gestern war bei mir auch wieder alles ok. Keine Ahnung warum…

                          Hast Du mal geschaut, ob Du irgendwo eine geplante Aufgabe noch aktiv hast oder eine Automatisierung aktiv ist?

                          Ich hatte es bisher noch nie, dass die Einspeisung komplett gestoppt wurde. Das kommt eigentlich bei mir nur vor, wenn ich z.B gesetzte Limits erreicht habe oder ich ein Abschalten durch Wechsel in den Speicher-Prio Modus aktiviert hatte .

                          Oder hast Du im Script eventuell den BattPrio Modus mit gewissen Zuständen verknüpft?

                          S Offline
                          S Offline
                          sirdir
                          wrote on last edited by
                          #1528

                          @ralf77 Bei mir definitiv keine geplaneten Aufgaben etc. Steuerte alles über das Script. Irgendwas passiert manchmal bei manchen Leuten. Hab auch schon von welchen gehört die sagten, sie kriegen nur noch daten geliefert wenn sie die App aufmachen. Ich hab gesehen, dass das Script 0 einspeisen wollte, obwohl bedarf da war. Jemand, dem ich beim Setup geholfen habe hatte das auch schon mehrmals… Bei mir kam noch mehr dazu, warhscheinlich eben wegen der Batterie die sich schlafen legt oder vielleicht auch Serverprobleme, jedenfalls hatte ich plötzlich 2x0% SOC und sowas. Ich hab jetzt alles auf die offizielle API umgestellt. Nicht so sophisticated wie Waly’s Script, aber für mich tut’s jetzt seit ner Weile perfekt.

                          G 1 Reply Last reply
                          1
                          • S sirdir

                            @ralf77 Bei mir definitiv keine geplaneten Aufgaben etc. Steuerte alles über das Script. Irgendwas passiert manchmal bei manchen Leuten. Hab auch schon von welchen gehört die sagten, sie kriegen nur noch daten geliefert wenn sie die App aufmachen. Ich hab gesehen, dass das Script 0 einspeisen wollte, obwohl bedarf da war. Jemand, dem ich beim Setup geholfen habe hatte das auch schon mehrmals… Bei mir kam noch mehr dazu, warhscheinlich eben wegen der Batterie die sich schlafen legt oder vielleicht auch Serverprobleme, jedenfalls hatte ich plötzlich 2x0% SOC und sowas. Ich hab jetzt alles auf die offizielle API umgestellt. Nicht so sophisticated wie Waly’s Script, aber für mich tut’s jetzt seit ner Weile perfekt.

                            G Offline
                            G Offline
                            gooflo
                            wrote on last edited by
                            #1529

                            @sirdir cool, dass Du es auf die offizielle API umgestellt hast. Teilst Du Deinen Code mit uns?

                            S 1 Reply Last reply
                            0
                            • G gooflo

                              @sirdir cool, dass Du es auf die offizielle API umgestellt hast. Teilst Du Deinen Code mit uns?

                              S Offline
                              S Offline
                              sirdir
                              wrote on last edited by sirdir
                              #1530

                              @gooflo Kann ich schon machen aber es ist nicht das Script von Waly angepasst sondern einfach sein public-api sample benutzt um das nötigste für mich zu machen… hab an einigen Stellen schon versucht es etwas ‘generell’ zu schreiben aber am Ende ist es genau auf meinen Anwendungsfall mit 2 PS die einspeisen angepasst, speist den aktuellen Bedarf ein, nix historie etc. Weiss nicht ob das jemandem wirklich so viel nützt.

                              G 1 Reply Last reply
                              0
                              • A Offline
                                A Offline
                                Accu
                                wrote on last edited by
                                #1531

                                @Ralf77 habe keine Automatisierungen laufen. Nur das Skript. Glaube auch nicht dass es am ZA liegt. Denke es hat mit der EF API zu tun. Gestern habe ich mal den Fehler: authorized gesehen. Zudem habe ich das Gefühl ich muss regelmäßig die EF App aufmachen. Fühlt sich so an, als werden die Nutzer nach 1h Inaktivität rausgeworfen.

                                1 Reply Last reply
                                0
                                • S sirdir

                                  @gooflo Kann ich schon machen aber es ist nicht das Script von Waly angepasst sondern einfach sein public-api sample benutzt um das nötigste für mich zu machen… hab an einigen Stellen schon versucht es etwas ‘generell’ zu schreiben aber am Ende ist es genau auf meinen Anwendungsfall mit 2 PS die einspeisen angepasst, speist den aktuellen Bedarf ein, nix historie etc. Weiss nicht ob das jemandem wirklich so viel nützt.

                                  G Offline
                                  G Offline
                                  gooflo
                                  wrote on last edited by
                                  #1532

                                  @sirdir habe zufälligerweise auch zwei PS und außerdem noch zwei Shelly Pro und muss mir, wenn alles nicht mehr funktioniert, auch was Eigenes basteln, außerdem fände ich ein funktionierendes Beispiel für Regelung mit der neuen API auch super interessant ... Du siehst, ich zumindest hätte Interesse daran, dass Du es teilst (gerne auch direkt per Chat, falls Dir das lieber wäre).

                                  S 1 Reply Last reply
                                  0
                                  • G gooflo

                                    @sirdir habe zufälligerweise auch zwei PS und außerdem noch zwei Shelly Pro und muss mir, wenn alles nicht mehr funktioniert, auch was Eigenes basteln, außerdem fände ich ein funktionierendes Beispiel für Regelung mit der neuen API auch super interessant ... Du siehst, ich zumindest hätte Interesse daran, dass Du es teilst (gerne auch direkt per Chat, falls Dir das lieber wäre).

                                    S Offline
                                    S Offline
                                    sirdir
                                    wrote on last edited by sirdir
                                    #1533

                                    @gooflo OK, aber don’t judge me, es ist wirklich schnell zusammengehackt, ohne viel Fehlerprüfung etc.
                                    Funktioniert so wohl nur mit D2M perfekt (wobei für die Grundfunktion sollte es keine Rolle spielen).

                                    Hier das file:
                                    https://www.sirdir.ch:8080/api/public/dl/7iPBEDLM/pspublicapi.js

                                    G M 2 Replies Last reply
                                    2
                                    • S sirdir

                                      @gooflo OK, aber don’t judge me, es ist wirklich schnell zusammengehackt, ohne viel Fehlerprüfung etc.
                                      Funktioniert so wohl nur mit D2M perfekt (wobei für die Grundfunktion sollte es keine Rolle spielen).

                                      Hier das file:
                                      https://www.sirdir.ch:8080/api/public/dl/7iPBEDLM/pspublicapi.js

                                      G Offline
                                      G Offline
                                      gooflo
                                      wrote on last edited by
                                      #1534

                                      @sirdir cool, danke :+1:

                                      1 Reply Last reply
                                      0
                                      • S sirdir

                                        @gooflo OK, aber don’t judge me, es ist wirklich schnell zusammengehackt, ohne viel Fehlerprüfung etc.
                                        Funktioniert so wohl nur mit D2M perfekt (wobei für die Grundfunktion sollte es keine Rolle spielen).

                                        Hier das file:
                                        https://www.sirdir.ch:8080/api/public/dl/7iPBEDLM/pspublicapi.js

                                        M Offline
                                        M Offline
                                        matz75
                                        wrote on last edited by matz75
                                        #1535

                                        @sirdir Super. So muss das sein. Werde mich mal gleich als Tester bereitstellen :-). Hab es mal implementiert und lasse nun regeln. Bisher sieht das sehr gut aus. Hab gleich mal um die Schwellwerte erweitert. Sprich: Akkustand kleiner xxx nur noch mit xxx max einspeisen. Die Überschussladung etc. steuere ich eh von extern. Da hab ich nicht so die Not. Wichtig ist, wieder eine stabile Regulierung am laufen zu haben. Und das sieht schon sehr gut aus. Danke

                                        Reduzierung funktioniert :-)

                                        S 1 Reply Last reply
                                        0
                                        • M matz75

                                          @sirdir Super. So muss das sein. Werde mich mal gleich als Tester bereitstellen :-). Hab es mal implementiert und lasse nun regeln. Bisher sieht das sehr gut aus. Hab gleich mal um die Schwellwerte erweitert. Sprich: Akkustand kleiner xxx nur noch mit xxx max einspeisen. Die Überschussladung etc. steuere ich eh von extern. Da hab ich nicht so die Not. Wichtig ist, wieder eine stabile Regulierung am laufen zu haben. Und das sieht schon sehr gut aus. Danke

                                          Reduzierung funktioniert :-)

                                          S Offline
                                          S Offline
                                          sirdir
                                          wrote on last edited by sirdir
                                          #1536

                                          @matz75 Ja überschussladung steuere ich auch extern. das mit der Reduzierung brauch ich nicht, ausser halt dass der andere PS übernimmt wenn der 1. leer ist. Da bin ich aber nicht sicher ob das zuverlässig klappt, weil zumindest der private MQTT Server da oft noch 1% und sogar aktive Einspeisung gemeldet hat, wenn nix mehr ging… aber ich hab das mit bei 0% speist der andere alles ein eher gemacht weil mein Zusatzakku eben manchmal nicht aufwacht und dann gemeldet wird er habe 0% und der PS speist nix ein… Was ich ja auch noch implementiert habe ist, dass wenn der eine Akku leerer ist als der andere, speist der vollere mehr ein.

                                          PS: Vielleicht wäre ‘der andere speist nix ein’ auch besser als Kriterium um allein einzuspeisen als ‘akku ist auf 0%’. Allerdings… Gerade jetzt ist der eine PS offline, wahrscheinlich ha sich der Akku wieder abgeschaltet.. und laut daten fliessen 3 WAatt aus der Batterie und es gibt auch nen Akkustand. Einspeistung ist auf 0, aber wohl auch nur weil die auf 0 war als der Akku aus ging… Wirklich zuverlässig weiss ich fast nicht wie ich sowas feststellen kann…

                                          Edit: Hab noch was versucht um das mit der leeren Batterie festzustellen und dabei auch gleich noch ein Limit integriert wie du es wohl brauchst. Kann’s jetzt nicht mehr sinnvoll testen weil der Akku leer ist…

                                          M 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          564

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe