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

ecoflow-connector-Script zur dynamischen Leistungsanpassung

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

    @dreffi Danke für die Rückmeldung..... Da es sonst kaum Rückmeldung gibt, hoffe ich das es bei den anderen auch läuft 🙂 Leider kann ich wegen des Wetters im Moment nicht so wirklich testen. Aber aber ich habe noch mal einiges hinzugefügt und verbessert. Einige wenige Dinge muss ich noch abschließend testen, dann werd ich es hoch laden. Hier schon mal zur Vorfreude die wichtigsten Dinge:

    (1.0.0) 06.08.2023

    • Neuer State "lowestValue" zeigt die Grundlage zur Berechnung der Einspeiseleistung an und repräsentiert niedrigsten Wert des realen Verbrauchs in den letzten mit "MinValueMin" eingestellten Minuten.
    • Neue Einstellung MinValueAg: Art der Ermittlung des kleinsten Wertes 0 = Minimalwert, 1 = Durchschnittswert.
    • Neues Feature: Wenn die volle Leistung (600w) in die Batterie geht, wird die Einspeiseleistung in Stufen erhöht, auch wenn dann Leistung ins Netz geht, um möglichst das volle Potenzial der vorhandenen Solarenergie zu nutzen.
    • Neue Einstellungen: lowBatLimitPozOn, lowBatLimitPozOff und lowBatLimit. Bei Unterschreiten der Batterieladung von "lowBatLimitPozOn" % ist die maximale Einspeiseleistung auf "lowBatLimit" W limitiert, bis der Ladezustand wieder bei "lowBatLimitPozOff" ist.
    • Neue Einstellungen: RegulationState. Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unterhalb 0_userdata.0.ecoflow angelegt).
    • Neue Einstellungen: RegulationOffPower. Wird die Regulation per State abgestellt, wird die Einspeiseleistung des ersten Powerstreams auf diesen Wert gesetzt. (-1 = keine Änderung).

    Und ganz wichtig.... es gibt einen Spendenlink 😉 Bitte unterstützt mich bei der Weiterentwicklung.

    D Offline
    D Offline
    Dreffi
    wrote on last edited by Dreffi
    #152

    @waly_de
    Ich bin mehr als beeindruckt.
    Ich wollte gerade vermelden, dass ich es geschafft habe das Script über eine Auswahl in Home Assistant ein- und auszuschalten, da kommst du mit dem Update um die Ecke...

    Mangels Sonne werde ich erst im Laufe der Woche brauchbares Feedback geben können.

    Edit:
    Blöde Frage, wo finde ich die aktuelle Version?
    Edit 2: mein Fehler, ich warte ab.

    1 Reply Last reply
    0
    • W Waly_de

      So, meine Anbindung läuft jetzt seit einigen Tagen sauber. Daher spendiere ich dem Skript mal einen eigenen Thread.

      Anbei findet ihr ein Skript, das eine Verbindung zwischen euren ecoflow-Geräten und ioBroker herstellen kann. Dabei nutzt es die gleiche Schnittstelle wie die ecoFlow App. Ihr benötigt lediglich eure Zugangsdaten zur App und die Seriennummern eurer Geräte, um dieses Skript nutzen zu können. Alle bekannten übermittelten Daten werden in ioBroker als Zustände angelegt. Viele davon sind noch unbekannt. Wenn ihr herausfindet, was sich hinter den unbekannten Daten verbirgt, kann ich die Zustandsnamen anpassen.

      Achtung: Der ecoflow-Server sendet unfassbar viele Nachrichten. Wenn ihr mehrere Geräte habt, kann dies euer System stark belasten und sogar zu Abstürzen führen. Vielleicht bekommt Ihr auch diese Meldung und das Script wird beendet:

       [error]: javascript.0 (5490) Script script.js.EcoFlow is calling setState more than 1000 times per minute! Stopping Script now! Please check your script!
      

      Daher empfehle ich, nicht alle Geräte dauerhaft zu abonnieren (dies kann über einen Parameter in der Einstellungssektion festgelegt werden). Es werden nur die PowerStreams benötigt, um die Einspeiseleistung anpassen zu können.
      Sonst kann dieser Grenzwert aber auch in den Einstellungen der Javascript-Instanz heraufgesetzt werden. 3000 dürfte für die meisten Szenarien reichen. (Siehe Screenshot weiter unten. Der Wert befindet sich unten links)

      Damit kommen wir zur eigentlichen interessanten Funktion des Skripts:
      Wenn ihr ein Smartmeter habt, das euren aktuellen Stromverbrauch in Echtzeit anzeigen kann, könnt ihr es an ioBroker anbinden. Informationen dazu findet ihr im Netz.

      Hier hab ich das Ding gekauft (Wenn ihr über die Links kauft, bekomme ich ein paar Cent Provision ab ;-)):
      Hichi Wifi, IR Lesekopf für Stromzähler
      https://ebay.us/3X1pkH
      Der Verkäufer hat auch ein tolles Video gemacht, wie man es einrichtet 😉

      Es funktionieren aber auch viele andere Zähler wie z.B.:
      Der Shelly 3EM

      Tibber-Kunden mit Pulse empfehle ich die lokale Einbindung des Pulse als Smartmeter mit meinem Script:
      https://forum.iobroker.net/topic/70758/tibber-pulse-verbrauchsdaten-lokal-auslesen

      Das Skript passt dann die Einspeiseleistung des PowerStream dynamisch an, sodass möglichst der gesamte Verbrauch durch die Einspeisung gedeckt wird, aber nichts ins Netz verschenkt wird. Erst wenn die Batterie voll geladen ist, wird die gesamte Leistung ins Netz eingespeist (wenn ihr das möchtet).

      Das Smartmeter muss den aktuellen Verbrauch möglichst in Echtzeit und in der Einheit Watt in einem Objekt von IOBroker zur Verfügung stellen. Im Script muss dann nur noch der Pfad zu diesem Objekt unter "SmartmeterID:" eingetragen werden. Am einfachsten geht das über die Adminoberfläche von IOBroker. Klickt auf Objekte und sucht das Objekt eures Smartmeters mit dem "Watt"-Wert im Objektbaum:
      Bildschirmfoto 2023-09-04 um 09.55.08.jpg
      Wenn Ihr auf das markierte Symbol klickt, ist der Pfad in euerer Zwischenablage gespeichert.
      Jetzt müsst Ihr ihn nur noch hinter "SmartmeterID:" im Script einfügen. Achtet darauf, dass Ihr es zwischen die "" einfügt.
      Wenn alles geklappt hat, der Pfad stimmt und das Script läuft, solltet Ihr unter Objekte: "0_userdata.0.ecoflow.RealPower" sehen, dass sich dieser Wert regelmäßig anpasst.

      Es können mehrere PowerStreams konfiguriert werden. Im Moment wird jedoch nur der erste in der Konfiguration gesteuert. Ich habe zum Beispiel zwei PowerStreams, einen mit und einen ohne Batterie. Dadurch steht tagsüber mehr Leistung zum Laden der Batterie zur Verfügung. Die Daten werden vom Skript verwendet, um die optimale Einspeiseleistung zu berechnen. In Zukunft könnten auch mehrere PowerStreams gesteuert werden.

      Nochmals vielen Dank an alle hier im Forum, die mit Ihrer Arbeit die Anbindung erst möglich gemacht haben!
      Ursprünglicher Beitrag: https://forum.iobroker.net/topic/54929/adapter-für-ecoflow-einbindung/

      Wichtig: Zur Installation müssen 2 Module installiert werden. Einfach in den Einstellungen der Javascriptinstanz unter Zusätzliche Module die beiden Namen eintragen und speichern ("mqtt" und "protobufjs")

      Bildschirmfoto 2023-07-17 um 10.56.49.jpg

      Erweiterungen:
      Tibber Modul
      Kann als eigenes, neues Script neben dem Hauptscript angelegt werden.

      //*************************************************************
      // Tibber Modul
      //*************************************************************
      // Schaltet die Regelung der Powerstation ab, wenn der Strom billig ist 
      // und einen beliebigen Schalter zum Aktivieren der AC-Ladung ein, bis die Batterie 
      // den durch der "BatMax" festgelegten Ladestand in % erreicht hat
      // 
      // Diese Parameter aus dem Hauptscript sind wichtig:
      // RegulationOffPower: -2 // Wird die Regulation per State abgestellt, wird die Einspeiseleistung des ersten Powerstreams auf diesen Wert gesetzt (-1 = keine Änderung, -2 = Batterie Priomodus)
      // RegulationState: "Regulate" // Erzeugt der State zum Ein und Aus-Schalten der Regulation.
      //
      // Das Script versucht selbst die ID's für den TibberStatus und den Batteriestand zu ermitteln.
      // Wenn das nicht klappt bitte einfach die richtigen ID's hinter "batSocID" und "tibberID" angeben.
      //
      //*************************************************************
      
      //*************************************************************
      // Konfiguration laden, wenn nicht im Originalscript eingefügt
      //*************************************************************
      var ConfigData = {
          statesPrefix: '0_userdata.0.ecoflow',
          RegulationState: "Regulate"
      }
      if (typeof ConfigData.email === 'undefined') {
          try {
              let tempConfigData = getState("0_userdata.0.ecoflow.Settings.ConfigData").val
              if (typeof tempConfigData !== 'object' && tempConfigData !== null) {
                  tempConfigData = JSON.parse(tempConfigData)
              }
              if (typeof tempConfigData === 'object' && tempConfigData !== null) {
                  if (tempConfigData.email !== undefined) {
                      ConfigData = tempConfigData;
                      //log("wurde geladen als object")
                  }
              }
          } catch (error) {
              log("Konfiguration wurde nicht geladen: " + error.message)
          }
      }
      
      /***************************************
      **********  YOUR DATA HERE  ************ 
      ****************************************/
      var tibberConfig = {
          BatMax: 99,                                  //Bei diesem Ladestand stoppt die AC-Ladung und das Script wird wieder eingeschaltet 
          BatMin: 95,                                  //Der Ladestand der Batterie muss kleiner sein als BatMin , damit der Akku per AC-Ladung geladen wird 
          SwitchID: "sonoff.0.NOUS-DVES_F0A844.POWER", //ID des Schalters, der die AC-Ladung einschaltet. "true" und "false" werden gesetzt
          LevelToSwitch: [                             //Hier die Werte definieren, bei denen die AC-Ladung eingeschaltet werden soll
              //"NORMAL",
              //"CHEAP",                                 //Einkommentieren falls gewüscht 
              "VERY_CHEAP"
          ],
      }
      //***************************************/
      // Nur angeben, wenn automatische Ermittlung fehlschlägt
      //***************************************/
      let batSocID = getState(ConfigData.statesPrefix + ".Settings.Tibber.tibberBatSocID").val
      let tibberID = getState(ConfigData.statesPrefix + ".Settings.Tibber.tibberID").val
      //***************************************/
      
      
      var idOK = false
      if (!batSocID || !tibberID) {
          log("Versuche die IDs für Tibber und Batterielevel zu finden")
          $("tibberlink.*.Homes.*.CurrentPrice.level").each(function (id, i) {
              tibberID = id
              createState(ConfigData.statesPrefix + ".Settings.Tibber.tibberID", tibberID, false)
              log("TibberID gefunden und gespeichert:" + id)
          })
          $(ConfigData.statesPrefix + ".app_device_property_*.data.InverterHeartbeat.batSoc").each(function (id, i) {
              if (getState(id).val > 0) {
                  batSocID = id
                  createState(ConfigData.statesPrefix + ".Settings.Tibber.tibberBatSocID", batSocID, false)
                  log("batSocID gefunden und gespeichert:" + id)
              }
          })
          if (!batSocID || !tibberID) {
              log("Fehler bei der Ermittlung der IDs. Bitte händisch ins Script eintragen", 'error')
          } else {
              idOK = true
          }
      } else {
          idOK = true
      }
      if (idOK) {
          checkTibber()
          on({ id: tibberID, change: "ne" }, function (obj) {
              //log("Tibber Modul. tibberID Event:" + obj.state.val)
              checkTibber()
          });
          on({ id: batSocID, change: "ne" }, function (obj) {
              //log("Tibber Modul. batSocID Event:" + obj.state.val + "%")
              checkTibber()
          });
      }
      function checkTibber() {
          if (tibberID && batSocID) {
              const RegulateID = ConfigData.statesPrefix + "." + ConfigData.RegulationState
              let priceLevel = getState(tibberID).val;
              let batsoc = Number(getState(batSocID).val)
              let OldRegulate = toBoolean(getState(RegulateID).val)
              //log("Tibber Preislevel: " + priceLevel + " OldRegulate: " + OldRegulate + " batsoc: " + (batsoc))
              if ((tibberConfig.LevelToSwitch.includes(priceLevel))) {
                  if (OldRegulate) {
                      if (batsoc <= tibberConfig.BatMin) {
                          setState(RegulateID, false);  // Regulierung aus
                          setState(tibberConfig.SwitchID, true) //Schalter einschalten
                          log("Script abgeschaltet AC-Ladung Ein, weil priceLevel:" + priceLevel + " batsoc:" + batsoc + "%")
                      }
                  } else {
                      if (batsoc >= tibberConfig.BatMax) {
                          setState(RegulateID, true);  // Regulierung an
                          setState(tibberConfig.SwitchID, false) //Schalter ausschalten
                          log(" Batterie bei BatMax. Script eingeschaltet AC-Ladung Aus. priceLevel:" + priceLevel + " batsoc:" + batsoc + "%")
                      }
                  }
              } else {
                  if (!OldRegulate) {
                      setState(RegulateID, true);  // Regulierung an
                      setState(tibberConfig.SwitchID, false) //Schalter ausschalten
                      log("Script eingeschaltet AC-Ladung Aus. priceLevel:" + priceLevel + " batsoc:" + batsoc + "%")
                  }
              }
          } else {
              //log("checkTibber skip. batsocID und/oder tibberID fehlen.")
          }
      }
      //*************************************************************
      

      Tibber-Pulse als Smartmeter nutzen und lokal auslesen:
      https://forum.iobroker.net/topic/70758/tibber-pulse-verbrauchsdaten-lokal-auslesen

      Unterstütze das Projekt 'ecoflow-connector'
      Wenn dir das Script zur dynamischen Leistungsanpassung für den IObroker gefällt und du es nützlich findest, ziehe bitte in Erwägung, eine kleine Spende via PayPal zu hinterlassen.
      Jeder Beitrag hilft, das Projekt am Laufen zu halten und weitere Updates zu ermöglichen.
      Danke für deine Unterstützung!
      Jetzt Spenden

      Dieses Script wird bei Änderungen und Updates immer aktualisiert:
      Nutzung auf eigene Gefahr !

      [Bildschirmfoto 2024-03-29 um 09.37.51.jpg

      • Installation von ioBroker und Skript unter UNRAID in nur 12 Minuten
      • Video mit Erklärung der Basiskonfiguration
      • Video mit Erklärung zu AdditionalPower und Überschussladung

      Download (neues JS-Script in IOBroker anlegen und den Inhalt der Datei einfügen):

      • ecoflow-connector_v125.txt (13.05.2024)
      • 1.2.5.f1 Fork von Florian Vogt (25.06.2024)
        Feature hinzugefügt, um die Größe der Delta-Speicher beim Ausbalancieren der Entladeleistung zu berücksichtigen, damit die Batterien gleichmäßig geleert werden.
        Parameter battCapacity bei den Einstellungen für PowerStream = Kapazität der angeschlossenen Batterie in kWh, default = 1
        ecoflow-connector_v125_mod_FV.txt (25.06.2024)

      ältere Versionen:

      • ecoflow-connector_v124.txt (22.04.2024)
      • ecoflow-connector_v123.txt (21.02.2024)
      • ecoflow-connector_v121_05.01.2024.txt
      • ecoflow-connector_v12_.04.12.2023.txt
      • ecoflow-connector_v1162_04.11.2023.txt
      • ecoflow-connector_v115_02.10.2023.txt
      • ecoflow-connector_v1142_26.09.2023
      • ecoflow-connector_v1132_31.08.2023
      • ecoflow-connector_v112_17.08.2023)
      A Offline
      A Offline
      aherby
      wrote on last edited by aherby
      #153

      @waly_de
      Servus oder moin @Waly_de
      Super Arbeit bisher und ich bin sehr sehr beeindruckt.
      Ich bin in Sachen Programmieren total oder bis auf 2% unbegabt.
      Wie kann man dir am Besten bei der Unterstützung, Daten liefern behilflich sein?

      Habe einen Powerstream, zwei PV-Module direkt an der PS angeschlossen, eine Delta 2 Max auch mit zwei angeschlossenen PV-Modulen. Hätte sogar einen Finderzähler, der "live" die Leistungsdaten vom Haus auslesen kann.

      Würde es auch bedeuten ich müsste an der Stelle:
      "SmartmeterID: "sonoff.0.Stromzaehler1.MT175_P" trage ich den Namen oder Alias vom Momentanwert vom Zähler ein?

      Und alle Änderungen nehme ich nur im Bereich
      "********** YOUR DATA HERE ************ " vor,
      ist das richtigt?

      Den Offset habe ich noch nicht verstanden 😥

      Die Werte
      "InverterHeartbeat.dynamicWatts" und "InverterHeartbeat2.X_Unknown_13"
      scheinen identisch zu sein.

      Das passiert wenn man die Prio ändert

      
      javascript.0
      2023-08-06 20:10:38.940	info	script.js.Ecoflow-Skript: 0a36102018352001280138034014488201580170f390ade004800113880101ba0103696f73ca0110485735315a4f48345346355434363245
      
      javascript.0
      2023-08-06 20:10:38.940	warn	script.js.Ecoflow-Skript: Ungültiger cmd_func-Wert:130
      
      javascript.0
      2023-08-06 20:10:28.236	info	script.js.Ecoflow-Skript: 0a3c0a020801102018352001280138034014488201500258017083bdace004800113880101ba0103696f73ca0110485735315a4f48345346355434363245
      
      javascript.0
      2023-08-06 20:10:28.236	warn	script.js.Ecoflow-Skript: Ungültiger cmd_func-Wert:130
      
      javascript.0
      

      Wenn ich eine geplante Aufgabe
      "14:00, Täglich auf Stromversorgung prio setze kommt"

      javascript.0
      2023-08-06 20:34:36.471	info	script.js.Ecoflow-Skript: 0a4f0a150802120f08012a0b1800200c2806300838e70f18021020183520012801380340144883015015580170a9ee84e104800113880101ba0103696f73ca0110485735315a4f48345346355434363245
      
      javascript.0
      2023-08-06 20:34:36.471	warn	script.js.Ecoflow-Skript: Ungültiger cmd_func-Wert:131
      
      javascript.0
      2023-08-06 20:34:36.467	info	script.js.Ecoflow-Skript: Decodierte Nachricht:{}
      
      javascript.0
      2023-08-06 20:34:36.421	info	script.js.Ecoflow-Skript: Binäre Nachricht empfangen:/app/16697414287359YYYYY/HW51ZOxxxxxxxxxx/thing/property/set:0a4f0a150802120f08012a0b1800200c2806300838e70f18021020183520012801380340144883015015580170a9ee84e104800113880101ba0103696f73ca0110485735315a4f48345346355434363245
      
      javascript.0
      2023-08-06 20:34:36.421	info	script.js.Ecoflow-Skript: Binäre Nachricht empfangen:/app/16697414287359YYYYY/HW51ZOxxxxxxxxxx/thing/property/get:0a101020182070d7ec84e104ba0103696f73
      
      javascript.0
      2023-08-06 20:34:36.375	info	script.js.Ecoflow-Skript: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"batInputWatts":1738,"llcOpVolt":4218,"invInputVolt":4218,"invOutputCur":769,"invOutputWatts":1704,"dynamicWatts":1180},"InverterHeartbeat2":{"X_Unknown_13":1180,"X_Unknown_15":600,"X_Unknown_22":1630,"X_Unknown_24":5978,"X_Unknown_32":50387,"X_Unknown_45":1669,"X_Unknown_46":-1180}}}
      
      javascript.0
      2023-08-06 20:34:36.326	info	script.js.Ecoflow-Skript: Binäre Nachricht empfangen:/app/device/property/HW51ZOxxxxxxxxxx:0a470a1ce801ca0d8802fa209802fa20a8028106b002a80d88039c09e003c603103518202001280140144801501c5801800103880103ca0110485735315a4f483453463554343632360a4e0a23689c0978d804b001de0cc001da2e8002d38903e802850df002e4f6ffffffffffffff0110351820200128014014480450235801800103880103ca0110485735315a4f48345346355434363245
      
      javascript.0
      2023-08-06 20:34:35.339	info	script.js.Ecoflow-Skript: Decodierte Nachricht:{}
      
      javascript.0
      2023-08-06 20:34:35.289	info	script.js.Ecoflow-Skript: Binäre Nachricht empfangen:/app/device/property/HW51ZOxxxxxxxxxx:0a530a2d1a2b08021225080110012a0f080010001800200c2806300838e70f320e0800100018002000280030003800180210351820200128014014488601502d5801ca0110485735315a4f48345346355434363245
      
      javascript.0
      2023-08-06 20:34:34.206	info	script.js.Ecoflow-Skript: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"batInputWatts":1720,"llcOpVolt":4189,"invInputVolt":4189,"invOutputCur":756,"invOutputWatts":1675,"dynamicWatts":1150},"InverterHeartbeat2":{"X_Unknown_13":1170,"X_Unknown_15":603,"X_Unknown_16":3,"X_Unknown_22":1620,"X_Unknown_24":5979,"X_Unknown_32":50385,"X_Unknown_45":1605,"X_Unknown_46":-1170}}}
      
      javascript.0
      2023-08-06 20:34:34.159	info	script.js.Ecoflow-Skript: Binäre Nachricht empfangen:/app/device/property/HW51ZOxxxxxxxxxx:0a470a1ce801b80d8802dd209802dd20a802f405b0028b0d8803fe08e003c903103518202001280140144801501c5801800103880103ca0110485735315a4f483453463554343632360a510a2668920978db04800103b001d40cc001db2e8002d18903e802c50cf002eef6ffffffffffffff0110351820200128014014480450265801800103880103ca0110485735315a4f48345346355434363245
      
      javascript.0
      2023-08-06 20:34:34.036	info	script.js.Ecoflow-Skript: Decodierte Nachricht:{}
      
      javascript.0
      2023-08-06 20:34:34.036	info	script.js.Ecoflow-Skript: 0a510a1708021211080110012a0b1800200c2806300838e70f18021020183520012801380340144883015017580170cddc84e104800113880101ba0103696f73ca0110485735315a4f48345346355434363245
      
      javascript.0
      2023-08-06 20:34:34.036	warn	script.js.Ecoflow-Skript: Ungültiger cmd_func-Wert:131
      
      javascript.0
      2023-08-06 20:34:33.980	info	script.js.Ecoflow-Skript: Binäre Nachricht empfangen:/app/16697414287359YYYYY/HW51ZOxxxxxxxxxx/thing/property/set:0a510a1708021211080110012a0b1800200c2806300838e70f18021020183520012801380340144883015017580170cddc84e104800113880101ba0103696f73ca0110485735315a4f48345346355434363245
      
      

      Kann es sein dass das Setzten vom Strompreis hier drin steckt?
      Hier auf EUR gesetzt.

      /thing/property/set:0a3d0a0408c58801102018352001280138034020480b50045801709ec5e3e10c800113880101ba0103696f73ca0110485735315a4f48345346355434363245
      
      property/set:0a3d0a0408c58801102018352001280138034020480b5004580170f5ffb8e20c800113880101ba0103696f73ca0110485735315a4f48345346355434363245
      

      Hier mal auf 0,1123 gesetzt

      /thing/property/set:0a3d0a0408c58801102018352001280138034020480b500458017082cf9ee20c800113880101ba0103696f73ca0110485735315a4f48345346355434363245
      

      Hier ausschalten einer geplanten Aufgabe

      0a3d0a0408c58801102018352001280138034020480b5004580170b0c0c0e30c800113880101ba0103696f73ca0110485735315a4f48345346355434363245
      

      einschalten der Aufgabe

      0a3d0a0408c58801102018352001280138034020480b5004580170dfb3cee30c800113880101ba0103696f73ca0110485735315a4f48345346355434363245
      

      Smart Plug ausgeschaltet

      thing/property/set:0a36102018352001280138034002488101580170bf9880e404800113880101ba0103696f73ca0110485735325a4448345346364b36303745
      
      W 1 Reply Last reply
      0
      • A Offline
        A Offline
        Accu
        wrote on last edited by
        #154

        Noch eine Frage zum Stromzähler Lesekopf. Ich habe einen EasyMeter Stromzähler. Leider ist hier die optische Schnittstelle zugeklebt. Wie habt ihr das gemacht?

        1 Reply Last reply
        0
        • A aherby

          @waly_de
          Servus oder moin @Waly_de
          Super Arbeit bisher und ich bin sehr sehr beeindruckt.
          Ich bin in Sachen Programmieren total oder bis auf 2% unbegabt.
          Wie kann man dir am Besten bei der Unterstützung, Daten liefern behilflich sein?

          Habe einen Powerstream, zwei PV-Module direkt an der PS angeschlossen, eine Delta 2 Max auch mit zwei angeschlossenen PV-Modulen. Hätte sogar einen Finderzähler, der "live" die Leistungsdaten vom Haus auslesen kann.

          Würde es auch bedeuten ich müsste an der Stelle:
          "SmartmeterID: "sonoff.0.Stromzaehler1.MT175_P" trage ich den Namen oder Alias vom Momentanwert vom Zähler ein?

          Und alle Änderungen nehme ich nur im Bereich
          "********** YOUR DATA HERE ************ " vor,
          ist das richtigt?

          Den Offset habe ich noch nicht verstanden 😥

          Die Werte
          "InverterHeartbeat.dynamicWatts" und "InverterHeartbeat2.X_Unknown_13"
          scheinen identisch zu sein.

          Das passiert wenn man die Prio ändert

          
          javascript.0
          2023-08-06 20:10:38.940	info	script.js.Ecoflow-Skript: 0a36102018352001280138034014488201580170f390ade004800113880101ba0103696f73ca0110485735315a4f48345346355434363245
          
          javascript.0
          2023-08-06 20:10:38.940	warn	script.js.Ecoflow-Skript: Ungültiger cmd_func-Wert:130
          
          javascript.0
          2023-08-06 20:10:28.236	info	script.js.Ecoflow-Skript: 0a3c0a020801102018352001280138034014488201500258017083bdace004800113880101ba0103696f73ca0110485735315a4f48345346355434363245
          
          javascript.0
          2023-08-06 20:10:28.236	warn	script.js.Ecoflow-Skript: Ungültiger cmd_func-Wert:130
          
          javascript.0
          

          Wenn ich eine geplante Aufgabe
          "14:00, Täglich auf Stromversorgung prio setze kommt"

          javascript.0
          2023-08-06 20:34:36.471	info	script.js.Ecoflow-Skript: 0a4f0a150802120f08012a0b1800200c2806300838e70f18021020183520012801380340144883015015580170a9ee84e104800113880101ba0103696f73ca0110485735315a4f48345346355434363245
          
          javascript.0
          2023-08-06 20:34:36.471	warn	script.js.Ecoflow-Skript: Ungültiger cmd_func-Wert:131
          
          javascript.0
          2023-08-06 20:34:36.467	info	script.js.Ecoflow-Skript: Decodierte Nachricht:{}
          
          javascript.0
          2023-08-06 20:34:36.421	info	script.js.Ecoflow-Skript: Binäre Nachricht empfangen:/app/16697414287359YYYYY/HW51ZOxxxxxxxxxx/thing/property/set:0a4f0a150802120f08012a0b1800200c2806300838e70f18021020183520012801380340144883015015580170a9ee84e104800113880101ba0103696f73ca0110485735315a4f48345346355434363245
          
          javascript.0
          2023-08-06 20:34:36.421	info	script.js.Ecoflow-Skript: Binäre Nachricht empfangen:/app/16697414287359YYYYY/HW51ZOxxxxxxxxxx/thing/property/get:0a101020182070d7ec84e104ba0103696f73
          
          javascript.0
          2023-08-06 20:34:36.375	info	script.js.Ecoflow-Skript: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"batInputWatts":1738,"llcOpVolt":4218,"invInputVolt":4218,"invOutputCur":769,"invOutputWatts":1704,"dynamicWatts":1180},"InverterHeartbeat2":{"X_Unknown_13":1180,"X_Unknown_15":600,"X_Unknown_22":1630,"X_Unknown_24":5978,"X_Unknown_32":50387,"X_Unknown_45":1669,"X_Unknown_46":-1180}}}
          
          javascript.0
          2023-08-06 20:34:36.326	info	script.js.Ecoflow-Skript: Binäre Nachricht empfangen:/app/device/property/HW51ZOxxxxxxxxxx:0a470a1ce801ca0d8802fa209802fa20a8028106b002a80d88039c09e003c603103518202001280140144801501c5801800103880103ca0110485735315a4f483453463554343632360a4e0a23689c0978d804b001de0cc001da2e8002d38903e802850df002e4f6ffffffffffffff0110351820200128014014480450235801800103880103ca0110485735315a4f48345346355434363245
          
          javascript.0
          2023-08-06 20:34:35.339	info	script.js.Ecoflow-Skript: Decodierte Nachricht:{}
          
          javascript.0
          2023-08-06 20:34:35.289	info	script.js.Ecoflow-Skript: Binäre Nachricht empfangen:/app/device/property/HW51ZOxxxxxxxxxx:0a530a2d1a2b08021225080110012a0f080010001800200c2806300838e70f320e0800100018002000280030003800180210351820200128014014488601502d5801ca0110485735315a4f48345346355434363245
          
          javascript.0
          2023-08-06 20:34:34.206	info	script.js.Ecoflow-Skript: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"batInputWatts":1720,"llcOpVolt":4189,"invInputVolt":4189,"invOutputCur":756,"invOutputWatts":1675,"dynamicWatts":1150},"InverterHeartbeat2":{"X_Unknown_13":1170,"X_Unknown_15":603,"X_Unknown_16":3,"X_Unknown_22":1620,"X_Unknown_24":5979,"X_Unknown_32":50385,"X_Unknown_45":1605,"X_Unknown_46":-1170}}}
          
          javascript.0
          2023-08-06 20:34:34.159	info	script.js.Ecoflow-Skript: Binäre Nachricht empfangen:/app/device/property/HW51ZOxxxxxxxxxx:0a470a1ce801b80d8802dd209802dd20a802f405b0028b0d8803fe08e003c903103518202001280140144801501c5801800103880103ca0110485735315a4f483453463554343632360a510a2668920978db04800103b001d40cc001db2e8002d18903e802c50cf002eef6ffffffffffffff0110351820200128014014480450265801800103880103ca0110485735315a4f48345346355434363245
          
          javascript.0
          2023-08-06 20:34:34.036	info	script.js.Ecoflow-Skript: Decodierte Nachricht:{}
          
          javascript.0
          2023-08-06 20:34:34.036	info	script.js.Ecoflow-Skript: 0a510a1708021211080110012a0b1800200c2806300838e70f18021020183520012801380340144883015017580170cddc84e104800113880101ba0103696f73ca0110485735315a4f48345346355434363245
          
          javascript.0
          2023-08-06 20:34:34.036	warn	script.js.Ecoflow-Skript: Ungültiger cmd_func-Wert:131
          
          javascript.0
          2023-08-06 20:34:33.980	info	script.js.Ecoflow-Skript: Binäre Nachricht empfangen:/app/16697414287359YYYYY/HW51ZOxxxxxxxxxx/thing/property/set:0a510a1708021211080110012a0b1800200c2806300838e70f18021020183520012801380340144883015017580170cddc84e104800113880101ba0103696f73ca0110485735315a4f48345346355434363245
          
          

          Kann es sein dass das Setzten vom Strompreis hier drin steckt?
          Hier auf EUR gesetzt.

          /thing/property/set:0a3d0a0408c58801102018352001280138034020480b50045801709ec5e3e10c800113880101ba0103696f73ca0110485735315a4f48345346355434363245
          
          property/set:0a3d0a0408c58801102018352001280138034020480b5004580170f5ffb8e20c800113880101ba0103696f73ca0110485735315a4f48345346355434363245
          

          Hier mal auf 0,1123 gesetzt

          /thing/property/set:0a3d0a0408c58801102018352001280138034020480b500458017082cf9ee20c800113880101ba0103696f73ca0110485735315a4f48345346355434363245
          

          Hier ausschalten einer geplanten Aufgabe

          0a3d0a0408c58801102018352001280138034020480b5004580170b0c0c0e30c800113880101ba0103696f73ca0110485735315a4f48345346355434363245
          

          einschalten der Aufgabe

          0a3d0a0408c58801102018352001280138034020480b5004580170dfb3cee30c800113880101ba0103696f73ca0110485735315a4f48345346355434363245
          

          Smart Plug ausgeschaltet

          thing/property/set:0a36102018352001280138034002488101580170bf9880e404800113880101ba0103696f73ca0110485735325a4448345346364b36303745
          
          W Offline
          W Offline
          Waly_de
          wrote on last edited by
          #155

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

          Habe einen Powerstream, zwei PV-Module direkt an der PS angeschlossen, eine Delta 2 Max auch mit zwei angeschlossenen PV-Modulen. Hätte sogar einen Finderzähler, der "live" die Leistungsdaten vom Haus auslesen kann.
          Würde es auch bedeuten ich müsste an der Stelle:
          "SmartmeterID: "sonoff.0.Stromzaehler1.MT175_P" trage ich den Namen oder Alias vom Momentanwert vom Zähler ein?

          richtig... in dem State sollte die live Leistung in Watt abrufbar sein. Wenn der State angegeben ist, fängt das script an zu regeln. Die Prio sollte dabei immer auf "Stromversorgung" stehen, sonst lässt sich die Einspeiseleistung nicht regeln.

          Und alle Änderungen nehme ich nur im Bereich
          "********** YOUR DATA HERE ************ " vor,
          ist das richtigt?
          Den Offset habe ich noch nicht verstanden

          Richtig. Offset bestimmt die Zielleistung der Regulation. 50 bedeutet, das Script versucht einen Netzbezug von 50W einzuregeln.

          Die Werte
          "InverterHeartbeat.dynamicWatts" und "InverterHeartbeat2.X_Unknown_13"
          scheinen identisch zu sein.

          Danke für die Muster! Damit kann ich auf jeden fall schon was machen 🙂

          W A 2 Replies Last reply
          0
          • W Waly_de

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

            Habe einen Powerstream, zwei PV-Module direkt an der PS angeschlossen, eine Delta 2 Max auch mit zwei angeschlossenen PV-Modulen. Hätte sogar einen Finderzähler, der "live" die Leistungsdaten vom Haus auslesen kann.
            Würde es auch bedeuten ich müsste an der Stelle:
            "SmartmeterID: "sonoff.0.Stromzaehler1.MT175_P" trage ich den Namen oder Alias vom Momentanwert vom Zähler ein?

            richtig... in dem State sollte die live Leistung in Watt abrufbar sein. Wenn der State angegeben ist, fängt das script an zu regeln. Die Prio sollte dabei immer auf "Stromversorgung" stehen, sonst lässt sich die Einspeiseleistung nicht regeln.

            Und alle Änderungen nehme ich nur im Bereich
            "********** YOUR DATA HERE ************ " vor,
            ist das richtigt?
            Den Offset habe ich noch nicht verstanden

            Richtig. Offset bestimmt die Zielleistung der Regulation. 50 bedeutet, das Script versucht einen Netzbezug von 50W einzuregeln.

            Die Werte
            "InverterHeartbeat.dynamicWatts" und "InverterHeartbeat2.X_Unknown_13"
            scheinen identisch zu sein.

            Danke für die Muster! Damit kann ich auf jeden fall schon was machen 🙂

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

            Neue Version online

            (1.0.0) 06.08.2023

            • Neuer State "lowestValue" zeigt die Grundlage zur Berechnung der Einspeiseleistung an und repräsentiert niedrigsten Wert des realen Verbrauchs in den letzten mit "MinValueMin" eingestellten Minuten.
            • Neue Einstellung MinValueAg: Art der Ermittlung des kleinsten Wertes 0 = Minimalwert, 1 = Durchschnittswert.
            • Neues Feature: Wenn die volle Leistung (600w) in die Batterie geht, wird die Einspeiseleistung in Stufen erhöht, auch wenn dann Leistung ins Netz geht, um möglichst das volle Potenzial der vorhandenen Solarenergie zu nutzen.
            • Neue Einstellungen: lowBatLimitPozOn, lowBatLimitPozOff und lowBatLimit. Bei Unterschreiten der Batterieladung von "lowBatLimitPozOn" % ist die maximale Einspeiseleistung auf "lowBatLimit" W limitiert, bis der Ladezustand wieder bei "lowBatLimitPozOff" ist.
            • Neue Einstellungen: RegulationState. Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unterhalb 0_userdata.0.ecoflow angelegt).
            • Neue Einstellungen: RegulationOffPower. Wird die Regulation per State abgestellt, wird die Einspeiseleistung des ersten Powerstreams auf diesen Wert gesetzt. (-1 = keine Änderung).

            Und ganz wichtig.... es gibt einen Spendenlink 😉 Bitte unterstützt mich bei der Weiterentwicklung.

            (1.0.1) 07.08.2023

            • Writeables auch für PowerStreams angelegt (SetDisplayBrightness, SetPrio, SetBatLimitLow, SetBatLimitHigh, SetAC).Sie tauchen auf, wenn bei laufendem Script per App geändert wird.
            • Verbesserung der Reguierung

            viel Spaß beim Testen 😉

            D 1 Reply Last reply
            1
            • W Waly_de

              Neue Version online

              (1.0.0) 06.08.2023

              • Neuer State "lowestValue" zeigt die Grundlage zur Berechnung der Einspeiseleistung an und repräsentiert niedrigsten Wert des realen Verbrauchs in den letzten mit "MinValueMin" eingestellten Minuten.
              • Neue Einstellung MinValueAg: Art der Ermittlung des kleinsten Wertes 0 = Minimalwert, 1 = Durchschnittswert.
              • Neues Feature: Wenn die volle Leistung (600w) in die Batterie geht, wird die Einspeiseleistung in Stufen erhöht, auch wenn dann Leistung ins Netz geht, um möglichst das volle Potenzial der vorhandenen Solarenergie zu nutzen.
              • Neue Einstellungen: lowBatLimitPozOn, lowBatLimitPozOff und lowBatLimit. Bei Unterschreiten der Batterieladung von "lowBatLimitPozOn" % ist die maximale Einspeiseleistung auf "lowBatLimit" W limitiert, bis der Ladezustand wieder bei "lowBatLimitPozOff" ist.
              • Neue Einstellungen: RegulationState. Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unterhalb 0_userdata.0.ecoflow angelegt).
              • Neue Einstellungen: RegulationOffPower. Wird die Regulation per State abgestellt, wird die Einspeiseleistung des ersten Powerstreams auf diesen Wert gesetzt. (-1 = keine Änderung).

              Und ganz wichtig.... es gibt einen Spendenlink 😉 Bitte unterstützt mich bei der Weiterentwicklung.

              (1.0.1) 07.08.2023

              • Writeables auch für PowerStreams angelegt (SetDisplayBrightness, SetPrio, SetBatLimitLow, SetBatLimitHigh, SetAC).Sie tauchen auf, wenn bei laufendem Script per App geändert wird.
              • Verbesserung der Reguierung

              viel Spaß beim Testen 😉

              D Offline
              D Offline
              Dreffi
              wrote on last edited by Dreffi
              #157

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

              • Neue Einstellungen: RegulationState. Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unterhalb 0_userdata.0.ecoflow angelegt).

              Das verstehe ich noch nicht ganz. Ich vergebe hier einen Namen unter dem dann ein Objekt angelegt wird. Und dieses kann ich dann z.B. durch ein externes Script ändern (true / false) um die Steuerung ein und auszuschalten?

              (1.0.1) 07.08.2023

              • Writeables auch für PowerStreams angelegt (SetDisplayBrightness, SetPrio, SetBatLimitLow, SetBatLimitHigh, SetAC).Sie tauchen auf, wenn bei laufendem Script per App geändert wird.

              Wie löse ich denn eine Werteänderung aus? Also z.B. "Setze Prio auf Batterie"?

              W 1 Reply Last reply
              0
              • D Dreffi

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

                • Neue Einstellungen: RegulationState. Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unterhalb 0_userdata.0.ecoflow angelegt).

                Das verstehe ich noch nicht ganz. Ich vergebe hier einen Namen unter dem dann ein Objekt angelegt wird. Und dieses kann ich dann z.B. durch ein externes Script ändern (true / false) um die Steuerung ein und auszuschalten?

                (1.0.1) 07.08.2023

                • Writeables auch für PowerStreams angelegt (SetDisplayBrightness, SetPrio, SetBatLimitLow, SetBatLimitHigh, SetAC).Sie tauchen auf, wenn bei laufendem Script per App geändert wird.

                Wie löse ich denn eine Werteänderung aus? Also z.B. "Setze Prio auf Batterie"?

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

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

                Das verstehe ich noch nicht ganz. Gebe ich hier ein bestehendes State-Objekt an oder vergebe ich hier einfach einen Namen für ein Objekt, dass dann automatisch angelegt wird?

                genau.. vergib einen Namen und es wird angelegt.

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

                Wie löse ich denn eine Werteänderung aus? Also z.B. "Setze Prio auf Batterie"?

                0 = Stromversorgung
                1 = Batterie

                D 1 Reply Last reply
                1
                • W Waly_de

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

                  Das verstehe ich noch nicht ganz. Gebe ich hier ein bestehendes State-Objekt an oder vergebe ich hier einfach einen Namen für ein Objekt, dass dann automatisch angelegt wird?

                  genau.. vergib einen Namen und es wird angelegt.

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

                  Wie löse ich denn eine Werteänderung aus? Also z.B. "Setze Prio auf Batterie"?

                  0 = Stromversorgung
                  1 = Batterie

                  D Offline
                  D Offline
                  Dreffi
                  wrote on last edited by
                  #159

                  @waly_de
                  Wow, läuft.
                  Bisher grundsätzlich getestet:

                  • LowBatLimit -> ist erfolgreich angesprungen
                  • RegulationState -> Änderungen aus Home Assistant per Schalter werden per Script übertragen und korrekt übernommen, inkl. Begrenzung der Leistung
                  • SetPrio -> Umstellung per Auswahlliste in Home Assistant wird per Script übertragen und übernommen

                  Langzeittest steht aus.

                  1 Reply Last reply
                  1
                  • M Offline
                    M Offline
                    mattenausohz
                    wrote on last edited by
                    #160

                    @waly_de Ich hab per Node-Red noch ne Überwachung des Skripts gebaut damit es neu gestartet wird wenn es mal durch zu viele Javascript Aufrufe beendet wird. Kann ich nur empfehlen.

                    1 Reply Last reply
                    1
                    • P Offline
                      P Offline
                      Ponti92
                      wrote on last edited by
                      #161

                      @Waly_de
                      Bis jetzt läuft das neue Skript (1.0.1) wunderbar 🙂
                      Ich würde evtl. die Zusatzpower in kleineren Schritten machen, da es gestern bei mir immer hin und her gesprungen ist. Z.b. 10er Schritte anstatt 50er Schritte..

                      Was mir noch aufgefallen ist, dass die Regelung manchmal schnell auf 0W springt, sobald man den BasePowerOffset auf einen kleineren Wert setzt, z.b. 30W. Passiert das automatisch, wenn z.b. kurz ein negativer Wert in der Gesamtleistung erscheint? Ich würde dann lieber die Einspeiseleistung reduzieren, aber nicht gleich komplett auf Null setzen. Ich habe das beim Fernsehen beobachtet, bei dem der Wert ziemlich schwankt (OLED geht bei schwarzen Bildern sehr stark zurück und bei hellen Bildern gleich mal 100W mehr als davor)

                      Ein weiterer Anregungspunkt: Könnte man evtl. einen "Passthrough" Modus implementieren, in dem immer nur die volle Solarleistung an den Ausgang gelegt wird? Z.b. bei schlechten Wetter wenn der Solaroutput eh nur sehr gering ist. Dann will man ungern, dass der Akku immer mitmachen muss, wenn dieser eh nur wenige Prozent an Kapazität übrig hat.
                      Sobald aber die Solarleistung einen höheren Wert als die AC Last hat, sollte der Rest in den Akku gehen. Das wäre dann ein Überschussladen in den Akku.

                      PS: Hab gestern eine kleine Spende hinterlassen für deine Mühen 🙂

                      D W 3 Replies Last reply
                      0
                      • P Ponti92

                        @Waly_de
                        Bis jetzt läuft das neue Skript (1.0.1) wunderbar 🙂
                        Ich würde evtl. die Zusatzpower in kleineren Schritten machen, da es gestern bei mir immer hin und her gesprungen ist. Z.b. 10er Schritte anstatt 50er Schritte..

                        Was mir noch aufgefallen ist, dass die Regelung manchmal schnell auf 0W springt, sobald man den BasePowerOffset auf einen kleineren Wert setzt, z.b. 30W. Passiert das automatisch, wenn z.b. kurz ein negativer Wert in der Gesamtleistung erscheint? Ich würde dann lieber die Einspeiseleistung reduzieren, aber nicht gleich komplett auf Null setzen. Ich habe das beim Fernsehen beobachtet, bei dem der Wert ziemlich schwankt (OLED geht bei schwarzen Bildern sehr stark zurück und bei hellen Bildern gleich mal 100W mehr als davor)

                        Ein weiterer Anregungspunkt: Könnte man evtl. einen "Passthrough" Modus implementieren, in dem immer nur die volle Solarleistung an den Ausgang gelegt wird? Z.b. bei schlechten Wetter wenn der Solaroutput eh nur sehr gering ist. Dann will man ungern, dass der Akku immer mitmachen muss, wenn dieser eh nur wenige Prozent an Kapazität übrig hat.
                        Sobald aber die Solarleistung einen höheren Wert als die AC Last hat, sollte der Rest in den Akku gehen. Das wäre dann ein Überschussladen in den Akku.

                        PS: Hab gestern eine kleine Spende hinterlassen für deine Mühen 🙂

                        D Offline
                        D Offline
                        Dreffi
                        wrote on last edited by Dreffi
                        #162

                        @ponti92
                        Für den Solar Passthrough Modus ist die neue Einstellung lowBatLimitPozOn/lowBatLimitPozOff und lowBatLimit gedacht.
                        Wenn die Solarleistung sehr gering ist, wird ab einem geringen Akkustand nur noch ein festgelegter Wert eingespeist bis der Akku wieder einen gewünschten Füllstand erreicht hat. Bei mir funktioniert das im Moment ganz gut.
                        Akku deaktivieren ist meines Wissens nur durch Stecker ziehen möglich oder über Prio Akku sobald der Akku die obere Ladegrenze erreicht hat.

                        Den Vorschlag nicht gleich komplett abzuschalten befürworte ich auch. Vielleicht lässt man einfach für ein paar Zyklen mit geringer Leistung weiter einspeisen. Bei mir passiert es auch, dass der Powerstream komplett abgeschaltet wird wenn die Wolken aufreißen und das andere Balkonkraftwerk kurzzeitig mit der Einspeisung stark hochgeht. Das ließe sich wahrscheinlich auch über die neue Einstellung MinValueAg erreichen.

                        Ich würde mir noch eine Alternative zur Maximaleinspeisung bei vollem Akku wünschen (battPozOn/battPozOff). Hier wird der Akku auch eher unnötig belastet. Ich persönlich würde dann lieber auf Prio Akku umstellen bis ein Bestimmter Wert für Bezug überschritten wird. Damit würde wieder der Bypass aktiviert und die reine Solarleistung weiter eingespeist. Ich habe versucht das über externe Scripte zu steuern, aber noch keine zufriedenstellende Logik gefunden.

                        P 1 Reply Last reply
                        0
                        • P Ponti92

                          @Waly_de
                          Bis jetzt läuft das neue Skript (1.0.1) wunderbar 🙂
                          Ich würde evtl. die Zusatzpower in kleineren Schritten machen, da es gestern bei mir immer hin und her gesprungen ist. Z.b. 10er Schritte anstatt 50er Schritte..

                          Was mir noch aufgefallen ist, dass die Regelung manchmal schnell auf 0W springt, sobald man den BasePowerOffset auf einen kleineren Wert setzt, z.b. 30W. Passiert das automatisch, wenn z.b. kurz ein negativer Wert in der Gesamtleistung erscheint? Ich würde dann lieber die Einspeiseleistung reduzieren, aber nicht gleich komplett auf Null setzen. Ich habe das beim Fernsehen beobachtet, bei dem der Wert ziemlich schwankt (OLED geht bei schwarzen Bildern sehr stark zurück und bei hellen Bildern gleich mal 100W mehr als davor)

                          Ein weiterer Anregungspunkt: Könnte man evtl. einen "Passthrough" Modus implementieren, in dem immer nur die volle Solarleistung an den Ausgang gelegt wird? Z.b. bei schlechten Wetter wenn der Solaroutput eh nur sehr gering ist. Dann will man ungern, dass der Akku immer mitmachen muss, wenn dieser eh nur wenige Prozent an Kapazität übrig hat.
                          Sobald aber die Solarleistung einen höheren Wert als die AC Last hat, sollte der Rest in den Akku gehen. Das wäre dann ein Überschussladen in den Akku.

                          PS: Hab gestern eine kleine Spende hinterlassen für deine Mühen 🙂

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

                          Neue Version Online

                          (1.0.2) 09.08.2023

                          • Unterstützung für SmartPlugs. Bisher ein Writeable: SwitchPlug mit den Werten 0= AUS und 1= AN
                          • Bugfix und Optimierungen
                          1 Reply Last reply
                          0
                          • P Ponti92

                            @Waly_de
                            Bis jetzt läuft das neue Skript (1.0.1) wunderbar 🙂
                            Ich würde evtl. die Zusatzpower in kleineren Schritten machen, da es gestern bei mir immer hin und her gesprungen ist. Z.b. 10er Schritte anstatt 50er Schritte..

                            Was mir noch aufgefallen ist, dass die Regelung manchmal schnell auf 0W springt, sobald man den BasePowerOffset auf einen kleineren Wert setzt, z.b. 30W. Passiert das automatisch, wenn z.b. kurz ein negativer Wert in der Gesamtleistung erscheint? Ich würde dann lieber die Einspeiseleistung reduzieren, aber nicht gleich komplett auf Null setzen. Ich habe das beim Fernsehen beobachtet, bei dem der Wert ziemlich schwankt (OLED geht bei schwarzen Bildern sehr stark zurück und bei hellen Bildern gleich mal 100W mehr als davor)

                            Ein weiterer Anregungspunkt: Könnte man evtl. einen "Passthrough" Modus implementieren, in dem immer nur die volle Solarleistung an den Ausgang gelegt wird? Z.b. bei schlechten Wetter wenn der Solaroutput eh nur sehr gering ist. Dann will man ungern, dass der Akku immer mitmachen muss, wenn dieser eh nur wenige Prozent an Kapazität übrig hat.
                            Sobald aber die Solarleistung einen höheren Wert als die AC Last hat, sollte der Rest in den Akku gehen. Das wäre dann ein Überschussladen in den Akku.

                            PS: Hab gestern eine kleine Spende hinterlassen für deine Mühen 🙂

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

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

                            Bis jetzt läuft das neue Skript (1.0.1) wunderbar
                            Ich würde evtl. die Zusatzpower in kleineren Schritten machen, da es gestern bei mir immer hin und her gesprungen ist. Z.b. 10er Schritte anstatt 50er Schritte..

                            Super das es läuft 🙂 Das mit den Schritten hab auch schon festgestellt. Habs in der neuen Version auf 20'er Schritte reduziert. Das kann man eben auch nur bei Sonne testen und die ist leider selten in den letzten Tagen 😕

                            Was mir noch aufgefallen ist, dass die Regelung manchmal schnell auf 0W springt, sobald man den BasePowerOffset auf einen kleineren Wert setzt, z.b. 30W. Passiert das automatisch, wenn z.b. kurz ein negativer Wert in der Gesamtleistung erscheint? Ich würde dann lieber die Einspeiseleistung reduzieren, aber nicht gleich komplett auf Null setzen. Ich habe das beim Fernsehen beobachtet, bei dem der Wert ziemlich schwankt (OLED geht bei schwarzen Bildern sehr stark zurück und bei hellen Bildern gleich mal 100W mehr als davor)

                            Das System ist immer träge, weil es von Daten abhängt, die nicht in Echtzeit zur Verfügung stehen. Ich habe aber schon einige Einstellungsmöglichkeiten geschaffen, um das an die individuellen Bedürfnisse anpassen zu können. In der standard Einstellung ist ja der kleinste gemessene RealPower Wert Aus dem angegebenen Zeitraum "MinValueMin" ausschlaggebend für jede einzelne Berechnung der Einspeiseleistung. Mir persönlich war es wichtig, dass es keine Einspeisung ins Netz gibt. Auf Null sollte die Einspeisung aber eigentlich nur dann springen, wenn sonst eine Einspeisung ins Netz erfolgen würde. Ich denke, dass es bei euch auch so ist? Wenn du möchtest, dass die Regelung etwas träger dem aktuellen Verbrauch folgt, würde ich den Parameter "MinValueAg" auf 1 setzen.
                            Dann ist der Durchschnittswert und nicht der kleinste Wert ausschlaggebend für die Berechnung.

                            Ein weiterer Anregungspunkt: Könnte man evtl. einen "Passthrough" Modus implementieren, in dem immer nur die volle Solarleistung an den Ausgang gelegt wird? Z.b. bei schlechten Wetter wenn der Solaroutput eh nur sehr gering ist. Dann will man ungern, dass der Akku immer mitmachen muss, wenn dieser eh nur wenige Prozent an Kapazität übrig hat.

                            Siehe Dreffi 😉

                            Sobald aber die Solarleistung einen höheren Wert als die AC Last hat, sollte der Rest in den Akku gehen. Das wäre dann ein Überschussladen in den Akku.

                            Ist das nicht der Normalbetrieb? Oder meinst du das ein Entladen vermieden werden soll? Dazu fehlt mir leider eine Messgröße, die das echte Potential der Solarleistung wiedergibt.

                            PS: Hab gestern eine kleine Spende hinterlassen für deine Mühen

                            Vielen Dank! Das freut mich sehr und motiviert 😉

                            P 1 Reply Last reply
                            0
                            • D Dreffi

                              @ponti92
                              Für den Solar Passthrough Modus ist die neue Einstellung lowBatLimitPozOn/lowBatLimitPozOff und lowBatLimit gedacht.
                              Wenn die Solarleistung sehr gering ist, wird ab einem geringen Akkustand nur noch ein festgelegter Wert eingespeist bis der Akku wieder einen gewünschten Füllstand erreicht hat. Bei mir funktioniert das im Moment ganz gut.
                              Akku deaktivieren ist meines Wissens nur durch Stecker ziehen möglich oder über Prio Akku sobald der Akku die obere Ladegrenze erreicht hat.

                              Den Vorschlag nicht gleich komplett abzuschalten befürworte ich auch. Vielleicht lässt man einfach für ein paar Zyklen mit geringer Leistung weiter einspeisen. Bei mir passiert es auch, dass der Powerstream komplett abgeschaltet wird wenn die Wolken aufreißen und das andere Balkonkraftwerk kurzzeitig mit der Einspeisung stark hochgeht. Das ließe sich wahrscheinlich auch über die neue Einstellung MinValueAg erreichen.

                              Ich würde mir noch eine Alternative zur Maximaleinspeisung bei vollem Akku wünschen (battPozOn/battPozOff). Hier wird der Akku auch eher unnötig belastet. Ich persönlich würde dann lieber auf Prio Akku umstellen bis ein Bestimmter Wert für Bezug überschritten wird. Damit würde wieder der Bypass aktiviert und die reine Solarleistung weiter eingespeist. Ich habe versucht das über externe Scripte zu steuern, aber noch keine zufriedenstellende Logik gefunden.

                              P Offline
                              P Offline
                              Ponti92
                              wrote on last edited by
                              #165

                              @dreffi
                              Ja dieser Modus kommt schon ganz gut hin, jedoch ist der Wert der Einspeisung dann fix auf 150W eingestellt. D.h. bei einer Solarleistung von 50W werden dann trotzdem 100W vom Akku genommen und dieser dann weiter entleert.
                              Meine Idee war, dass man dann den Wert von Solar auf den AC Output spiegelt, sodass Solareingang == AC Output ist.
                              Bei mir habe ich nämlich West-Ausrichtung und am Vormittag noch nicht so viel Solar-Leistung. Darüber hinaus wird das bisschen Akku nicht noch weiter entleert..

                              Bis jetzt ist der Umweg, dass ich in der Früh den Batterie-Prio Modus einstelle und der dann ab Mittag auf Stromversorgung umgestellt wird. Jedoch habe ich die Befürchtung, dass ich mehr Verluste habe durch Laden/Entladen der Powerstation, als wenn ich das direkt ins Netz einspeise, solange ich das auch verbrauche.

                              @Waly_de
                              Ich habe den anderen Modus schon ausprobiert, jedoch ist das dann sehr träge und er speist dann ziemlich lange ins Netz ein und braucht sehr lange bis er wieder an den Wert kommt. Da finde ich den Kompromiss mit dem niedrigsten Wert schon in Ordnung. Man muss das auch erst optimieren, sobald mal wirklich viel Sonne da ist und der Akku sonst nicht leer wird. Denn zurzeit habe ich das Problem noch nicht, dass der Akku nicht leer wird über Nacht..

                              Mal sehen, ab morgen sagt er ja wieder Sonne voraus und dann wird das Verhalten im oberen Bereich ausreichend getestet 🙂

                              D 1 Reply Last reply
                              0
                              • W Waly_de

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

                                Bis jetzt läuft das neue Skript (1.0.1) wunderbar
                                Ich würde evtl. die Zusatzpower in kleineren Schritten machen, da es gestern bei mir immer hin und her gesprungen ist. Z.b. 10er Schritte anstatt 50er Schritte..

                                Super das es läuft 🙂 Das mit den Schritten hab auch schon festgestellt. Habs in der neuen Version auf 20'er Schritte reduziert. Das kann man eben auch nur bei Sonne testen und die ist leider selten in den letzten Tagen 😕

                                Was mir noch aufgefallen ist, dass die Regelung manchmal schnell auf 0W springt, sobald man den BasePowerOffset auf einen kleineren Wert setzt, z.b. 30W. Passiert das automatisch, wenn z.b. kurz ein negativer Wert in der Gesamtleistung erscheint? Ich würde dann lieber die Einspeiseleistung reduzieren, aber nicht gleich komplett auf Null setzen. Ich habe das beim Fernsehen beobachtet, bei dem der Wert ziemlich schwankt (OLED geht bei schwarzen Bildern sehr stark zurück und bei hellen Bildern gleich mal 100W mehr als davor)

                                Das System ist immer träge, weil es von Daten abhängt, die nicht in Echtzeit zur Verfügung stehen. Ich habe aber schon einige Einstellungsmöglichkeiten geschaffen, um das an die individuellen Bedürfnisse anpassen zu können. In der standard Einstellung ist ja der kleinste gemessene RealPower Wert Aus dem angegebenen Zeitraum "MinValueMin" ausschlaggebend für jede einzelne Berechnung der Einspeiseleistung. Mir persönlich war es wichtig, dass es keine Einspeisung ins Netz gibt. Auf Null sollte die Einspeisung aber eigentlich nur dann springen, wenn sonst eine Einspeisung ins Netz erfolgen würde. Ich denke, dass es bei euch auch so ist? Wenn du möchtest, dass die Regelung etwas träger dem aktuellen Verbrauch folgt, würde ich den Parameter "MinValueAg" auf 1 setzen.
                                Dann ist der Durchschnittswert und nicht der kleinste Wert ausschlaggebend für die Berechnung.

                                Ein weiterer Anregungspunkt: Könnte man evtl. einen "Passthrough" Modus implementieren, in dem immer nur die volle Solarleistung an den Ausgang gelegt wird? Z.b. bei schlechten Wetter wenn der Solaroutput eh nur sehr gering ist. Dann will man ungern, dass der Akku immer mitmachen muss, wenn dieser eh nur wenige Prozent an Kapazität übrig hat.

                                Siehe Dreffi 😉

                                Sobald aber die Solarleistung einen höheren Wert als die AC Last hat, sollte der Rest in den Akku gehen. Das wäre dann ein Überschussladen in den Akku.

                                Ist das nicht der Normalbetrieb? Oder meinst du das ein Entladen vermieden werden soll? Dazu fehlt mir leider eine Messgröße, die das echte Potential der Solarleistung wiedergibt.

                                PS: Hab gestern eine kleine Spende hinterlassen für deine Mühen

                                Vielen Dank! Das freut mich sehr und motiviert 😉

                                P Offline
                                P Offline
                                Ponti92
                                wrote on last edited by Ponti92
                                #166

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

                                Auf Null sollte die Einspeisung aber eigentlich nur dann springen, wenn sonst eine Einspeisung ins Netz erfolgen würde. Ich denke, dass es bei euch auch so ist? Wenn du möchtest, dass die Regelung etwas träger dem aktuellen Verbrauch folgt, würde ich den Parameter "MinValueAg" auf 1 setzen.

                                PS: Bei mir ist das auf 0 springen jedoch am Abend passiert beim TV schauen, als von einem hellen Bild ein dunkleres Bild kam. Dadurch war RealPower natürlich negativ, jedoch müsste man erkennen, dass die geforderte AC Output Leistung höher als der Bedarf ist und er einfach den Wert reduzieren muss. Das ganze konnte ich im debug log Output auch erkennen, jedoch hat er dann immer direkt auf 0 geschalten.
                                Ich versuche das nochmal nachzustellen und zu dokumentieren, damit das besser nachvollziehbar ist..

                                Ich hatte gerade wieder das Problem und dabei festgestellt, dass der RealPower value kurz abgesackt ist, was aber nicht den Daten aus Grafana entspricht:
                                Realpower history diagramm:
                                d0a13a75-af38-42e1-b5c0-d267be8063a2-image.png

                                Grafana diagramm:
                                cddbe0ae-90e8-446a-b897-6629cf7fe872-image.png

                                EDIT:
                                Es könnte am reconnect liegen, was zwischen den beiden Werten stattfand:

                                2023-08-09 11:11:32.340 - info: javascript.0 (1240) script.js.Ecoflow2: Tiefster Wert der letzten 1 Minuten: 152 W
                                2023-08-09 11:11:32.340 - info: javascript.0 (1240) script.js.Ecoflow2: Summe der Anderen PS: 0 W
                                2023-08-09 11:11:32.340 - info: javascript.0 (1240) script.js.Ecoflow2: Rest ist: 152 W
                                2023-08-09 11:11:32.341 - info: javascript.0 (1240) script.js.Ecoflow2: Offset von: 25 W abziehen = 127 W Neuer Einspeisewert
                                2023-08-09 11:11:32.341 - info: javascript.0 (1240) script.js.Ecoflow2: Neuer Wert unter Berücksichtigung der Limits: 127 W
                                2023-08-09 11:11:32.341 - info: javascript.0 (1240) script.js.Ecoflow2: Einspeisung aktuell: 0 W
                                2023-08-09 11:11:32.341 - info: javascript.0 (1240) script.js.Ecoflow2: ===================================================
                                2023-08-09 11:11:47.277 - info: javascript.0 (1240) script.js.Ecoflow2: Reconnect zu Ecoflow MQTT für PowerStream - Daten
                                2023-08-09 11:11:49.421 - info: javascript.0 (1240) script.js.Ecoflow2: Verbunden mit dem Ecoflow MQTT-Broker
                                2023-08-09 11:11:49.555 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                2023-08-09 11:11:49.557 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                2023-08-09 11:11:49.557 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                2023-08-09 11:11:49.560 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                2023-08-09 11:11:49.604 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{}
                                2023-08-09 11:11:49.636 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{}
                                2023-08-09 11:11:49.662 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{}
                                2023-08-09 11:11:49.680 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"setValue":{"value":17477}}}
                                2023-08-09 11:11:50.415 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"pv1InputVolt":289,"pv1OpVolt":2889,"pv1InputWatts":196,"pv2InputVolt":300,"pv2OpVolt":3001,"batInputWatts":974,"invOutputCur":592,"invOutputWatts":1283,"heartbeatFrequency":2},"InverterHeartbeat2":{"X_Unknown_15":613,"X_Unknown_16":-3,"X_Unknown_17":541770,"X_Unknown_27":6310,"X_Unknown_32":98537,"X_Unknown_34":78,"X_Unknown_45":1297}}}
                                2023-08-09 11:11:52.464 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"pv1InputVolt":290,"pv1OpVolt":2909,"pv2OpVolt":3021,"pv2InputWatts":192,"llcOpVolt":4194,"invInputVolt":4194,"invOutputWatts":1279},"InverterHeartbeat2":{"X_Unknown_15":607,"X_Unknown_17":541720,"X_Unknown_32":98539}}}
                                2023-08-09 11:11:54.514 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"pv2InputVolt":302,"batInputVolt":506,"llcOpVolt":4174,"invInputVolt":4174,"invOutputWatts":1283},"InverterHeartbeat2":{"X_Unknown_17":541760,"X_Unknown_32":98541,"X_Unknown_45":1300}}}
                                2023-08-09 11:11:56.401 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                2023-08-09 11:11:56.402 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                2023-08-09 11:11:56.402 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                2023-08-09 11:11:56.403 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                ...
                                2023-08-09 11:11:56.491 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"setValue":{"value":17477}}}
                                2023-08-09 11:11:56.597 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"pv1InputVolt":292,"pv1OpVolt":2929,"pv2OpVolt":3041,"batInputVolt":507,"batInputWatts":967,"llcOpVolt":4201,"invInputVolt":4201},"InverterHeartbeat2":{"X_Unknown_15":616,"X_Unknown_16":5,"X_Unknown_17":541810,"X_Unknown_32":98543,"X_Unknown_45":1294}}}
                                2023-08-09 11:11:56.957 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{}
                                2023-08-09 11:11:58.500 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"pv1Temp":460,"pv2InputVolt":304,"pv2Temp":460,"batInputWatts":964,"llcOpVolt":4213,"invInputVolt":4213,"invOutputCur":601,"invOutputWatts":1292},"InverterHeartbeat2":{"X_Unknown_15":624,"X_Unknown_16":1,"X_Unknown_17":541800,"X_Unknown_32":98545}}}
                                2023-08-09 11:12:01.018 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"pv1InputVolt":294,"pv1OpVolt":2949,"pv1Temp":450,"pv2Temp":450,"batInputVolt":506,"batInputWatts":970,"llcOpVolt":4203,"invInputVolt":4203},"InverterHeartbeat2":{"X_Unknown_15":630,"X_Unknown_17":541850,"X_Unknown_32":98547,"X_Unknown_45":1291}}}
                                2023-08-09 11:12:02.338 - info: javascript.0 (1240) script.js.Ecoflow2: Tiefster Wert der letzten 1 Minuten: 26 W
                                2023-08-09 11:12:02.339 - info: javascript.0 (1240) script.js.Ecoflow2: Summe der Anderen PS: 0 W
                                2023-08-09 11:12:02.339 - info: javascript.0 (1240) script.js.Ecoflow2: Rest ist: 26 W
                                2023-08-09 11:12:02.340 - info: javascript.0 (1240) script.js.Ecoflow2: Offset von: 25 W abziehen = 1 W Neuer Einspeisewert
                                2023-08-09 11:12:02.340 - info: javascript.0 (1240) script.js.Ecoflow2: Neuer Wert unter Berücksichtigung der Limits: 1 W
                                2023-08-09 11:12:02.340 - info: javascript.0 (1240) script.js.Ecoflow2: Einspeisung aktuell: 129.2 W
                                2023-08-09 11:12:02.340 - info: javascript.0 (1240) script.js.Ecoflow2: ===================================================
                                
                                W 1 Reply Last reply
                                0
                                • P Ponti92

                                  @dreffi
                                  Ja dieser Modus kommt schon ganz gut hin, jedoch ist der Wert der Einspeisung dann fix auf 150W eingestellt. D.h. bei einer Solarleistung von 50W werden dann trotzdem 100W vom Akku genommen und dieser dann weiter entleert.
                                  Meine Idee war, dass man dann den Wert von Solar auf den AC Output spiegelt, sodass Solareingang == AC Output ist.
                                  Bei mir habe ich nämlich West-Ausrichtung und am Vormittag noch nicht so viel Solar-Leistung. Darüber hinaus wird das bisschen Akku nicht noch weiter entleert..

                                  Bis jetzt ist der Umweg, dass ich in der Früh den Batterie-Prio Modus einstelle und der dann ab Mittag auf Stromversorgung umgestellt wird. Jedoch habe ich die Befürchtung, dass ich mehr Verluste habe durch Laden/Entladen der Powerstation, als wenn ich das direkt ins Netz einspeise, solange ich das auch verbrauche.

                                  @Waly_de
                                  Ich habe den anderen Modus schon ausprobiert, jedoch ist das dann sehr träge und er speist dann ziemlich lange ins Netz ein und braucht sehr lange bis er wieder an den Wert kommt. Da finde ich den Kompromiss mit dem niedrigsten Wert schon in Ordnung. Man muss das auch erst optimieren, sobald mal wirklich viel Sonne da ist und der Akku sonst nicht leer wird. Denn zurzeit habe ich das Problem noch nicht, dass der Akku nicht leer wird über Nacht..

                                  Mal sehen, ab morgen sagt er ja wieder Sonne voraus und dann wird das Verhalten im oberen Bereich ausreichend getestet 🙂

                                  D Offline
                                  D Offline
                                  Dreffi
                                  wrote on last edited by
                                  #167

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

                                  @dreffi
                                  Ja dieser Modus kommt schon ganz gut hin, jedoch ist der Wert der Einspeisung dann fix auf 150W eingestellt. D.h. bei einer Solarleistung von 50W werden dann trotzdem 100W vom Akku genommen und dieser dann weiter entleert.

                                  Dann muss der Wert noch kleiner gestellt werden. Ich habe den aktuell auf 50W bei 4x 410W Peak am Powerstream.

                                  Meine Idee war, dass man dann den Wert von Solar auf den AC Output spiegelt, sodass Solareingang == AC Output ist.

                                  Problem: die Solarleistung wird durch den eingestellten Wert für die Ausgangsleistung gedrosselt. Die mögliche Solarleistung ist unbekannt. Man könnte sich da nur Schrittweise rantasten. Ich persönlich glaube das wird nichts. Dann lieber auf Prio Akku. Sobald die Ladegrenze erreicht wurde wird dann direkt eingespeist. Leider kann die Ladegrenze nicht auf weniger als 50% gesetzt werden. Zumindest nicht per App.

                                  P 1 Reply Last reply
                                  1
                                  • D Dreffi

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

                                    @dreffi
                                    Ja dieser Modus kommt schon ganz gut hin, jedoch ist der Wert der Einspeisung dann fix auf 150W eingestellt. D.h. bei einer Solarleistung von 50W werden dann trotzdem 100W vom Akku genommen und dieser dann weiter entleert.

                                    Dann muss der Wert noch kleiner gestellt werden. Ich habe den aktuell auf 50W bei 4x 410W Peak am Powerstream.

                                    Meine Idee war, dass man dann den Wert von Solar auf den AC Output spiegelt, sodass Solareingang == AC Output ist.

                                    Problem: die Solarleistung wird durch den eingestellten Wert für die Ausgangsleistung gedrosselt. Die mögliche Solarleistung ist unbekannt. Man könnte sich da nur Schrittweise rantasten. Ich persönlich glaube das wird nichts. Dann lieber auf Prio Akku. Sobald die Ladegrenze erreicht wurde wird dann direkt eingespeist. Leider kann die Ladegrenze nicht auf weniger als 50% gesetzt werden. Zumindest nicht per App.

                                    P Offline
                                    P Offline
                                    Ponti92
                                    wrote on last edited by
                                    #168

                                    @dreffi
                                    2ef1fcdc-3629-41f9-892b-3dc96dfd4aba-image.png
                                    Stimmt nicht ganz, zurzeit ist AC nur auf 22W und der Solarinput ist trotzdem größer und der Rest geht in die Batterie. Das was du beschreibst ist dann wenn der Solar-Input > 600W ist, oder die Batterie schon zu voll ist.

                                    D 1 Reply Last reply
                                    1
                                    • P Ponti92

                                      @dreffi
                                      2ef1fcdc-3629-41f9-892b-3dc96dfd4aba-image.png
                                      Stimmt nicht ganz, zurzeit ist AC nur auf 22W und der Solarinput ist trotzdem größer und der Rest geht in die Batterie. Das was du beschreibst ist dann wenn der Solar-Input > 600W ist, oder die Batterie schon zu voll ist.

                                      D Offline
                                      D Offline
                                      Dreffi
                                      wrote on last edited by
                                      #169

                                      @ponti92
                                      Stimmt, mein Fehler. Ich war in Gedanken schon im Modus "Prio Akku".
                                      Vielleicht macht es doch Sinn dann die PV-Leistung auf den AC-Bedarf zu spiegeln. Das würde wieder etwas Zeitversatz bedeuten. Ich würde deshalb hier einen Mittelwert der letzten Minuten nutzen.

                                      1 Reply Last reply
                                      0
                                      • P Ponti92

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

                                        Auf Null sollte die Einspeisung aber eigentlich nur dann springen, wenn sonst eine Einspeisung ins Netz erfolgen würde. Ich denke, dass es bei euch auch so ist? Wenn du möchtest, dass die Regelung etwas träger dem aktuellen Verbrauch folgt, würde ich den Parameter "MinValueAg" auf 1 setzen.

                                        PS: Bei mir ist das auf 0 springen jedoch am Abend passiert beim TV schauen, als von einem hellen Bild ein dunkleres Bild kam. Dadurch war RealPower natürlich negativ, jedoch müsste man erkennen, dass die geforderte AC Output Leistung höher als der Bedarf ist und er einfach den Wert reduzieren muss. Das ganze konnte ich im debug log Output auch erkennen, jedoch hat er dann immer direkt auf 0 geschalten.
                                        Ich versuche das nochmal nachzustellen und zu dokumentieren, damit das besser nachvollziehbar ist..

                                        Ich hatte gerade wieder das Problem und dabei festgestellt, dass der RealPower value kurz abgesackt ist, was aber nicht den Daten aus Grafana entspricht:
                                        Realpower history diagramm:
                                        d0a13a75-af38-42e1-b5c0-d267be8063a2-image.png

                                        Grafana diagramm:
                                        cddbe0ae-90e8-446a-b897-6629cf7fe872-image.png

                                        EDIT:
                                        Es könnte am reconnect liegen, was zwischen den beiden Werten stattfand:

                                        2023-08-09 11:11:32.340 - info: javascript.0 (1240) script.js.Ecoflow2: Tiefster Wert der letzten 1 Minuten: 152 W
                                        2023-08-09 11:11:32.340 - info: javascript.0 (1240) script.js.Ecoflow2: Summe der Anderen PS: 0 W
                                        2023-08-09 11:11:32.340 - info: javascript.0 (1240) script.js.Ecoflow2: Rest ist: 152 W
                                        2023-08-09 11:11:32.341 - info: javascript.0 (1240) script.js.Ecoflow2: Offset von: 25 W abziehen = 127 W Neuer Einspeisewert
                                        2023-08-09 11:11:32.341 - info: javascript.0 (1240) script.js.Ecoflow2: Neuer Wert unter Berücksichtigung der Limits: 127 W
                                        2023-08-09 11:11:32.341 - info: javascript.0 (1240) script.js.Ecoflow2: Einspeisung aktuell: 0 W
                                        2023-08-09 11:11:32.341 - info: javascript.0 (1240) script.js.Ecoflow2: ===================================================
                                        2023-08-09 11:11:47.277 - info: javascript.0 (1240) script.js.Ecoflow2: Reconnect zu Ecoflow MQTT für PowerStream - Daten
                                        2023-08-09 11:11:49.421 - info: javascript.0 (1240) script.js.Ecoflow2: Verbunden mit dem Ecoflow MQTT-Broker
                                        2023-08-09 11:11:49.555 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                        2023-08-09 11:11:49.557 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                        2023-08-09 11:11:49.557 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                        2023-08-09 11:11:49.560 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                        2023-08-09 11:11:49.604 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{}
                                        2023-08-09 11:11:49.636 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{}
                                        2023-08-09 11:11:49.662 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{}
                                        2023-08-09 11:11:49.680 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"setValue":{"value":17477}}}
                                        2023-08-09 11:11:50.415 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"pv1InputVolt":289,"pv1OpVolt":2889,"pv1InputWatts":196,"pv2InputVolt":300,"pv2OpVolt":3001,"batInputWatts":974,"invOutputCur":592,"invOutputWatts":1283,"heartbeatFrequency":2},"InverterHeartbeat2":{"X_Unknown_15":613,"X_Unknown_16":-3,"X_Unknown_17":541770,"X_Unknown_27":6310,"X_Unknown_32":98537,"X_Unknown_34":78,"X_Unknown_45":1297}}}
                                        2023-08-09 11:11:52.464 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"pv1InputVolt":290,"pv1OpVolt":2909,"pv2OpVolt":3021,"pv2InputWatts":192,"llcOpVolt":4194,"invInputVolt":4194,"invOutputWatts":1279},"InverterHeartbeat2":{"X_Unknown_15":607,"X_Unknown_17":541720,"X_Unknown_32":98539}}}
                                        2023-08-09 11:11:54.514 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"pv2InputVolt":302,"batInputVolt":506,"llcOpVolt":4174,"invInputVolt":4174,"invOutputWatts":1283},"InverterHeartbeat2":{"X_Unknown_17":541760,"X_Unknown_32":98541,"X_Unknown_45":1300}}}
                                        2023-08-09 11:11:56.401 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                        2023-08-09 11:11:56.402 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                        2023-08-09 11:11:56.402 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                        2023-08-09 11:11:56.403 - info: javascript.0 (1240) script.js.Ecoflow2: Die MQTT-Nachricht wurde erfolgreich veröffentlicht.
                                        ...
                                        2023-08-09 11:11:56.491 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"setValue":{"value":17477}}}
                                        2023-08-09 11:11:56.597 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"pv1InputVolt":292,"pv1OpVolt":2929,"pv2OpVolt":3041,"batInputVolt":507,"batInputWatts":967,"llcOpVolt":4201,"invInputVolt":4201},"InverterHeartbeat2":{"X_Unknown_15":616,"X_Unknown_16":5,"X_Unknown_17":541810,"X_Unknown_32":98543,"X_Unknown_45":1294}}}
                                        2023-08-09 11:11:56.957 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{}
                                        2023-08-09 11:11:58.500 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"pv1Temp":460,"pv2InputVolt":304,"pv2Temp":460,"batInputWatts":964,"llcOpVolt":4213,"invInputVolt":4213,"invOutputCur":601,"invOutputWatts":1292},"InverterHeartbeat2":{"X_Unknown_15":624,"X_Unknown_16":1,"X_Unknown_17":541800,"X_Unknown_32":98545}}}
                                        2023-08-09 11:12:01.018 - info: javascript.0 (1240) script.js.Ecoflow2: Decodierte Nachricht:{"data":{"InverterHeartbeat":{"pv1InputVolt":294,"pv1OpVolt":2949,"pv1Temp":450,"pv2Temp":450,"batInputVolt":506,"batInputWatts":970,"llcOpVolt":4203,"invInputVolt":4203},"InverterHeartbeat2":{"X_Unknown_15":630,"X_Unknown_17":541850,"X_Unknown_32":98547,"X_Unknown_45":1291}}}
                                        2023-08-09 11:12:02.338 - info: javascript.0 (1240) script.js.Ecoflow2: Tiefster Wert der letzten 1 Minuten: 26 W
                                        2023-08-09 11:12:02.339 - info: javascript.0 (1240) script.js.Ecoflow2: Summe der Anderen PS: 0 W
                                        2023-08-09 11:12:02.339 - info: javascript.0 (1240) script.js.Ecoflow2: Rest ist: 26 W
                                        2023-08-09 11:12:02.340 - info: javascript.0 (1240) script.js.Ecoflow2: Offset von: 25 W abziehen = 1 W Neuer Einspeisewert
                                        2023-08-09 11:12:02.340 - info: javascript.0 (1240) script.js.Ecoflow2: Neuer Wert unter Berücksichtigung der Limits: 1 W
                                        2023-08-09 11:12:02.340 - info: javascript.0 (1240) script.js.Ecoflow2: Einspeisung aktuell: 129.2 W
                                        2023-08-09 11:12:02.340 - info: javascript.0 (1240) script.js.Ecoflow2: ===================================================
                                        
                                        W Offline
                                        W Offline
                                        Waly_de
                                        wrote on last edited by
                                        #170

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

                                        Es könnte am reconnect liegen, was zwischen den beiden Werten stattfand:

                                        Ahh ok ...
                                        jetzt kann ich mir vorstellen wie es dazu kommt.
                                        Im Moment läuft es so, dass der Algo zur Berechnung des Realpower prüft, ob der Wert für die Tatsächlich Einspeisung "invOutputWatts" jünger als das letzte setzen der AC Leistung ist. Wenn nicht ist der wert ja veraltet und uninteressant. Ich überspringe dann den Zyklus.... wenn der wert schließlich älter als 1/2 "MinValueMin" ist, setzte ich den State invOutputWatts auf 0. weil ich davon ausgehe, dass die PS offline ist. Denke das ist ein Denkfehler...
                                        In diesem Fall kann dann Realpower plötzlich klein sein. Dass passiert natürlich zwangsweise dann, wenn ein reconnect nötig wird. denn dann kommen ja keine Daten mehr und es dauert vermutlich länger bis zum Reconnect als 1/2 "MinValueMin"
                                        Ich denke ich werde nicht sofort auf 0 setzen, sondern in dem Fall lieber weiter mit dem alten Wert arbeiten....

                                        W 1 Reply Last reply
                                        2
                                        • W Waly_de

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

                                          Es könnte am reconnect liegen, was zwischen den beiden Werten stattfand:

                                          Ahh ok ...
                                          jetzt kann ich mir vorstellen wie es dazu kommt.
                                          Im Moment läuft es so, dass der Algo zur Berechnung des Realpower prüft, ob der Wert für die Tatsächlich Einspeisung "invOutputWatts" jünger als das letzte setzen der AC Leistung ist. Wenn nicht ist der wert ja veraltet und uninteressant. Ich überspringe dann den Zyklus.... wenn der wert schließlich älter als 1/2 "MinValueMin" ist, setzte ich den State invOutputWatts auf 0. weil ich davon ausgehe, dass die PS offline ist. Denke das ist ein Denkfehler...
                                          In diesem Fall kann dann Realpower plötzlich klein sein. Dass passiert natürlich zwangsweise dann, wenn ein reconnect nötig wird. denn dann kommen ja keine Daten mehr und es dauert vermutlich länger bis zum Reconnect als 1/2 "MinValueMin"
                                          Ich denke ich werde nicht sofort auf 0 setzen, sondern in dem Fall lieber weiter mit dem alten Wert arbeiten....

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

                                          ich hab das manuell im Script oben geändert ... lohnt keine neue Release dafür...

                                          könnt ihr auch selbst. Sucht nach:

                                          setState(ConfigData.statesPrefix + ".app_device_property_" + asn + ".data.InverterHeartbeat.invOutputWatts", "0")
                                          //Einspeisung += invOutputWatts;
                                          

                                          und macht daraus:

                                          //setState(ConfigData.statesPrefix + ".app_device_property_" + asn + ".data.InverterHeartbeat.invOutputWatts", "0")
                                          Einspeisung += invOutputWatts;
                                          
                                          D 1 Reply Last reply
                                          1
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          625

                                          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