NEWS
ecoflow-connector-Script zur dynamischen Leistungsanpassung
-
@waly_de wie gesagt, wenn die DP mit 500W hinten am AC Eingang lÀd und ich hÀnge jetzt vorne an die DP Steckdose einen WÀschetrockner ebenfalls mit 500W Verbrauch, dann wird das aufaddiert und in Summe 1.000W aus dem Hausnetz gezogen (AC Ladeleistung + die Leistung vom Verbraucher an der DP). Die Leistung vom Verbraucher werden nur aus der Batterie gezogen, wenn der AC Ladeeingang der DP aus ist.
Mein Problem jetzt:
ich habe z.B. in dem oberen Fall gerade 500W PV zur VerfĂŒgung mit der ich die DP Laden wollte, und was auch passt. Kommt jetzt der Trockner hinzu macht es keinen Sinn die DP weiter zu Laden sondern die 500W fĂŒr den Trockner zu nutzen. Daher wĂ€re es fein, wenn man einstellen könnte, dass das AC Laden ausgesetzt wird, wenn man vorne an der DP die Steckdosen aktiviert.@accu hm... das ist blöd. Bei der Ăberschussladung wird die gemessene Ladeleistung von Real power abgezogen, damit man auch weiterhin den echten Ăberschuss sehen kann.
Damit in deinem Fall jetzt richtig gerechnet wird, mĂŒsste die Leistung, die am AC Ausgang des DP angeschlossen ist, also dem Realpower wieder zugerechnet werden.
Die folgenden Lösungsmöglichkeiten fallen mir ein:
1.) finde einen Datenpunkt deines DP, der ausschlieĂlich die Lade Leistung der Batterie ohne den Abgriff am AC Port reprĂ€sentiert und setzte diesen bei: "ExcessActualPowerID" ein. Dann wird das was in den Trockner geht wieder ganz normal als Verbrauch gewertet und die Regulierung sollte funktionieren.2.) finde einen Datenpunkt deines DP, der ausschlieĂlich die Leistung an die am AC Port abgegriffen wird. Alternativ kannst du auch eine Messsteckdose in den AC Port stecken und dessen Messergebnis verwenden.
Unter AdditionalPower gibst du dann an:AdditionalPower: [ { name: "Dein Messwert", id: "die.0.messwert.id", factor: -1, offset:0, NoFeedIn: false, // True setzen, wenn die enthaltene Leistung nicht ins Hausnetz flieĂt. (Nur in PVTotal aufnehmen) NoPV: true, // true setzen, wenn die enthaltene Leistung nicht in TotalPV einflieĂen soll. (Nur in Realpower aufnehmen) },Dadurch wird dann dein Messwert wieder vom errechneten Ăberschuss abgezogen.
Hilft dir das?
-
@waly_de Das ist eine Super Sache und ich bin einfach nur begeistert.
Allerdings erschliessen sich mir 2 Dinge nicht. Was hat es mit den Parametern battPozOn: 99, battPozOff: 92, tatsÀchlich auf sich und was ist gem. der Beschreibung/Kommentierung mit "Normalbetrieb" gemeint? Er regelt lustig vor sich hin und die Parameter/Settings erklÀren sich durch ein bisschen ausprobieren. Allerdings scheinen die 2 genannten nicht wirklich Wirkung zu zeigen. Oder aber ich bin gÀnzlich auf dem Holzweg.
Vielleicht kann jemand auf die Schnelle Licht ins dunkel bringen :-)
Vielen Dank vorab dafĂŒr.@matz75 Es freut mich, dass ich dir helfen konnte!
battPozOn: 99, battPozOff: 92
Stammen aus einer Zeit, als der PS noch stur seine komplette Arbeit eingestellt hat, wenn die Batterie voll war. D.h. dass unter UmstĂ€nden noch zur VerfĂŒgung stehende Solarenergie einfach nicht abgerufen wurde. Ich hielt es aber fĂŒr richtiger in diesem Fall einfach alles einzuspeisen, auch wenn dadurch etwas ins Netz zurĂŒckflieĂt⊠Kostet ja nichts. Inzwischen kann der PS das auch mit Hausmitteln.
Zu der Funktion der Parameter:
Hat die Batterie einen Ladestand von 99 % erreicht, wird die Einspeiseleistung des PS fest auf Max Power also meistens 600 W eingestellt, bis die Batterie auf 92 % entladen wurde . dann wird wieder ganz normal geregelt.(null Einspeisung) dabei spielt es dann keine Rolle, ob genĂŒgend PV Energie zur VerfĂŒgung steht.
Alternativ kann man mit battOnSwitchPrio noch festlegen, dass nicht voll eingespeist wird, sondern dass der PS in den Batterie PrioritĂ€tsmodus schaltet. dabei, sollte dann die Batterie auf dem entsprechenden Ladestand gehalten werden, und ĂŒberschĂŒssige PV Energie automatisch eingespeist werden. Eine Regelung durch das Skript erfolgt dann nicht mehr.Alles soweit klar?
-
@waly_de Die Idee des Scripts, die Powerstream-Leistung dynamisch an die Leistung am Smartmeter anzupassen, finde ich toll.
Nach einigem Hin und Her habe ich das Skript auch zum Laufen gebracht, so dass nur noch beim Starten keine Fehler- und nur noch zwei Warnmeldungen (
warn javascript.0 (2173) at getStateCr (script.js.common.EcoFlow-Connector:2612:16
bzw.
warn javascript.0 (2173) at script.js.common.EcoFlow-Connector:2073:37
) auftauchen. Leider bleibt der gewĂŒnschte Erfolg aus.
Die Verbindung zu meinem Discovergy-Smartmeter scheint zu funktionieren. Zumindest kommt es zu Fehlermeldungen, wenn ich die Login-Daten von Smartmeter und Powerstream verfÀlsche.
Die SmartmeterID in W - allerdings mit zwei Nachkommastellen - habe ich als "discovergy.0.12345678.Power_Consumption" gefunden. Leider fĂŒhrt eine VerĂ€nderung des Wertes nicht zur Anpassung der Powerstreamleistung.
Hat jemand eine Idee, wo der Fehler liegen könnte?@ub35bo sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@waly_de Die Idee des Scripts, die Powerstream-Leistung dynamisch an die Leistung am Smartmeter anzupassen, finde ich toll.
Nach einigem Hin und Her habe ich das Skript auch zum Laufen gebracht, so dass nur noch beim Starten keine Fehler- und nur noch zwei Warnmeldungen (
warn javascript.0 (2173) at getStateCr (script.js.common.EcoFlow-Connector:2612:16
bzw.
warn javascript.0 (2173) at script.js.common.EcoFlow-Connector:2073:37
) auftauchen. Leider bleibt der gewĂŒnschte Erfolg aus.
Die Verbindung zu meinem Discovergy-Smartmeter scheint zu funktionieren. Zumindest kommt es zu Fehlermeldungen, wenn ich die Login-Daten von Smartmeter und Powerstream verfÀlsche.
Die SmartmeterID in W - allerdings mit zwei Nachkommastellen - habe ich als "discovergy.0.12345678.Power_Consumption" gefunden. Leider fĂŒhrt eine VerĂ€nderung des Wertes nicht zur Anpassung der Powerstreamleistung.
Hat jemand eine Idee, wo der Fehler liegen könnte?Mit den Fragmenten deiner Fehlermeldungen und Warnmeldung kann ich leider nicht so viel anfangen. Um dazu was sagen zu können, geh bitte in die Protokollansicht von iobroker und kopiere dort die Fehlermeldungen und die Zeilen davor und danach und setze sie hier im Forum als Code ein. Dazu dient der Schalter oben "</>"
Bitte sieh dir unter Objects "0_userdata.0.ecoflow.RealPower" an.
Wenn sich dieser Wert entsprechend deines Verbrauchs regelmĂ€Ăig aktualisiert ist das schon mal ein gutes Zeichen.
Wird dann nicht reguliert, liegt es in 90 % der FĂ€lle daran, dass der History Adapter entweder nicht installiert oder nicht aktiviert ist. -
@matz75 Es freut mich, dass ich dir helfen konnte!
battPozOn: 99, battPozOff: 92
Stammen aus einer Zeit, als der PS noch stur seine komplette Arbeit eingestellt hat, wenn die Batterie voll war. D.h. dass unter UmstĂ€nden noch zur VerfĂŒgung stehende Solarenergie einfach nicht abgerufen wurde. Ich hielt es aber fĂŒr richtiger in diesem Fall einfach alles einzuspeisen, auch wenn dadurch etwas ins Netz zurĂŒckflieĂt⊠Kostet ja nichts. Inzwischen kann der PS das auch mit Hausmitteln.
Zu der Funktion der Parameter:
Hat die Batterie einen Ladestand von 99 % erreicht, wird die Einspeiseleistung des PS fest auf Max Power also meistens 600 W eingestellt, bis die Batterie auf 92 % entladen wurde . dann wird wieder ganz normal geregelt.(null Einspeisung) dabei spielt es dann keine Rolle, ob genĂŒgend PV Energie zur VerfĂŒgung steht.
Alternativ kann man mit battOnSwitchPrio noch festlegen, dass nicht voll eingespeist wird, sondern dass der PS in den Batterie PrioritĂ€tsmodus schaltet. dabei, sollte dann die Batterie auf dem entsprechenden Ladestand gehalten werden, und ĂŒberschĂŒssige PV Energie automatisch eingespeist werden. Eine Regelung durch das Skript erfolgt dann nicht mehr.Alles soweit klar?
-
@thomas-weller sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Hallo @Waly_de
hab bei mir seit gestern auch das Eproom-Schutz Skript laufen. Funktioniert so perfekt wie das alte.
Danke!!
FĂŒr mich wĂ€re noch folgende Funktionen wichtig:
- Habe am AC Ausgang der DeltaPro die Heizung der Wasserbetten da diese immer ~300Watt ganz kurz ziehen. Das Skript regelt das natĂŒrlich nicht raus in dieser Geschwindigkeit und es kommt zu 0,5-1kWh Netzbezug ĂŒber Nacht..
Nun besteht aber die Gefahr dass die Delta Pro leer lĂ€uft im Winter (Lade nur ĂŒber ShellySchalter per AC auf).
Von daher wÀre eine Funktion gut die sagt "IMMER bei <5% SOC Laden bis 10% das die AC-Versorgung immer gewÀhrleistet ist.
Das wĂŒrde ich auch extern ĂŒber ein blocky lösen. Hat ja nicht direkt mit der Regelung zu tun und ist sehr einfach und schnell zusammengeklickt đ
- Vorbereitend fĂŒr eine WallboxSteuerung wĂ€re es Super wenn ich in IOBroker einen Wert hĂ€tte der nach deinem Skript den weiterhin vorhandenen Ăberschuss im Hause darstellt.
Zum Beispiel: 12.000Watt Ăberschuss abzgl. 1.200Watt AC-Ladeleistung = 10.800Watt weithin Ăberschuss fĂŒr z.B.: Wallbox
Reicht Dir dafĂŒr nicht der Wert deines Smartmeters ? Der wird ja dann negativ und zeigt genau das an was du möchtestâŠ
@waly_de said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@thomas-weller sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Hallo @Waly_de
hab bei mir seit gestern auch das Eproom-Schutz Skript laufen. Funktioniert so perfekt wie das alte.
Danke!!
FĂŒr mich wĂ€re noch folgende Funktionen wichtig:
- Habe am AC Ausgang der DeltaPro die Heizung der Wasserbetten da diese immer ~300Watt ganz kurz ziehen. Das Skript regelt das natĂŒrlich nicht raus in dieser Geschwindigkeit und es kommt zu 0,5-1kWh Netzbezug ĂŒber Nacht..
Nun besteht aber die Gefahr dass die Delta Pro leer lĂ€uft im Winter (Lade nur ĂŒber ShellySchalter per AC auf).
Von daher wÀre eine Funktion gut die sagt "IMMER bei <5% SOC Laden bis 10% das die AC-Versorgung immer gewÀhrleistet ist.
Das wĂŒrde ich auch extern ĂŒber ein blocky lösen. Hat ja nicht direkt mit der Regelung zu tun und ist sehr einfach und schnell zusammengeklickt đ
- Vorbereitend fĂŒr eine WallboxSteuerung wĂ€re es Super wenn ich in IOBroker einen Wert hĂ€tte der nach deinem Skript den weiterhin vorhandenen Ăberschuss im Hause darstellt.
Zum Beispiel: 12.000Watt Ăberschuss abzgl. 1.200Watt AC-Ladeleistung = 10.800Watt weithin Ăberschuss fĂŒr z.B.: Wallbox
Reicht Dir dafĂŒr nicht der Wert deines Smartmeters ? Der wird ja dann negativ und zeigt genau das an was du möchtestâŠ
Blocky schaue ich mir mal an.
Damit schalte ich dann dein Skript aus wenn die Ladund der DP zu gering wird?Der Wert vom Smartmeter reicht deshalb nicht weil die WallboxREGELUNG dann wohl auĂerhalb von deinem Skript sitzt.
Zwei Regelungen mit der gleichen Datenbasis funktioniert nicht wirklich.Deshalb:
- SmartMeter Wert
- SmartMeter Wert inkl./abzgl. WalySkript
- Neuer SmartMeterWert fĂŒr die Wallbox
Hoffe ich konnte mein Vorhaben richtig rĂŒber bringen.
- Habe am AC Ausgang der DeltaPro die Heizung der Wasserbetten da diese immer ~300Watt ganz kurz ziehen. Das Skript regelt das natĂŒrlich nicht raus in dieser Geschwindigkeit und es kommt zu 0,5-1kWh Netzbezug ĂŒber Nacht..
-
Das Blockly sollte dann fĂŒr meine nicht vorhandenen Programmierkenntnisse so aussehen:
Wenn SOC der DeltaPro <5%
= Skript zur dynamischen Leistungsregelung stoppen
= Shelly SmartPlug (AC-Ladung der Delta Pro bei mir) auf AN
= Excees Power z.b.: 500Watt
Wenn SOC der DeltaPro wieder >10%
= Skript zur dynamischen Leistungsregelung startenJetzt muss ich das nur irgendwie zusammenklicken :dizzy_face:
-
@ub35bo sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@waly_de Die Idee des Scripts, die Powerstream-Leistung dynamisch an die Leistung am Smartmeter anzupassen, finde ich toll.
Nach einigem Hin und Her habe ich das Skript auch zum Laufen gebracht, so dass nur noch beim Starten keine Fehler- und nur noch zwei Warnmeldungen (
warn javascript.0 (2173) at getStateCr (script.js.common.EcoFlow-Connector:2612:16
bzw.
warn javascript.0 (2173) at script.js.common.EcoFlow-Connector:2073:37
) auftauchen. Leider bleibt der gewĂŒnschte Erfolg aus.
Die Verbindung zu meinem Discovergy-Smartmeter scheint zu funktionieren. Zumindest kommt es zu Fehlermeldungen, wenn ich die Login-Daten von Smartmeter und Powerstream verfÀlsche.
Die SmartmeterID in W - allerdings mit zwei Nachkommastellen - habe ich als "discovergy.0.12345678.Power_Consumption" gefunden. Leider fĂŒhrt eine VerĂ€nderung des Wertes nicht zur Anpassung der Powerstreamleistung.
Hat jemand eine Idee, wo der Fehler liegen könnte?Mit den Fragmenten deiner Fehlermeldungen und Warnmeldung kann ich leider nicht so viel anfangen. Um dazu was sagen zu können, geh bitte in die Protokollansicht von iobroker und kopiere dort die Fehlermeldungen und die Zeilen davor und danach und setze sie hier im Forum als Code ein. Dazu dient der Schalter oben "</>"
Bitte sieh dir unter Objects "0_userdata.0.ecoflow.RealPower" an.
Wenn sich dieser Wert entsprechend deines Verbrauchs regelmĂ€Ăig aktualisiert ist das schon mal ein gutes Zeichen.
Wird dann nicht reguliert, liegt es in 90 % der FĂ€lle daran, dass der History Adapter entweder nicht installiert oder nicht aktiviert ist.@waly_de said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
0_userdata.0.ecoflow.RealPower
Herzlichen Dank fĂŒr deine schnelle RĂŒckmeldung, die ich versucht habe umzusetzen.
ZunĂ€chst das Positive:- der in "0_userdata.0.ecoflow.RealPower" als ganze Zahl enthaltene Wert stimmt weitgehend bis auf einen kleinen Zeitversatz mit den Werten ĂŒberein, die ich der Discovergy-App entnehmen kann.
- Der History-Adapter ist in der Version 3.0.1 und es laufen 2 Instanzen ohne Fehlermeldung.
history.0
2024-03-17 17:07:02.443 info starting. Version 3.0.1 in /opt/iobroker/node_modules/iobroker.history, node: v18.19.1, js-controller: 5.0.19history.0
2024-03-17 17:07:02.507 info enabled logging of 0_userdata.0.ecoflow.RealPower (Count=1), Alias=false
host.Raspberry-Pi5-8GB
2024-03-17 17:07:03.417 info instance system.adapter.history.1 started with pid 77473history.1
2024-03-17 17:07:04.128 info starting. Version 3.0.1 in /opt/iobroker/node_modules/iobroker.history, node: v18.19.1, js-controller: 5.0.19Die Warnmeldungen, die einmalig beim Start bzw. Neustart zwischen zwei Browseranmeldungen auftauchen, habe ich folgend hineinkopiert. Dabei handelt es sich um alle Befehle,
javascript.0
2024-03-17 17:00:44.111 info Stop script script.js.common.EcoFlow-Connectorjavascript.0
2024-03-17 17:00:44.115 info script.js.common.EcoFlow-Connector: Ecoflow MQTT-Client beendetjavascript.0
2024-03-17 17:00:44.221 info Start javascript script.js.common.EcoFlow-Connectorjavascript.0
2024-03-17 17:00:44.242 info script.js.common.EcoFlow-Connector: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptionsjavascript.0
2024-03-17 17:00:44.503 warn getState "0_userdata.0.ecoflow.Regulate" not found (3) states[id]=nulljavascript.0
2024-03-17 17:00:44.505 warn at getStateCr (script.js.common.EcoFlow-Connector:2612:16)javascript.0
2024-03-17 17:00:44.505 warn at script.js.common.EcoFlow-Connector:2073:37javascript.0
2024-03-17 17:00:44.599 info script.js.common.EcoFlow-Connector: Verbunden mit dem Ecoflow MQTT-BrokerIch hoffe, dass ich die fĂŒr dein VerstĂ€ndnis notwendigen Meldungen erwischt habe.
FĂŒr mich sieht es so aus, dass das Problem auf der EcoFlow-Seite liegt. Muss ich neben den Seriennummern im Script vielleicht auch noch einen zusĂ€tzlichen Adapter installieren? -
Das Blockly sollte dann fĂŒr meine nicht vorhandenen Programmierkenntnisse so aussehen:
Wenn SOC der DeltaPro <5%
= Skript zur dynamischen Leistungsregelung stoppen
= Shelly SmartPlug (AC-Ladung der Delta Pro bei mir) auf AN
= Excees Power z.b.: 500Watt
Wenn SOC der DeltaPro wieder >10%
= Skript zur dynamischen Leistungsregelung startenJetzt muss ich das nur irgendwie zusammenklicken :dizzy_face:
@thomas-weller said in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Das Blockly sollte dann fĂŒr meine nicht vorhandenen Programmierkenntnisse so aussehen:
Wenn SOC der DeltaPro <5%
= Skript zur dynamischen Leistungsregelung stoppen
= Shelly SmartPlug (AC-Ladung der Delta Pro bei mir) auf AN
= Excees Power z.b.: 500Watt
Wenn SOC der DeltaPro wieder >10%
= Skript zur dynamischen Leistungsregelung startenJetzt muss ich das nur irgendwie zusammenklicken :dizzy_face:
Hier ĂŒbrigens das funktionierende Ergebnis fĂŒr diesen Anwendungsfall (Keine PV an Delta oder PS da lAdung nur ĂŒber AC-Schaltsteckdose und Speicher darf nicht leer werden weil z.B. KĂŒhlschrank am AC-Ausgang hĂ€ngt):

-
@matz75 Es freut mich, dass ich dir helfen konnte!
battPozOn: 99, battPozOff: 92
Stammen aus einer Zeit, als der PS noch stur seine komplette Arbeit eingestellt hat, wenn die Batterie voll war. D.h. dass unter UmstĂ€nden noch zur VerfĂŒgung stehende Solarenergie einfach nicht abgerufen wurde. Ich hielt es aber fĂŒr richtiger in diesem Fall einfach alles einzuspeisen, auch wenn dadurch etwas ins Netz zurĂŒckflieĂt⊠Kostet ja nichts. Inzwischen kann der PS das auch mit Hausmitteln.
Zu der Funktion der Parameter:
Hat die Batterie einen Ladestand von 99 % erreicht, wird die Einspeiseleistung des PS fest auf Max Power also meistens 600 W eingestellt, bis die Batterie auf 92 % entladen wurde . dann wird wieder ganz normal geregelt.(null Einspeisung) dabei spielt es dann keine Rolle, ob genĂŒgend PV Energie zur VerfĂŒgung steht.
Alternativ kann man mit battOnSwitchPrio noch festlegen, dass nicht voll eingespeist wird, sondern dass der PS in den Batterie PrioritĂ€tsmodus schaltet. dabei, sollte dann die Batterie auf dem entsprechenden Ladestand gehalten werden, und ĂŒberschĂŒssige PV Energie automatisch eingespeist werden. Eine Regelung durch das Skript erfolgt dann nicht mehr.Alles soweit klar?
@waly_de
Frage 1:
Ich habe noch mal ein Problem mit battPozOn.
Ich habe zwei Powerstreams, die im Modus serial arbeiten.
Wenn der Zweite jetzt bei den eingestellten 96% ankommt, wird wie gewĂŒnscht auf volle Leistung gestellt. Leider geht der Einspeisesollwert (SetAC) irgendwann auf 0. Dann wird nur noch Ăberschuss vom Powerstream eingespeist (Einspeisekontrolle ist deaktiviert).Woran kann das lieg? Laut den Protokollen "denkt" das Script weiterhin der Powerstream steht weiterhin auf 600 W.
In Folge dessen wird auch zu viel eingespeist und ich gebe ca. die Leistung ins Netz ab, die vom PS2 gerade anstelle der gewĂŒnschten 600W eingespeist werden.Starte ich das Script neu, greift wieder battPozOn, aber nur fĂŒr begrenzte Zeit.
Frage 2:
Ich habe zwei Powerstreams mit angeschlossener Powerstation und an jeder Powerstation sind ebenfalls Paneele angeschlossen.
Ist es fĂŒr die Regelung erforderlich diese zu berĂŒcksichtigen? SĂ€mtliche Steuerung erfolgt in ioBroker. Die Auswertung und Visualisierung erledige ich komplett extern in Home Assistant. -
@maik1007 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@waly_de Ich habe mir jetzt mal den Zustand Regulate angeschaut. Wenn ich das richtig deute steuert der Wert ja nur ob das Script die Einspeisung reguliert oder nicht. Ich kann damit aber nicht die Einspeisung Stoppen was in meinem Fall aber erforderlich wĂ€re. Ich möchte ja gern tagsĂŒber wenn die Sonne scheint den Akku laden und nichts einspeisen da der Strom da meist gĂŒnstig ist. Mit true und false fĂŒr Regulate stoppe ich ja nur die dynamiache Anpassung kann aber nicht das einspeisen aussetzen/stoppen.
Vielen Dank schon mal fĂŒr deine Hilfe und UnterstĂŒzung
es gibt darĂŒber hinaus noch den Parameter:
RegulationOffPower: -1, // Wird die Regulation per State abgestellt, wird die Einspeiseleistung des ersten Powerstreams auf diesen Wert gesetzt (-1 = keine Ănderung, -2 = Batterie Priomodus)das kann fĂŒr jeden einzelnen PS separat eingestellt werden. Gibst Du hier 0 an, sollte das passieren was Du dir wĂŒnscht.
@waly_de
Super und vielen Dank. Ich habe es jetzt auf -2 Prio Speicher gestellt. Das war genau das was ich gesucht habe đ so langsam komme ich dahinter was die ganzen Optionen bedeuten.
Des Weiteren habe ich mir jetzt per Blockly ein simples Script erstellt das auf einen Schalter in Home Assistant reagiert. So kann ich per Home Assistant die dynamische Steuerung ein und aus stellen đ in Home Assistant kann ich nun auch ganz simpel alles per Zeitschaltuhr steuern. FĂŒr mich ist das die beste Lösung da ich im Home Assistant zu Hause bin. Ich habe auch schon ĂŒberlegt wie ich das ganze ohne mein Zutun automatisieren könnte aber da bin ich selber noch auf keine Lösung gekommen. Das ganze mĂŒsstest abhĂ€ngig vom Akkustand des Speichers geschehen. Hab ich mehr Strom kann ich mehr teure Tibber Stunden ausgleichen. Ist der Akkustand niedriger muss ich mich auf die teuersten konzentrieren. Momentan mache ich das per Zeitschaltuhr ihn Home Assistant. Automatisieren wird da schwer da zu viele Faktoren eine Rolle spielen.
Das Script funktioniert jetzt aber genauso wie ich es mir vorgestellt habe. DafĂŒr und fĂŒr deine Hilfe vielen Dank. -
@waly_de
Super und vielen Dank. Ich habe es jetzt auf -2 Prio Speicher gestellt. Das war genau das was ich gesucht habe đ so langsam komme ich dahinter was die ganzen Optionen bedeuten.
Des Weiteren habe ich mir jetzt per Blockly ein simples Script erstellt das auf einen Schalter in Home Assistant reagiert. So kann ich per Home Assistant die dynamische Steuerung ein und aus stellen đ in Home Assistant kann ich nun auch ganz simpel alles per Zeitschaltuhr steuern. FĂŒr mich ist das die beste Lösung da ich im Home Assistant zu Hause bin. Ich habe auch schon ĂŒberlegt wie ich das ganze ohne mein Zutun automatisieren könnte aber da bin ich selber noch auf keine Lösung gekommen. Das ganze mĂŒsstest abhĂ€ngig vom Akkustand des Speichers geschehen. Hab ich mehr Strom kann ich mehr teure Tibber Stunden ausgleichen. Ist der Akkustand niedriger muss ich mich auf die teuersten konzentrieren. Momentan mache ich das per Zeitschaltuhr ihn Home Assistant. Automatisieren wird da schwer da zu viele Faktoren eine Rolle spielen.
Das Script funktioniert jetzt aber genauso wie ich es mir vorgestellt habe. DafĂŒr und fĂŒr deine Hilfe vielen Dank.@maik1007
Ich glaube das was du suchst habe ich in Home Assistant bereits umgesetzt.
schau mal hier rein: https://www.photovoltaikforum.com/thread/208943-ecoflow-powerstream-bastelecke-plug-nachbau-zur-messwerte-ĂŒbergabe-eines-energie/?postID=3653326#post3653326Ich speise automatisiert in den möglichst teuersten Stunden ein. Wie viele das sind ermittle ich am Akkustand und der PV Prognose.
An ioBroker wird nur ein Schalter ĂŒbergeben, der Regulation true oder false setzt.
-
Hallo
was muss ich bei der Delta Pro eintragen in dem Script unter :Bezeichnungen fĂŒr Typen: PowerStream:"PS"; DeltaMax:"DM"; Delta2: "D2" ; Delta2 Max: "D2M"; SmartPlug: "SM"; Andere: "NA"
//#######################################################################
{
seriennummer: "XXXXXXXXXXXXX",
name: "DELTA Max",
typ: "DM",
subscribe: false, // "true": Alle Daten fĂŒr dieses GerĂ€t werden angefragt. "false": Es werden keine Statusdaten abgefragt
},Delta Pro sehe da nicht.
Habe schon gesucht, aber nichts gefunden oder ĂŒbersehen.
-
@Waly_de
Eine Frage zu den WertenMaxPowerundZusatzpower_Offsetbzw. generell zur Zusatzpower.
Mein Powerstream wurde nun durch irgendein Update auf 800W erhöht und wenn ich nun den WertMaxPowerauf 800W setze, dann stimmt die Berechnung zur Zusatzpower weiter unten im Skript nicht mehr.AuĂerdem wĂŒrde ich den Wert
MaxPoweraufspalten in die wirkliche maximale Power des Powerstreams (600W/800W) und die Leistung, die man einspeisen will. Z.b. wenn man mehrere PS hat, dann beide auf 300W/400W einstellt, um nicht generell zu hoch einzuspeisen.Wenn ich jetzt aber die
MaxPowerbei mir auf 400W stelle, dann regelt das SKript die Zusatzpower schon ab diesem Wert und resultiert dann in einem komischen Verhalten.DarĂŒber hinaus wird die Zusatzpower ja nur benötigt, wenn die Einspeiseleistung < 200W betrĂ€gt, da die Batterie maximal mit 600W geladen werden kann.
Ich wĂŒrde den Wert fĂŒr die Zusatzpower nicht abhöngig von der
MaxPowermachen, sondern fix auf 600W Ladeleistung bzw. 200W Einspeiseleistung setzen, damit das sauber funktioniert. -
@ub35bo sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
@waly_de Die Idee des Scripts, die Powerstream-Leistung dynamisch an die Leistung am Smartmeter anzupassen, finde ich toll.
Nach einigem Hin und Her habe ich das Skript auch zum Laufen gebracht, so dass nur noch beim Starten keine Fehler- und nur noch zwei Warnmeldungen (
warn javascript.0 (2173) at getStateCr (script.js.common.EcoFlow-Connector:2612:16
bzw.
warn javascript.0 (2173) at script.js.common.EcoFlow-Connector:2073:37
) auftauchen. Leider bleibt der gewĂŒnschte Erfolg aus.
Die Verbindung zu meinem Discovergy-Smartmeter scheint zu funktionieren. Zumindest kommt es zu Fehlermeldungen, wenn ich die Login-Daten von Smartmeter und Powerstream verfÀlsche.
Die SmartmeterID in W - allerdings mit zwei Nachkommastellen - habe ich als "discovergy.0.12345678.Power_Consumption" gefunden. Leider fĂŒhrt eine VerĂ€nderung des Wertes nicht zur Anpassung der Powerstreamleistung.
Hat jemand eine Idee, wo der Fehler liegen könnte?Mit den Fragmenten deiner Fehlermeldungen und Warnmeldung kann ich leider nicht so viel anfangen. Um dazu was sagen zu können, geh bitte in die Protokollansicht von iobroker und kopiere dort die Fehlermeldungen und die Zeilen davor und danach und setze sie hier im Forum als Code ein. Dazu dient der Schalter oben "</>"
Bitte sieh dir unter Objects "0_userdata.0.ecoflow.RealPower" an.
Wenn sich dieser Wert entsprechend deines Verbrauchs regelmĂ€Ăig aktualisiert ist das schon mal ein gutes Zeichen.
Wird dann nicht reguliert, liegt es in 90 % der FĂ€lle daran, dass der History Adapter entweder nicht installiert oder nicht aktiviert ist.@waly_de
Ich habe den Fehler versucht einzukreisen. Irgendwie kam ich zu der Erkenntnis, das Regulate nicht definiert ist und habe es durch "" ersetzt, wie ich es in Àlteren Scripten gefunden habe.
// RegulationState: "Regulate", // Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unter 0_userdata.0.ecoflow angelegt)
RegulationState: "", // Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unter 0_userdata.0.ecoflow angelegt)
Jetzt lĂ€uft mein System wie gewĂŒnscht. :-)Jetzt stellt sich mir die Frage, ob bzw. wie ich die dynamische Leistungsanpassung zeitgesteuert laufen lassen kann.
Hintergrund: Ich bin Tibberkunde und es macht fĂŒr mich vor allem in den Morgen- und Abendstunden, die besonders teuer sind, einzuspeisen. Leider bin ich noch nicht in Scripten firm und wĂŒrde mich ĂŒber Hilfe freuen. -
@waly_de
Frage 1:
Ich habe noch mal ein Problem mit battPozOn.
Ich habe zwei Powerstreams, die im Modus serial arbeiten.
Wenn der Zweite jetzt bei den eingestellten 96% ankommt, wird wie gewĂŒnscht auf volle Leistung gestellt. Leider geht der Einspeisesollwert (SetAC) irgendwann auf 0. Dann wird nur noch Ăberschuss vom Powerstream eingespeist (Einspeisekontrolle ist deaktiviert).Woran kann das lieg? Laut den Protokollen "denkt" das Script weiterhin der Powerstream steht weiterhin auf 600 W.
In Folge dessen wird auch zu viel eingespeist und ich gebe ca. die Leistung ins Netz ab, die vom PS2 gerade anstelle der gewĂŒnschten 600W eingespeist werden.Starte ich das Script neu, greift wieder battPozOn, aber nur fĂŒr begrenzte Zeit.
Frage 2:
Ich habe zwei Powerstreams mit angeschlossener Powerstation und an jeder Powerstation sind ebenfalls Paneele angeschlossen.
Ist es fĂŒr die Regelung erforderlich diese zu berĂŒcksichtigen? SĂ€mtliche Steuerung erfolgt in ioBroker. Die Auswertung und Visualisierung erledige ich komplett extern in Home Assistant.@dreffi sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Woran kann das lieg? Laut den Protokollen "denkt" das Script weiterhin der Powerstream steht weiterhin auf 600 W.
Wie meinst du das mit "denkt"? Was genau steht denn in dem Objekt "0_userdata.0.ecoflow.app_1XXXXX_thing_property_set.writeables.SetAC" ?
Wird da null eingesetzt? Oder siehst du das nur in der App?
Du sagst, das geht nur eine gewisse Zeit sind das Sekunden Minuten Stunden?@dreffi sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Frage 2:
Ich habe zwei Powerstreams mit angeschlossener Powerstation und an jeder Powerstation sind ebenfalls Paneele angeschlossen.
Ist es fĂŒr die Regelung erforderlich diese zu berĂŒcksichtigen? SĂ€mtliche Steuerung erfolgt in ioBroker. Die Auswertung und Visualisierung erledige ich komplett extern in Home Assistant.Nein. Es ist nicht nötig diese Paneele zu berĂŒcksichtigen. Die Angabe ist nur dann sinnvoll, wenn die Gesamtsolarleistung im iobroker erfasst werden soll. (0_userdata.0.ecoflow.totalPV)
-
@Waly_de
Eine Frage zu den WertenMaxPowerundZusatzpower_Offsetbzw. generell zur Zusatzpower.
Mein Powerstream wurde nun durch irgendein Update auf 800W erhöht und wenn ich nun den WertMaxPowerauf 800W setze, dann stimmt die Berechnung zur Zusatzpower weiter unten im Skript nicht mehr.AuĂerdem wĂŒrde ich den Wert
MaxPoweraufspalten in die wirkliche maximale Power des Powerstreams (600W/800W) und die Leistung, die man einspeisen will. Z.b. wenn man mehrere PS hat, dann beide auf 300W/400W einstellt, um nicht generell zu hoch einzuspeisen.Wenn ich jetzt aber die
MaxPowerbei mir auf 400W stelle, dann regelt das SKript die Zusatzpower schon ab diesem Wert und resultiert dann in einem komischen Verhalten.DarĂŒber hinaus wird die Zusatzpower ja nur benötigt, wenn die Einspeiseleistung < 200W betrĂ€gt, da die Batterie maximal mit 600W geladen werden kann.
Ich wĂŒrde den Wert fĂŒr die Zusatzpower nicht abhöngig von der
MaxPowermachen, sondern fix auf 600W Ladeleistung bzw. 200W Einspeiseleistung setzen, damit das sauber funktioniert.@ponti92 sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Mein Powerstream wurde nun durch irgendein Update auf 800W erhöht
Das ist mir neu. Wann gab es dieses Update? Der Powerstream ist ja von Haus aus in der Lage, 800 W zu liefern, ist aber im Moment aufgrund der Regelungen in Deutschland noch auf 600 W begrenzt. Solange das so ist, wĂŒrde ich MaxPower auf 600 W stehen stehen lassen.
Zum begrenzen der Einspeiseleistung wĂŒrde ich mit diesen Parametern arbeiten:
lowBatLimitPozOn: 100, lowBatLimitPozOff: 101, // Bei Unterschreiten der Batterieladung von "lowBatLimitPozOn" % ist die maximale Einspeiseleistung auf lowBatLimit: 400, // "lowBatLimit" limitiert, bis der Ladezustand wieder bei "lowBatLimitPozOff" istMit dieser Einstellung sollst das Limit immer greifen, und der entsprechende powerStream maximal 400 W einspeisen.
-
@waly_de
Ich habe den Fehler versucht einzukreisen. Irgendwie kam ich zu der Erkenntnis, das Regulate nicht definiert ist und habe es durch "" ersetzt, wie ich es in Àlteren Scripten gefunden habe.
// RegulationState: "Regulate", // Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unter 0_userdata.0.ecoflow angelegt)
RegulationState: "", // Wenn angegeben, kann mit diesem State die Regulation ein- und ausgeschaltet werden (Wird automatisch unter 0_userdata.0.ecoflow angelegt)
Jetzt lĂ€uft mein System wie gewĂŒnscht. :-)Jetzt stellt sich mir die Frage, ob bzw. wie ich die dynamische Leistungsanpassung zeitgesteuert laufen lassen kann.
Hintergrund: Ich bin Tibberkunde und es macht fĂŒr mich vor allem in den Morgen- und Abendstunden, die besonders teuer sind, einzuspeisen. Leider bin ich noch nicht in Scripten firm und wĂŒrde mich ĂŒber Hilfe freuen.@ub35bo sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Jetzt stellt sich mir die Frage, ob bzw. wie ich die dynamische Leistungsanpassung zeitgesteuert laufen lassen kann.
Hintergrund: Ich bin Tibberkunde und es macht fĂŒr mich vor allem in den Morgen- und Abendstunden, die besonders teuer sind, einzuspeisen. Leider bin ich noch nicht in Scripten firm und wĂŒrde mich ĂŒber Hilfe freuen.Das geht grundsĂ€tzlich auch einfach mit einem Blocky oder 2 "Rules"
Schau mal dieses Video an. Das erklÀrt die Grundlagen von Blockys ganz gut.
https://youtu.be/Of2C8F_n11U?si=vjXG24y1lTdlaScFDu musst also zwei ZeitplÀne erstellen, die Regulate jeweils ein und ausschalten.
Alternativ kannst du auch mit dem Tibber Adapter arbeiten, und auf den aktuellen Preis direkt reagieren. Sprich bei Ănderung auf "TEUER" das Script aktivieren. -
@ub35bo sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Jetzt stellt sich mir die Frage, ob bzw. wie ich die dynamische Leistungsanpassung zeitgesteuert laufen lassen kann.
Hintergrund: Ich bin Tibberkunde und es macht fĂŒr mich vor allem in den Morgen- und Abendstunden, die besonders teuer sind, einzuspeisen. Leider bin ich noch nicht in Scripten firm und wĂŒrde mich ĂŒber Hilfe freuen.Das geht grundsĂ€tzlich auch einfach mit einem Blocky oder 2 "Rules"
Schau mal dieses Video an. Das erklÀrt die Grundlagen von Blockys ganz gut.
https://youtu.be/Of2C8F_n11U?si=vjXG24y1lTdlaScFDu musst also zwei ZeitplÀne erstellen, die Regulate jeweils ein und ausschalten.
Alternativ kannst du auch mit dem Tibber Adapter arbeiten, und auf den aktuellen Preis direkt reagieren. Sprich bei Ănderung auf "TEUER" das Script aktivieren.@waly_de Da könnte man doch auch Dein Tibber Script nehmen oder? Also das folgende auskommentieren und dann sollte es doch gehen.... ?
//BatMax: 99, //Bei diesem Ladestand stoppt die AC-Ladung und das Script wird wieder eingeschaltet //BatMin: 50, //Der Ladestand der Batterie muss kleiner sein als BatMin , damit der Akku per AC-Ladung geladen wird // SwitchID: "shelly.0.shellyplusplugs#b0b21c19ff40#1.Relay0.Switch", //ID des Schalters, der die AC-Ladung einschaltet. "true" und "false" werden gesetztund das hier muss dann auch noch angepasst werden:
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 + "%") } } };Dann wird bei CHEAP und VERY_CHEAP "Regulate" ausgeschaltet, und wenn das nicht ist, ist "Regulate" an. Verstehe ich das so richtig?
-
@ub35bo sagte in ecoflow-connector-Script zur dynamischen Leistungsanpassung:
Jetzt stellt sich mir die Frage, ob bzw. wie ich die dynamische Leistungsanpassung zeitgesteuert laufen lassen kann.
Hintergrund: Ich bin Tibberkunde und es macht fĂŒr mich vor allem in den Morgen- und Abendstunden, die besonders teuer sind, einzuspeisen. Leider bin ich noch nicht in Scripten firm und wĂŒrde mich ĂŒber Hilfe freuen.Das geht grundsĂ€tzlich auch einfach mit einem Blocky oder 2 "Rules"
Schau mal dieses Video an. Das erklÀrt die Grundlagen von Blockys ganz gut.
https://youtu.be/Of2C8F_n11U?si=vjXG24y1lTdlaScFDu musst also zwei ZeitplÀne erstellen, die Regulate jeweils ein und ausschalten.
Alternativ kannst du auch mit dem Tibber Adapter arbeiten, und auf den aktuellen Preis direkt reagieren. Sprich bei Ănderung auf "TEUER" das Script aktivieren.@waly_de ich wollte nochmal das Thema: "AC Laden", wenn an der DP vorne ein Verbraucher eingesteckt ist, ansprechen.
Wie beschrieben: ist es fĂŒr mich ungĂŒnstig, wenn die DP z.B. gerade mit 500W ĂŒber den AC Eingang lĂ€dt und vorne an den Steckdosen ein Verbraucher mit 500W angesteckt wird. In diesem Falle wĂŒrden dann in Summe 1.000W aus dem Netz gezogen. Daher wĂŒrde ich gerne eine Option haben, die beim Einschalten der DP Steckdosen das AC Laden abstellt.
Mir wurde hier gerade, dass via einem separaten Skript zu machen. Was ich auch tun könnte ABER dann wĂŒrde der Shelly der den AC Ladeeingang schaltet ping-pong spielen. D.h. das Skript schaltet den AC Ladeeingang der DP ab. Das Leistungsanpassungsskript wieder an.Kann man das nicht als Option mit hier im Skript einbauen?
-
@waly_de Da könnte man doch auch Dein Tibber Script nehmen oder? Also das folgende auskommentieren und dann sollte es doch gehen.... ?
//BatMax: 99, //Bei diesem Ladestand stoppt die AC-Ladung und das Script wird wieder eingeschaltet //BatMin: 50, //Der Ladestand der Batterie muss kleiner sein als BatMin , damit der Akku per AC-Ladung geladen wird // SwitchID: "shelly.0.shellyplusplugs#b0b21c19ff40#1.Relay0.Switch", //ID des Schalters, der die AC-Ladung einschaltet. "true" und "false" werden gesetztund das hier muss dann auch noch angepasst werden:
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 + "%") } } };Dann wird bei CHEAP und VERY_CHEAP "Regulate" ausgeschaltet, und wenn das nicht ist, ist "Regulate" an. Verstehe ich das so richtig?
@karo2204 klasse Idee! :-)
es mĂŒsste auch reichen die Config so anzupassen:
var tibberConfig = { BatMax: 101, //Bei diesem Ladestand stoppt die AC-Ladung und das Script wird wieder eingeschaltet BatMin: 100, //Der Ladestand der Batterie muss kleiner sein als BatMin , damit der Akku per AC-Ladung geladen wird //SwitchID: "", //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" ], }In diesem Fall wird das Skript nur aktiviert, wenn der Preis Level expensive ist.