Bedarfsoptimierte Leistungsregelung

Allgemein

Das Modul ‚Bedarfsoptimierte Leistungsregelung‘ (auch bekannt unter Zero-Export) erweitert Ahoy um die Möglichkeit, die WR nur so viel Strom zu erzeugen, wie im Haus benötigt wird. Dazu wird die Leistung am Übergabepunkt (Zähler) gemessen und die Wechselrichter entsprechend geregelt. Wir zeigen euch, wie Ihr es umsetzen könnt und was bei solch ein Projekt darauf zu beachten ist.

Wichtig zu wissen: Diese erweiterte Funktion ist derzeit nur für Modelreihen der ESP32-S3 verfügbar.

Aber was ist denn genau ‚Zero-Export‘? Dafür ein kleiner Exkurs.

Zero-Export

Unser Ahoy managed den 0%-Einspeise-Modus (Zero Export). Es werden die Inverter abgefragt und erzeugte PV-Leistung abgefragt. Die Messwerte an einer Messstelle (z.B. Zähler, Strommessgeräte) werden parallel erfasst und miteinander verrechnet. Um schlussendlich den Wert der überschüssigen Leistung zu erhalten.

Dieser Wert wird an den Wechselrichter zurückgeliefert, damit dieser sich an den aktuellen Haushaltsverbrauch anpassen kann.

Was wird denn benötigt um so eine Regelung umzusetzen?

  • DTU (Ahoy)

  • den passenden Wechselrichter

  • Smart Meter

  • und um den Smart-Meter auszulesen (z.B. Tibber, Hichi, Volkszähler, oder andere).

Konfiguration

Hier gibt es die Möglichkeit bis zu 6 Gruppen zu hinterlegen. Diese haben hier den Sinn mehrere Quellen der Verbraucher zu hinterlegen. Die Werte werden summiert und dann für die Regelung mit einbezogen.

Bemerkung

Wenn Hichi/Tibber oder Volkszähler genutzt werden soll, ist es ratsam diesen alleine zu nutzen. Da hier die Daten direkt vom Stromzähler abgefragt werden, reicht es alleine die Gesamtleistung auszulesen.

Die Einstellungen von Ahoy beinhalten eine Sektion Bedarfsoptimierte Leistungsregelung (hier zu sehen sind die Standardeintellungen):

zeroExport Einstellungen - Default

Konfiguration einer Gruppe

Um die Gruppe einzustellen, kann man auf der rechten Seite das Zahnrad drücken.

Es sollte sich ein Formular öffnen. Siehe wie auf dem Bild.

zeroExport Einstellungen Gruppe Allegemein - Default

Gruppe wird vom System vergeben und ist gleichzeitig auch die ID der Gruppe.

Enabled gibt die Gruppe zur Regelung gemäß den eingestellten Parametern frei.

Name kann frei vergeben werden. Dieses Feld wird vom System nicht benutzt und dient der Identifizierung der Gruppe.

ACHTUNG: Die Gruppe muss vor der Aktivierung vollständig konfiguriert sein.

PowerMeter

Um den aktuellen Verbrauch auch zu messen, müssen hier jetzt die PowerMeter eingerichtet werden.

Um von einem SMART-Meter die Daten abzufragen muss man sich an die Schnittstelle hängen.

Mögliche Schnittstellen:

zeroExport Einstellungen Gruppe Zähler - Default

Type Shelly, Tasmota, Mqtt, Hichi, Tibber

IP: IP-Adresse des Endgeräts

JSON Path: data.json?node_id=1 (Tibber)

Username: admin (Tibber)

Password: Passwort des Gerätes

Bemerkung

Je nach wahl des Gerätes aus dem die Daten bezogen werden, ändert sich das Formular passend. Sollte hier etwas vermisst werden. Erstellt ein Issue auf Github.

Tibber einrichten

Da das Gerät im Normalbetrieb den gesamten Datenverkehr verschlüsselt, müssen die Daten im Rohformat bezogen werden. Dies ist nur im Setup-Modus möglich. In diesen Modus gelangt man ganz einfach, indem man das Gerät ausstöpselt, wieder einstöpselt und den Vorgang einmal wiederholt. Sobald die grüne LED leuchtet, öffnet das Gerät einen Zugangspunkt namens „Tibber Bridge“. Das Passwort ist auf dem QR-Code auf dem Gerät selbst aufgedruckt.

