Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 21 additions & 26 deletions packages/control/bat_all.py
Original file line number Diff line number Diff line change
Expand Up @@ -471,32 +471,26 @@ def get_charge_mode_vehicle_charge(self):

def get_charge_mode_manual_charge(self):
# EVU Bezug vorhanden oder gewollte PV-Ladung aktiv
evu_power_valid = (data.data.counter_all_data.get_evu_counter().data.get.power >= -100 or
self.data.config.power_limit_mode == BatPowerLimitMode.MODE_CHARGE_PV_PRODUCTION.value)
bat_power_valid = (self.data.get.power <= 0 or
(self.data.get.power > 0 and
self.data.config.power_limit_mode == BatPowerLimitMode.MODE_CHARGE_PV_PRODUCTION.value))
if (evu_power_valid and bat_power_valid):
if self.data.config.manual_mode == ManualMode.MANUAL_LIMIT.value:
evu_power_valid = data.data.counter_all_data.get_evu_counter().data.get.power >= -100
bat_power_valid = self.data.get.power <= 0
if self.data.config.manual_mode == ManualMode.MANUAL_CHARGE.value:
log.debug("Aktive Speichersteuerung: Manueller Modus - Speicher laden.")
return BatChargeMode.BAT_FORCE_CHARGE
elif self.data.config.manual_mode == ManualMode.MANUAL_LIMIT.value:
if (self.data.config.power_limit_mode == BatPowerLimitMode.MODE_CHARGE_PV_PRODUCTION.value or
(evu_power_valid and bat_power_valid)):
# Limit anwenden wenn kein Überschuss vorhanden oder der Speicher nicht lädt
log.debug("Aktive Speichersteuerung: Manueller Modus - Regellimit anwenden.")
return BatChargeMode.BAT_USE_LIMIT
elif self.data.config.manual_mode == ManualMode.MANUAL_CHARGE.value:
log.debug("Aktive Speichersteuerung: Manueller Modus - Speicher laden.")
return BatChargeMode.BAT_FORCE_CHARGE
elif self.data.config.manual_mode == ManualMode.MANUAL_DISCHARGE.value:
log.debug("Aktive Speichersteuerung: Manueller Modus - Speicher entladen.")
return BatChargeMode.BAT_FORCE_DISCHARGE
else:
log.debug("Aktive Speichersteuerung: Manueller Modus - Steuerung Aus.")
log.debug("Aktive Speichersteuerung: Manueller Modus - Kein Limit da Speicher lädt")
return BatChargeMode.BAT_SELF_REGULATION
Comment thread
ndrsnhs marked this conversation as resolved.
Resolved
# manual_disable and fallback
elif self.data.config.manual_mode == ManualMode.MANUAL_DISCHARGE.value:
log.debug("Aktive Speichersteuerung: Manueller Modus - "
"Eigenregelung da aktive Speicherentladung nicht erlaubt ist.")
return BatChargeMode.BAT_SELF_REGULATION
else:
if evu_power_valid:
log.debug("Aktive Speichersteuerung: Manueller Modus - EVU-Einspeisung vorhanden oder "
"Ladung in Höhe des PV-Ertrags konfiguriert.")
if bat_power_valid:
log.debug("Aktive Speichersteuerung: Manueller Modus - Speicher entlädt oder "
"Ladung in Höhe des PV-Ertrags konfiguriert.")
log.debug("Aktive Speichersteuerung: Manueller Modus - Steuerung Aus.")
return BatChargeMode.BAT_SELF_REGULATION

def get_charge_mode_electricity_tariff(self):
Expand All @@ -519,7 +513,8 @@ def get_charge_mode_electricity_tariff(self):
return BatChargeMode.BAT_SELF_REGULATION

def get_charge_mode_scheduled(self):
pass
log.debug(("Aktive Speichersteuerung: Eigenregelung - Zielladen noch nicht implementiert."))
return BatChargeMode.BAT_SELF_REGULATION

def get_power_limit(self):
# Falls kein steuerbarer Speicher installiert ist, der Disclaimer nicht akzeptiert wurde
Expand All @@ -532,7 +527,7 @@ def get_power_limit(self):
log.debug("Speicher-Leistung nicht begrenzen, da keine regelbaren Speicher vorhanden sind.")
elif self.data.config.bat_control_permitted is False:
log.debug("Speicher-Leistung nicht begrenzen, da der aktiven Speichersteuerung nicht zugestimmt wurde.")
elif self.data.get.power_limit_controllable is False:
elif self.data.config.bat_control_activated is False:
log.debug("Speicher-Leistung nicht begrenzen, da aktive Speichersteuerung deaktiviert wurde.")
else:
charge_mode = BatChargeMode.BAT_SELF_REGULATION
Expand All @@ -547,7 +542,7 @@ def get_power_limit(self):
charge_mode = self.get_charge_mode_electricity_tariff()
elif self.data.config.power_limit_condition == BatPowerLimitCondition.SCHEDULED.value:
log.debug("Aktive Speichersteuerung: Vorhersagebasiertes Zielladen.")
pass
charge_mode = self.get_charge_mode_scheduled()

# calculate power_limit
controllable_bat_components = get_controllable_bat_components()
Expand All @@ -572,8 +567,8 @@ def get_power_limit(self):
max_charge_power_total += bat_component_data.get.max_charge_power
self.data.set.power_limit = max_charge_power_total
elif charge_mode == BatChargeMode.BAT_FORCE_DISCHARGE:
# das ist in Deutschland (noch) nicht erlaubt
pass
self.data.set.power_limit = None
log.debug("Speicher-Leistung nicht begrenzen")


def get_controllable_bat_components() -> List:
Expand Down