Installationshinweise zur HA‐Regelung - surfer1264/Zendure-Stuff GitHub Wiki
Disclaimer
Die Flowgruppen sind nummeriert.
In den Nodes sind die Sensornamen in jedem Fall zu überprüfen. Die Stellen sind kenntlich gemacht mit:
Achtung:
- Ich nutze einen WR, der "absolut" angesteuert wird (mit Wattzahlen). Die Flows sind 1:1 verwendbar.
- Es gibt auch WRs, die relativ angesteuert werden (Prozentzahl). Weitere Hinweise siehe auch unten unter (8) Testflows
- Wer drei Phasen seines Smartmeters auslesen will, muss ebenfalls eine leichte Anpassung vornehmen. Vorarbeit siehe Flow (8) Testflow
(1.1) Initialisierung
Es werden grundlegende Variablen initialisiert. Unter anderem die Wechselrichter-Parameter WRmax und WRmin. Bitte hier korrekt setzen (keine Mondwerte)
(1.2) Initialisierung Termindaten
Der Bypass Sensor ist eine Ableitung von Zenduredaten. Dafür braucht man die Zendure-Integration. Falls Ihr das nicht habt/machen wollt...Löscht diesen Teil der Initialisierung raus.
(2) Reglerfunktion
Hier ist der Sensor des Einspeisesensor (bei mir ein Shelly 1PluasPM) zu überprüfen. Habt Ihr keinen? diese Node löschen. Wenn der Hub keine Energie mehr liefert, dann wird die Reglerfunktion nicht mehr aufgerufen. Das Entfernen dieser Node ist aber unschädlich.
Hier die lokale Abfrage Eures Smartmeters anpassen. (Die IP-Adresse des SmartMeters ist gefragt.) Oder ihr ersetzt die Node durch einen klassischen "current-state" Knoten und lest den relevanten HA-Sensor aus).
Dies ist auch die Stelle (siehe Disclaimer), an der ggf. die absolute Reglerfunktion gegen eine relative Funktion zu tauschen ist (siehe FLow (8)), je nach Wechselrichter.
Dies ist auch die Stelle (siehe Disclaimer), an der ggf. die 3-Phasenabfrage einzubauen ist (siehe FLow (8)).
Dies ist auch die Stelle (Inject-Knoten) wo die Taktung des Reglers zu verändern ist (mein Standard: 5 Sekunden).
(3.1) Spezial: Bypass
Der Bypass Sensor ist eine Ableitung von Zenduredaten. Dafür braucht man die Zendure-Integration. Falls Ihr das nicht habt/machen wollt...Löscht diesen Subflow einfach. Unschädlich.
(3.2) Spezial: Regelalgorithmus aktiv/deaktiv
Hier wird auf eine Änderung des Schalters "Regel Algorithmus aktiv" reagiert. Es erfolgt der Wechsel zwischen Fixeinspeisung und Regelung.
(3.3) Spezial: Ausfall Smartmeter
Wenn der Smartmeter ausfällt (kann ja mal vorkommen), dann wird der WR gestoppt, um ein undefiniertes Verhalten zu verhindern (Hub läuft weiter und lädt Akku). Dieser Flow nutzt einen Device- Tracker-Sensor aus der FRITZ!Box-Tool-Integration. Diesen Flow kann man auch löschen. Hat sonst keine andere Funktion.
(3.4) Spezial: Counter zurücksetzen
Ich zähle die Anzahl der Regeleingriffe. Dieser Counter wird jeden Morgen um 08:00 zurückgesetzt.
(3.5) Spezial: Terminmodus an/aus
Hier wird auf eine Änderung des Schalters "Terminmodus aktiv" reagiert.
(4) Reaktion auf Änderungen im Dashboard
Daten aus dem Dashboard werden gelesen. Dieser Subflow stellt die sicher, dass Änderungen an den Parametern sofort erfolgen, “ on the fly”
(5) Terminmodus
kümmert sich um das Handling der Einspeisgrenzen, wenn der Terminservice aktiv ist. Stichwort Terminüberwachung. (läuft einmal pro Minute)
(6) Hilfe
Zwei Hilfsflows
Debug einschalten/ausschalten. Es werden die Daten des Reglers in der Debug-Spalte von Node-Red ausgegeben.
Der zweite Flow fängt alle außergewöhnlichen Fehler zur Reglung (aller Flows) ab und listet sie in der Debug-Spalte auf.
(7) Wechselrichter
Hier müsst Ihr die konkreten WR-Sensoren und Aktionen auswählen/verändern, die zu Eurem Wechselrichter passen. Ggf. eine Anpassung vornehmen in der Function-Node, wenn Ihr einen Wechselrichter betreibt, der über Prozentwerte gesteuert wird. (siehe unten (8) Testflow)
(8) Testflow
Exemplarisch zeige ich hier, wie man 3 Phasen des Shelly 3-EM ausliest und zu einer "TotalPower" verarbeitet.
Falls Ihr eine relative Ansteuerung Eures Wechserichters braucht (in Prozent, z.B. Hoymiles), dann müsst Ihr zwei Codezeilen von ihren Kommentar-Tags befreien im Flow (7.1):
An den Flow in (7.1) wird immer eine Payload in ähnlicher Form übergeben msg.payload = {einspeisewert: wert3};
. Dies ist immer ein absoluter Wert in Watt. Wenn da ein Prozentwert rauskommen soll, dann muss die function-Node so aussehen:
let wrmax = flow.get("WRLeistung"); //WR-Max Leistung holen
let regelwert = msg.payload.einspeisewert; //den Reglerwert lesen (in Watt)
regelwert = (regelwert / wrmax * 100); // den Reglerwert umrechnen in %
msg.payload = { einspeisewert: regelwert }; //die payload neu befüllen
return msg;
Aus 400W Einspeisegrenze (hier Übergabe des wert3) wird so ein Regelwert von 400W/800W*100 = 50% (wenn wrmax = 800)
Ob das gut funktioniert? Testen! Den Debug "Knoten 18" dafür aktivieren.
Hilfestellungen zur Laufzeit
Alle relevanten Variablen sind als FLow-Variablen angelegt und können zur Laufzeit abgefragt werden. Dies hilft zu verstehen, was zur Laufzeit passiert, wenn Ihr im Dashboard rumspielt.