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

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

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

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

ecoflow-connector-Script zur dynamischen Leistungsanpassung

Scheduled Pinned Locked Moved JavaScript
1.6k Posts 127 Posters 741.4k 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.
  • S sirdir

    @waly_de Hmm, aber ich blick halt doch noch nicht so ganz durch. Hatte ja meine weiteren Inverter eingetragen. Nun meinte dein Script, es gäbe einen überschuss von 800W obwohl es nur 200W Überschuss gab.
    Ich blick langsam nicht mehr durch.
    Sagen wir das Haus verbraucht 500W und externe Solarsysteme erzeugen 600W, dann meldet der Zähler doch -100W, richtig? Also hast du 100W Überschuss und nicht 600W oder was auch immer… aber sowas scheint zu passieren, wenn ich deinem Script meine weiteren Inverter bekannt mache.
    Wenn ich die Solarsysteme wieder auskommentiere, stimmt es einiergmassen, auch wenn ich -50W Offset angegeben habe und trotzdem manchmal einige W mehr angefordert wurden als zur Verfügung stehen.

    Auch seltsam, jetzt ist die Batterie auf 100%, PS speist ein und das Script versucht die Batterie weiterhin zu laden, obwohl eben der Ladestand 100% ist.
    (2023-12-10 14:07:43.012 - info: javascript.0 (1787) script.js.Powerstream_v_1_2: Überschuss Einschalten:586 Plus ExcessChargeOffsetPower: -50)

    Lesen tu ich den SOC aus 0_userdata.0.xxx.data.InverterHeartbeat.batSoc, das sollte doch auch gehen (so muss man die Delta2 Max nicht abonnieren). Wozu will er eigentlich das den SOC haben?
    Also so ganz blick ich da noch nicht durch.

    Dann noch eine Sache, ich hab versurcht den Offset oder die maximale Ladelesitung aus nem externen Objekt zu laden. Typ hatte ich auf number gesetzt, aber dann hat er den Wert wohl als string gelesen, plötzlich wollte er die Ladegeschwindigkeit auf z.B '100-10' setzen statt auf 90. Wenn ich, da wo du ConfigData.ExcessChargeOffsetPower liest in toInt() setze, klappt es. Vielleicht wäre das ja sowieso ne gute Idee… Ansonsten, kennst du irgend ne Möglichkeit, sicherzustellen, dass der Wert eines Objektes INT ist und nicht plötzlich als String interpretiert wird?

    W Offline
    W Offline
    Waly_de
    wrote on last edited by Waly_de
    #821

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

    Sagen wir das Haus verbraucht 500W und externe Solarsysteme erzeugen 600W, dann meldet der Zähler doch -100W, richtig? Also hast du 100W Überschuss und nicht 600W oder was auch immer…

    Richtig. Das sollte das Script so machten. Bei Dir ist das etwas schwierig von außen zu beurteilen. Was mir einfällt: Du hast ja bisher den Zähler mit Deinem Script simuliert. Dabei hast Du doch vermutlich schon die Einspeiseleistung Deiner anderen Inverter herausgerechnet. Passiert das jetzt vielleicht doppelt?

    SOC wird noch nicht ausgewertet, was nicht so wild ist, denn in die Batterien geht eben nichts mehr rein. Für die Regelung wird aber die echte Leistungsaufnahme der Speicher gemessen. Ich hab hier so wenig Sonne, Da konnte ich dieses Fall noch nicht erleben 😉 Ich bau aber in Zukunft noch eine Abschaltung bei Ladestand x ein.

    Das mit den States ist ein guter Hinweis. Baue ich ein. Leider kann man den Typ nicht genau festlegen, schon garnicht, wenn die Sates von unbekannter Quelle kommen. Aber das ist leicht abzufangen.

    In den Settings achte darauf numerische Werte nicht in "" zu setzen und keine Einheiten wie "W" dahinter zu schreiben.

    S 1 Reply Last reply
    0
    • W Waly_de

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

      Sagen wir das Haus verbraucht 500W und externe Solarsysteme erzeugen 600W, dann meldet der Zähler doch -100W, richtig? Also hast du 100W Überschuss und nicht 600W oder was auch immer…

      Richtig. Das sollte das Script so machten. Bei Dir ist das etwas schwierig von außen zu beurteilen. Was mir einfällt: Du hast ja bisher den Zähler mit Deinem Script simuliert. Dabei hast Du doch vermutlich schon die Einspeiseleistung Deiner anderen Inverter herausgerechnet. Passiert das jetzt vielleicht doppelt?

      SOC wird noch nicht ausgewertet, was nicht so wild ist, denn in die Batterien geht eben nichts mehr rein. Für die Regelung wird aber die echte Leistungsaufnahme der Speicher gemessen. Ich hab hier so wenig Sonne, Da konnte ich dieses Fall noch nicht erleben 😉 Ich bau aber in Zukunft noch eine Abschaltung bei Ladestand x ein.

      Das mit den States ist ein guter Hinweis. Baue ich ein. Leider kann man den Typ nicht genau festlegen, schon garnicht, wenn die Sates von unbekannter Quelle kommen. Aber das ist leicht abzufangen.

      In den Settings achte darauf numerische Werte nicht in "" zu setzen und keine Einheiten wie "W" dahinter zu schreiben.

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

      @waly_de Das ist eben das, was ich nicht ganz verstehe. Klar rechne ich die Solaranlagen raus. Aber das macht ein Sensor am physikalischen Zähler ja genau so… ?! Das ist eben der Punkt, wo ich noch nen Knoten habe…
      Was ich auch nicht ganz verstehe ist der ExcessChargeOffsetPower, was da wo in welche Richtung dazugerechnet wird. Die Ladeleistung wird einfach um den Wert erhöht, resp verkleinert?
      Gestern - da hab ich aber auch viel gebastelt, kann sein dass da was durcheinander kam - hab ich mal festgestellt, dass dein script mit 20W zu laden versucht hat (vielleicht eben wegen dem Offset), was natürlich nicht geht.
      Was die States angeht, ich hab gestern Stunden verbraten. Wenn man die States mit { type: 'boolean' } oder { type: 'number'} etc. anlegt, geht das. Was ich aber nicht hingekriegt habe, ist den Typ aus ner variable zu ziehen, also man kann das {} Konstrukt nicht als String übergeben.. Und ich bin wohl in JavaScript zu wenig bewandert… (hab da sonst nie was gemacht). Hab jetzt einfach 3 Funktionen gemacht, eine zum Anlegen eines strings, eine zum Anlegen einer number und eine zum Anlegen eines boolean… Das ginge sicher einfacher, aber eben, hab nicht rausgefunden wie.

      W 1 Reply Last reply
      0
      • S sirdir

        @waly_de Das ist eben das, was ich nicht ganz verstehe. Klar rechne ich die Solaranlagen raus. Aber das macht ein Sensor am physikalischen Zähler ja genau so… ?! Das ist eben der Punkt, wo ich noch nen Knoten habe…
        Was ich auch nicht ganz verstehe ist der ExcessChargeOffsetPower, was da wo in welche Richtung dazugerechnet wird. Die Ladeleistung wird einfach um den Wert erhöht, resp verkleinert?
        Gestern - da hab ich aber auch viel gebastelt, kann sein dass da was durcheinander kam - hab ich mal festgestellt, dass dein script mit 20W zu laden versucht hat (vielleicht eben wegen dem Offset), was natürlich nicht geht.
        Was die States angeht, ich hab gestern Stunden verbraten. Wenn man die States mit { type: 'boolean' } oder { type: 'number'} etc. anlegt, geht das. Was ich aber nicht hingekriegt habe, ist den Typ aus ner variable zu ziehen, also man kann das {} Konstrukt nicht als String übergeben.. Und ich bin wohl in JavaScript zu wenig bewandert… (hab da sonst nie was gemacht). Hab jetzt einfach 3 Funktionen gemacht, eine zum Anlegen eines strings, eine zum Anlegen einer number und eine zum Anlegen eines boolean… Das ginge sicher einfacher, aber eben, hab nicht rausgefunden wie.

        W Offline
        W Offline
        Waly_de
        wrote on last edited by Waly_de
        #823

        @sirdir

        Vielleicht hilft dir diese Funktion aus dem Script:

        Sie ermittelt den Typ von value und legt einen entsprechenden State an.
        Den Typ kannst du aber auch in 'const state' als String wie im Kommentar übergeben, oder
        nach der Definition mit state.type = 'boolean' überschreiben

        async function createMyState(name, value) {
            const stateName = name;
            let valueType = typeof initValue;
            if (!(await existsObjectAsync(stateName))) {
                const state = {
                    name: name.split('.').pop(),
                    role: 'state',
                    type: valueType // 'string', 'number', 'boolean', usw.
                    read: true,
                    write: true,
                };
                // @ts-ignore
                await createStateAsync(stateName, value, false, state);
            }
        }
        
        

        ExcessChargeOffsetPower wir tatsächlich einfach zum Überschuss addiert, solange der > 0 ist. bei Überschuss 0 wird auch 0 geschickt. die Deltas laden eh immer mit min. 70 W, auch wenn du 0 schickst.

        S 2 Replies Last reply
        0
        • W Waly_de

          @sirdir

          Vielleicht hilft dir diese Funktion aus dem Script:

          Sie ermittelt den Typ von value und legt einen entsprechenden State an.
          Den Typ kannst du aber auch in 'const state' als String wie im Kommentar übergeben, oder
          nach der Definition mit state.type = 'boolean' überschreiben

          async function createMyState(name, value) {
              const stateName = name;
              let valueType = typeof initValue;
              if (!(await existsObjectAsync(stateName))) {
                  const state = {
                      name: name.split('.').pop(),
                      role: 'state',
                      type: valueType // 'string', 'number', 'boolean', usw.
                      read: true,
                      write: true,
                  };
                  // @ts-ignore
                  await createStateAsync(stateName, value, false, state);
              }
          }
          
          

          ExcessChargeOffsetPower wir tatsächlich einfach zum Überschuss addiert, solange der > 0 ist. bei Überschuss 0 wird auch 0 geschickt. die Deltas laden eh immer mit min. 70 W, auch wenn du 0 schickst.

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

          @waly_de danke ich schau mir das mal an. Das mit dem überschuss, ja eben das lief dann auseinander… hatte das Gefühl es wird einfach manchmal geladen wenn schon nicht mehr geladen werden sollte. Aber ist halt auch alles etwas komplex. Kommt noch genug überschuss von den PS Solarpanels? Aber auch dann, der Ueberschuss sollte ja dann besser direkt in die Batterie als eingespeist zu werden um die Batterie mit AC zu laden… aber wenn du Batterie schon voll war geht’s nicht anders bevor sie zu nem gewissen Punkt entladen wurde… Bin da jeweils nicht sicher ob das passiert, was gewollt war oder nicht 🙂

          1 Reply Last reply
          0
          • W Waly_de

            @sirdir

            Vielleicht hilft dir diese Funktion aus dem Script:

            Sie ermittelt den Typ von value und legt einen entsprechenden State an.
            Den Typ kannst du aber auch in 'const state' als String wie im Kommentar übergeben, oder
            nach der Definition mit state.type = 'boolean' überschreiben

            async function createMyState(name, value) {
                const stateName = name;
                let valueType = typeof initValue;
                if (!(await existsObjectAsync(stateName))) {
                    const state = {
                        name: name.split('.').pop(),
                        role: 'state',
                        type: valueType // 'string', 'number', 'boolean', usw.
                        read: true,
                        write: true,
                    };
                    // @ts-ignore
                    await createStateAsync(stateName, value, false, state);
                }
            }
            
            

            ExcessChargeOffsetPower wir tatsächlich einfach zum Überschuss addiert, solange der > 0 ist. bei Überschuss 0 wird auch 0 geschickt. die Deltas laden eh immer mit min. 70 W, auch wenn du 0 schickst.

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

            @waly_de das ist das was ich meinte: Erstens scheint das Script erst mal etwas, was 'null' ist als Ladeleistung zu setzen, bevor es die Ladung einschaltet (nicht so schlimm, aber vielleicht interessant). Dann wenn es mit dem Überschuss knapp wird, versucht er die Ladeleistung runter zu regeln, was aber ja nicht geht, da die Ecoflow immer mit ˜88W oder so lädt, auch wenn du 19 schickst (wobei ich schon ExcessChargeOffsetPower auf -100 habe, sonst würde dauernd mehr geladen als überschuss da ist). Dann wird effektiv Netzstrom verbraucht, die Ladung wird aber nicht abgebrochen, es wird aber auch nicht eingespeist. Ist das das gewünschte Verhalten?!
            IMG_1960.pngIMG_1962.png

            W 1 Reply Last reply
            0
            • A Offline
              A Offline
              aherby
              wrote on last edited by
              #826

              @foxthefox Hey meinst du die Helligkeit der LED-Beleuchtung vom Smartplug?
              Ja die kann man über die App ändern.

              ist es möglich, das es hier drin ist?

              /thing/property/set:0a36102018352001280138034002488201580170ddbb9d8006800113880101ba0103696f73ca0110485735325a4448345346363636353838
              

              Und man kann den Überlastschutz wählen zwischen 1000 W und 2500W

              /thing/property/set:
              0a3d0a0308e8071020183520012801380340024889015003580170858cae8006800113880101ba0103696f73ca0110485735325a4448345346363636353838
              

              kann damit was angefangen werden?

              F 1 Reply Last reply
              1
              • F foxthefox

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

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

                außer einem EIN/AUS-schalten ist hier nichts drin.

                es ist die cmdId 142 die hier geschaltet wird. Hast du zu dieser cmdId schon eine gesicherte Funktion? Und was genau ist diese Funktion?

                das müsste @aherby beantworten, unter welchen Umständen dieser Mitschnitt entstanden ist.
                Das es cmdId 142 ist, hab ich schon gesehen, tendenziell müsste damit auch das heartbeat größer geworden sein.
                Hab leider kein Plug um hier mehr zu recherchieren.

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

                @foxthefox ist die Helligkeit nicht schon hier drin ?

                0_userdata.0.ecoflow.app_device_property_HW52ZDH4SF66xxxx.data.plug_heartbeat_pack.brightness
                

                Max. Power hier:

                0_userdata.0.ecoflow.app_device_property_HW52ZDH4SF66xxxx.data.plug_heartbeat_pack.maxWatts
                

                Die ersten Mitschnitte ware durch die neue Firmware der Smartplugs und vom Powerstream, dass man die Berücksichtigung der Smartplugs für den Haushaltsstrom oder Energiebedarf ein oder ausschalten kann.

                KAnn ich gerade leider durch zu wenig Sonne nicht richtig testen.

                F 1 Reply Last reply
                1
                • S sirdir

                  @waly_de das ist das was ich meinte: Erstens scheint das Script erst mal etwas, was 'null' ist als Ladeleistung zu setzen, bevor es die Ladung einschaltet (nicht so schlimm, aber vielleicht interessant). Dann wenn es mit dem Überschuss knapp wird, versucht er die Ladeleistung runter zu regeln, was aber ja nicht geht, da die Ecoflow immer mit ˜88W oder so lädt, auch wenn du 19 schickst (wobei ich schon ExcessChargeOffsetPower auf -100 habe, sonst würde dauernd mehr geladen als überschuss da ist). Dann wird effektiv Netzstrom verbraucht, die Ladung wird aber nicht abgebrochen, es wird aber auch nicht eingespeist. Ist das das gewünschte Verhalten?!
                  IMG_1960.pngIMG_1962.png

                  W Offline
                  W Offline
                  Waly_de
                  wrote on last edited by Waly_de
                  #828

                  @sirdir Jein... 😉 Wünschenswert wäre, wenn 0 als Ladeleistung gesendet dass auch 0 Leistung hieße. Aber das macht das Teil eben nicht.

                  Du kannst das Verhalten aber ganz gut mit den Parametern anpassen.
                  Hier mal eine Konfiguration, die besser zu Deiner Vorstellung passen dürfte.
                  Dazu solltest du zum Schalten der Delta dann "chgPause" der Delta verwenden.
                  Es ginge auch dem Shelly... aber ich weiß nicht ob das ständige ein und ausschalten (das ich ja in der Standardkonfig abfange) so gut für den Speicher ist.

                  //****************************************
                      // Überschussladung:
                      //****************************************
                      ExcessCharge: true,                                //Überschussladung AN/AUS (true/false)
                                                                          //ID zum Einstellen der Ladeleistung des Speichers in Watt: 
                      ExcessChargePowerID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.slowChgPower",
                                                                          //ID des aktuellen Ladestandes des Speichers in %: 
                      ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.bmsMaster.soc",
                      ExcessChargeSwitchMin: 0,                           //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. 
                      ExcessChargeMaxPower: 2000,                         //Maximale Ladeleistung des Speichers in Watt
                      ExcessChargeOffsetPower: 0,                         //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. 
                      ExcessChargeStartPower: 10,                         //Mindest-Überschussleistung zum Einschalten des Speichers
                      ExcessChargeStartPowerDurationMin: 0,               //Mindestdauer in Minuten, die ExcessChargeStartPower nicht unterschritten werden darf, bevor der Speicher eingeschaltet wird.
                      //----------------------------------------
                      // Beispiel für Delta-Nutzung ohne Schlaltersteckdose:
                      // Wird an einer Delta auch der PV-Eingang genutzt, bitte die PV-Leistung unter AdditionalPower anlegen. Die passende ID ist:
                      // 0_userdata.0.ecoflow.app_device_property_xxx.data.params.mppt.inWatts
                      // Bei der Delta: "subscribe: true" konfigurieren
                      //----------------------------------------
                                                                          //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                      ExcessActualPowerID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.inv.inputWatts",
                                                                          //ID des Schalters, der den Speicher aktiviert: 
                      ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.chgPause", 
                      ExcessChargeSwitchOn: 0,                          //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                      ExcessChargeSwitchOff: 1,                         //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                      //----------------------------------------
                      // Beispiel für Nutzung einer Schlaltersteckdose:
                      //----------------------------------------
                                                                          //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                      //ExcessActualPowerID: "sonoff.0.NOUS-DVES_F0A844.ENERGY_Power",
                                                                          //ID des Schalters, der den Speicher aktiviert: 
                      //ExcessChargeSwitchID: "sonoff.0.NOUS-DVES_F0A844.POWER", 
                      //ExcessChargeSwitchOn: true,                         //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                      //ExcessChargeSwitchOff: false,                       //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                      //----------------------------------------
                      //****************************************
                  

                  Hier sind alle Verzögerungen ausgeschaltet. Der Speicher wird ab einem Überschuss von 10 W ein, und bei 0 sofort ausgeschaltet.

                  Es kann aber sein, dass wegen Verzögerungen in den Messungen das ganze anfängt zu "schwingen" und der Speicher ständig ein und ausgeschaltet wird. (Wie gesagt, ich kann das hier nicht testen, dafür gibts zu wenig Sonne)
                  Wenn Das passiert setzte bitte wieder ExcessChargeSwitchMin auf > 0.
                  theoretisch geht auch sowas wie 0.5 für 30 Sekunden.

                  Bin gespannt, ob das für Dich besser klappt.

                  S 4 Replies Last reply
                  0
                  • W Waly_de

                    @sirdir Jein... 😉 Wünschenswert wäre, wenn 0 als Ladeleistung gesendet dass auch 0 Leistung hieße. Aber das macht das Teil eben nicht.

                    Du kannst das Verhalten aber ganz gut mit den Parametern anpassen.
                    Hier mal eine Konfiguration, die besser zu Deiner Vorstellung passen dürfte.
                    Dazu solltest du zum Schalten der Delta dann "chgPause" der Delta verwenden.
                    Es ginge auch dem Shelly... aber ich weiß nicht ob das ständige ein und ausschalten (das ich ja in der Standardkonfig abfange) so gut für den Speicher ist.

                    //****************************************
                        // Überschussladung:
                        //****************************************
                        ExcessCharge: true,                                //Überschussladung AN/AUS (true/false)
                                                                            //ID zum Einstellen der Ladeleistung des Speichers in Watt: 
                        ExcessChargePowerID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.slowChgPower",
                                                                            //ID des aktuellen Ladestandes des Speichers in %: 
                        ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.bmsMaster.soc",
                        ExcessChargeSwitchMin: 0,                           //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. 
                        ExcessChargeMaxPower: 2000,                         //Maximale Ladeleistung des Speichers in Watt
                        ExcessChargeOffsetPower: 0,                         //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. 
                        ExcessChargeStartPower: 10,                         //Mindest-Überschussleistung zum Einschalten des Speichers
                        ExcessChargeStartPowerDurationMin: 0,               //Mindestdauer in Minuten, die ExcessChargeStartPower nicht unterschritten werden darf, bevor der Speicher eingeschaltet wird.
                        //----------------------------------------
                        // Beispiel für Delta-Nutzung ohne Schlaltersteckdose:
                        // Wird an einer Delta auch der PV-Eingang genutzt, bitte die PV-Leistung unter AdditionalPower anlegen. Die passende ID ist:
                        // 0_userdata.0.ecoflow.app_device_property_xxx.data.params.mppt.inWatts
                        // Bei der Delta: "subscribe: true" konfigurieren
                        //----------------------------------------
                                                                            //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                        ExcessActualPowerID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.inv.inputWatts",
                                                                            //ID des Schalters, der den Speicher aktiviert: 
                        ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.chgPause", 
                        ExcessChargeSwitchOn: 0,                          //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                        ExcessChargeSwitchOff: 1,                         //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                        //----------------------------------------
                        // Beispiel für Nutzung einer Schlaltersteckdose:
                        //----------------------------------------
                                                                            //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                        //ExcessActualPowerID: "sonoff.0.NOUS-DVES_F0A844.ENERGY_Power",
                                                                            //ID des Schalters, der den Speicher aktiviert: 
                        //ExcessChargeSwitchID: "sonoff.0.NOUS-DVES_F0A844.POWER", 
                        //ExcessChargeSwitchOn: true,                         //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                        //ExcessChargeSwitchOff: false,                       //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                        //----------------------------------------
                        //****************************************
                    

                    Hier sind alle Verzögerungen ausgeschaltet. Der Speicher wird ab einem Überschuss von 10 W ein, und bei 0 sofort ausgeschaltet.

                    Es kann aber sein, dass wegen Verzögerungen in den Messungen das ganze anfängt zu "schwingen" und der Speicher ständig ein und ausgeschaltet wird. (Wie gesagt, ich kann das hier nicht testen, dafür gibts zu wenig Sonne)
                    Wenn Das passiert setzte bitte wieder ExcessChargeSwitchMin auf > 0.
                    theoretisch geht auch sowas wie 0.5 für 30 Sekunden.

                    Bin gespannt, ob das für Dich besser klappt.

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

                    @waly_de Ich hab die duration schon auf 0. Aber das Problem ist ja, dass er meint, er könne mit 10 W laden, lädt aber in wirklichkeit mit 80 Watt. Dann wird nicht abgeschaltet… oder vielleicht… sorry das ganze Setup ist einfach schon etwas komplex, je nach Mondphase verliert auch mal das Shelly die Verbindung ne Weile, vielleicht war am Ende das das Problem, muss ich mal prüfen bevor ich die weiter nerve. Aber heut hab ich auch zu wenig Sonne.
                    Edit: Wobei, glaub doch nicht, dass das Shelly da das Problem war. Die Leistung wurde ja auch geupdated, also war das Gerät wohl nicht offline. Naja ich beobachte es weiter.

                    1 Reply Last reply
                    0
                    • A aherby

                      @foxthefox Hey meinst du die Helligkeit der LED-Beleuchtung vom Smartplug?
                      Ja die kann man über die App ändern.

                      ist es möglich, das es hier drin ist?

                      /thing/property/set:0a36102018352001280138034002488201580170ddbb9d8006800113880101ba0103696f73ca0110485735325a4448345346363636353838
                      

                      Und man kann den Überlastschutz wählen zwischen 1000 W und 2500W

                      /thing/property/set:
                      0a3d0a0308e8071020183520012801380340024889015003580170858cae8006800113880101ba0103696f73ca0110485735325a4448345346363636353838
                      

                      kann damit was angefangen werden?

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

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

                      @foxthefox Hey meinst du die Helligkeit der LED-Beleuchtung vom Smartplug?
                      Ja die kann man über die App ändern.

                      ist es möglich, das es hier drin ist?

                      /thing/property/set:0a36102018352001280138034002488201580170ddbb9d8006800113880101ba0103696f73ca0110485735325a4448345346363636353838
                      

                      kann damit was angefangen werden?

                      könnte sein, das es das war cmdID=130 war mir noch nicht bekannt, allerdings fehlt noch ein Wert für die Helligkeit in dem Telegramm
                      Aber ich notier es mir mal.

                      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
                      • A aherby

                        @foxthefox ist die Helligkeit nicht schon hier drin ?

                        0_userdata.0.ecoflow.app_device_property_HW52ZDH4SF66xxxx.data.plug_heartbeat_pack.brightness
                        

                        Max. Power hier:

                        0_userdata.0.ecoflow.app_device_property_HW52ZDH4SF66xxxx.data.plug_heartbeat_pack.maxWatts
                        

                        Die ersten Mitschnitte ware durch die neue Firmware der Smartplugs und vom Powerstream, dass man die Berücksichtigung der Smartplugs für den Haushaltsstrom oder Energiebedarf ein oder ausschalten kann.

                        KAnn ich gerade leider durch zu wenig Sonne nicht richtig testen.

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

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

                        @foxthefox ist die Helligkeit nicht schon hier drin ?

                        0_userdata.0.ecoflow.app_device_property_HW52ZDH4SF66xxxx.data.plug_heartbeat_pack.brightness
                        

                        Max. Power hier:

                        0_userdata.0.ecoflow.app_device_property_HW52ZDH4SF66xxxx.data.plug_heartbeat_pack.maxWatts
                        

                        Die ersten Mitschnitte ware durch die neue Firmware der Smartplugs und vom Powerstream, dass man die Berücksichtigung der Smartplugs für den Haushaltsstrom oder Energiebedarf ein oder ausschalten kann.

                        KAnn ich gerade leider durch zu wenig Sonne nicht richtig testen.

                        die Werte sind als Status schon mit dabei.
                        Mir ging es ja um die Befehle. Das ist erstmal soweit klar.
                        Danke

                        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 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:

                          @foxthefox ist die Helligkeit nicht schon hier drin ?

                          0_userdata.0.ecoflow.app_device_property_HW52ZDH4SF66xxxx.data.plug_heartbeat_pack.brightness
                          

                          Max. Power hier:

                          0_userdata.0.ecoflow.app_device_property_HW52ZDH4SF66xxxx.data.plug_heartbeat_pack.maxWatts
                          

                          Die ersten Mitschnitte ware durch die neue Firmware der Smartplugs und vom Powerstream, dass man die Berücksichtigung der Smartplugs für den Haushaltsstrom oder Energiebedarf ein oder ausschalten kann.

                          KAnn ich gerade leider durch zu wenig Sonne nicht richtig testen.

                          die Werte sind als Status schon mit dabei.
                          Mir ging es ja um die Befehle. Das ist erstmal soweit klar.
                          Danke

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

                          @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}}}
                          
                          F W 2 Replies 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}}}
                            
                            F Offline
                            F Offline
                            foxthefox
                            Developer
                            wrote on last edited by foxthefox
                            #833

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

                            @foxthefox Schau mal ob hier die Helligkeit drin ist:
                            Ja cmdId=130 hatten wir als Helligkeit definiert.

                            Das könnte Helligkeit cmdID=130 sein, hier mit Zahlenwert 512, könnte 50% entsprechen

                            0a3d0a030880041020183520012801380340024882015003580170bfef88a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                            

                            hier Zahlenwert 1023, also ggf. 100% Helligkeit

                            0a3d0a0308ff071020183520012801380340024882015003580170829089a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                            

                            damit sollte das auch als Kommando gehen brightness cmdId=130, dateLen=3, Helligkeit als Zahlenwert normiert auf 1024 (100%)

                            Max Power / Überlastschutz hier ?:

                            so isses, cmdId=137:
                            hier ist 1750W als Übergabewert drin:

                            0a3d0a0308d60d1020183520012801380340024889015003580170bb99a6a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                            [Wasserkocher] cmdId:137 cmdFunc:2
                            

                            und dieses Kommando mit cmdId=137 hat den Übergabewert von 2500W, das passt zusammen!

                            0a3d0a0308c4131020183520012801380340024889015003580170f9b8a6a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                            
                            0a2e0a0368c41310351820200128014002480150035801800103880103ca0110485735325a4448345346363636353838
                            
                            script.js.1_16_1_Ecoflow_Dynamische_Leistung: Decodierte Nachricht:{"data":{"plug_heartbeat_pack":{"maxWatts":2500}}}
                            

                            damit sollte das auch als Kommando gehen maxWatts, cmdId=137, dateLen=3, Watt = Zahlenwert

                            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 3 Replies Last reply
                            0
                            • F foxthefox

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

                              @foxthefox Schau mal ob hier die Helligkeit drin ist:
                              Ja cmdId=130 hatten wir als Helligkeit definiert.

                              Das könnte Helligkeit cmdID=130 sein, hier mit Zahlenwert 512, könnte 50% entsprechen

                              0a3d0a030880041020183520012801380340024882015003580170bfef88a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                              

                              hier Zahlenwert 1023, also ggf. 100% Helligkeit

                              0a3d0a0308ff071020183520012801380340024882015003580170829089a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                              

                              damit sollte das auch als Kommando gehen brightness cmdId=130, dateLen=3, Helligkeit als Zahlenwert normiert auf 1024 (100%)

                              Max Power / Überlastschutz hier ?:

                              so isses, cmdId=137:
                              hier ist 1750W als Übergabewert drin:

                              0a3d0a0308d60d1020183520012801380340024889015003580170bb99a6a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                              [Wasserkocher] cmdId:137 cmdFunc:2
                              

                              und dieses Kommando mit cmdId=137 hat den Übergabewert von 2500W, das passt zusammen!

                              0a3d0a0308c4131020183520012801380340024889015003580170f9b8a6a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                              
                              0a2e0a0368c41310351820200128014002480150035801800103880103ca0110485735325a4448345346363636353838
                              
                              script.js.1_16_1_Ecoflow_Dynamische_Leistung: Decodierte Nachricht:{"data":{"plug_heartbeat_pack":{"maxWatts":2500}}}
                              

                              damit sollte das auch als Kommando gehen maxWatts, cmdId=137, dateLen=3, Watt = Zahlenwert

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

                              @foxthefox Genau richtig es waren erstmal 0%, 50% und 100% Helligkeit. Habe glaube nicht alle als Code eingefügt.

                              Und ja 2500 W sind der Max-Wert und 1750 W war so grob als ein Werte oberhalb der Mitte gedacht.

                              Kannst du mir in irgendeinerweise beibringen so Sachen / Dinge zu lesen?

                              F 1 Reply Last reply
                              0
                              • F foxthefox

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

                                @foxthefox Schau mal ob hier die Helligkeit drin ist:
                                Ja cmdId=130 hatten wir als Helligkeit definiert.

                                Das könnte Helligkeit cmdID=130 sein, hier mit Zahlenwert 512, könnte 50% entsprechen

                                0a3d0a030880041020183520012801380340024882015003580170bfef88a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                                

                                hier Zahlenwert 1023, also ggf. 100% Helligkeit

                                0a3d0a0308ff071020183520012801380340024882015003580170829089a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                                

                                damit sollte das auch als Kommando gehen brightness cmdId=130, dateLen=3, Helligkeit als Zahlenwert normiert auf 1024 (100%)

                                Max Power / Überlastschutz hier ?:

                                so isses, cmdId=137:
                                hier ist 1750W als Übergabewert drin:

                                0a3d0a0308d60d1020183520012801380340024889015003580170bb99a6a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                                [Wasserkocher] cmdId:137 cmdFunc:2
                                

                                und dieses Kommando mit cmdId=137 hat den Übergabewert von 2500W, das passt zusammen!

                                0a3d0a0308c4131020183520012801380340024889015003580170f9b8a6a206800113880101ba0103696f73ca0110485735325a4448345346363636353838
                                
                                0a2e0a0368c41310351820200128014002480150035801800103880103ca0110485735325a4448345346363636353838
                                
                                script.js.1_16_1_Ecoflow_Dynamische_Leistung: Decodierte Nachricht:{"data":{"plug_heartbeat_pack":{"maxWatts":2500}}}
                                

                                damit sollte das auch als Kommando gehen maxWatts, cmdId=137, dateLen=3, Watt = Zahlenwert

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

                                @foxthefox Es gibt ja die "Timerfunktionen" Laden über AC, Laden über Solar und so.
                                Hier würde ich gern die Syntax verstehen und hier teilen.

                                1 Reply Last reply
                                0
                                • W Waly_de

                                  @sirdir Jein... 😉 Wünschenswert wäre, wenn 0 als Ladeleistung gesendet dass auch 0 Leistung hieße. Aber das macht das Teil eben nicht.

                                  Du kannst das Verhalten aber ganz gut mit den Parametern anpassen.
                                  Hier mal eine Konfiguration, die besser zu Deiner Vorstellung passen dürfte.
                                  Dazu solltest du zum Schalten der Delta dann "chgPause" der Delta verwenden.
                                  Es ginge auch dem Shelly... aber ich weiß nicht ob das ständige ein und ausschalten (das ich ja in der Standardkonfig abfange) so gut für den Speicher ist.

                                  //****************************************
                                      // Überschussladung:
                                      //****************************************
                                      ExcessCharge: true,                                //Überschussladung AN/AUS (true/false)
                                                                                          //ID zum Einstellen der Ladeleistung des Speichers in Watt: 
                                      ExcessChargePowerID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.slowChgPower",
                                                                                          //ID des aktuellen Ladestandes des Speichers in %: 
                                      ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.bmsMaster.soc",
                                      ExcessChargeSwitchMin: 0,                           //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. 
                                      ExcessChargeMaxPower: 2000,                         //Maximale Ladeleistung des Speichers in Watt
                                      ExcessChargeOffsetPower: 0,                         //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. 
                                      ExcessChargeStartPower: 10,                         //Mindest-Überschussleistung zum Einschalten des Speichers
                                      ExcessChargeStartPowerDurationMin: 0,               //Mindestdauer in Minuten, die ExcessChargeStartPower nicht unterschritten werden darf, bevor der Speicher eingeschaltet wird.
                                      //----------------------------------------
                                      // Beispiel für Delta-Nutzung ohne Schlaltersteckdose:
                                      // Wird an einer Delta auch der PV-Eingang genutzt, bitte die PV-Leistung unter AdditionalPower anlegen. Die passende ID ist:
                                      // 0_userdata.0.ecoflow.app_device_property_xxx.data.params.mppt.inWatts
                                      // Bei der Delta: "subscribe: true" konfigurieren
                                      //----------------------------------------
                                                                                          //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                                      ExcessActualPowerID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.inv.inputWatts",
                                                                                          //ID des Schalters, der den Speicher aktiviert: 
                                      ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.chgPause", 
                                      ExcessChargeSwitchOn: 0,                          //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                      ExcessChargeSwitchOff: 1,                         //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                      //----------------------------------------
                                      // Beispiel für Nutzung einer Schlaltersteckdose:
                                      //----------------------------------------
                                                                                          //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                                      //ExcessActualPowerID: "sonoff.0.NOUS-DVES_F0A844.ENERGY_Power",
                                                                                          //ID des Schalters, der den Speicher aktiviert: 
                                      //ExcessChargeSwitchID: "sonoff.0.NOUS-DVES_F0A844.POWER", 
                                      //ExcessChargeSwitchOn: true,                         //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                      //ExcessChargeSwitchOff: false,                       //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                      //----------------------------------------
                                      //****************************************
                                  

                                  Hier sind alle Verzögerungen ausgeschaltet. Der Speicher wird ab einem Überschuss von 10 W ein, und bei 0 sofort ausgeschaltet.

                                  Es kann aber sein, dass wegen Verzögerungen in den Messungen das ganze anfängt zu "schwingen" und der Speicher ständig ein und ausgeschaltet wird. (Wie gesagt, ich kann das hier nicht testen, dafür gibts zu wenig Sonne)
                                  Wenn Das passiert setzte bitte wieder ExcessChargeSwitchMin auf > 0.
                                  theoretisch geht auch sowas wie 0.5 für 30 Sekunden.

                                  Bin gespannt, ob das für Dich besser klappt.

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

                                  @waly_de Also ich hab’s mal so probiert. Hab den Offset auf -70 um nicht dauernd an der Grenze zu sein. Das Problem ist halt einfach, dass das Script versucht bis auf 0 Watt runter zu regeln bei der Ladeleistung was einfach nicht geht. Ich persönlich würde das wohl so lösen, dass man nen Mindestwert setzen kann (also so die 88W bei meiner Ecoflow) und sobald der Wert tiefer gesetzt werden müsste um die Bedinungen einzuhalten wird stattdessen die Ladung pausiert.

                                  1 Reply Last reply
                                  0
                                  • W Waly_de

                                    @sirdir Jein... 😉 Wünschenswert wäre, wenn 0 als Ladeleistung gesendet dass auch 0 Leistung hieße. Aber das macht das Teil eben nicht.

                                    Du kannst das Verhalten aber ganz gut mit den Parametern anpassen.
                                    Hier mal eine Konfiguration, die besser zu Deiner Vorstellung passen dürfte.
                                    Dazu solltest du zum Schalten der Delta dann "chgPause" der Delta verwenden.
                                    Es ginge auch dem Shelly... aber ich weiß nicht ob das ständige ein und ausschalten (das ich ja in der Standardkonfig abfange) so gut für den Speicher ist.

                                    //****************************************
                                        // Überschussladung:
                                        //****************************************
                                        ExcessCharge: true,                                //Überschussladung AN/AUS (true/false)
                                                                                            //ID zum Einstellen der Ladeleistung des Speichers in Watt: 
                                        ExcessChargePowerID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.slowChgPower",
                                                                                            //ID des aktuellen Ladestandes des Speichers in %: 
                                        ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.bmsMaster.soc",
                                        ExcessChargeSwitchMin: 0,                           //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. 
                                        ExcessChargeMaxPower: 2000,                         //Maximale Ladeleistung des Speichers in Watt
                                        ExcessChargeOffsetPower: 0,                         //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. 
                                        ExcessChargeStartPower: 10,                         //Mindest-Überschussleistung zum Einschalten des Speichers
                                        ExcessChargeStartPowerDurationMin: 0,               //Mindestdauer in Minuten, die ExcessChargeStartPower nicht unterschritten werden darf, bevor der Speicher eingeschaltet wird.
                                        //----------------------------------------
                                        // Beispiel für Delta-Nutzung ohne Schlaltersteckdose:
                                        // Wird an einer Delta auch der PV-Eingang genutzt, bitte die PV-Leistung unter AdditionalPower anlegen. Die passende ID ist:
                                        // 0_userdata.0.ecoflow.app_device_property_xxx.data.params.mppt.inWatts
                                        // Bei der Delta: "subscribe: true" konfigurieren
                                        //----------------------------------------
                                                                                            //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                                        ExcessActualPowerID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.inv.inputWatts",
                                                                                            //ID des Schalters, der den Speicher aktiviert: 
                                        ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.chgPause", 
                                        ExcessChargeSwitchOn: 0,                          //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                        ExcessChargeSwitchOff: 1,                         //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                        //----------------------------------------
                                        // Beispiel für Nutzung einer Schlaltersteckdose:
                                        //----------------------------------------
                                                                                            //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                                        //ExcessActualPowerID: "sonoff.0.NOUS-DVES_F0A844.ENERGY_Power",
                                                                                            //ID des Schalters, der den Speicher aktiviert: 
                                        //ExcessChargeSwitchID: "sonoff.0.NOUS-DVES_F0A844.POWER", 
                                        //ExcessChargeSwitchOn: true,                         //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                        //ExcessChargeSwitchOff: false,                       //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                        //----------------------------------------
                                        //****************************************
                                    

                                    Hier sind alle Verzögerungen ausgeschaltet. Der Speicher wird ab einem Überschuss von 10 W ein, und bei 0 sofort ausgeschaltet.

                                    Es kann aber sein, dass wegen Verzögerungen in den Messungen das ganze anfängt zu "schwingen" und der Speicher ständig ein und ausgeschaltet wird. (Wie gesagt, ich kann das hier nicht testen, dafür gibts zu wenig Sonne)
                                    Wenn Das passiert setzte bitte wieder ExcessChargeSwitchMin auf > 0.
                                    theoretisch geht auch sowas wie 0.5 für 30 Sekunden.

                                    Bin gespannt, ob das für Dich besser klappt.

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

                                    @waly_de hm, weiteres Problem mit der Lösung. Gerade steht *writeables.chgPauseFlag auf 1. Auf dem Gerät scheint das aber nicht anzukommen. WIFI ist OK. params.inv.inputWatts meldet manchmal 0, manchmal 60W, laut shelly wird konstant mit um die 90W geladen. Das script hat die Ladegeschwindigkeit auf 0 gesetzt. Sehe grad, das data.params.chgPauseFlag gibt 255 zurück. Da klappt wohl irgendwo noch was nicht ganz mit der übertragung manchmal?
                                    Hab jetzt gerade chgPauseFlag kurz auf 0 gesetzt, dann hat er noch schneller geladen?! (über 255W wahrscheinlich?) Dann nochmal auf 1 gesetzt und jetzt ist Ruhe, wie es sein sollte. Irgendwo rutschen da in der Kommunikation wohl immer noch 255 rein manchmal?
                                    PS: Ja ich seh's gerade, *.params.slowChgWatts steht auf 255 *.writeables.slowChgWatts auf 0 steht.

                                    1 Reply Last reply
                                    0
                                    • W Waly_de

                                      @sirdir Jein... 😉 Wünschenswert wäre, wenn 0 als Ladeleistung gesendet dass auch 0 Leistung hieße. Aber das macht das Teil eben nicht.

                                      Du kannst das Verhalten aber ganz gut mit den Parametern anpassen.
                                      Hier mal eine Konfiguration, die besser zu Deiner Vorstellung passen dürfte.
                                      Dazu solltest du zum Schalten der Delta dann "chgPause" der Delta verwenden.
                                      Es ginge auch dem Shelly... aber ich weiß nicht ob das ständige ein und ausschalten (das ich ja in der Standardkonfig abfange) so gut für den Speicher ist.

                                      //****************************************
                                          // Überschussladung:
                                          //****************************************
                                          ExcessCharge: true,                                //Überschussladung AN/AUS (true/false)
                                                                                              //ID zum Einstellen der Ladeleistung des Speichers in Watt: 
                                          ExcessChargePowerID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.slowChgPower",
                                                                                              //ID des aktuellen Ladestandes des Speichers in %: 
                                          ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.bmsMaster.soc",
                                          ExcessChargeSwitchMin: 0,                           //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. 
                                          ExcessChargeMaxPower: 2000,                         //Maximale Ladeleistung des Speichers in Watt
                                          ExcessChargeOffsetPower: 0,                         //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. 
                                          ExcessChargeStartPower: 10,                         //Mindest-Überschussleistung zum Einschalten des Speichers
                                          ExcessChargeStartPowerDurationMin: 0,               //Mindestdauer in Minuten, die ExcessChargeStartPower nicht unterschritten werden darf, bevor der Speicher eingeschaltet wird.
                                          //----------------------------------------
                                          // Beispiel für Delta-Nutzung ohne Schlaltersteckdose:
                                          // Wird an einer Delta auch der PV-Eingang genutzt, bitte die PV-Leistung unter AdditionalPower anlegen. Die passende ID ist:
                                          // 0_userdata.0.ecoflow.app_device_property_xxx.data.params.mppt.inWatts
                                          // Bei der Delta: "subscribe: true" konfigurieren
                                          //----------------------------------------
                                                                                              //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                                          ExcessActualPowerID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.inv.inputWatts",
                                                                                              //ID des Schalters, der den Speicher aktiviert: 
                                          ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.chgPause", 
                                          ExcessChargeSwitchOn: 0,                          //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                          ExcessChargeSwitchOff: 1,                         //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                          //----------------------------------------
                                          // Beispiel für Nutzung einer Schlaltersteckdose:
                                          //----------------------------------------
                                                                                              //ID mit dem Messwert der aktuellen Leistungsaufnahme des Speichers in Watt:
                                          //ExcessActualPowerID: "sonoff.0.NOUS-DVES_F0A844.ENERGY_Power",
                                                                                              //ID des Schalters, der den Speicher aktiviert: 
                                          //ExcessChargeSwitchID: "sonoff.0.NOUS-DVES_F0A844.POWER", 
                                          //ExcessChargeSwitchOn: true,                         //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                          //ExcessChargeSwitchOff: false,                       //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...)
                                          //----------------------------------------
                                          //****************************************
                                      

                                      Hier sind alle Verzögerungen ausgeschaltet. Der Speicher wird ab einem Überschuss von 10 W ein, und bei 0 sofort ausgeschaltet.

                                      Es kann aber sein, dass wegen Verzögerungen in den Messungen das ganze anfängt zu "schwingen" und der Speicher ständig ein und ausgeschaltet wird. (Wie gesagt, ich kann das hier nicht testen, dafür gibts zu wenig Sonne)
                                      Wenn Das passiert setzte bitte wieder ExcessChargeSwitchMin auf > 0.
                                      theoretisch geht auch sowas wie 0.5 für 30 Sekunden.

                                      Bin gespannt, ob das für Dich besser klappt.

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

                                      @waly_de Hm, also ich hab das jetzt gerade nochmal genauer angeschaut - das Problem tritt anscheinend auf, wenn ich die D2M subscribe - dann springen pauseChgFlag und slowChgWatts zufällig auf 255 (als ich gerade getestet habe und jeweils wieder den richtigen Wert setzen lies, war's immer in einem durchgang deines Scripts der richtige Wert, danach wieder 255. . In den writables bleibt’s korrekt, aber an die Station geschickt wird anscheinend der falsche Wert.

                                      Edit: Hat's evtl. was damit zu tun? Mir ist nicht ganz klar was das bedeutet:

                                          { id: 0, name: 'slowChgWatts', ValueName: 'slowChgWatts', Typ: 'D2M', MT: 3, OT: 'acChgCfg', AddParam: '{"fastChgWatts":255, "slowChgWatts":0,"chgPauseFlag":255}' }, // Objekt angelegt, schreibbar
                                          { id: 0, name: 'chgPauseFlag', ValueName: 'chgPauseFlag', Typ: 'D2M', MT: 3, OT: 'acChgCfg', AddParam: '{"fastChgWatts":255, "slowChgWatts":255,"chgPauseFlag":0}' }, // TODO: chgPauseFlag testen, ob dann die Ladung pausiert
                                      
                                      W 1 Reply Last reply
                                      0
                                      • S sirdir

                                        @waly_de Hm, also ich hab das jetzt gerade nochmal genauer angeschaut - das Problem tritt anscheinend auf, wenn ich die D2M subscribe - dann springen pauseChgFlag und slowChgWatts zufällig auf 255 (als ich gerade getestet habe und jeweils wieder den richtigen Wert setzen lies, war's immer in einem durchgang deines Scripts der richtige Wert, danach wieder 255. . In den writables bleibt’s korrekt, aber an die Station geschickt wird anscheinend der falsche Wert.

                                        Edit: Hat's evtl. was damit zu tun? Mir ist nicht ganz klar was das bedeutet:

                                            { id: 0, name: 'slowChgWatts', ValueName: 'slowChgWatts', Typ: 'D2M', MT: 3, OT: 'acChgCfg', AddParam: '{"fastChgWatts":255, "slowChgWatts":0,"chgPauseFlag":255}' }, // Objekt angelegt, schreibbar
                                            { id: 0, name: 'chgPauseFlag', ValueName: 'chgPauseFlag', Typ: 'D2M', MT: 3, OT: 'acChgCfg', AddParam: '{"fastChgWatts":255, "slowChgWatts":255,"chgPauseFlag":0}' }, // TODO: chgPauseFlag testen, ob dann die Ladung pausiert
                                        
                                        W Offline
                                        W Offline
                                        Waly_de
                                        wrote on last edited by
                                        #839

                                        @sirdir leider hab ich im Augenblick keine Zeit um das genauer zu untersuchen. Kümmere ich mich bald drum. Ich bau Dir dann auch eine Parameter ein "ExcessChargeStopPower" der festlegt ab welcher Überschussleistung abgestellt werden soll, was im Moment fest auf 0W steht.

                                        Noch ein paar Anmerkungen:

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

                                        Hab den Offset auf -70 um nicht dauernd an der Grenze zu sein.

                                        Das führt aber auch dazu das ein negativer Wert an die Delta gesendet wird.
                                        Das ist noch nicht abgefangen. Bau ich in die nächste Version.

                                        Dass mit den 255 ist vermutlich richtig so. 255 heisst nach dem was wir bisher wissen: den vorhandenen Wert nicht ändern. Das wird nur mit dem Set gesendet, auch von der APP. Im eigentlichen Wert (Heartbeat) steht dann der echte wert.

                                        E S 2 Replies Last reply
                                        0
                                        • W Waly_de

                                          @sirdir leider hab ich im Augenblick keine Zeit um das genauer zu untersuchen. Kümmere ich mich bald drum. Ich bau Dir dann auch eine Parameter ein "ExcessChargeStopPower" der festlegt ab welcher Überschussleistung abgestellt werden soll, was im Moment fest auf 0W steht.

                                          Noch ein paar Anmerkungen:

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

                                          Hab den Offset auf -70 um nicht dauernd an der Grenze zu sein.

                                          Das führt aber auch dazu das ein negativer Wert an die Delta gesendet wird.
                                          Das ist noch nicht abgefangen. Bau ich in die nächste Version.

                                          Dass mit den 255 ist vermutlich richtig so. 255 heisst nach dem was wir bisher wissen: den vorhandenen Wert nicht ändern. Das wird nur mit dem Set gesendet, auch von der APP. Im eigentlichen Wert (Heartbeat) steht dann der echte wert.

                                          E Offline
                                          E Offline
                                          ETGermany
                                          wrote on last edited by
                                          #840

                                          @waly_de Interessantes Thema, habe das gerade gefunden, Tibber Pulse hängt am Zähler und Web-Server ist freigeschaltet. Dein Skript in meinen ioBroker eingetragen, 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?

                                          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

                                          637

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          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