NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
Eins noch:
ConfigData.BasePowerOffset ist in der Berechnung auch berücksichtigt.
Wenn dafür also zum Beispiel 50 W eingestellt ist, versucht die Überschussladung wieder auf diese 50 W Grund Bezug aus dem Netz einzuregeln.
Ob das so sinnvoll ist, könnte diskutiert werden. Ich wünschte, es gebe mehr Test-Sonne
Was meint ihr? Soll BasePowerOffset keine Rolle spielen bei der Überschussladung?
@waly_de wie funktioniert das log für zwei Geräte ?
const logpath = '/opt/iobroker/log/'; const SERIAL_TO_LOG = "R351ZEB4HF4Exx1" const LogAllOfSerial = true //false= nur Set-Anweisungen, true = alles von der Seriennummer const SERIAL_TO_LOG = "HW51Z6xxxx2" const LogAllOfSerial = true //false nur Set-Anweisungen, true = alles von der Seriennummerfunktioniert das Script nicht mehr
-
@Waly_de
ich hab mir heute deine neueste Version installiert und bekomme eine neue Fehlermeldung. Whs. unabhängig vom Script aber vllt. Kennt du das?19:24:35.248 info javascript.1 (1390) Start javascript script.js.Solarsteuerung.Powerstream 19:24:35.341 error javascript.1 (1390) script.js.Solarsteuerung.Powerstream: Error: Cannot find module './container/OtherContainer/Stack' 19:24:35.357 error javascript.1 (1390) at script.js.Solarsteuerung.Powerstream:954:14 19:24:35.357 error javascript.1 (1390) at script.js.Solarsteuerung.Powerstream:2872:3 19:24:35.383 info javascript.1 (1390) script.js.Solarsteuerung.Powerstream: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 19:24:35.670 error javascript.1 (1390) script.js.Solarsteuerung.Powerstream: TypeError: Cannot read properties of undefined (reading 'connect') 19:24:35.670 error javascript.1 (1390) at setupMQTTConnection (script.js.Solarsteuerung.Powerstream:1152:25) 19:24:35.671 error javascript.1 (1390) at script.js.Solarsteuerung.Powerstream:1456:10 19:24:40.897 info javascript.1 (1390) Stop script script.js.Solarsteuerung.PowerstreamUpdate auf Javascript Adapter v7.6.2 löste das Problem
-
@Waly_de irgendwas/ irgendeine Änderung hat die dynamische Einspeiseregelung des PS mit der Version 1.2 und 1.21 (neu) deutlich verschlechtert. Siehe das Bild und die Unterschiede in der Regelung.
Gestern hatte ich noch die Version 1.1.3.2 vom 31.08 in Verwendung (alt)
-
@Waly_de irgendwas/ irgendeine Änderung hat die dynamische Einspeiseregelung des PS mit der Version 1.2 und 1.21 (neu) deutlich verschlechtert. Siehe das Bild und die Unterschiede in der Regelung.
Gestern hatte ich noch die Version 1.1.3.2 vom 31.08 in Verwendung (alt)
Kann ich bestätigen:

-
@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 ich habe jetzt mal das neueste Script (1.2.1) von dir laufen.
bei RealPower steht ein Wert:

