Skip to content

Commit e5839b1

Browse files
authored
Merge pull request #3161 from ndrsnhs/active-bat-control-improve-manual-charge-logic
active bat control: improve manual charge logic
2 parents 99e9366 + 033f45e commit e5839b1

1 file changed

Lines changed: 21 additions & 26 deletions

File tree

packages/control/bat_all.py

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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

579574
def get_controllable_bat_components() -> List:

0 commit comments

Comments
 (0)