Selbstbau-PV / Selbstbau-PV-Hoymiles-nulleinspeisung-mit-OpenDTU-und-Shelly3EM

Ein Python-Skript, das den aktuellen Hausverbrauch aus einem Shelly 3EM ausliest, die Nulleinspeisung berechnet und die Ausgangsleistung eines Hoymiles-Wechselrichters mit Hilfe der OpenDTU entsprechend anpasst. Somit wird kein unnötiger Strom ins Betreibernetz abgegeben.
61 stars 24 forks source link

Code-Anpassung für dynamische WR-Leistung bei Verwendung mit Akkuspeicher #12

Open St31l opened 1 year ago

St31l commented 1 year ago

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:

  1. Bereich: Viel Solarleistung bzw. Akku ist quasi voll, die WR Leistung darf sehr hoch sein.
  2. Bereich: Der Akku ist nicht sehr voll, jedoch noch oberhalb der Abschaltspannung (Die max. WR-Leistung wird etwas reduziert)
  3. 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

harryinet commented 1 year ago

Ist spannend, wie schließt du welchen Akku an?

kthemall commented 1 year ago
        na wie? plus auf plus und minus auf minus via mc4 stecker ;-) lifepo eigenbau 8sGesendet mit der GMX iPad AppAm 03.06.23 um 15:49 schrieb Harryinet

                Von: "Harryinet" ***@***.***>Datum: 3. Juni 2023An: "Selbstbau-PV/Selbstbau-PV-Hoymiles-nulleinspeisung-mit-OpenDTU-und-Shelly3EM" ***@***.***>Cc: "Subscribed" ***@***.***>Betreff: Re: [Selbstbau-PV/Selbstbau-PV-Hoymiles-nulleinspeisung-mit-OpenDTU-und-Shelly3EM] Code-Anpassung für dynamische WR-Leistung bei Verwendung mit Akkuspeicher (Issue #12)

Ist spannend, wie schließt du welchen Akku an?

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>