NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@waly_de Hallo, ich bin auf der Suche nach einer dynamischen Leistungsanpassung für die ecoflow Delta Pro in Verbindung mit PowerStream auf dieses Script gestoßen. Leider bin ich völlig unerfahren mit ioBroker. Meine SmartHome Instanz ist ein Homey Pro, der mir auch einen scheinbar einfacheren Zugang zur Einrichtung von SmartHome Komponenten geben kann. Meine Frage wäre, welche Möglichkeiten mir für eine ähnliche Anwendung innerhalb meiner Homey Pro Umgebung zur Verfügung stehen. Gibt es eine Möglichkeit das Script in meiner Umgebung zu betreiben?
-
@lui1307 leider läuft mein Script nur in einer IO-Broker Instanz. Ich kann nur empfehlen iobroker mal eine Chance hingeben. Die Installation ist schnell erledigt und Kommunikation mit anderen Systemen über diverse Schnittstellen möglich. Es gibt auch eine Docker Version die z.B. auf einem Unraid-Server in 2 min installiert und einsatzfähig ist.
-
mal ne Frage zu dem Skript:
ich habe die neuste Version geladen und im Konfig Bereich meine Daten eingetragen (zwischen die Gänsefüsschen) und die Seriennummern meiner Geräte (Powerstream & Delta Pro (als DM)).
Auch meinen Sonoff IR Volkszähler Datenpunkt.bekomme aber auch einen Fehler für meine Delta Pro:
Leider speist der Powerstream nicht ein. Sollte der nicht automatisch anspringen wenn das Skript gestartet ist?
wie ist das mit der Location Variablen? Muss da noch was für die XXX eingetragen werden?
-
@Waly_de ich habe gerade Dein neuestes Script vom 04.12 mit Überschussladung installiert. Habe aber nicht ganz verstanden, wie es funktioniert (und funktioniert aktuell bei mir mit meinem DeltaPro auch nicht).
Ich verwende ja eine Tuya-Steckdose zum Schalten der AC-Überschussladung. Leider funktioniert das AC-Laden nicht (auch nicht, wenn ich es ohne Tuya Steckdose realisiere). Es wird in den "Writebales" für "SlowChragePower" immer "Null" eingetragen... hast Du eine Idee wo mein Fehler liegt?
// Überschussladung: //**************************************** ExcessCharge: true, //Überschussladung AN/AUS (true/false) //ID zum Einstellen der Ladeleistung des Speichers in Watt: ExcessChargePowerID: "0_userdata.0.ecoflow.app_1695477XXXXXX_DCEBZ8ZEXXXXXX_thing_property_set.writeables.slowChgPower", //ID des aktuellen Ladestandes des Speichers in %: ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_DCEBZ8ZEXXXXXX.data.params.bmsMaster.soc", ExcessChargeSwitchMin: 2, //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. ExcessChargeMaxPower: 2500, //Maximale Ladeleistung des Speichers in Watt ExcessChargeOffsetPower: -50, //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. ExcessChargeStartPower: -200, //Mindest-Überschussleistung zum Einschalten des Speichers ExcessChargeStartPowerDurationMin: 2, //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: "tuya.0.bf86dbXXXXXXXX.19", //ID des Schalters, der den Speicher aktiviert: ExcessChargeSwitchID: "tuya.0.bf86dbXXXXXXXXX.1", 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"...) //---------------------------------------- //**************************************** Debug: false, PlotCmdID: 99999,
Ich wäre Die sehr Dankbar, wenn Du mir helfen könntest...dann kann ich mein eigens Script in die Rente schicken
-
Hier noch meine Umsetzung der Überschussladung ohne Tuya-Steckdose...wie gesagt hat es leider auch nicht funktioniert. Der Wert in SlowCharge wurde nicht gesetzt/ entsprechend des Überschusses gesetzt
//**************************************** // Überschussladung: //**************************************** ExcessCharge: true, //Überschussladung AN/AUS (true/false) //ID zum Einstellen der Ladeleistung des Speichers in Watt: ExcessChargePowerID: "0_userdata.0.ecoflow.app_1695477127540752386_DCEBZ8ZXXXXXX_thing_property_set.writeables.slowChgPower", //ID des aktuellen Ladestandes des Speichers in %: ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_DCEBZ8ZEXXXXXXX.data.params.bmsMaster.soc", ExcessChargeSwitchMin: 0,5, //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. ExcessChargeMaxPower: 2500, //Maximale Ladeleistung des Speichers in Watt ExcessChargeOffsetPower: 0, //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. ExcessChargeStartPower: 200, //Mindest-Überschussleistung zum Einschalten des Speichers ExcessChargeStartPowerDurationMin: 1, //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_DCEBZ8ZXXXXXX.data.params.inv.inputWatts", //ID des Schalters, der den Speicher aktiviert: //ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_1695477127540752386_DCEBZ8ZXXXXXX_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: "0_userdata.0.ecoflow.app_device_property_DCEBZ8ZXXXXXXX.data.params.inv.inputWatt", //ID des Schalters, der den Speicher aktiviert: ExcessChargeSwitchID: "0_userdata.0.ecoflow.app_1695477127540752386_DCEBZ8ZXXXXXXX_thing_property_set.writeables.chgPause", 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"...) //---------------------------------------- //**************************************** Debug: false, PlotCmdID: 99999, } //***************************************/
Additional Power habe ich natürlich gesetzt... und DP auf True laufen.
AdditionalPower: [ // Wenn es weitere Wechselrichter gibt, die in IOBroker erfasst werden, können diese hier Angelegt werden //############# Diesen Abschnitt für jedes einzelne Gerät anlegen ################ { name: "PV_Leistung am Delta", // Beliebiger Name id: "0_userdata.0.ecoflow.app_device_property_DCEBZ8ZXXXXXX.data.params.mppt.inWatts", // Der Objektpfad zu dem Leistungswert in Watt (W) factor: 10, // Divisionsfaktor für den Leistungswert. (10 für die Delta) }, //#######################################################################
-
@waly_de Es schein ja eine neue Funktion durch das aktuelle Update das z.B. iOS-App zu geben.
Nun können Shelly-Gerate geschaltet und wohl auch Leistungsdaten übertragen. Hat hier wer schon Erfahrungen gesammelt? -
@aherby
Meines Wissen`s nach funktioniert die Shelly Integration noch bei niemandem. Wird nur in der App angezeigt und es kommt bei Auswahl der Shelly Komponenten der Fehler der Verbindung, so bei mir auch.
Soll bis Ende Januar funktionieren lt. einem PV-Forum Mitglied.@Waly_de
Bin relativ neu in der IO Broker Welt...
Habe jetzt einen Raspberry Pi4 mit IOBroker und deinen zwei Skripten Ecoflow+Tibber am laufen.Wird die AC Ladeleistung nicht gesteuert mit deinem Skript?
Er zieht bei mir immer die max. Eingestellte AC Leistung in die DeltaPro!
Der Haushaltsstrombedarf wird per Skript angepasst, da regelt zumindest mal was über den "Sensor" des TibberSkript...edit...
Ich hab noch keine PV-Module an meiner DeltaPRO mit 1x Zusatzakku und auch nicht am PowerStream.
Lade PV Überschuss aus meiner 37kWp SolarEdge PV-Anlage über eine geschaltete Shelly Steckdose mit max. 2,3kW.
Ziel ist es über so ein Skript zu machen, ohne Shelly Steckdose dazwischen.Der TibberPulse Wert meines Stromzählers muss hier doch einwandfrei dafür geeignet sein.
Bei Negativen Watt Werten Laden der DeltaPro über AC und bei Positiven Watt Werten Powerstream Einspeisung anpassen.
Mehr brauch ich gar nicht -
@thomas-weller Also ich habe es gerade mal getestet und ich kann den Shelly Plus 1 PM damit schalten aber da um diese Uhrzeit keine Sonne hier scheint, sehe ich eben keine Leistungswerte. Aber mehr wird sicher eh nicht über Matter übertragen. Dache im Log sehe ich einen ungewöhnlichen Eintrag aber nichts aufgefallen.
-
@aherby was bedeutet das? Dass man einen Shelly schalten kann, der hinter der Delta am AC Eingang sitzt? Bisher schalte ich diesen via Shelly Regel.
-
Hat niemand eine Idee bzw. kann mir sagen, was ich falsch mache bzw. warum meine Delta Pro trotz Ladestand von 35% und Netzverbrauch von 350W nicht automatisch einspeist?
Ich nutze den Sonoff IR Volkszähler um meinen Stromverbrauch im Haus zu ermitteln. -
@accu bist du im PS auf „Stromversorgung Prio“?
Schau doch mal im ioBroker nach, was im Protokoll steht. -
Es gibt eine neue Version:
ecoflow-connector_v121_05.01.2024.txt(1.2.1) 05.01.2024
-
- Neuer Parameter "ExcessChargeStopPower": Überschussleistung bei der der Zusatzspeicher wieder abgeschaltet werden soll.
-
- Verschiedene Optimierungen und Bugfixes
-
- LogAllOfSerial kann nun verwendet werden um jede nachricht von einer bestimmten seriennummer in ein Logfile zu schreibnen.
Ich habe vor allem bei der Überschussladung noch einiges angepasst und die Bezugswerte geändert. Leider ist nach wie vor ohne Sonne kein wirklicher Feldtest möglich. Aber bei mir läuft es, wenn es mal hell wird, sehr gut.
-
-
@accu Bitte möglichst keine Bider posten, sondern die Protokolle und Code kopieren und mithilfe der CODE Funktion (</>) Button oben Einfügen.
Das ist einfacher zu lesen ;-)
@accu sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
ich habe die neuste Version geladen und im Konfig Bereich meine Daten eingetragen (zwischen die Gänsefüsschen) und die Seriennummern meiner Geräte (Powerstream & Delta Pro (als DM)).
Auch meinen Sonoff IR Volkszähler Datenpunkt.Das sieht zunächst gut aus.die Meldung unten ist nur ein Hinweis und kann ignoriert werden.
An den logpath und SERIAL_TO_LOG Daten muss nichts geändert werden.@accu sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Leider speist der Powerstream nicht ein. Sollte der nicht automatisch anspringen wenn das Skript gestartet ist?
Wenn alle Bedingungen erfüllt sind, ja.
Gibt es genug PV-Power, ist die Batteriemindestladung gegeben, werden die Objekte:
"0_userdata.0.ecoflow.RealPower", "0_userdata.0.ecoflow.totalPV" mit den richtigen Werten regelmäßig aktualisiert? -
@ralf77 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Ich verwende ja eine Tuya-Steckdose zum Schalten der AC-Überschussladung. Leider funktioniert das AC-Laden nicht (auch nicht, wenn ich es ohne Tuya Steckdose realisiere). Es wird in den "Writebales" für "SlowChragePower" immer "Null" eingetragen... hast Du eine Idee wo mein Fehler liegt?
Also da ist einiges in der Konfiguration problematisch... ExcessChargeStartPower sollte z.b. nicht negativ sein. Ich ändere Deine Konfiguration mal so, wie ich glaube das sie Funktionieren sollte (bitte mit der neuen Version von heute testen):
// Überschussladung: //**************************************** ExcessCharge: true, //Überschussladung AN/AUS (true/false) //ID zum Einstellen der Ladeleistung des Speichers in Watt: ExcessChargePowerID: "0_userdata.0.ecoflow.app_1695477XXXXXX_DCEBZ8ZEXXXXXX_thing_property_set.writeables.slowChgPower", //ID des aktuellen Ladestandes des Speichers in %: ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_DCEBZ8ZEXXXXXX.data.params.bmsMaster.soc", ExcessChargeSwitchMin: 2, //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. ExcessChargeMaxPower: 2500, //Maximale Ladeleistung des Speichers in Watt ExcessChargeOffsetPower: 0, //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. ExcessChargeStartPower: 50, //Mindest-Ãœberschussleistung zum Einschalten des Speichers ExcessChargeStopPower: 0, //Überschussleistung bei der der Speicher abgeschaltet werden soll. ExcessChargeStartPowerDurationMin: 1, //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: "tuya.0.bf86dbXXXXXXXX.19", //ID des Schalters, der den Speicher aktiviert: ExcessChargeSwitchID: "tuya.0.bf86dbXXXXXXXXX.1", 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"...) //---------------------------------------- //**************************************** Debug: false, PlotCmdID: 99999,
Sollte, wenn alle ID's Passen folgendes machen:
Wenn 0_userdata.0.ecoflow.ExcessPower für mindesten eine Minute ununterbrochen > 50W ist, wird "tuya.0.bf86dbXXXXXXXXX.1" auf true gesetzt (Schaltet die Tuba-Dose?)
ExcessChargeSwitchMin bewirkt das sie mindestens 2 Minuten an bleibt, auch wenn die 0_userdata.0.ecoflow.ExcessPower für auf 0 fällt."0_userdata.0.ecoflow.app_1695477XXXXXX_DCEBZ8ZEXXXXXX_thing_property_set.writeables.slowChgPower" sollte nun an die Überschussleistung angepasst werden.
-
@waly_de im Skript sehe ich beim Starten im Debug Fenster folgende Fehlermeldung:
javascript.0 (53248) script.js.Test.EF_Integration: Unbekannter Set Befehl: {"params":{"hour":9,"min":33,"sec":25,"day":5,"week":6,"month":1,"year":2024},"from":"iOS","lang":"de-de","id":"605402678","moduleSn":"DCExxxxxx","moduleType":1,"operateType":"setRtcTime","version":"1.0"}
Meine Delta Pro steht laut EF App auf: "Stromversorgung priorisieren".
SmartmeterID: "sonoff.0.IRHub.SML_Watt_Summe", // State, der den aktuellen Gesamtverbrauch in Watt anzeigt seriennummern: [ //############# Diesen Abschnitt für jedes einzelne Gerät anlegen ################ { seriennummer: "HW51xxxxxx", // Die Seriennummer des Gerätes name: "PowerStream", // beliebiger Name MaxPower: 600, // Der höchstmögliche Wert in Watt für die Einspeiseleistung subscribe: true, // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt typ: "PS", // Welches Gerät ist es: PowerStream:"PS"; DeltaMax:"DM"; Delta2: "D2" ; Delta2 Max: "D2M"; SmartPlug: "SM"; Andere: "NA" // Parameter an hier nur für PowerStream. regulation: true, // "true": Dieser PowerStream soll vom Script reguliert werden RegulationOffPower: -1, // Wird die Regulation per State abgestellt, wird die Einspeiseleistung des ersten Powerstreams auf diesen Wert gesetzt (-1 = keine Änderung, -2 = Batterie Priomodus) hasBat: true, // "true": Eine Batterie ist angeschlossen. Nur für PowerStream relevant. battPozOn: 99, battPozOff: 94, // Wenn die Batterie bei battPozOn ist, Einspeisung auf MaxPower. Bei BattPozOff Normalbetrieb battOnSwitchPrio: true, // "true": Bei battPozOn wird in den Batterie-Prioritätsmodus gewechselt prioOffOnDemand: 30, // Wattwert des Bedarfs, bei dem zurück in den Strom-Priomodus geschaltet wird. 0 für kein Rückschalten. lowBatLimitPozOn: 5, lowBatLimitPozOff: 15, // Bei Unterschreiten der Batterieladung von "lowBatLimitPozOn" % ist die maximale Einspeiseleistung auf lowBatLimit: 100, // "lowBatLimit" limitiert, bis der Ladezustand wieder bei "lowBatLimitPozOff" ist }, //#######################################################################
(Noch eine Frage: Könntest Du noch auf der ersten Seite (im Skript und/oder hier im Forum) einen allgemeinen Text zur Funktionalität des Skripts hinzufügen? Also was das Skript genau macht. Ich denke das wäre für viele Newbies sehr hilfreich.)
Ich nutze die EF Delta Pro mit 4 Panels (2p2s) direkt daran angeschlossen. Aktuell kommt bei der Wetterlage fast nichts rein. (gestern hatte ich über Mittag mal 150W) aber auch da ist der PS nicht angesprungen.
Aber das Skript liest doch auch nicht aus, was an PV reinkommt oder? Ich habe zumindest die stelle wo der Hoymiles vorkommt auskommentiert, da ich ne PV Anlage auf dem Gartenhaus habe. (Ich habe aber einen Datenpunkt im ioBroker wo der Gesamte PV Strom erfasst wird. ggf. kann ich den da einsetzen?) -
@thomas-weller sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@Waly_de
Bin relativ neu in der IO Broker Welt...
Habe jetzt einen Raspberry Pi4 mit IOBroker und deinen zwei Skripten Ecoflow+Tibber am laufen.
Wird die AC Ladeleistung nicht gesteuert mit deinem Skript?
Er zieht bei mir immer die max. Eingestellte AC Leistung in die DeltaPro!
Der Haushaltsstrombedarf wird per Skript angepasst, da regelt zumindest mal was über den "Sensor" des TibberSkript...
edit...
Ich hab noch keine PV-Module an meiner DeltaPRO mit 1x Zusatzakku und auch nicht am PowerStream.
Lade PV Überschuss aus meiner 37kWp SolarEdge PV-Anlage über eine geschaltete Shelly Steckdose mit max. 2,3kW.
Ziel ist es über so ein Skript zu machen, ohne Shelly Steckdose dazwischen.
Der TibberPulse Wert meines Stromzählers muss hier doch einwandfrei dafür geeignet sein.
Bei Negativen Watt Werten Laden der DeltaPro über AC und bei Positiven Watt Werten Powerstream Einspeisung anpassen.
Mehr brauch ich gar nichtWillkommen in der wunderbaren Welt von IOBroker
Dafür ist das Skript eigentlich nicht gemacht... Will heissen ich hab nicht getestet was passiert, wenn die PS keine eigenen PV haben. Aber bitte versuch es mal mit der neuen Version von heute.
Da sind die Bezugswerte geändert. Schlau bitte mal was bei Dir in 0_userdata.0.ecoflow.ExcessPower geschrieben wird. -
@accu sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Ich nutze die EF Delta Pro mit 4 Panels (2p2s) direkt daran angeschlossen. Aktuell kommt bei der Wetterlage fast nichts rein. (gestern hatte ich über Mittag mal 150W) aber auch da ist der PS nicht angesprungen.
Aber das Skript liest doch auch nicht aus, was an PV reinkommt oder? Ich habe zumindest die stelle wo der Hoymiles vorkommt auskommentiert, da ich ne PV Anlage auf dem Gartenhaus habe. (Ich habe aber einen Datenpunkt im ioBroker wo der Gesamte PV Strom erfasst wird. ggf. kann ich den da einsetzen?)Die Meldung mit dem unbekannten Set Befehl kannst du ignorieren.
Der Rest sieht soweit gut aus.Grundsätzlich ist es ja so, dass das Skript dafür sorgen soll, dass möglichst die gesamte PV Leistung sofort verbraucht wird und nur das, was gerade nicht verbraucht werden kann, in einen Akku geladen wird.
Damit das funktioniert, muss das Skript natürlich genau wissen, was genau gerade wirklich in deinem Haus verbraucht wird. Beziehungsweise wie viel der am Stromzähler angezeigten Leistung zum einen aus der PV Anlage kommt und zum anderen unter Umständen in Batterien eingespeist wird usw.
Wenn du also einen Datenpunkt hast, der anzeigt, wie viel PVLeistung gerade aus anderen Quellen als aus deinemPower Stream kommt und sich das auch auf den Wert auswirkt, den das Script als "SmartmeterID" einließt, dann solltest du diesen unbedingt unter "AdditionalPower" angeben.Wenn dein Power Stream nicht anspringt, kann das neben einem leeren Akku auf jeden Fall der Grund sein. Bitte beobachte den Wert der Unter Objekte "0_userdata.0.ecoflow.RealPower" steht. Das ist der Wert, der für das Skript die Grundlage der Regelung darstellt. Ist der < "BasePowerOffset" passiert gar nichts. Ist der Wert größer, Versuch, das Skript, die Einspeisung des Power Stream auf RealPower - BasePowerOffset zu setzen.
Das funktioniert aber auch nur dann, wenn der Akku den Mindest Ladestand erreicht hat. Den hat Ecoflow. festgelegt und ist bei mir zwischen 7% und 10 %. Wenn der Ladestand darunter liegt, geht die gesamte Leistung in den Akku, egal was das Skript als AC-Leistung einstellt. -
@waly_de ah ok - d.h. das Skript läuft nur wenn der PS an Solar hängt? Ich nutze den PS leider nur zur Einspeisung. Meine Panels hängen direkt an der Delta Pro. Wobei man doch sicher auch den Datenpunkt abgreifen kann (WattIn)?
-
@accu sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
ah ok - d.h. das Skript läuft nur wenn der PS an Solar hängt?
d.h. ich weiss es nicht genau Aber es besteht eine gute Chance, dass das neue Script auch in Deiner Konfiguration läuft... Teste mal und gib Rückmeldung, auch zu den Zuständen, nach denen ich gefragt hab.
@accu sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Wobei man doch sicher auch den Datenpunkt abgreifen kann (WattIn)?
Vermutlich. Bitte vorher in den Objekten überprüfen, ob der Wert stimmig ist. Dann unter "AdditionalPower" angeben
-
@waly_de vielen Dank für Deine Hilfe auf meinen Post. Folgende Beobachtung habe ich gemacht:
- Die Tuya Steckdose schaltet ein. Das klappt.
- Die Regelung der AC-Ladung startet. Das klappt auch
- Die Regelung stellt aber meist eine zu hohe Ladelseitung ein. Es wurde dann imme rzwischen 100Watt und 200 Watt zusätzlich zum PV-Überschuss aus dem Netz gezogen
- Die Regelung klappte nur, wenn es keine großen Änderungen im Verbrauch gab (also deutlich weniger/mehr Überschuss auf einmal zur Verfügung stand)
Meine Erkenntnisse:
- Ich vermmute, dass mit der Berechnung von "0_userdata.0.ecoflow.ExcessPower" etwas nicht stimmt. Als Test habe ich Verbraucher im Haus zugeschalten bis die aktuelle PV-Produktion nicht mehr gerreicht hat und wollte so eine Abschaltung der AC-Ladung erzwingen. Da shat aber leider nicht geklappt. Als ich dann die Verbraucher wieder abgeschaltet hatte und ein Überschuss im Haus wieder verfügbar war, ist die AC-Ladeleistung auf 2900Watt gestiegen (in der App wurde sogar ein Wert von über 6000 Watt angezeigt). Die Berechnung der Ladeleistung scheint also noch nicht für alle möglichen Fälle zu passen.
Hier mal ein Bild als ich die Verbraucher im Haus manuell zugeschalten habe:
- Ich habe vom Netz 990 Watt bezogen
- ExcessPower ist positiv auf 1019 geblieben
- slowChgPower blieb auf 869 Watt
-AC Ladung stoppte nicht (Tuya Steckdose hat sich nicht abgeschalten)
Ich vermute, dass es an der Berechnung noch Probleme gibt, da ja Überschuss ein negativer Wert ist und Netzbezug ein positiver Wert...
Gerne noch mal mein Script, welches ich als separates Script laufen habe (ChatGPT generiert- sicherlich noch zu verbessern).
Es funktioniert aber sehr gut und regelt die AC-Ladung sehr zuverlässig mit einer Resteinspeisung von 20-70 Watt.Einziges Problem:
Teilweise schaltet sich die Steckdose in der Nacht ein, wenn ich z.B.- einen Verbrauch von 250 Watt aus dem Akku ziehe (Grundlast).
- Wenn ich dann z.B. den Wasserkocher anschalte, dann liefert der Akku 600 Watt ins Hausnetz (Verbrauch ist ja dann bei ~2kW).
- Dann schaltet sich er Wasserkocher aus und ich habe einen "Negativen Wert = Einspeisung" in Höhe von 350 Watt bis der Akku zurückregelt
- Dann springt die Teckdose an, der Akku bleibt auf 600 Watt und fängt an über AC zu laden...da muss ich dann manuell eingreifen
const vPower = 'fronius.0.meter.0.PowerReal_P_Sum'; // Pfad zur Leistung des Fronius Smartmeters const Schalter = 'tuya.0.bf86db8XXXXX.1'; // Pfad zur Tuya Steckdose let timeout = null; const ecoflowObject = "0_userdata.0.ecoflow.app_1695477127XXXX_DCEBZ8ZEXXXXXX_thing_property_set.writeables.slowChgPower"; // Pfad zum Ecoflow-Objekt // Funktion zum Abrufen und Umrechnen des Werts vom Fronius Smartmeter alle 60 Sekunden const EINSCHALT_POWER = 200 const AUSSCHALT_POWER = 0 let powerValue = 0 intervalId = setInterval(function () { const froniusValue = Math.floor(getState(vPower).val); // Wert vom Fronius Smartmeter const aktuelle_powerValue = getState(ecoflowObject).val let Entscheidungswert = (froniusValue * -1) + aktuelle_powerValue if (Entscheidungswert >= EINSCHALT_POWER){ Entscheidungswert = Math.floor(Entscheidungswert / 100) * 100; // Runde den positiven Wert auf die vollen hundert ab powerValue = Entscheidungswert } if (powerValue > 0 && Entscheidungswert > AUSSCHALT_POWER){ Entscheidungswert = Math.ceil(Entscheidungswert / 100) * 100; // Runde den negativen Wert auf die vollen hundert auf powerValue = Entscheidungswert } if (Entscheidungswert <= AUSSCHALT_POWER){ powerValue = 0 } let setValue = powerValue if (setValue < 200) setValue = 200 if (setValue > 2600) setValue = 2600 setState(ecoflowObject, setValue); // Wert in das Ecoflow-Objekt schreiben }, 30000); // alle 30 Sekunden on(vPower, function(dp) { if (dp.state.val <= -250) { // Überschussleistung in Watt if (timeout) { clearTimeout(timeout); timeout = null; } setState(Schalter, true); // Steckdose einschalten } else if (dp.state.val >= 100) { if (!timeout) { timeout = setTimeout(function() { if (getState(vPower).val >= 0) { // Prüfen, ob der Wert des Fronius Smart Meters innerhalb von 2 Minuten wieder negativ wird setState(Schalter, false); // Steckdose ausschalten nach 2 Minuten } timeout = null; }, 120000); // Verzögerung von 2 Minuten } } });