Seltsamerweise ist der Datenpunkt "TotalPV" auf 0. (wie gesagt, ich habe im PS keine Panels angeschlossen sondern an der DP direkt.)
Bei additional Power habe ich jetzt meinen Datenpunkt eingetragen, der die gesamte PV Leistung anderer Panels (BKW + kleine PV Anlage) im Haus widerspiegelt (hier nutze ich ich die Durchschnittsmethode von Verdrahtet, der aus einer Liste mit 10 Einträgen einen Durschnitt generiert. (muss ich bei dem Divisionsfaktor was ändern wenn ich deine Delta Pro habe?)
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: "PVAnlagen Gesamt", // Beliebiger Name id: "0_userdata.0.PV_Anlage", // Der Objektpfad zu dem Leistungswert in Watt (W) factor: 1, // Divisionsfaktor für den Leistungswert. (10 für die Delta) }, //#######################################################################meine Delta Pro hat 39% Akku. Die Entladegrenze ist auf 30% gesetzt.
an der DP hängen 4 Panels die gerade mit 81 W die DP laden.Trotzdem springt der Powerstream nicht an und speist nix ein??

-
@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 ich habe jetzt mal testweise den Datenpunkt von den PV anlagen rausgenommen und durch den EF DP InWatts Datenpunkt ersetzt. Schaut jetzt so aus:

RealPower = 169
TotalPV = 215einspeisen tut der PS trotzdem nicht

-
@accu schon mal gut... was steht bei 0_userdata.0.ecoflow.ExcessPower und wie sieht der Rest deiner Config aus?
@waly_de den Excess Power Daten Punkt habe ich gar nicht

Meine Config:
/*************************************** ********** YOUR DATA HERE ************ ****************************************/ var ConfigData = { email: "Accu.com", // Die App-Zugangsdaten von ecoFlow passwort: "meinPW", 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: "HWxxxxFxxx133", // 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 }, //####################################################################### { seriennummer: "DCExxxxxxxxxx", name: "DELTA Pro", typ: "DM", subscribe: true, // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt }, //####################################################################### { seriennummer: "HWxxxxxxx", name: "Kaffeemaschine", typ: "SM", subscribe: true, // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt }, //####################################################################### ], 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: "EF PV Ladeleistung", // Beliebiger Name id: "alias.0.EFINWATT", // Der Objektpfad zu dem Leistungswert in Watt (W) factor: 1, // Divisionsfaktor für den Leistungswert. (10 für die Delta) }, //####################################################################### ], //**************************************** // Erweiterte Einstellungen: //**************************************** SmartmeterTimeoutMin: 4, // Wenn der letzte Wert vom Smartmeter älter als "SmartmeterTimeoutMin" ist, wird das Script mit... SmartmeterFallbackPower: 150, // SmartmeterFallbackPower als aktuellem Realpowerwert weiter arbeiten, bis wieder aktuelle Daten geliefert werden. Regulation: true, // 'false' stellt das Setzen der Einspeiseleistung ab RegulationState: "Regulate", // Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unter 0_userdata.0.ecoflow angelegt) RegulationMultiPsMode: 0, // Wenn mehrere PS reguliert werden sollen. "balance" = 0 oder "serial" = 1 BasePowerOffset: 30, // Wird vom aktuellen Verbrauch abgezogen, um die Einspeiseleistung zu berechnen Zusatzpower_Offset: 10, // Zusatzpower startet ab einer Batterieladeleistung von MaxPower - Zusatzpower_Offset MinValueMin: 2, // Der Zeitraum in Minuten, aus dem der niedrigste Gesamtverbrauchswert geholt werden soll. 0 für Echtzeitwert MinValueAg: 0, // Art der Ermittlung des kleinsten Wertes: 0 = Minimalwert, 1 = Durchschnittswert ReconnectMin: 30, // Zeit in Minuten, nach der die Anwendung neu gestartet wird, wenn keine neuen Daten eintreffen statesPrefix: "0_userdata.0.ecoflow", // Hier werden die ecoFlow States angelegt latitude: latitude, // Breitengrad des Standortes (wird automatisch eingesetzt) longitude: longitude, // Längengrad des Standortes (wird automatisch eingesetzt) //**************************************** // Überschussladung: //**************************************** ExcessCharge: false, //Überschussladung AN/AUS (true/false) //ID zum Einstellen der Ladeleistung des Speichers in Watt: ExcessChargePowerID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.slowChgPower", //ID des aktuellen Ladestandes des Speichers in %: ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.bmsMaster.soc", ExcessChargeSwitchMin: 5, //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. ExcessChargeMaxPower: 2000, //Maximale Ladeleistung des Speichers in Watt ExcessChargeOffsetPower: 0, //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. ExcessChargeStartPower: 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: "sonoff.0.NOUS-DVES_F0A844.ENERGY_Power", //ID des Schalters, der den Speicher aktiviert: ExcessChargeSwitchID: "sonoff.0.NOUS-DVES_F0A844.POWER", ExcessChargeSwitchOn: true, //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...) ExcessChargeSwitchOff: false, //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...) //---------------------------------------- //**************************************** Debug: false, mlog: false, PlotCmdID: 99999, -
@ralf77 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Eventuell ist ein Problem, dass der Delta Pro mindestens mit 200 Watt AC laden muss (weniger geht nicht). Daher sollte die Ladung frühestens starten, wenn 250 Watt überschuss da ist -
ExcessChargeStartPower: 250,
Laden dann mit 200 Watt um sicherzsutellen (also mindestens 50 Watt Offset), dass kein Strom zum Laden eigekauft wird und ein kleiner Puffer vorhanden ist.
ExcessChargeOffsetPower: -50,
Ausschalten solte sich die AC-Ladung sobald für mehr als 1 Minute mehr als 50 Watt aus dem Netz gezogen wird.
ExcessChargeSwitchMin: 1,
ExcessChargeStopPower: 100, // davon ausgehend das die delta 150 W zieht, auch wenn 0 bei slow Charge angegeben ist, also 50 W aus dem Netz kommen.@waly_de habe jetzt heute mit den definierten Werten getestet...
- Die Schaltsteckdose hat perfekt bei einem Überschuss von 250 Watt eingeschalten
- AC-LAdung hat mit 200 Watt gestartet
Bei Zuschaltem eines hohen Verbrauchers schaltet die AC-Steckdose auch wieder aus
Leider hängt die AC-Ladeleistug fest bei 200 Watt und wird nicht automatisch erhöht, wenn der Überschuss ansteigt. In der App bleiben konstant 200 Watt stehen, obwohl die Daten in den Objektem geändert werden...die AC-Ladeleistung wird aber nicht angepasst.

Somit stimmt irgendwas mit der Übergabe der Werte an den Server von Ecoflow nicht...
UPDATE: MEIN EIGENES Script zu dynamischen AC-Regelung regelt auch nicht mehr… es schaltet die Schaltsteckdose ein und der Delta Pro lädt über AC nur mit 200 Watt…egal welcher Überschuss vorhanden ist. Somit gehe ich davon aus, dass Ecoflow aktuell an den Servern wieder etwas macht.
Update 2: Mein eigenes Script klappt doch problemlos… hatte vergessen etwas in meinem Script umzustellen… dennoch regelt das Script von @Waly_de leider nicht… es übernimmt den Wert nicht in die App, wie original von mir geschrieben. Mein eigenes Script klappt aber problemlos.
-
@waly_de habe jetzt heute mit den definierten Werten getestet...
- Die Schaltsteckdose hat perfekt bei einem Überschuss von 250 Watt eingeschalten
- AC-LAdung hat mit 200 Watt gestartet
Bei Zuschaltem eines hohen Verbrauchers schaltet die AC-Steckdose auch wieder aus
Leider hängt die AC-Ladeleistug fest bei 200 Watt und wird nicht automatisch erhöht, wenn der Überschuss ansteigt. In der App bleiben konstant 200 Watt stehen, obwohl die Daten in den Objektem geändert werden...die AC-Ladeleistung wird aber nicht angepasst.

Somit stimmt irgendwas mit der Übergabe der Werte an den Server von Ecoflow nicht...
UPDATE: MEIN EIGENES Script zu dynamischen AC-Regelung regelt auch nicht mehr… es schaltet die Schaltsteckdose ein und der Delta Pro lädt über AC nur mit 200 Watt…egal welcher Überschuss vorhanden ist. Somit gehe ich davon aus, dass Ecoflow aktuell an den Servern wieder etwas macht.
Update 2: Mein eigenes Script klappt doch problemlos… hatte vergessen etwas in meinem Script umzustellen… dennoch regelt das Script von @Waly_de leider nicht… es übernimmt den Wert nicht in die App, wie original von mir geschrieben. Mein eigenes Script klappt aber problemlos.
@ralf77
Ich muss für meine Shelly Dose wohl erst einen Adapter in IO Broker installieren, korrekt?Wo kommt die Schaltsteckdose dann in's Skript und was muss ich noch ändern?
Das regulate des PS wirklich auf False? -
@ralf77
Ich muss für meine Shelly Dose wohl erst einen Adapter in IO Broker installieren, korrekt?Wo kommt die Schaltsteckdose dann in's Skript und was muss ich noch ändern?
Das regulate des PS wirklich auf False?@thomas-weller ja, lade den passenden Adapter in den ioBroker. Dann hast du die einzelnen Objekte, welche du im Script heranziehen kannst.
Regulation muss im Script natürlich auf True stehen….sonst wird das nichts.
In meinem Post vom 04.01 kannst Du sehen, wo ich meine Tuya-Schaltsteckdosen eingesetzt habe…da musst Du dann die Nelly einsetzen.
Und im PS darfst Du nicht auf Stromspeicher-Prio sein, wenn Du einspeisen möchtest.
-
@thomas-weller ja, lade den passenden Adapter in den ioBroker. Dann hast du die einzelnen Objekte, welche du im Script heranziehen kannst.
Regulation muss im Script natürlich auf True stehen….sonst wird das nichts.
In meinem Post vom 04.01 kannst Du sehen, wo ich meine Tuya-Schaltsteckdosen eingesetzt habe…da musst Du dann die Nelly einsetzen.
Und im PS darfst Du nicht auf Stromspeicher-Prio sein, wenn Du einspeisen möchtest.
@ralf77 said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Und im PS darfst Du nicht auf Stromspeicher-Prio sein, wenn Du einspeisen möchtest.
Kannst du mir das näher erläutern, stehe gerade auf dem Schlauch.
Hab es vorher immer so gehabt das ich über eine EF Automatisierung tagsüber den Stromspeicher priorisiere und zur dunklen Zeit die Stromversorgung priorisiere....
-
@ralf77 said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Und im PS darfst Du nicht auf Stromspeicher-Prio sein, wenn Du einspeisen möchtest.
Kannst du mir das näher erläutern, stehe gerade auf dem Schlauch.
Hab es vorher immer so gehabt das ich über eine EF Automatisierung tagsüber den Stromspeicher priorisiere und zur dunklen Zeit die Stromversorgung priorisiere....
@thomas-weller gehe in die App von Ecoflow.
Dann klick auf Raum und gehe auf Deinen Powerstream.
Dann in die Einstellungen
Dann prüfe, ob Du Dein PS unter Stromversorgungsmodus „Stromversorgung Priorisieren eingestellt hat.Dann sollte der PS auf alle Fälle das einspeisen, was an PV -Leistung anliegt.
-
@waly_de den Excess Power Daten Punkt habe ich gar nicht

Meine Config:
/*************************************** ********** YOUR DATA HERE ************ ****************************************/ var ConfigData = { email: "Accu.com", // Die App-Zugangsdaten von ecoFlow passwort: "meinPW", 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: "HWxxxxFxxx133", // 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 }, //####################################################################### { seriennummer: "DCExxxxxxxxxx", name: "DELTA Pro", typ: "DM", subscribe: true, // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt }, //####################################################################### { seriennummer: "HWxxxxxxx", name: "Kaffeemaschine", typ: "SM", subscribe: true, // "true": Alle Daten für dieses Gerät werden angefragt. "false": Es werden keine Statusdaten abgefragt }, //####################################################################### ], 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: "EF PV Ladeleistung", // Beliebiger Name id: "alias.0.EFINWATT", // Der Objektpfad zu dem Leistungswert in Watt (W) factor: 1, // Divisionsfaktor für den Leistungswert. (10 für die Delta) }, //####################################################################### ], //**************************************** // Erweiterte Einstellungen: //**************************************** SmartmeterTimeoutMin: 4, // Wenn der letzte Wert vom Smartmeter älter als "SmartmeterTimeoutMin" ist, wird das Script mit... SmartmeterFallbackPower: 150, // SmartmeterFallbackPower als aktuellem Realpowerwert weiter arbeiten, bis wieder aktuelle Daten geliefert werden. Regulation: true, // 'false' stellt das Setzen der Einspeiseleistung ab RegulationState: "Regulate", // Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unter 0_userdata.0.ecoflow angelegt) RegulationMultiPsMode: 0, // Wenn mehrere PS reguliert werden sollen. "balance" = 0 oder "serial" = 1 BasePowerOffset: 30, // Wird vom aktuellen Verbrauch abgezogen, um die Einspeiseleistung zu berechnen Zusatzpower_Offset: 10, // Zusatzpower startet ab einer Batterieladeleistung von MaxPower - Zusatzpower_Offset MinValueMin: 2, // Der Zeitraum in Minuten, aus dem der niedrigste Gesamtverbrauchswert geholt werden soll. 0 für Echtzeitwert MinValueAg: 0, // Art der Ermittlung des kleinsten Wertes: 0 = Minimalwert, 1 = Durchschnittswert ReconnectMin: 30, // Zeit in Minuten, nach der die Anwendung neu gestartet wird, wenn keine neuen Daten eintreffen statesPrefix: "0_userdata.0.ecoflow", // Hier werden die ecoFlow States angelegt latitude: latitude, // Breitengrad des Standortes (wird automatisch eingesetzt) longitude: longitude, // Längengrad des Standortes (wird automatisch eingesetzt) //**************************************** // Überschussladung: //**************************************** ExcessCharge: false, //Überschussladung AN/AUS (true/false) //ID zum Einstellen der Ladeleistung des Speichers in Watt: ExcessChargePowerID: "0_userdata.0.ecoflow.app_xx_xx_thing_property_set.writeables.slowChgPower", //ID des aktuellen Ladestandes des Speichers in %: ExcessChargePowerBatSocID: "0_userdata.0.ecoflow.app_device_property_xx.data.params.bmsMaster.soc", ExcessChargeSwitchMin: 5, //Zeit in Minuten die der Schalter mindestens in der letzten geschalteten Position verbleiben muss. ExcessChargeMaxPower: 2000, //Maximale Ladeleistung des Speichers in Watt ExcessChargeOffsetPower: 0, //Wird der Leistungsanforderung hinzugerechnet um Messabweichungen auszugleichen. ExcessChargeStartPower: 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: "sonoff.0.NOUS-DVES_F0A844.ENERGY_Power", //ID des Schalters, der den Speicher aktiviert: ExcessChargeSwitchID: "sonoff.0.NOUS-DVES_F0A844.POWER", ExcessChargeSwitchOn: true, //Wert, der zum Aktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...) ExcessChargeSwitchOff: false, //Wert, der zum Deaktivieren des Schalters gesetzt werden muss (1/0, true/false, "ON"/"OFF"...) //---------------------------------------- //**************************************** Debug: false, mlog: false, PlotCmdID: 99999, -
@waly_de wie funktioniert das log für zwei Geräte ?
const logpath = '/opt/iobroker/log/'; const SERIAL_TO_LOG = "R351ZEB4HF4Exx1" const LogAllOfSerial = true //false= nur Set-Anweisungen, true = alles von der Seriennummer const SERIAL_TO_LOG = "HW51Z6xxxx2" const LogAllOfSerial = true //false nur Set-Anweisungen, true = alles von der Seriennummerfunktioniert das Script nicht mehr
@aherby sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
wie funktioniert das log für zwei Geräte ?
const logpath = '/opt/iobroker/log/'; const SERIAL_TO_LOG = "R351ZEB4HF4Exx1" const LogAllOfSerial = true //false= nur Set-Anweisungen, true = alles von der Seriennummer const SERIAL_TO_LOG = "HW51Z6xxxx2" const LogAllOfSerial = true //false nur Set-Anweisungen, true = alles von der Seriennummer
funktioniert das Script nicht mehrconst SERIAL_TO_LOG = "R351ZEB4HF4Exx1,HW51Z6xxxx2"
sollte gehen. ich würde aber eher einzeln loggen, allein wegen der Übersichtlichkeit
-
@waly_de Wenn dann möchte ich den ioBroker so minimal (stromsparend und einfach) wie möglich betreiben. Mein Homey Pro ist ja auch nur ein kleines und kompaktes System. Wie kann ich das machen? Was brauche ich dazu?
P.S. Ist vdein Skript auch für in Verbindung mit der Delta Pro geeignet? Ich lese im Skript nur was von DeltaMax und Delta2Max.@lui1307 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@waly_de Wenn dann möchte ich den ioBroker so minimal (stromsparend und einfach) wie möglich betreiben. Mein Homey Pro ist ja auch nur ein kleines und kompaktes System. Wie kann ich das machen? Was brauche ich dazu?
https://amzn.to/47sGkKV Raspberry Pi 4 Modell B; 4 GB
https://amzn.to/4aZJl8H Geekworm Raspberry Pi 4 Model B Aluminum Gehäuse Case, Heavy Duty Passive Cooling Heat Dissaption Metal Case for Raspberry Pi 4B 8GB/4GB/2GBhttps://www.youtube.com/watch?v=xb-S8pWtwu4 ioBroker installieren in nur 5 Minuten | verdrahtet.info [4K]
P.S. Ist vdein Skript auch für in Verbindung mit der Delta Pro geeignet? Ich lese im Skript nur was von DeltaMax und Delta2Max.
Ja, sollte laufen
-
@Waly_de irgendwas/ irgendeine Änderung hat die dynamische Einspeiseregelung des PS mit der Version 1.2 und 1.21 (neu) deutlich verschlechtert. Siehe das Bild und die Unterschiede in der Regelung.
Gestern hatte ich noch die Version 1.1.3.2 vom 31.08 in Verwendung (alt)
@ralf77 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@Waly_de irgendwas/ irgendeine Änderung hat die dynamische Einspeiseregelung des PS mit der Version 1.2 und 1.21 (neu) deutlich verschlechtert. Siehe das Bild und die Unterschiede in der Regelung.
Gestern hatte ich noch die Version 1.1.3.2 vom 31.08 in Verwendung (alt)Grundsätzlich hat sich an der Regelung nicht viel geändert.
Die Überschussladung bringt aber weitere Messgrößen hinzu die potentiell größere Schwankungen verursachen können. Das wird doch nicht besser je mehr man einträgt, zum Beispiel auch bei additionalpower.
Ich hab allerdings einige Standardwerte abgeändert, die vielleicht auch zu etwas größeren Schwankungenspitzen führen könnten. Bitte Versuch mal zu spielen mit den folgenden Parametern:MinValueMin: 2 (war früher mal 3)
dann sucht im Quelltext nach:
/*======================================================= ========= Timer ============ =======================================================*/ //jede x Sekunden var intervalID = setInterval(function () { if (true || istTag()) { CheckforReconnect(function () { //SetBasePower(GetNextAsn()); SetBasePower() }); } else { ////SetBasePower(firstPsSn); } }, 10 * 1000);war früher mal:
/*======================================================= ========= Timer ============ =======================================================*/ //jede x Sekunden var intervalID = setInterval(function () { if (true || istTag()) { CheckforReconnect(function () { //SetBasePower(GetNextAsn()); SetBasePower() }); } else { ////SetBasePower(firstPsSn); } }, 15 * 1000);also 15 Sekunden Intervalle, statt 10.
-
@waly_de habe jetzt heute mit den definierten Werten getestet...
- Die Schaltsteckdose hat perfekt bei einem Überschuss von 250 Watt eingeschalten
- AC-LAdung hat mit 200 Watt gestartet
Bei Zuschaltem eines hohen Verbrauchers schaltet die AC-Steckdose auch wieder aus
Leider hängt die AC-Ladeleistug fest bei 200 Watt und wird nicht automatisch erhöht, wenn der Überschuss ansteigt. In der App bleiben konstant 200 Watt stehen, obwohl die Daten in den Objektem geändert werden...die AC-Ladeleistung wird aber nicht angepasst.

Somit stimmt irgendwas mit der Übergabe der Werte an den Server von Ecoflow nicht...
UPDATE: MEIN EIGENES Script zu dynamischen AC-Regelung regelt auch nicht mehr… es schaltet die Schaltsteckdose ein und der Delta Pro lädt über AC nur mit 200 Watt…egal welcher Überschuss vorhanden ist. Somit gehe ich davon aus, dass Ecoflow aktuell an den Servern wieder etwas macht.
Update 2: Mein eigenes Script klappt doch problemlos… hatte vergessen etwas in meinem Script umzustellen… dennoch regelt das Script von @Waly_de leider nicht… es übernimmt den Wert nicht in die App, wie original von mir geschrieben. Mein eigenes Script klappt aber problemlos.
@ralf77 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@Waly_de leider nicht… es übernimmt den Wert nicht in die App, wie original von mir geschrieben. Mein eigenes Script klappt aber problemlos.
aber in das Objekt wird es richtig geschrieben?
(ecoflow.app_xx_xx_thing_property_set.writeables.slowChgPower) ? -
@ralf77 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@Waly_de leider nicht… es übernimmt den Wert nicht in die App, wie original von mir geschrieben. Mein eigenes Script klappt aber problemlos.
aber in das Objekt wird es richtig geschrieben?
(ecoflow.app_xx_xx_thing_property_set.writeables.slowChgPower) ?es kann übrigens sehr Interessant sein mal diesen Wert am Ende der Konfiguration zu setzen:
Debug: false, mlog: true,...dann werden im Protokoll viele Dinge ausgegeben, die zeigen, mit welchen Daten das Skript gerade arbeitet und wie sie ausgewertet werden. Es wird zum Beispiel auch ausgegeben, ob ein AC-Wert bei einem PowerStream oder bei einer Delta gesetzt oder geändert wird.
-
@waly_de said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@ralf77 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Eventuell ist ein Problem, dass der Delta Pro mindestens mit 200 Watt AC laden muss (weniger geht nicht). Daher sollte die Ladung frühestens starten, wenn 250 Watt überschuss da ist -
ExcessChargeStartPower: 250,
Laden dann mit 200 Watt um sicherzsutellen (also mindestens 50 Watt Offset), dass kein Strom zum Laden eigekauft wird und ein kleiner Puffer vorhanden ist.
ExcessChargeOffsetPower: -50,
Ausschalten solte sich die AC-Ladung sobald für mehr als 1 Minute mehr als 50 Watt aus dem Netz gezogen wird.
ExcessChargeSwitchMin: 1,
ExcessChargeStopPower: 100, // davon ausgehend das die delta 150 W zieht, auch wenn 0 bei slow Charge angegeben ist, also 50 W aus dem Netz kommen.So teste ich jetzt mal.
Habe zusätzlich alle SmartPlug`s demontiert.
Die gehen mit doppeltem Wert des Verkaufs direkt per PayPal an dich @Waly_de

@thomas-weller sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@waly_de said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@ralf77 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Eventuell ist ein Problem, dass der Delta Pro mindestens mit 200 Watt AC laden muss (weniger geht nicht). Daher sollte die Ladung frühestens starten, wenn 250 Watt überschuss da ist -
ExcessChargeStartPower: 250,
Laden dann mit 200 Watt um sicherzsutellen (also mindestens 50 Watt Offset), dass kein Strom zum Laden eigekauft wird und ein kleiner Puffer vorhanden ist.
ExcessChargeOffsetPower: -50,
Ausschalten solte sich die AC-Ladung sobald für mehr als 1 Minute mehr als 50 Watt aus dem Netz gezogen wird.
ExcessChargeSwitchMin: 1,
ExcessChargeStopPower: 100, // davon ausgehend das die delta 150 W zieht, auch wenn 0 bei slow Charge angegeben ist, also 50 W aus dem Netz kommen.So teste ich jetzt mal.
Habe zusätzlich alle SmartPlug`s demontiert.
Die gehen mit doppeltem Wert des Verkaufs direkt per PayPal an dich @Waly_de

Sehr mutig! Dann drücke ich natürlich doppelt die Daumen das es funktioniert
