Code-Anpassung für dynamische WR-Leistung bei Verwendung mit Akkuspeicher
Opened this issue · 2 comments
Hallo zusammen,
ich habe für die Nulleinspeisung in Verbindung mit einem Akku nachstehende Anpassung eingebaut.
Durch die Anpassung wird die maximale WR-Leistung abhängig von der Akkuspannung in 3 Bereichen eingestellt um bei
vollem Akku eine hohe WR-Leistung zuzulassen und bei leerem Akku eine tiefenentladung zu vermeiden:
- Bereich: Viel Solarleistung bzw. Akku ist quasi voll, die WR Leistung darf sehr hoch sein.
- Bereich: Der Akku ist nicht sehr voll, jedoch noch oberhalb der Abschaltspannung (Die max. WR-Leistung wird etwas reduziert)
- Bereich: Der Akku hat seine Abschaltspannung erreicht, die max WR-Leistung wird auf den minimal möglichen Leistungswert von 10 W gesetzt, damit der Akku nicht tiefen entladen wird.
Dafür benötigen wir zwei Variablen im Bereich "# Diese Daten müssen angepasst werden" die die beiden Spannungsgrenzen bilden:
voltage_borderhigh = 26 # Spannungsgrenze für Erhöhung der WR-Leistung
voltage_borderlow = 24 # Spannungsgrenze für Setzen der WR-Leistung auf 10 W
ebenfalls benötigen wir eine Auslesung der DC Spannung am Eingang des Wechselrichters:
Im Bereich "# Selektiert spezifische Daten aus der json response":
voltage_dc = int(r['inverters'][0]['DC']['0']['Voltage']['v']) # DC-Spannung am WR Eingang auslesen
Und zuguter letzte die Anpassung der WR-Maximalleistung im Bereich "# Werte setzen"
if reachable:
#Abhängig von Akkuspannung wird die maximale WR-Leistung gesetzt
if (voltage_dc >= voltage_borderhigh): #Setze maximale Leistung für Spannung über 26 V
maximum_wr = 540
print('WR-Leistung auf',maximum_wr,'gesetzt, da Akkuspannung:',voltage_dc, 'V', flush=True)
if (voltage_borderlow < voltage_dc < voltage_borderhigh): # Setze maximale Leistung für Spannung von 24-26 V
maximum_wr = 337
print('WR-Leistung auf',maximum_wr,'gesetzt, da Akkuspannung:',voltage_dc, 'V', flush=True)
if (voltage_dc < voltage_borderlow):#Setze maximale Leistung für Spannung unter 24 V
maximum_wr = 10
Ab hier folgt der Code mit "# Setzen Sie den Grenzwert auf den höchsten Wert, wenn er über dem zulässigen Höchstwert liegt."
Die print-Befehle können natürlich noch entfernt werden wenn der Code bei euch läuft
Würde mich über Feedback freuen
Ist spannend, wie schließt du welchen Akku an?