NEWS
Automatisierte Einspeisung für PowerStream
-
Inspiriert von @Waly_de umfangreichem und coolem Skript, habe ich eine vereinfachte Version entwickelt, die lediglich darauf abzielt, den PowerStream automatisch an die jeweils benötigte Leistung anzupassen. Diese gestraffte Version könnte auch für den einen oder anderen leichter anzupassen sein.
Nachdem das Skript stabil gelaufen ist, habe ich es nun auf GitHub veröffentlicht.
Als nächstes plane ich eine Erweiterung, die es ermöglicht, eigene deutlich kostengünstigere LiFePO4 Zusatzbatterien an den Delta Max anzuschließen. Ich arbeite an einer Anbindung von DALY SmartBMS-Systemen über MQTT (DALY2MQTT), die eine Leistung bis knapp 800W über den DC Eingang (bei 2 x 48V / 8A) unterstützt und das Hinzufügen unbegrenzt vieler Batterien erlaubt.
-
@cptmozz sagte in Einfache Automatisierung für den EcoFlow PowerStream:
Für Bugs und Anregungen freue ich mich über eure Rückmeldungen direkt über GitHub.
Wenn Du es hier schon ankündigst: Warum nur GitHub und nicht hier im Forum?
Nicht jeder hat einen GitHub-Account und kann dort direkt "mitreden". -
@samson71 Stimmt. Ich wollte nur vermeiden, dass sich Bug-Meldungen doppeln. Hab es entfernt. Wer mag, kann natürlich hier im Forum mitreden. Dafür steht es ja da.
-
@cptmozz läuft super Dein Script. jetzt meine Frage, wenn ich eine Batterie anschließe (demnächst die 2kWh LFP Batterie) wird die dann automatisch mit einbezogen und erkannt?
-
@karo2204 Freut mich zu hören. Ja funktioniert sowohl mit einer Zusatzbatterie als auch mit einer Delta 2 max + Zusatzbatterie.
-
@cptmozz OK super danke Dir für die schnelle Antwort. Ich muss aber nichts machen, oder? Nur wenn das Update der PS da ist dann noch die Watt ändern....?!
-
@karo2204 said in Automatisierung für den EcoFlow PowerStream:
Ich muss aber nichts machen, oder? Nur wenn das Update der PS da ist dann noch die Watt ändern....?!
Du musst nichts ändern. Während eines Updates oder Umsteckens ist die PS nicht erreichbar, aber sobald sie wieder online ist, geht alles automatisch weiter.
-
Ein Überschussladen der Delta über den AC Eingang ist aber nicht möglich, oder?
-
@holgerwolf Interessante Idee, auch wenn es etwas schade ist wegen der vielen Verluste beim Umwandeln von DC (Solarpanels) ins Stromnetz und dann wieder von AC-220V in DC 12V/24V/48V bei der Delta (LiFePO4).
Es gibt zwei Möglichkeiten, AC zu steuern:
- AC Eingang an/aus - (DM) Ob dies jetzt ein Ausgang oder Eingang ist, weiß ich nicht.
{ "id": 66, "name": "ACPower", "ValueName": "enabled", "Typ": "DM" }
- AC Ladeleistung ändern - (DM2) Vielleicht benötigt man nur dies und könnte es gegebenenfalls auf 0W setzen, wenn man gerade nicht laden möchte.
{ "id": 0, "name": "acChgCfg_D2", "ValueName": "chgWatts", "Typ": "D2", "MT": 5, "AddParam": "{\"chgWatts\":600,\"chgPauseFlag\":255}" }
Theoretisch würde es so funktionieren und es wäre auch nicht allzu viel Code. Man muss eventuell noch den Zustand berücksichtigen, wenn die Delta in den Standby-Modus geht.
- AC Eingang an/aus - (DM) Ob dies jetzt ein Ausgang oder Eingang ist, weiß ich nicht.
-
@cptmozz Ich habe keine Panels an der PS hängen. Ich habe eine 7 kWp Anlage ohne Speicher. Mit Wallys Script lade ich die Delta Pro mit Zusatzakku tagsüber mit AC auf und gleiche den Hausverbrauch damit dann wieder aus. Das klappt mit Wallys Script recht gut, aber das kann halt noch (viel) mehr und ist recht komplex.
Leider ist die Delta Pro jetzt schon wieder voll. Ich werde morgen mal die entsprechenden Datenpunkte fürs Laden raussuchen.
-
@holgerwolf Verstehe.
Jetzt, wo ich länger darüber nachdenke, könnte ich diese Funktion auch benötigen, da ich die Delta im Winter wegen der Kälte ins Haus hole.
Speist Waly's Skript nur so viel in die Delta über AC ein, wie Überschuss am Smartmeter festgestellt wird? -
@cptmozz sagte in Automatisierte Einspeisung für PowerStream:
Speist Waly's Skript nur so viel in die Delta über AC ein, wie Überschuss am Smartmeter festgestellt wird?
Ja.
-
@cptmozz Ich habe jetzt gerade mal nachgeschaut.
In Walys Script stellt man die Ladeleistung über einen Wert direkt in der Delta Pro ein:
ecoflow-mqtt.0.DCEBXXXXXX.inv.cfgSlowChgWatts
In den Objekten in der PS gibt es sowas wohl nicht.
-
Nachdem ich beschrieben habe, wie man Shelly Verbrauchsdaten direkt aus der EcoFlow Cloud holen kann,
habe ich nun dieses Skript hier so erweitert, dass man konfigurieren kann, ob man weiterhin den Hausverbrauch aus einem IOBroker State holen will, oder Verbrauchsdaten von der EcoFlow Shelly Integration nutzt.
Im verlinkten Post und im hiesigen Skript ist hoffentlich ausreichend erklärt, wie man das konfiguriert.Hier das von mir erweiterte Skript: powerstream-output-control_SHELLY_INTEGRATION.js
@cptmozz oder andere: feel free, das weiter zu verwenden, zu verbessern, whatever.
wenn ich dann mal wieder beginne nachzudenken …
… dann fällt mit dem Nutzen der Verbrauchsdaten aus der EcoFlow Shelly Integration auch der Rückgriff auf die IOBroker Funktion, einen State zu lesen, weg.
Das einzig IOBroker-spezifische bleibt dann noch die Tag-/Nach-Steuerung (und das Logging).
Das heisst, wenn man sich davon verabschiedet, ist man eigentlich auch nicht mehr auf den IOBroker angewiesen und kann die Steuerung auch gleich einfach in NodeJS laufen lassen.
Das werde ich mal ausprobieren … -
… und es geht auch standalone!
Wenn man den Day-/Night-Mode Code rausnimmt und ein paar kleine Code-Änderungen vornimmt, kann man diese automatisierte Einspeisung komplett ohne IOBroker, nur auf NodeJS laufen lassen.Ggf. die Abhängigkeiten installieren mit
npm install mqtt npm install protobufjs
dann kann das Skript unter NodeJS laufen mit
node powerstream-output-control_SHELLY_INTEGRATION_STANDALONE.js
(natürlich nach den entsprechenden Konfigurationen im Skript)
Hier die Datei: powerstream-output-control_SHELLY_INTEGRATION_STANDALONE.js
-
@cptmozz
Ich habe ein Problem festgestellt bei dem Versuch, das Skript mitCONTINUE_WHEN_INVERTER_IN_STANDBY: false
laufen zu lassen. (Mir gefällt die Option besser, weil, warum Anpassungen der Grundlast schicken, wenn der Inverter eh nichts liefert.)
Es ist dabei in einen Zustand gelaufen, bei dem das Skript nicht mehr aufgewacht ist, nachdem der Inverter wieder aufgewacht ist.
Es sieht so aus, dass das Skript dann in dem Zustand "Waiting for acknowledgment" hängen geblieben ist.
Ich kann mir gut vorstellen, dass nichts mehr passiert, wenn irgendwie einmal die Differenz zwischen requestedInverterOut.ts und acknowledgedInverterOut.ts „passend“ steht. Dann wird stur immer weiter auf ein Acknowledge gewartet, das im INVERTER_IN_STANDBY Zustand bestimmt nicht mehr kommt.
(Für diese Überlegungen spricht auch, dass das Skript aufgewacht ist, als ich in der Ecoflow App den Grundbedarf Regler manuell verschoben habe - dadurch wurde wohl der Acknowledge gesendet auf den das Skript gewartet hat.)Mein Lösungsansatz
Ich habe den!device.CONTINUE_WHEN_INVERTER_IN_STANDBY
Block nach oben verschoben innerhalb von
function isOutputAdjustmentRequired
direkt nach den
if (smartMeterWattState.ts === 0)
Überlegung dazu
Im STANDBY Zustand soll die Funktion sofort verlassen werden, es soll auf keinerlei „outdates“ oder acknowledges gewartet werden; es sollen keinerlei adjustments oder retries versucht werden.
Dann läuft er auch nicht in den Block mit "Waiting for acknowledgment“, solange STANDBY besteht.
Erst wenn der STANDBY vorbei ist, wird wieder mit Acknowledgements gerechnet.Also, einfach den „!device.CONTINUE_WHEN_INVERTER_IN_STANDBY“ Block nach oben verschoben in der "function isOutputAdjustmentRequired".
Das funktioniert bei mir in der Praxis bisher stabil, sodass das Skript auch mit der Option „CONTINUE_WHEN_INVERTER_IN_STANDBY: false“ funktioniert und mit Erwachen der Anlage auch selber wieder die Steuerung übernimmt.