Dieser Node-RED Flow steuert ein Zendure Solarflow-System mit HUB1200 und ACE1500, die Entladeleistung regelt in meinem Falle eine openDTUonBattery.
Die Datei heißt:
Zendure HUB1200+ACE1500 openDTUonBattery.json
Der Flow nutzt Node-RED Dashboard 2.0 und ist modular aufgebaut. Standort, ioBroker-Datenpunkte und InfluxDB-Zugang müssen vom Nutzer selbst angepasst werden.
- Berechnung von Sonnenaufgang und Sonnenuntergang über
node-red-contrib-sun-position. - Zeiten werden lokal (Europe/Berlin) formatiert und als globale Variablen (
zendure.sunrise,zendure.sunset) gespeichert. - Zwei UI-Slider erlauben die Einstellung eines Offsets in Minuten. Daraus entstehen
sunrisecalcundsunsetcalc.
- Ein UI-Schalter im Dashboard setzt
zendure.control.basemodeauftrueoderfalse. - Keine automatische Steuerung mehr – der Nutzer entscheidet selbst.
Alle 5 Sekunden wird geprüft, ob Entladen erlaubt ist (zendure.control.discharge).
Die Logik läuft gestapelt ab:
- Wenn
basemodeaktiv → Entladen erlaubt - Wenn Batterie tagsüber voll (
BATTERYFULLONDAY) → Entladen erlaubt - Wenn Nacht erkannt (
isNight) → Entladen erlaubt - Sonst → Entladen gesperrt
- Ein Subflow setzt den minimalen Ladezustand (minSOC) auf 10 %, wenn ein externes Flag
trueist. - Andernfalls wird minSOC auf 0 % gesetzt.
- Ausgabe erfolgt als Payload und kann direkt in die Steuerung übernommen werden.
- Alle 10 Sekunden werden via ioBroker folgende Datenpunkte abgefragt:
- Zellspannungen:
minVol,maxVol(für bis zu 4 Packs) - Leistung:
outputPackPower(Akku-Eingang),packInputPower(Akku-Ausgang)
- Zellspannungen:
- Die Werte werden im
join-Node gesammelt und als Objekt zusammengeführt. - Die Abschaltung nach
minVolerfolgt gestapelt – alle Werte werden gemeinsam ausgewertet.
- Zellspannungen (
low_minVol) werden in eine InfluxDB geschrieben. - Konfiguration ist vorbereitet für InfluxDB v2 (Bucket + Org).
- Node-RED mit folgenden Nodes:
node-red-contrib-sun-positionnode-red-contrib-cron-plusnode-red-dashboard(Version 2.0)node-red-contrib-iobrokernode-red-contrib-influxdb
- Flow importieren: Zendure HUB1200+ACE1500 openDTUonBattery.json
- Standortdaten in der
position-configNode setzen - ioBroker-Datenpunkte und InfluxDB-Zugang anpassen
- Dashboard öffnen und Offsets/Basismodus steuern
MIT – frei nutzbar, modifizierbar und weiterverwendbar.
Dieser Flow wird ohne jede Gewährleistung bereitgestellt. Nutzung auf eigene Verantwortung.
Der Autor übernimmt keinerlei Haftung für Schäden, Datenverluste oder Fehlfunktionen, die durch den Einsatz dieses Flows entstehen können.
Vor produktivem Einsatz sollte der Flow in einer Testumgebung geprüft und an die eigenen Anforderungen angepasst werden.