Je nach lokalen Gegebenheiten kann es notwendig sein, das zu unterbinden oder zu limitieren.
Mit den Daten von einem Smart Meter und den Solaranzeige-Befehlen zur Leistungslimitierung des Wechselrichters kann eine smarte Einspeisungsbegrenzung realisiert werden.
In einem früheren Posting habe ich die Einbindung meines Smart Meters beschrieben. Dort ist auch eine Datei user_device.php angehängt, die mehrere Aufgaben erfüllt.
Hier möchte ich speziell beschreiben, wie dort die Einspeise-Limitierung funktioniert.
Einstellungen dazu werden im Abschnitt 1.4 der Datei user-device.php angegeben:
Code: Alles auswählen
// 1.4 (Null)Einspeisung durch Drosselung des Wechselrichters
$Einspeiselimit_W = 800; // Maximal erlaubte Einspeisung in Watt
Code: Alles auswählen
$MinutenAbstand = 7; // Abstand zwischen einer Anpassung der Einspeiselimitierung
Code: Alles auswählen
$Drosselbefehl = array( // Solaranzeige Befehl(e) zur Einspeiselimitierung der Wechselrichter (in Prozent)
"http://solaranzeige.local/befehl.steuerung.php?url=http://solaranzeige.local:3000/d/99AhoyDTU001".
"&config=2&befehl=I01PS_<limit>",
"http://solaranzeige.local/befehl.steuerung.php?url=http://solaranzeige.local:3000/d/99AhoyDTU001".
"&config=2&befehl=I02PS_<limit>");
config=2 bedeutet: bei mir ist das Interface zu den Wechselrichtern (bei mir ist das eine AhoyDTU) in der 2.user.config.php definiert. befehl beschreibt den Solaranzeige-Befehl, der abgesetzt wird- Ich verwende eine AhoyDTU als Interface zum Wechselrichter. Der Aufbau der Befehle sieht in meinem Fall so aus:
I<WR-ID><unit><persistence>_<limit> wobei:
• <WR-ID> ... zweistellige Nummer des Wechselrichters z.B. 01, 02, 03 etc.
• <unit> .... W für Limit-Value in Watt, P für Prozent (hier immer P verwenden)
• <persistence> ... P für permanent, S für bis zum nächsten Restart
• <limit> ......... ganze Zahl die das Limit in Watt oder Prozent angibt
Der Platzhalter <limit> in den Drosselbefehlen wird laufend durch eine automatisch berechnete Prozentangabe ersetzt. Der Befehl=I01PP_85 bedeutet zum Beispiel : Inverter 01 permanent auf 85% limitieren. (siehe auch hier )
Code: Alles auswählen
$Wechselrichter_InfluxDB = "ahoydtu";
$Wechselrichter_Maesurement = "DTU";
Code: Alles auswählen
$Wechselrichter_AC_Leistung = "AC_Leistung";
Code: Alles auswählen
$Smart_Meter_InfluxDB = "DTSU666H";
$Smart_Meter_Maesurement = "Zaehlerstand";
Code: Alles auswählen
$Smart_Meter_Netz_Leistung_W = "Netz_Leistung_W";
Code: Alles auswählen
$Drossel_InfluxDB = "DTSU666H";
$Drossel_Measurement = "Einspeisung";
Angabe in welcher Influx Datenbank und in welchem Measurement die Daten zur aktuell eingestellten Drosselung des Wechselrichters abgelegt werden sollen.
Der Code für die weitere Verarbeitung befindet sich im Abschnitt 4 der Datei user_device.php.
// 4.1 Mittelwert PV AC Leistung aus InfluxDb lesen (und für 5. bereitstellen)
Aus der Influx DB wird gelesen, wie viel PV-Leistung im Mittel der letzten 7 Messungen vom Wechselrichter ins Hausnetz eingespeist wurde.
// 4.2 Netz-Bezug / Netz-Einspeisung aus InfluxDb feststellen (und für 5. bereitstellen)
Falls kein Netz-Bezug vom Smart Meter gelesen werden könnte oder falls gerade ins Netz eingespeist wird, wird der Netz-Bezug als Mittelwert der letzten gespeicherten 7 Messungen berechnet.
// 4.3 bisherige Drossel aus influxDB lesen (und für 5. bereitstellen)
// Drossel ist ein Wert zwischen 0 (0% WR-Leistung) und 1 (100% WR-Leistung)
Der zuletzt eingestellte am Wechselrichter eingestellte Drosselfaktor 100% bis 0% wird aus der influx DB gelesen.
// 4.4 Einspeiselimit (Drossel) alle $MinutenAbstand Minuten prüfen
Es wird zuerst berechnet wie hoch die aktuelle AC Leistung wäre, wenn er ungedrosselt läuft. Falls diese Leistung höher wäre als die aktuelle Last plus dem Einspeiselimit – also wenn es ungedrosselt zu einem Überschreiten des Einspeiselimits käme, dann wird ein neuer Drosselfaktor berechnet.
// 4.4.2 Drossel in Wechselrichtern einstellen
Falls sich der neue Drosselfaktor nennenswert vom alten unterscheidet, wird er neu bei den Wechselrichtern eingestellt. Hinweis: Gibt es mehrere Wechselrichter, dann werden alle um den geichen Faktor limitiert.
// 4.4.3 neue Drossel in influxDB Measurement Einspeisung speichern
Schließlich wird der neue Drosselfaktor in der Influx DB abgespeichert. Dort kann man sich das dann auf der Raspi Kommandozeile ansehen:
Code: Alles auswählen
pi@solaranzeige:~ $ influx -precision rfc3339
Connected to http://localhost:8086 version 1.8.10
InfluxDB shell version: 1.8.10
> use DTSU666H
Using database DTSU666H
> select * from Einspeisung order by time desc limit 15
name: Einspeisung
time Drossel Load Ungedrosselte_AC_Leistung_W
---- ------- ---- ---------------------------
2023-03-23T09:07:01Z 1 275.47142857143 1070.7353497892
2023-03-23T09:00:01Z 0.63441046792699 251.68571428571 1512.6989548366
2023-03-23T08:42:01Z 0.60712817369875 116.72857142857 1434.4074976531
2023-03-23T08:28:01Z 0.85973962171457 193.77142857143 1124.2857142857
2023-03-21T10:29:01Z 1 223.75714285714 810.90783320931