Benutze nun dein Smartphone oder einen PC mit WiFi-Verbindung, um dich mit der Bridge zu verbinden. Wichtig ist, dass du deinem PC/Smartphone eine feste IP-Adresse gibst (10.133.70.10). Die Tibber Pulse Bridge selbst hat die IP 10.133.70.1 und bietet ein kleines nettes Webinterface. Die Zugangsdaten sind „admin“ und das auf dem Gerät aufgedruckte Passwort.

Wenn man nun auf der Bridge ist, muss man auf der Registerkarte „Params“ nach der Zeile „webserver_force_enable“ suchen. Hier tragen Sie den Wert „true“ ein. Wichtig, speichern Sie nun diese Änderung mit einem Klick auf den Button „Store params to flash“.

Nach einer Wartezeit von ca. 15 Sekunden muss die Bridge aus- und wieder eingesteckt werden. Danach sollte man das Webinterface wieder über die normale vom DHCP-Server zugewiesene IP-Adresse erreichen können.

Wenn dies möglich ist, müssen hier keine weiteren Änderungen vorgenommen werden.

Hichi einrichten

Was ist mit Target (L1, L2, L3, Sum) gemeint?

Beim Auslesen des Powermeters kann berücksichtigt werden auf welche Phase geregelt werden soll. Somit ist es möglich auch speziell eine bestimmte Phase zu regeln. Wichtig hierbei, das auch der Inverter auf diese Phase angeschlossen wird.

Inverter

Im Reiter Rubrik befinden sich die Einstellungen für die der Gruppe angehörigen Wechselrichter.

zeroExport Einstellungen Gruppe Inverter - Default

erste Spalte wird vom System vergeben und ist eine Nummerierung der verfügbaren Wechselrichter in dieser Gruppe.

Enabled entscheidet, ob der Wechselrichter geregelt wird oder nicht. ACHTUNG: Einen Wechselrichter erst aktivieren, wenn er vollständig konfiguriert ist.

Name ist der zu regelnde Wechselrichter. Er wird aus der Liste der in Ahoy konfigurierten Wechselricher ausgewählt.

Regelziel ist entweder Sum oder der Aussenleiter L1, L2, L3 an dem der Wechselrichter einspeist.

Power (min) ist die minimale Leistung des Wechselrichters. Wird vom Wechselrichter eine kleinere Leistung gefordert, so wird der Wechselrichter ausgeschaltet. ACHTUNG: Bei Hoymiles wird bei weniger als 2% der Leistung abgeschaltet.

Power (max) ist die maximale Leistung des Wechselrichters. INFO: Mehr Leistung als der WR kann ist nicht möglich.

Batterie

Hier befinden sich die Einstellungen für den Batterieschutz. Wenn dieser aktiviert ist, wird die Spannung der Batterie über jeden PV-Eingang 1 aller der Gruppe angehörenden Wechselrichter gemessen und mit den eingestellten Werten verglichen. Unterschreitet eine gemessene Spannung den Abschaltwert, werden alle der Gruppe angehörenden Wechselrichter ausgeschaltet. Sobald alle gemessenen Spannungen den Einschaltwert wieder überschreiten werden alle der Gruppe angehörenden Wechselrichter wieder eingeschaltet.

zeroExport Einstellungen Gruppe Batterie - Default

Erweiterte Einstellungen

Hier befinden sich die Einstellungen für die Regelung.

zeroExport Einstellungen Gruppe Erweiterte Einstellungen - Default

SetPoint (Watt) Setzt die Leistung auf die geregelt werden soll (Standard 0 Watt). 100 regelt auf einen Bezug von 100 W, -600 auf eine Einspeisung von 600W.

Refresh rate (sec) Aktualisierungsrate wie oft geregelt werden soll (Standard 10 sec.)

Power tolerances (Watt) Toleranz im dem nicht aktiv geregelt werden soll (Standard 10 Watt).

Group Power max (Watt) Maximalleistung die für die Gruppe gesetzt werden soll.

Kp: P-Regler https://de.wikipedia.org/wiki/Regler#P-Regler_(P-Anteil)

Ki: I-Regler https://de.wikipedia.org/wiki/Regler#I-Regler_(I-Anteil)

Kd: D-Regler https://de.wikipedia.org/wiki/Regler#D-Glied_(D-Anteil)

Log / Debug-Modus

