@@ -471,32 +471,26 @@ def get_charge_mode_vehicle_charge(self):
471471
472472 def get_charge_mode_manual_charge (self ):
473473 # EVU Bezug vorhanden oder gewollte PV-Ladung aktiv
474- evu_power_valid = (data .data .counter_all_data .get_evu_counter ().data .get .power >= - 100 or
475- self .data .config .power_limit_mode == BatPowerLimitMode .MODE_CHARGE_PV_PRODUCTION .value )
476- bat_power_valid = (self .data .get .power <= 0 or
477- (self .data .get .power > 0 and
478- self .data .config .power_limit_mode == BatPowerLimitMode .MODE_CHARGE_PV_PRODUCTION .value ))
479- if (evu_power_valid and bat_power_valid ):
480- if self .data .config .manual_mode == ManualMode .MANUAL_LIMIT .value :
474+ evu_power_valid = data .data .counter_all_data .get_evu_counter ().data .get .power >= - 100
475+ bat_power_valid = self .data .get .power <= 0
476+ if self .data .config .manual_mode == ManualMode .MANUAL_CHARGE .value :
477+ log .debug ("Aktive Speichersteuerung: Manueller Modus - Speicher laden." )
478+ return BatChargeMode .BAT_FORCE_CHARGE
479+ elif self .data .config .manual_mode == ManualMode .MANUAL_LIMIT .value :
480+ if (self .data .config .power_limit_mode == BatPowerLimitMode .MODE_CHARGE_PV_PRODUCTION .value or
481+ (evu_power_valid and bat_power_valid )):
482+ # Limit anwenden wenn kein Überschuss vorhanden oder der Speicher nicht lädt
481483 log .debug ("Aktive Speichersteuerung: Manueller Modus - Regellimit anwenden." )
482484 return BatChargeMode .BAT_USE_LIMIT
483- elif self .data .config .manual_mode == ManualMode .MANUAL_CHARGE .value :
484- log .debug ("Aktive Speichersteuerung: Manueller Modus - Speicher laden." )
485- return BatChargeMode .BAT_FORCE_CHARGE
486- elif self .data .config .manual_mode == ManualMode .MANUAL_DISCHARGE .value :
487- log .debug ("Aktive Speichersteuerung: Manueller Modus - Speicher entladen." )
488- return BatChargeMode .BAT_FORCE_DISCHARGE
489485 else :
490- log .debug ("Aktive Speichersteuerung: Manueller Modus - Steuerung Aus. " )
486+ log .debug ("Aktive Speichersteuerung: Manueller Modus - Kein Limit da Speicher lädt " )
491487 return BatChargeMode .BAT_SELF_REGULATION
492- # manual_disable and fallback
488+ elif self .data .config .manual_mode == ManualMode .MANUAL_DISCHARGE .value :
489+ log .debug ("Aktive Speichersteuerung: Manueller Modus - "
490+ "Eigenregelung da aktive Speicherentladung nicht erlaubt ist." )
491+ return BatChargeMode .BAT_SELF_REGULATION
493492 else :
494- if evu_power_valid :
495- log .debug ("Aktive Speichersteuerung: Manueller Modus - EVU-Einspeisung vorhanden oder "
496- "Ladung in Höhe des PV-Ertrags konfiguriert." )
497- if bat_power_valid :
498- log .debug ("Aktive Speichersteuerung: Manueller Modus - Speicher entlädt oder "
499- "Ladung in Höhe des PV-Ertrags konfiguriert." )
493+ log .debug ("Aktive Speichersteuerung: Manueller Modus - Steuerung Aus." )
500494 return BatChargeMode .BAT_SELF_REGULATION
501495
502496 def get_charge_mode_electricity_tariff (self ):
@@ -519,7 +513,8 @@ def get_charge_mode_electricity_tariff(self):
519513 return BatChargeMode .BAT_SELF_REGULATION
520514
521515 def get_charge_mode_scheduled (self ):
522- pass
516+ log .debug (("Aktive Speichersteuerung: Eigenregelung - Zielladen noch nicht implementiert." ))
517+ return BatChargeMode .BAT_SELF_REGULATION
523518
524519 def get_power_limit (self ):
525520 # Falls kein steuerbarer Speicher installiert ist, der Disclaimer nicht akzeptiert wurde
@@ -532,7 +527,7 @@ def get_power_limit(self):
532527 log .debug ("Speicher-Leistung nicht begrenzen, da keine regelbaren Speicher vorhanden sind." )
533528 elif self .data .config .bat_control_permitted is False :
534529 log .debug ("Speicher-Leistung nicht begrenzen, da der aktiven Speichersteuerung nicht zugestimmt wurde." )
535- elif self .data .get . power_limit_controllable is False :
530+ elif self .data .config . bat_control_activated is False :
536531 log .debug ("Speicher-Leistung nicht begrenzen, da aktive Speichersteuerung deaktiviert wurde." )
537532 else :
538533 charge_mode = BatChargeMode .BAT_SELF_REGULATION
@@ -547,7 +542,7 @@ def get_power_limit(self):
547542 charge_mode = self .get_charge_mode_electricity_tariff ()
548543 elif self .data .config .power_limit_condition == BatPowerLimitCondition .SCHEDULED .value :
549544 log .debug ("Aktive Speichersteuerung: Vorhersagebasiertes Zielladen." )
550- pass
545+ charge_mode = self . get_charge_mode_scheduled ()
551546
552547 # calculate power_limit
553548 controllable_bat_components = get_controllable_bat_components ()
@@ -572,8 +567,8 @@ def get_power_limit(self):
572567 max_charge_power_total += bat_component_data .get .max_charge_power
573568 self .data .set .power_limit = max_charge_power_total
574569 elif charge_mode == BatChargeMode .BAT_FORCE_DISCHARGE :
575- # das ist in Deutschland (noch) nicht erlaubt
576- pass
570+ self . data . set . power_limit = None
571+ log . debug ( "Speicher-Leistung nicht begrenzen" )
577572
578573
579574def get_controllable_bat_components () -> List :
0 commit comments