Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. ecoflow-connector-Script zur dynamischen Leistungsanpassung

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    217

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

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

ecoflow-connector-Script zur dynamischen Leistungsanpassung

ecoflow-connector-Script zur dynamischen Leistungsanpassung

Scheduled Pinned Locked Moved JavaScript
1.6k Posts 127 Posters 741.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.
  • A aherby

    @foxthefox noch weiter Daten benötigt?
    Sobald mal mehr Sonne da ist würde ich dass mit den Smartplugs und mit oder ohne Berücksichtigung ins Hausnetz weiter loggen.

    F Offline
    F Offline
    foxthefox
    Developer
    wrote on last edited by
    #853

    @aherby sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

    @foxthefox noch weiter Daten benötigt?
    Sobald mal mehr Sonne da ist würde ich dass mit den Smartplugs und mit oder ohne Berücksichtigung ins Hausnetz weiter loggen.

    Ja gerne, ich bräuchte auch mal ein HEX String von den normalen update Daten die zyklisch kommen, da müsste eigentlich dieses Bit für "Berücksichtigung im Powerstream"neu drin sein.

    Adapterüberblick: Profil Github;

    Wenn der Adapter gefällt und nützlich ist, bitte ins Repo gehen und Star setzen. Danke

    Ein Aufruf: video

    W 1 Reply Last reply
    0
    • F foxthefox

      @dadue-max @Waly_de

      Ich bin mir nicht sicher ob es WLAN instabilität ist, oder ob es nicht doch etwas mit dem Protokoll zu tun hat.
      Ich bau grad ein paar node-red Knoten auf um Power Stream und Power Station einzulesen.
      Was mir dabei auffällt, ist das sich bei mir wohl nichts von WLAN trennt, sondern das Senden einfach aufhört. Das merkt man recht gut bei der Powerstation, da die viel mehr am plaudern ist.
      Obwohl ich auch regelmäßig mal ein "latestQuatas" anfrage, kommt manchmal nach einer gewissen Zeit nichts an. Gehe ich dann mit der App auf das Gerät, gehts wieder los, WLAN ist demzufolge noch an.
      Ich vermute eher, daß hier bei Telegrammen, die ein ACK=1 haben, auch ein ACK zu senden ist.
      Ich hatte mal probehalber den .../set der powerstation im debug, da kommt eine Unmenge an gleichartigen Telegrammen rein, scheinen die ACK zu sein.

      Gruß
      Klaus

      DaDue-maxD Offline
      DaDue-maxD Offline
      DaDue-max
      wrote on last edited by
      #854

      @foxthefox Hallo, wir hatten mal im August über das Thema WLAN Verlust bei den Powerstreams gesprochen.
      Einige FW - Releases später ist aus meiner Sicht dieses Problem immernoch vorhanden. Powerstream und Delta2Max haben guten WLAN Zugang (D2M ist ohne Probleme die ganze Zeit am WLAN). Die Powerstream fängt morgens gut an, jedoch nach einigen Stunden verabschiedet sich die Steuerung und nimmt nichts mehr. In der App ist dann nur noch Bluetooth aktiv. Die PS nimmt zwar im UI Einstellungsveränderungen an, jedoch setzt sie nach einiger Zeit wieder zurück.
      Manchmal hilft Bluetooth an ausschalten am Handy, immer hilft alle Stecker abziehen, manchmal hilft Powerstream neu zu verbinden, gelingt aber auch nicht immer. Jetzt könnte man meinen, dass ist ein reines Ecoflow Problem, jedoch ist eine erfolgreiche Massnahme, das JavaScript "ecoflow-conn...." neu zu starten. Danach funktioniert die Regelung wieder und in der App von Ecoflow ist die Powerstream wieder über WLAN connected. (Ich verwende derzeit 1.1.6.2/iobroker ist in Summe auf neuestem Stand). Habt Ihr neue Einschätzungen zu dem Thema?
      Klar, bin mit Ecoflow auch in Kontakt, da hält man sich bedeckt. Daher mal die Frage nach einem Meinungsbild hier in der Community. Bei Ecoflow wollte man davon nichts wissen, bis das letzte Update dann exakt unter dem Titel "Verbesserter Algo...for Batterieladezustand" das Problem behebt. 🙂

      F S 3 Replies Last reply
      0
      • DaDue-maxD DaDue-max

        @foxthefox Hallo, wir hatten mal im August über das Thema WLAN Verlust bei den Powerstreams gesprochen.
        Einige FW - Releases später ist aus meiner Sicht dieses Problem immernoch vorhanden. Powerstream und Delta2Max haben guten WLAN Zugang (D2M ist ohne Probleme die ganze Zeit am WLAN). Die Powerstream fängt morgens gut an, jedoch nach einigen Stunden verabschiedet sich die Steuerung und nimmt nichts mehr. In der App ist dann nur noch Bluetooth aktiv. Die PS nimmt zwar im UI Einstellungsveränderungen an, jedoch setzt sie nach einiger Zeit wieder zurück.
        Manchmal hilft Bluetooth an ausschalten am Handy, immer hilft alle Stecker abziehen, manchmal hilft Powerstream neu zu verbinden, gelingt aber auch nicht immer. Jetzt könnte man meinen, dass ist ein reines Ecoflow Problem, jedoch ist eine erfolgreiche Massnahme, das JavaScript "ecoflow-conn...." neu zu starten. Danach funktioniert die Regelung wieder und in der App von Ecoflow ist die Powerstream wieder über WLAN connected. (Ich verwende derzeit 1.1.6.2/iobroker ist in Summe auf neuestem Stand). Habt Ihr neue Einschätzungen zu dem Thema?
        Klar, bin mit Ecoflow auch in Kontakt, da hält man sich bedeckt. Daher mal die Frage nach einem Meinungsbild hier in der Community. Bei Ecoflow wollte man davon nichts wissen, bis das letzte Update dann exakt unter dem Titel "Verbesserter Algo...for Batterieladezustand" das Problem behebt. 🙂

        F Offline
        F Offline
        foxthefox
        Developer
        wrote on last edited by
        #855

        @dadue-max
        Also ich kann das bei mir so nicht beobachten. Aus meiner Sicht läuft es super stabil. Ich hab einmal node-red was PowerStream und powerstation zuverlässig abholt und meinen Adapter der auch die gleichen Dinge holt. In beiden Implementierungen hab ich einen Zähler drin. Getrennt für beide Geräte und der läuft munter hoch. Ich hab jetzt keine Auswertung ob mal weniger Telegramme kommen, aber gefühlt gibt’s da keine Aussetzer oder Verlangsamung. PowerStream schickt nur Daten die sich auch aus ihrer Sicht geändert haben und es wert sind auf die Reise zu gehen. Die Station schickt immer alles von einem der Teilgeräte (bms, mppt,…) und das quasi im Sekundentakt.

        Das einzige was auffällig bei mir ist:

        • es kommen früh morgens völlig falsche Werte für die Frequenz zb 70Hz
        • und falsche Spannung 320V
        • und extrem hoher Werte für heartbeat, so oft schickt der stream nie etwas

        Kann sein das das ein bug in der Version 1.0.0.73 ist. Die Version bekam ich von EF direkt, da ich aus dem Fehler 1 (3 Fehler Stromnetz - warten bis es sich erholt) nicht mehr raus kam.

        Adapterüberblick: Profil Github;

        Wenn der Adapter gefällt und nützlich ist, bitte ins Repo gehen und Star setzen. Danke

        Ein Aufruf: video

        1 Reply Last reply
        1
        • DaDue-maxD DaDue-max

          @foxthefox Hallo, wir hatten mal im August über das Thema WLAN Verlust bei den Powerstreams gesprochen.
          Einige FW - Releases später ist aus meiner Sicht dieses Problem immernoch vorhanden. Powerstream und Delta2Max haben guten WLAN Zugang (D2M ist ohne Probleme die ganze Zeit am WLAN). Die Powerstream fängt morgens gut an, jedoch nach einigen Stunden verabschiedet sich die Steuerung und nimmt nichts mehr. In der App ist dann nur noch Bluetooth aktiv. Die PS nimmt zwar im UI Einstellungsveränderungen an, jedoch setzt sie nach einiger Zeit wieder zurück.
          Manchmal hilft Bluetooth an ausschalten am Handy, immer hilft alle Stecker abziehen, manchmal hilft Powerstream neu zu verbinden, gelingt aber auch nicht immer. Jetzt könnte man meinen, dass ist ein reines Ecoflow Problem, jedoch ist eine erfolgreiche Massnahme, das JavaScript "ecoflow-conn...." neu zu starten. Danach funktioniert die Regelung wieder und in der App von Ecoflow ist die Powerstream wieder über WLAN connected. (Ich verwende derzeit 1.1.6.2/iobroker ist in Summe auf neuestem Stand). Habt Ihr neue Einschätzungen zu dem Thema?
          Klar, bin mit Ecoflow auch in Kontakt, da hält man sich bedeckt. Daher mal die Frage nach einem Meinungsbild hier in der Community. Bei Ecoflow wollte man davon nichts wissen, bis das letzte Update dann exakt unter dem Titel "Verbesserter Algo...for Batterieladezustand" das Problem behebt. 🙂

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

          @dadue-max Meine Powerstream hat auch Schrott WIFI. Manchmal denk ich, wenn viel Strom fliesst (oder hohe Temperatur? Hängt ja auch zusammen) bricht WIFI weg. Merk es aber auch nicht immer, da es, wenn viel Strom rein fliesst meist nichts zu kontrollieren gibt (Einspeisung ist dann 0 weil andere Solaranlagen genug liefern).

          1 Reply Last reply
          0
          • DaDue-maxD DaDue-max

            @foxthefox Hallo, wir hatten mal im August über das Thema WLAN Verlust bei den Powerstreams gesprochen.
            Einige FW - Releases später ist aus meiner Sicht dieses Problem immernoch vorhanden. Powerstream und Delta2Max haben guten WLAN Zugang (D2M ist ohne Probleme die ganze Zeit am WLAN). Die Powerstream fängt morgens gut an, jedoch nach einigen Stunden verabschiedet sich die Steuerung und nimmt nichts mehr. In der App ist dann nur noch Bluetooth aktiv. Die PS nimmt zwar im UI Einstellungsveränderungen an, jedoch setzt sie nach einiger Zeit wieder zurück.
            Manchmal hilft Bluetooth an ausschalten am Handy, immer hilft alle Stecker abziehen, manchmal hilft Powerstream neu zu verbinden, gelingt aber auch nicht immer. Jetzt könnte man meinen, dass ist ein reines Ecoflow Problem, jedoch ist eine erfolgreiche Massnahme, das JavaScript "ecoflow-conn...." neu zu starten. Danach funktioniert die Regelung wieder und in der App von Ecoflow ist die Powerstream wieder über WLAN connected. (Ich verwende derzeit 1.1.6.2/iobroker ist in Summe auf neuestem Stand). Habt Ihr neue Einschätzungen zu dem Thema?
            Klar, bin mit Ecoflow auch in Kontakt, da hält man sich bedeckt. Daher mal die Frage nach einem Meinungsbild hier in der Community. Bei Ecoflow wollte man davon nichts wissen, bis das letzte Update dann exakt unter dem Titel "Verbesserter Algo...for Batterieladezustand" das Problem behebt. 🙂

            F Offline
            F Offline
            foxthefox
            Developer
            wrote on last edited by
            #857

            @dadue-max

            Ich vergaß auf die Wärme einzugehen. Mein System hat nicht zu viel Last und wenn es mal hoch ist, dann sind das 400w max 1/4 vs 3/4 a den Eingängen. Könnte also sein das es nicht so heiß läuft.

            Adapterüberblick: Profil Github;

            Wenn der Adapter gefällt und nützlich ist, bitte ins Repo gehen und Star setzen. Danke

            Ein Aufruf: video

            DaDue-maxD 1 Reply Last reply
            0
            • F foxthefox

              @dadue-max

              Ich vergaß auf die Wärme einzugehen. Mein System hat nicht zu viel Last und wenn es mal hoch ist, dann sind das 400w max 1/4 vs 3/4 a den Eingängen. Könnte also sein das es nicht so heiß läuft.

              DaDue-maxD Offline
              DaDue-maxD Offline
              DaDue-max
              wrote on last edited by
              #858

              @foxthefox richtig, Hohe Temperatur ist ein Thema am Powermax. Wifi Disconnect bei über 42-43 Grad war üblich. Ich habe dann einen alten CPU Kühler montiert, der ab 40 grad anspringt und ich drossel dann auch irgendwann die Leistung. Das hat viel geholfen.

              1 Reply Last reply
              0
              • W Waly_de

                An die Tibber Nutzer:

                ich habe ein Script geschrieben, das die Zählerdaten des Pulse lokal, also ohne den Umweg über die Cloud auslesen und in IoBroker Zustände schreiben kann.

                Ich weiß, das es mit der Cloud schon mal Probleme gibt, oder die Werte sehr verzögert ankommen.
                Das Script kann bisher nur Zähler auslesen, die die SML-Sprache sprechen. Probier es mal aus, wenn Daten ankommen, aber nicht ausgewertet werden können, meldet Euch bitte mit der genauen Bezeichnung Eures Zählers und einem HexDump der Daten, die der Pulse liefert.
                Die stehen dann im Zustand: 0_userdata.0.TibberPulse.SMLDataHEX

                Im Script muss eigentlich nur das Web-Passwort der Pulse-Bridge eingetragen werden.
                Vielleicht muss auch der Host angepasst werden.
                Ihr müsst nur die Weboberfläche der Bridge dauerhaft aktivieren.
                Wie das geht hat marq24 für seine HomeAssistant Anbindung hier super beschrieben:

                https://github.com/marq24/ha-tibber-pulse-local

                Wenn alles klappt, werden die Zählerdaten alle 2 Sekunden in IOBroker-States geschrieben und Ihr könnt im Script diese Konfiguration angeben:

                SmartmeterID: "0_userdata.0.TibberPulse.SML.Power"
                

                Hier das Script: (update 21.11.23 18:39)

                var TibberConfig = {
                    password: "XXXX-XXXX",
                    statesPrefix: "0_userdata.0.TibberPulse",
                    interval: 2000,
                    host: "tibber-host",
                }
                const debug = false
                const http = require('http');
                async function getPulseData(password) {
                    const auth = Buffer.from(`admin:${password}`).toString('base64');
                    const options = {
                        hostname: TibberConfig.host,
                        path: '/metrics.json?node_id=1',
                        method: 'GET',
                        headers: {
                            'Authorization': `Basic ${auth}`,
                            'Host': 'tibber-host',
                            'lang': 'de-de',
                            'content-type': 'application/json',
                            'user-agent': 'okhttp/3.14.9'
                        }
                    };
                
                    function httpRequest(options) {
                        return new Promise((resolve, reject) => {
                            const req = http.request(options, res => {
                                let data = '';
                                res.on('data', chunk => {
                                    data += chunk;
                                });
                                res.on('end', () => {
                                    resolve(data);
                                });
                            });
                
                            req.on('error', error => {
                                reject(error);
                            });
                
                            req.end();
                        });
                    }
                
                    try {
                        let response = await (httpRequest(options));
                        return response.replace("$type", "type"); // Gibt das Antwortobjekt zurück
                    } catch (error) {
                        console.error("Ein Fehler bei der Ermittlung der Zugangsdaten ist aufgetreten. Bitte prüfe die Zugangsdaten.");
                        throw error;
                    }
                }
                function getDataAsHexString(password) {
                    return new Promise((resolve, reject) => {
                        const auth = Buffer.from(`admin:${password}`).toString('base64');
                        const options = {
                            hostname: TibberConfig.host,
                            path: '/data.json?node_id=1',
                            headers: {
                                'Authorization': `Basic ${auth}`
                            }
                        };
                        http.get(options, res => {
                            const chunks = [];
                            res.on('data', chunk => {
                                chunks.push(chunk);
                            });
                            res.on('end', () => {
                                const buffer = Buffer.concat(chunks);
                                const hexString = buffer.toString('hex');
                                resolve(hexString);
                            });
                        }).on('error', error => {
                            reject(error);
                        });
                    });
                }
                function isState2(strStatePath, strict = true) {
                    let mSelector;
                    if (strict) {
                        mSelector = $(strStatePath);
                    } else {
                        mSelector = $(strStatePath + "*");
                    }
                    if (mSelector.length > 0) {
                        return true;
                    } else {
                        return false;
                    }
                }
                
                function isValidUnixTimestampAndConvert(n) {
                    // Typüberprüfung
                    if (typeof n !== 'number') {
                        return false;
                    }
                    // Bereichsüberprüfung (optional)
                    const unixEpoch = 0; // UNIX-Epoch: 1. Januar 1970
                    const currentTime = Math.floor(Date.now() / 1000);
                    if (n < unixEpoch || n > currentTime) {
                        return false;
                    }
                    // Granularität (optional)
                    if (Math.floor(n) !== n) {
                        return false;
                    }
                    // Konvertiere zu deutschem Zeitformat
                    const date = new Date(n * 1000);
                    const germanTimeFormat = date.toLocaleString('de-DE');
                    return germanTimeFormat;
                }
                
                function generateAndSyncSub(id, JElements, sub = false, preset = "") {
                    //log("Aufruf:" + JElements)
                    if (!JElements || typeof JElements !== 'object') {
                        log('Ungültige JElements übergeben!: ' + JElements); //
                        return;
                    }
                    for (var JElement in JElements) {
                        var AktVal;
                        if (typeof JElements[JElement] === "object") {
                            if (id === "") {
                                generateAndSyncSub(JElement, JElements[JElement], true, preset);
                            } else {
                                generateAndSyncSub(id + "." + JElement, JElements[JElement], true, preset);
                            }
                
                            //generateAndSyncSub(id + "." + JElement, JElements[JElement], true, preset);
                        } else {
                            try {
                                if (isState2(preset + "." + id + "." + JElement)) AktVal = getState(preset + "." + id + "." + JElement).val; else AktVal = null
                            } catch (e) {
                                log("Fehler: " + e); //
                            }
                            // Überprüfung für den Elementnamen "timestamp"
                            if (JElement === "timestamp") {
                                const TimeValue = isValidUnixTimestampAndConvert(JElements[JElement])
                                if (TimeValue) JElements[JElement] = TimeValue;
                            }
                            if (AktVal == null) {
                                createState(preset + "." + id + "." + JElement, JElements[JElement], false);
                                AktVal = JElements[JElement];
                            }
                            if (AktVal != JElements[JElement]) {
                                if (isState2(preset + "." + id + "." + JElement)) {
                                    setState(preset + "." + id + "." + JElement, JElements[JElement], true);
                                }
                            }
                        }
                    }
                }
                
                const obisCodesWithNames = [
                    { code: "0100100700ff", name: "Power" },
                    { code: "0100010800ff", name: "Import_total" },
                    { code: "0100020800ff", name: "Export_total" },
                    { code: "0100010800ff_in_k", name: "Import_total_(kWh)" },
                    { code: "0100020800ff_in_k", name: "Export_total_(kWh)" },
                    { code: "0100240700ff", name: "Power_L1" },
                    { code: "0100380700ff", name: "Power_L2" },
                    { code: "01004c0700ff", name: "Power_L3" },
                    { code: "0100200700ff", name: "Potential_L1" },
                    { code: "0100340700ff", name: "Potential_L2" },
                    { code: "0100480700ff", name: "Potential_L3" },
                    { code: "01001f0700ff", name: "Current_L1" },
                    { code: "0100330700ff", name: "Current_L2" },
                    { code: "0100470700ff", name: "Current_L3" },
                    { code: "01000e0700ff", name: "Net_frequency" },
                    { code: "0100510701ff", name: "Potential_Phase_deviation_L1/L2" },
                    { code: "0100510702ff", name: "Potential_Phase_deviation_L1/L3" },
                    { code: "0100510704ff", name: "Current/Potential_L1_Phase_deviation" },
                    { code: "010051070fff", name: "Current/Potential_L2_Phase_deviation" },
                    { code: "010051071aff", name: "Current/Potential_L3_Phase_deviation" }
                ];
                function findObisCodeName(code, obisCodesWithNames) {
                    const found = obisCodesWithNames.find(item => item.code === code);
                    return found ? found.name : "Unbekannt";
                }
                
                /**
                 * Static lookup table
                 */
                const dlmsUnits = [
                    { code: 0x1, unit: "a", quantity: "time", unitName: "year", siDefinition: "52*7*24*60*60 s" },
                    { code: 0x2, unit: "mo", quantity: "time", unitName: "month", siDefinition: "31*24*60*60 s" },
                    { code: 0x3, unit: "wk", quantity: "time", unitName: "week", siDefinition: "7*24*60*60 s" },
                    { code: 0x4, unit: "d", quantity: "time", unitName: "day", siDefinition: "24*60*60 s" },
                    { code: 0x5, unit: "h", quantity: "time", unitName: "hour", siDefinition: "60*60 s" },
                    { code: 0x6, unit: "min.", quantity: "time", unitName: "min", siDefinition: "60 s" },
                    { code: 0x7, unit: "s", quantity: "time", unitName: "second", siDefinition: "s" },
                    { code: 0x8, unit: "°", quantity: "phase angle", unitName: "degree", siDefinition: "rad*180/π" },
                    { code: 0x9, unit: "°C", quantity: "temperature", unitName: "degree celsius", siDefinition: "K-273.15" },
                    { code: 0xA, unit: "currency", quantity: "local currency", unitName: "", siDefinition: "" },
                    { code: 0xB, unit: "m", quantity: "length", unitName: "metre", siDefinition: "m" },
                    { code: 0xC, unit: "m/s", quantity: "speed", unitName: "metre per second", siDefinition: "m/s" },
                    { code: 0xD, unit: "m³", quantity: "volume", unitName: "cubic metre", siDefinition: "m³" },
                    { code: 0xE, unit: "m³", quantity: "corrected volume", unitName: "cubic metre", siDefinition: "m³" },
                    { code: 0xF, unit: "m³/h", quantity: "volume flux", unitName: "cubic metre per hour", siDefinition: "m³/(60*60s)" },
                    { code: 0x10, unit: "m³/h", quantity: "corrected volume flux", unitName: "cubic metre per hour", siDefinition: "m³/(60*60s)" },
                    { code: 0x11, unit: "m³/d", quantity: "volume flux", unitName: "cubic metre per day", siDefinition: "m³/(24*60*60s)" },
                    { code: 0x12, unit: "m³/d", quantity: "corrected volume flux", unitName: "cubic metre per day", siDefinition: "m³/(24*60*60s)" },
                    { code: 0x13, unit: "l", quantity: "volume", unitName: "litre", siDefinition: "10-3 m³" },
                    { code: 0x14, unit: "kg", quantity: "mass", unitName: "kilogram", siDefinition: "" },
                    { code: 0x15, unit: "N", quantity: "force", unitName: "newton", siDefinition: "" },
                    { code: 0x16, unit: "Nm", quantity: "energy", unitName: "newtonmeter", siDefinition: "J = Nm = Ws" },
                    { code: 0x17, unit: "Pa", quantity: "pressure", unitName: "pascal", siDefinition: "N/m²" },
                    { code: 0x18, unit: "bar", quantity: "pressure", unitName: "bar", siDefinition: "10⁵ N/m²" },
                    { code: 0x19, unit: "J", quantity: "energy", unitName: "joule", siDefinition: "J = Nm = Ws" },
                    { code: 0x1A, unit: "J/h", quantity: "thermal power", unitName: "joule per hour", siDefinition: "J/(60*60s)" },
                    { code: 0x1B, unit: "W", quantity: "active power", unitName: "watt", siDefinition: "W = J/s" },
                    { code: 0x1C, unit: "VA", quantity: "apparent power", unitName: "volt-ampere", siDefinition: "" },
                    { code: 0x1D, unit: "var", quantity: "reactive power", unitName: "var", siDefinition: "" },
                    { code: 0x1E, unit: "Wh", quantity: "active energy", unitName: "watt-hour", siDefinition: "W*(60*60s)" },
                    { code: 0x1F, unit: "VAh", quantity: "apparent energy", unitName: "volt-ampere-hour", siDefinition: "VA*(60*60s)" },
                    { code: 0x20, unit: "varh", quantity: "reactive energy", unitName: "var-hour", siDefinition: "var*(60*60s)" },
                    { code: 0x21, unit: "A", quantity: "current", unitName: "ampere", siDefinition: "A" },
                    { code: 0x22, unit: "C", quantity: "electrical charge", unitName: "coulomb", siDefinition: "C = As" },
                    { code: 0x23, unit: "V", quantity: "voltage", unitName: "volt", siDefinition: "V" },
                    { code: 0x24, unit: "V/m", quantity: "electric field strength", unitName: "volt per metre", siDefinition: "" },
                    { code: 0x25, unit: "F", quantity: "capacitance", unitName: "farad", siDefinition: "C/V = As/V" },
                    { code: 0x26, unit: "Ω", quantity: "resistance", unitName: "ohm", siDefinition: "Ω = V/A" },
                    { code: 0x27, unit: "Ωm²/m", quantity: "resistivity", unitName: "Ωm", siDefinition: "" },
                    { code: 0x28, unit: "Wb", quantity: "magnetic flux", unitName: "weber", siDefinition: "Wb = Vs" },
                    { code: 0x29, unit: "T", quantity: "magnetic flux density", unitName: "tesla", siDefinition: "Wb/m2" },
                    { code: 0x2A, unit: "A/m", quantity: "magnetic field strength", unitName: "ampere per metre", siDefinition: "A/m" },
                    { code: 0x2B, unit: "H", quantity: "inductance", unitName: "henry", siDefinition: "H = Wb/A" },
                    { code: 0x2C, unit: "Hz", quantity: "frequency", unitName: "hertz", siDefinition: "1/s" },
                    { code: 0x2D, unit: "1/(Wh)", quantity: "R_W", unitName: "Active energy meter constant or pulse value", siDefinition: "" },
                    { code: 0x2E, unit: "1/(varh)", quantity: "R_B", unitName: "reactive energy meter constant or pulse value", siDefinition: "" },
                    { code: 0x2F, unit: "1/(VAh)", quantity: "R_S", unitName: "apparent energy meter constant or pulse value", siDefinition: "" },
                    { code: 0x30, unit: "V²h", quantity: "volt-squared hour", unitName: "volt-squaredhours", siDefinition: "V²(60*60s)" },
                    { code: 0x31, unit: "A²h", quantity: "ampere-squared hour", unitName: "ampere-squaredhours", siDefinition: "A²(60*60s)" },
                    { code: 0x32, unit: "kg/s", quantity: "mass flux", unitName: "kilogram per second", siDefinition: "kg/s" },
                    { code: 0x33, unit: "S, mho", quantity: "conductance siemens", unitName: "siemens", siDefinition: "1/Ω" },
                    { code: 0x34, unit: "K", quantity: "temperature", unitName: "kelvin", siDefinition: "" },
                    { code: 0x35, unit: "1/(V²h)", quantity: "", unitName: "Volt-squared hour meter constant or pulse value", siDefinition: "" },
                    { code: 0x36, unit: "1/(A²h)", quantity: "", unitName: "Ampere-squared hour meter constant or pulse value", siDefinition: "" },
                    { code: 0x37, unit: "1/m³", quantity: "R_V", unitName: "meter constant or pulse value (volume)", siDefinition: "" },
                    { code: 0x38, unit: "%", quantity: "percentage", unitName: "%", siDefinition: "" },
                    { code: 0x39, unit: "Ah", quantity: "ampere-hours", unitName: "ampere-hour", siDefinition: "" },
                    { code: 0x3C, unit: "Wh/m³", quantity: "energy per volume", unitName: "", siDefinition: "3,6*103 J/m³" },
                    { code: 0x3D, unit: "J/m³", quantity: "calorific value, wobbe", unitName: "", siDefinition: "" },
                    { code: 0x3E, unit: "Mol %", quantity: "molar fraction of", unitName: "mole percent", siDefinition: "Basic gas composition unit" },
                    { code: 0x3F, unit: "Wh/m³", quantity: "energy per volume", unitName: "", siDefinition: "3,6*103 J/m³" },
                    { code: 0x40, unit: "(reserved)", quantity: "", unitName: "", siDefinition: "" },
                    { code: 0x41, unit: "(other)", quantity: "", unitName: "", siDefinition: "" },
                    { code: 0x42, unit: "(unitless)", quantity: "no unit, unitless, count", unitName: "", siDefinition: "" },
                    { code: 0x0, unit: "", quantity: "", unitName: "", siDefinition: "stop condition for iterator" }
                ];
                
                function findDlmsUnitByCode(decimalCode, dlmsUnits) {
                    const found = dlmsUnits.find(item => item.code === decimalCode);
                    return found ? found.unit : "";
                }
                
                function parseSignedHex(hexStr) {
                    let num = BigInt("0x" + hexStr);
                    let bitLength = hexStr.length * 4;
                    if (bitLength <= 32) {
                        // Behandlung als 32-Bit-Zahl
                        if (num > 0x7FFFFFFF) {
                            num = num - 0x100000000n;
                        }
                    } else {
                        // Behandlung als 64-Bit-Zahl
                        if (num > 0x7FFFFFFFFFFFFFFFn) {
                            num = num - 0x10000000000000000n;
                        }
                    }
                    return Number(num.toString());
                }
                
                function extractAndParseSMLMessages(transfer) {
                    const messages = transfer.matchAll(/7707(0100[0-9a-fA-F].{5}?ff).{6,14}?([0-9a-fA-F]{2})52([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{4,16})01(?=7)/g);
                    for (const match of messages) {
                        let result = {}
                        if (debug) console.log('Gesamte Übereinstimmung:' + match[0]);
                        //console.log('Gruppe 1:'+ match[1]); // Der Teil, der dem ersten Klammerausdruck entspricht
                        //console.log('Gruppe 2:'+ match[2]); // Der Teil, der dem zweiten Klammerausdruck entspricht
                        //console.log('Gruppe 3:'+ match[3]); // Der Teil, der dem dritten Klammerausdruck entspricht
                        //console.log('Gruppe 4:'+ match[4]); // Der Teil, der dem dritten Klammerausdruck entspricht
                        //console.log('Gruppe 5:'+ match[5]); // Der Teil, der dem vierten Klammerausdruck entspricht
                        
                        result.name = findObisCodeName(match[1], obisCodesWithNames)
                        result.value = parseSignedHex(match[5])
                        const decimalCode = parseInt(match[2], 16);
                        result.unit = findDlmsUnitByCode(decimalCode, dlmsUnits)
                        
                        if (match[3].toLowerCase() == "ff") {
                            result.value = result.value / 10
                        } else if (match[3].toLowerCase() == "fe") {
                            result.value = result.value / 100
                        }
                        const valId = TibberConfig.statesPrefix + ".SML." + result.name
                        if (isState2(valId)) {
                            setStateAsync(valId, result.value, true)
                        } else {
                            let common = {
                                name: result.name,
                                type: 'mixed',
                                role: 'state',
                                unit: result.unit,
                                read: true,
                                write: true,
                            };
                            let native = {}
                            createState(valId, result.value, false, common, native);
                        }
                        if (debug) log(JSON.stringify(result))
                    }
                }
                function swapEndianness(hexStr) {
                    const result = [];
                    for (let i = 0; i < hexStr.length; i += 2) {
                        result.unshift(hexStr.substring(i, i + 2));
                    }
                    return result.join('');
                }
                if (typeof TestData == 'undefined') {
                    getPulseData(TibberConfig.password).then(response => {
                        if (debug) console.log("Bridge Data: " + response); // 
                        generateAndSyncSub("Data", JSON.parse(response), false, TibberConfig.statesPrefix)
                    }).catch(error => {
                        console.error(error);
                    });
                
                    //jede x Sekunden
                    var intervalID = setInterval(function () {
                        // Daten abrufen und als HEX-String ausgeben
                        getDataAsHexString(TibberConfig.password).then(hexString => {
                            extractAndParseSMLMessages(hexString);
                            if (debug) console.log(hexString); // Gibt die Daten als HEX-String aus
                            if (isState2(TibberConfig.statesPrefix + ".SMLDataHEX")) {
                                setState(TibberConfig.statesPrefix + ".SMLDataHEX", hexString, true)
                            } else {
                                createState(TibberConfig.statesPrefix + ".SMLDataHEX", hexString, false);
                            }
                        }).catch(error => {
                            log('Fehler beim Abrufen der Daten:' + error);
                        });
                    }, TibberConfig.interval);
                }else{
                    const parsedMessages = extractAndParseSMLMessages(TestData);
                }
                
                
                K Offline
                K Offline
                karo2204
                wrote on last edited by
                #859

                @waly_de ich habe alles hinbekommen, doch leider wird mir kein Feld "Power" angezeigt, nur "Power_L1", "Power_L2" und "Power_L3". Was nehm ich da jetzt?

                Kannst Du irgendwie noch die PriceLevel Abfrage in Dein Tibber Script einbauen, damit man das nicht über die Instanz "Tibber Link" abrufen muss. Ich bekomme da immer Fehler....Screenshot 2023-12-24 at 15.38.50.png

                ioBroker
                Tibber
                Ecoflow Powerstream & Delta Max 2000

                D K 2 Replies Last reply
                0
                • K karo2204

                  @waly_de ich habe alles hinbekommen, doch leider wird mir kein Feld "Power" angezeigt, nur "Power_L1", "Power_L2" und "Power_L3". Was nehm ich da jetzt?

                  Kannst Du irgendwie noch die PriceLevel Abfrage in Dein Tibber Script einbauen, damit man das nicht über die Instanz "Tibber Link" abrufen muss. Ich bekomme da immer Fehler....Screenshot 2023-12-24 at 15.38.50.png

                  D Offline
                  D Offline
                  Der Tom
                  wrote on last edited by
                  #860

                  Hallo zusammen,

                  frohe Weihnachten 🙂

                  Ich habe das Script seit einiger Zeit am Laufen - vielen Dank an alle, die hier an der Entwicklung beteiligt waren.

                  Ich habe ein River 2 Pro und würde gern die Watt-Zahl mit der AC geladen wird einstellen.
                  Da ich kein Delta 2 habe, kommt:
                  0_userdata.0.ecoflow.app_17XXXXXXXXXXXXXXXXX_R6XXXXXXXXXXXXXX_thing_property_set.writeables.acChgCfg_D2
                  wohl nicht in Frage (funktioniert auch nicht - bereits getestet)

                  Meiner Meinung nach, wäre der Parameter:
                  0_userdata.0.ecoflow.app_device_property_R6XXXXXXXXXXXXXX.data.params.mppt.cfgChgWatts
                  korrekt oder?
                  Leider auch ohne Erfolg - auch hier ändert sich nichts.

                  Im Script gibt es keine Auswahl vom River 2 Pro, daher habe ich auf NA gestellt.
                  Wie bekomme ich die AC Ladeleistung geregelt?

                  Danke fürs helfen.

                  Grüße
                  Der Tom

                  F W 2 Replies Last reply
                  0
                  • K karo2204

                    @waly_de ich habe alles hinbekommen, doch leider wird mir kein Feld "Power" angezeigt, nur "Power_L1", "Power_L2" und "Power_L3". Was nehm ich da jetzt?

                    Kannst Du irgendwie noch die PriceLevel Abfrage in Dein Tibber Script einbauen, damit man das nicht über die Instanz "Tibber Link" abrufen muss. Ich bekomme da immer Fehler....Screenshot 2023-12-24 at 15.38.50.png

                    K Offline
                    K Offline
                    karo2204
                    wrote on last edited by karo2204
                    #861

                    @karo2204 Jetzt ist Power plötzlich in den Objekten drin gewesen... Aber funktionieren tut es trotzdem noch nicht.

                    ioBroker
                    Tibber
                    Ecoflow Powerstream & Delta Max 2000

                    1 Reply Last reply
                    0
                    • K Offline
                      K Offline
                      karo2204
                      wrote on last edited by
                      #862

                      Ich bekomme jetzt in den Logs folgende Fehler angezeigt:

                      script.js.ecoflow-connector_v12__04_12_2023: getLowestValue-error: timeout
                      
                      script.js.ecoflow-connector_v12__04_12_2023: Fehler beim Abrufen des niedrigsten Werts: timeout
                      

                      Was kann das sein?

                      Grüße, Karo

                      ioBroker
                      Tibber
                      Ecoflow Powerstream & Delta Max 2000

                      W 1 Reply Last reply
                      0
                      • D Der Tom

                        Hallo zusammen,

                        frohe Weihnachten 🙂

                        Ich habe das Script seit einiger Zeit am Laufen - vielen Dank an alle, die hier an der Entwicklung beteiligt waren.

                        Ich habe ein River 2 Pro und würde gern die Watt-Zahl mit der AC geladen wird einstellen.
                        Da ich kein Delta 2 habe, kommt:
                        0_userdata.0.ecoflow.app_17XXXXXXXXXXXXXXXXX_R6XXXXXXXXXXXXXX_thing_property_set.writeables.acChgCfg_D2
                        wohl nicht in Frage (funktioniert auch nicht - bereits getestet)

                        Meiner Meinung nach, wäre der Parameter:
                        0_userdata.0.ecoflow.app_device_property_R6XXXXXXXXXXXXXX.data.params.mppt.cfgChgWatts
                        korrekt oder?
                        Leider auch ohne Erfolg - auch hier ändert sich nichts.

                        Im Script gibt es keine Auswahl vom River 2 Pro, daher habe ich auf NA gestellt.
                        Wie bekomme ich die AC Ladeleistung geregelt?

                        Danke fürs helfen.

                        Grüße
                        Der Tom

                        F Offline
                        F Offline
                        foxthefox
                        Developer
                        wrote on last edited by
                        #863

                        @der-tom
                        Mit der Implementierung weiterer Geräte ist das immer so eine Sache, da gehört leider ein wenig Recherche und Probiererei dazu.

                        Ich werde demnächst ein update für den ecoflow-mqtt Adapter rausbringen, der auch die River Serie enthält.
                        Den könnte man zum Ausprobieren und Festhalten der exakten Befehle und Daten hernehmen.
                        Wenn das dann eine korrekte Kommunikation mit River2Pro ergibt, dann kann man ggf. die Essenz in das Script einfließen lassen.

                        Adapterüberblick: Profil Github;

                        Wenn der Adapter gefällt und nützlich ist, bitte ins Repo gehen und Star setzen. Danke

                        Ein Aufruf: video

                        1 Reply Last reply
                        0
                        • D Offline
                          D Offline
                          Der Tom
                          wrote on last edited by
                          #864

                          @foxthefox said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

                          ecoflow-mqtt Adapter

                          Hi,

                          ich habe mir mal eben fix den Adapter installiert.
                          Aktuell schein keine Verbindung möglich zu sein, mag mit Sicherheit an der fehlenden Auswahl der Powerstation zusammenhängen.

                          Ich helfe Dir gern bei der Implementierung der River-Serie - zumindest was das Testen angeht.
                          Lass mich wissen, wenn der Adapter soweit ist, dann teste ich und liefere gern einige Debug-Logs dazu.

                          Grüße
                          Der Tom

                          F 1 Reply Last reply
                          0
                          • D Der Tom

                            @foxthefox said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

                            ecoflow-mqtt Adapter

                            Hi,

                            ich habe mir mal eben fix den Adapter installiert.
                            Aktuell schein keine Verbindung möglich zu sein, mag mit Sicherheit an der fehlenden Auswahl der Powerstation zusammenhängen.

                            Ich helfe Dir gern bei der Implementierung der River-Serie - zumindest was das Testen angeht.
                            Lass mich wissen, wenn der Adapter soweit ist, dann teste ich und liefere gern einige Debug-Logs dazu.

                            Grüße
                            Der Tom

                            F Offline
                            F Offline
                            foxthefox
                            Developer
                            wrote on last edited by
                            #865

                            @der-tom
                            ja super, am besten dann im anderen thread
                            https://forum.iobroker.net/topic/69819/neuer-adapter-ecoflow-mqtt

                            ich habe es etwas unglücklich geschrieben, River Serie kommt mit 0.0.14 und ist noch in Arbeit.
                            Aber heute Abend könnte es mit dem Veröffentlichen soweit sein

                            Adapterüberblick: Profil Github;

                            Wenn der Adapter gefällt und nützlich ist, bitte ins Repo gehen und Star setzen. Danke

                            Ein Aufruf: video

                            1 Reply Last reply
                            0
                            • J Offline
                              J Offline
                              Joppe
                              wrote on last edited by Joppe
                              #866

                              Falls das schon gefragt und beantwortet wurde:
                              Sorry!
                              Aber: Könnten wir das Script bitte auf Git/GitHub bringen?
                              Das Script ist genial, ich habe meinen Dank schon zum Ausdruck gebracht.
                              Git würde aber den Vorteil bringen dass wir alle unseren Beitrag zum Script anbieten können. Ich selber habe ein paar Zusätze die ich jedesmal wieder mühsam mergen muss wenn eine neue Version des Grundscripts kommt.
                              Coole Sidefeatures könnten über PullRequests in den Code einfließen, wobei dem Scriptersteller volle Kontrolle erhalten bleibt was ins Script kommt und was nicht. Außerdem stünde ein schönes changelog zur Verfügung - mir Versionskontrolle und Vergleich unter jedem Commit - top!
                              Ich unterstütze auch gerne beim Aufbau des Repository - falls gewünscht.
                              Danke dass ich meine Meinung kundtun durfte,
                              Mane
                              äh ich mein Joppe. 🙂

                              W 1 Reply Last reply
                              0
                              • J Offline
                                J Offline
                                Joppe
                                wrote on last edited by
                                #867

                                Was ich auch noch erzählen wollte: Auch ich hatte zig Ausfälle des WLans am Powerstream.
                                Nach einigen Tests fiel auf dass die Software nicht mit dem MeshNetzwerk auskam, auch zu viele Geräte im Netzwerk führten zu Problemen.
                                Ich hab mir jetzt für 15 € einen eigenen Router gekauft, ein Sub-Netzwerk erstellt (Netzwerkkabel des Hauptnetzes an den WAN Port des neuen Routers...damit hab ich ein eigenes kleines WLAN nur für die ecoflow Geräte...seitdem kein einziges Mal mehr die Verbindung verloren...
                                Wenn jemand mehr Infos braucht...PM.
                                Schöne Grüße,
                                Joppe

                                1 Reply Last reply
                                1
                                • A Offline
                                  A Offline
                                  aherby
                                  wrote on last edited by aherby
                                  #868

                                  @foxthefox ,@der-tom
                                  Matthias Klein hat vor einiger Zeit eine Ecoflow River als UVS und Batteriespeicher gebaut.
                                  Über offizielle Api und iobroker-Forum wohl viele Infos bekommen.
                                  Der Bloglink ist hier:
                                  Haus-Automatisierung Ecoflow River 2 Batteriespeicher

                                  haus-automatisierung.com/hardware/2023/02/13/ecoflow-river-2-usv-batteriespeicher.html
                                  

                                  vielleicht hilft es.

                                  F 1 Reply Last reply
                                  1
                                  • A aherby

                                    @foxthefox ,@der-tom
                                    Matthias Klein hat vor einiger Zeit eine Ecoflow River als UVS und Batteriespeicher gebaut.
                                    Über offizielle Api und iobroker-Forum wohl viele Infos bekommen.
                                    Der Bloglink ist hier:
                                    Haus-Automatisierung Ecoflow River 2 Batteriespeicher

                                    haus-automatisierung.com/hardware/2023/02/13/ecoflow-river-2-usv-batteriespeicher.html
                                    

                                    vielleicht hilft es.

                                    F Offline
                                    F Offline
                                    foxthefox
                                    Developer
                                    wrote on last edited by
                                    #869

                                    @aherby
                                    Danke, den Beitrag kenn ich, steht auch in der Readme vom Adapter

                                    Adapterüberblick: Profil Github;

                                    Wenn der Adapter gefällt und nützlich ist, bitte ins Repo gehen und Star setzen. Danke

                                    Ein Aufruf: video

                                    A 1 Reply Last reply
                                    0
                                    • F foxthefox

                                      @aherby
                                      Danke, den Beitrag kenn ich, steht auch in der Readme vom Adapter

                                      A Offline
                                      A Offline
                                      aherby
                                      wrote on last edited by
                                      #870

                                      @foxthefox Stimmt dann auch gesehen, sorry.

                                      1 Reply Last reply
                                      0
                                      • A aherby

                                        @foxthefox Schau mal ob hier die Helligkeit drin ist:

                                        Nachricht: {"header":[{"pdata":"08a307","src":32,"dest":53,"dSrc":1,"dDest":1,"checkType":3,"cmdFunc":2,
                                        "cmdId":130,"dataLen":3,"needAck":1,"seq":1683706391,"version":19,"payloadVer":1,"from":"ios","deviceSn":"HW52ZDH4SF66xxxx"}]}
                                        
                                        Nicht definierter cmd_func-Wert. [Wasserkocher] cmdId:130 cmdFunc:2
                                        0a36102018352001280138034002488201580170ccb788a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                                        
                                        0a3d0a030880041020183520012801380340024882015003580170bfef88a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                                        
                                        0a3d0a0308ff071020183520012801380340024882015003580170829089a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                                        

                                        Max Power / Überlastschutz hier ?:

                                        script.js.Ecoflow_Dynamische_Leistung_V1_2: Nachricht: {"header":[{"pdata":"08880e","src":32,"dest":53,"dSrc":1,"dDest":1,"checkType":3,"cmdFunc":2,"cmdId":137,"dataLen":3,"needAck":1,"seq":1683834767,"version":19,"payloadVer":1,"from":"ios","deviceSn":"HW52ZDH4SF66xxxx"}]}
                                        
                                        0a3d0a0308d60d1020183520012801380340024889015003580170bb99a6a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                                        [Wasserkocher] cmdId:137 cmdFunc:2
                                        
                                        0a3d0a0308c4131020183520012801380340024889015003580170f9b8a6a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                                        
                                        0a2e0a0368c41310351820200128014002480150035801800103880103ca0110485735325a4448345346363636353838
                                        
                                        script.js.1_16_1_Ecoflow_Dynamische_Leistung: Decodierte Nachricht:{"data":{"plug_heartbeat_pack":{"maxWatts":2500}}}
                                        
                                        W Offline
                                        W Offline
                                        Waly_de
                                        wrote on last edited by
                                        #871

                                        @aherby sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

                                        @foxthefox Schau mal ob hier die Helligkeit drin ist:

                                        Nachricht: {"header":[{"pdata":"08a307","src":32,"dest":53,"dSrc":1,"dDest":1,"checkType":3,"cmdFunc":2,
                                        "cmdId":130,"dataLen":3,"needAck":1,"seq":1683706391,"version":19,"payloadVer":1,"from":"ios","deviceSn":"HW52ZDH4SF66xxxx"}]}
                                        

                                        Max Power / Überlastschutz hier ?:

                                        script.js.Ecoflow_Dynamische_Leistung_V1_2: Nachricht: {"header":[{"pdata":"08880e","src":32,"dest":53,"dSrc":1,"dDest":1,"checkType":3,"cmdFunc":2,"cmdId":137,"dataLen":3,"needAck":1,"seq":1683834767,"version":19,"payloadVer":1,"from":"ios","deviceSn":"HW52ZDH4SF66xxxx"}]}
                                        

                                        Dank Dir. Die Writeables sind in der nächsten Script-Version drin.

                                        1 Reply Last reply
                                        0
                                        • W Waly_de

                                          @etgermany sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

                                          allerdings gibt es bei mir ein Problem mit der Funktion BigInt():
                                          Cannot find name 'BigInt'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2020' or later.(2583)
                                          Keine Ahnung wo ich die Option für den Compiler anpassen muss - gibt es da eine Lösung oder Hilfestellung?

                                          Ich nehme an, du bekommst diese Meldung nur im Editor und nicht beim Ausführen des Scripts, richtig?
                                          Das hatte ich auch, es geht scheinbar um die javascript Versionen. Man kann das abstellen indem man "es2020" in den in den Instanz-Einstellungen des Javascriptadapters unter "Die Syntaxhilfe für diese npm-Module aktivieren:" einträgt.
                                          Ich habe dort 3 Einträge: JSON,string und es2020.

                                          Bildschirmfoto 2023-12-16 um 11.54.51.jpg

                                          A Offline
                                          A Offline
                                          aherby
                                          wrote on last edited by aherby
                                          #872

                                          @waly_de @foxthefox Ich habe gerade mal etwas getestet oder gespielt.

                                          feed_priortiy
                                          

                                          ist die Einspeisekontrolle, auch schon als Schreibwert unter den Objekten vorhanden.

                                          Einspeisekontrolle
                                          Ist die Batterie voll geladen,, liefert das System Strom nach dem voreingestellten Strombedaf des Haushalts um die Einspeisund des überschüssigen Stroms ins Netz zu verhindern. Wenn sie den Solarertrag maximieren möchten, sollten Sie diese Funktion am besten deaktivieren.

                                          Ah ok ist ja unter Version 1.1.6.2 beschrieben das der PArameter aufgenommen wurde.

                                          Gibt es eigentlich irgendwo eine Doku was hinter allen Parametern steckt?

                                          W 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

                                          46

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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