Thanks to visit codestin.com
Credit goes to GitHub.com

Skip to content
Wiggal edited this page Nov 5, 2025 · 27 revisions

Dokumentation für Benutzer der Ladesteuerung:

Aktuelle Benutzerdokumentation


Technische Dokumentation zur Ladesteuerung (ab Version 0.40.0)

Mit dem PR v0.40.0 müsste es nun schon funktionieren, einen andere InverterTyp anzubinden

Definition des Wechselrichtertyps in CONFIG/default.ini bzw. CONFIG/default_priv.ini.
InverterTyp = gen24

Schnittstellenbeschreibungen am Beispiel eines Fronius GEN24:

Informationen vom Wechselrichter lesen.

Die Daten werden zur Berechnung der Ladesteuerung und fürs Logging verwendet.

1.)
Die Methode get_API() der Klasse InverterApi() in FUNCTIONS/gen24_api.py liefert zu folgenden Indizes und Werte als Dictionary:
Eine Anbindung eines anderen Wechselrichters müsste dann als get_API() der Klasse InverterApi() in FUNCTIONS/{InverterTyp}_api.py, dieselben Indizes liefern:

Version = 3.5.5-23199               # Firmwareversion
BattStatusProz = 76.0               # SOC Akku
aktuelleBatteriePower = 2339        # aktuelle Akkuleistung + ist entladen / - ist laden
BattganzeKapazWatt = 10284          # Kapazität des Akkus
BattganzeLadeKapazWatt = 10240      # Ladekapazität des Akkus
udc_mittel = 196                    # Unterscheidung HVM = 50A und HVS = 25A zur Ermittlung der Ladekapazität mit GEN24
BattKapaWatt_akt = 2468             # Aktuell noch freie Kapazität im Akku
aktuelleEinspeisung = 21            # Aktuelle Einspeisung ins Netz + = Einspeisung, - ist Bezug
aktuellePVProduktion = 4178         # Aktuelle PV-Produktion
AC_Produktion = 53058431            # Zählerstand AC_Produktion des GEN24 in W/h
DC_Produktion = 55981586            # Zählerstand DC_Produktion des GEN24 in W/h
AC_to_DC = 37415                    # Zählerstand AC zu DC Wandlung des GEN24 in W/h
Batterie_IN = 9193528               # Zählerstand in den Akku in W/h
Batterie_OUT = 8589579              # Zählerstand aus dem Akku in W/h
Netzverbrauch = 6666572             # Zählerstand Netzbezug in W/h
Einspeisung = 28006592              # Zählerstand Einspeisung in W/h

2.)
Die Methode get_http_data() der Klasse InverterInterface in FUNCTIONS/gen24_interface.py liefert zu folgenden Indizes und Werte als Dictionary:
Eine Anbindung eines anderen Wechselrichters müsste dann als get_http_data() der Klasse InverterInterface in FUNCTIONS/{InverterTyp}_interface.py, dieselben Indizes liefern:

Active[0] = True                      # Bat­te­rie­ma­nage­ment => Zeit­ab­hän­gi­ge Steue­rung => Status/Active
Power[0] = 4500                       # Bat­te­rie­ma­nage­ment => Zeit­ab­hän­gi­ge Steue­rung => Leistung
ScheduleType[0] = CHARGE_MAX          # Bat­te­rie­ma­nage­ment => Zeit­ab­hän­gi­ge Steue­rung => Art 
                                      # kann 4 Indizies haben [CHARGE_MAX, CHARGE_MIN, DISCHARGE_MAX, DISCHARGE_MIN]
HYB_EM_POWER = -50                 # Ei­gen­ver­brauchs-Op­ti­mie­rung => Zielwert am Einspeisepunkt in Watt => + Bezug , - Einspeisung
HYB_EM_MODE = 0                    # Ei­gen­ver­brauchs-Op­ti­mie­rung => Mode => 0 Automatisch , 1 Manuell
HYB_BACKUP_RESERVED = 5            # La­de­zu­stand Ein­stel­lun­gen => Reservekapazität 
BAT_M0_SOC_MIN = 5                 # La­de­zu­stand Ein­stel­lun­gen => Minimaler Ladezustand

Werte am Wechselrichter setzen/schreiben:

Die Methode update_inverter_settings() der Klasse InverterInterface in FUNCTIONS/gen24_interface.py schreibt auf den Wechselrichter, und erwartet folgende Werte:
update_inverter_settings(self,mode,WR_schreiben=None,aktuellerLadewert=None,Neu_BatteryMaxDischarge=None,BatteryMaxDischarge=None, EntladeEintragloeschen=None,Options=None,Batterieentlandung_steuern=None,EntladeEintragDa=None,Ladetype=None,print_level=None, DEBUG_Ausgabe="", Schreib_Ausgabe="", Push_Schreib_Ausgabe="", **kwargs):

Hier die Aufrufe aus dem Controllerscript (EnergyController.py):

Lade- und Entladebegrenzungen entfernen:
inverter_interface.update_inverter_settings(mode="remove_timeofuse")

Lade- und Entladebegrenzungen setzen:
inverter_interface.update_inverter_settings( mode="timeofuse", WR_schreiben = WR_schreiben, aktuellerLadewert = aktuellerLadewert, Neu_BatteryMaxDischarge = Neu_BatteryMaxDischarge, BatteryMaxDischarge = BatteryMaxDischarge, EntladeEintragloeschen = EntladeEintragloeschen, Options = Options, Batterieentlandung_steuern = Batterieentlandung_steuern, EntladeEintragDa = EntladeEintragDa, Ladetype = Ladetype, print_level = print_level, DEBUG_Ausgabe = DEBUG_Ausgabe )

Eigenverbrauchs-Optimierung setzen:
inverter_interface.update_inverter_settings(mode="eigenverbrauchsoptimierung", Eigen_Opt_Std_neu = Eigen_Opt_Std_neu, HYB_EM_MODE=HYB_EM_MODE )

Notstromreserve setzen:
inverter_interface.update_inverter_settings(mode="BACKUP_RESERVE", Neu_HYB_BACKUP_RESERVED=str(Neu_HYB_BACKUP_RESERVED))

Eine Anbindung eines anderen Wechselrichters müsste dann mit der Methode update_inverter_settings() der Klasse InverterInterface in FUNCTIONS/{InverterTyp)_interface.py, diese Werte Verarbeiten, und entsprechen auf den Wechselrichter schreiben.