Es existieren zwei Debugmöglichkeiten, die in der Konfiguration aktiviert werden können. - Log over Webserial

  • Log over MQTT

Dabei werden je nach Modul der Regelung unterschiedliche Json-Datensätze ausgegeben.

Änderungen und Irrtümer vorbehalten

ze: {"group":0,"type":"groupWaitRefresh","B":45930169,"next":"GETINVERTERACKS","E":45930169,"D":0}
ze: {"group":0,"type":"groupGetInverterAcks","B":45930171,"iv":[{"id":0},{"id":1},{"id":2}],"wait":false,"E":45930172,"D":1}
ze: {"group":0,"type":"groupGetInverterData","B":45930185,"iv":[{"id":0},{"id":1},{"id":2}],"E":45930186,"D":1}
ze: {"group":0,"type":"groupBatteryprotection","B":45930199,"en":true,"inv":3,"U":52.29999924,"action":"On","err":"battSwitch 1 == isProducing()1","sw":true,"E":45930200,"D":1}
ze: {"group":0,"type":"groupGetPowermeter","B":45930213,"mod":"getPowermeterWattsShelly","HTTP_URL":"http://172.16.16.31/status","P":-440.6900024,"P1":-589.0300293,"P2":60.77000046,"P3":87.56999969,"E":45930275,"D":62}
ze: {"group":0,"type":"groupController","B":45930288,"w":30,"x":-440.6900024,"x1":-589.0300293,"x2":60.77000046,"x3":87.56999969,"e":470.6900024,"e1":619.0300293,"e2":-30.77000046,"e3":-57.56999969,"Kp":-0.477999985,"Ki":0,"Kd":0,"Ta":5120,"yP":-224.9898071,"yP1":-295.8963318,"yP2":14.70805931,"yP3":27.51845932,"esum":-402851.5625,"esum1":115841.5703,"esum2":-331159.2813,"esum3":-10893.54199,"yI":0,"yI1":0,"yI2":0,"yI3":0,"ealt":1404.369995,"ealt1":1230.380005,"ealt2":270.3099976,"ealt3":-36.31999969,"yD":0,"yD1":0,"yD2":0,"yD3":0,"yPID":-224.9898071,"yPID1":-295.8963318,"yPID2":14.70805931,"yPID3":27.51845932,"E":45930289,"D":1}
ze: {"group":0,"type":"groupPrognose","B":45930344,"E":45930344,"D":0}
ze: {"group":0,"type":"groupAufteilen","B":46662266,"y":-628.1015625,"y1":-629.8510742,"y2":-48.92329788,"y3":21.99278069,"0":"0 grpTarget: 0: ivPmin: 65535: ivPmax: 0: ivId_Pmin: 0: ivId_Pmax: 0","1":"1 grpTarget: 0: ivPmin: 65535: ivPmax: 0: ivId_Pmin: 0: ivId_Pmax: 0","2":"2 grpTarget: 1: ivPmin: 50: ivPmax: 50: ivId_Pmin: 1: ivId_Pmax: 1","3":"3 grpTarget: 1: ivPmin: 70: ivPmax: 70: ivId_Pmin: 2: ivId_Pmax: 2","4":"4 grpTarget: 0: ivPmin: 65535: ivPmax: 0: ivId_Pmin: 0: ivId_Pmax: 0","5":"5 grpTarget: 0: ivPmin: 65535: ivPmax: 0: ivId_Pmin: 0: ivId_Pmax: 0","6":"6 grpTarget: 0: ivPmin: 65535: ivPmax: 0: ivId_Pmin: 0: ivId_Pmax: 0","103":"3","+deltaP":21.99278069,"102":"2","-deltaP":-48.92329788,"E":46662267,"D":1}
ze: {"group":0,"type":"groupSetLimit","B":45930422,"inv":2,"limit":116,"wait":60,"data":{"val":116,"id":3,"path":"ctrl","cmd":"limit_nonpersistent_absolute"},"E":45930423,"D":1}
ze: {"group":0,"type":"resetWaitLimitAck","B":45931128,"id":2,"inv":1,"wait":0,"E":45931128,"D":0}
ze: {"group":0,"type":"newDataAvailable","B":45930845,"avail":true,"id":3,"inv":2,"zeL":116,"ivL":88,"ivPm":400,"ivL%":22,"E":45930846,"D":1}