From 585b13f7e98a84798d96128a437c44f77c884d85 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Tue, 2 Sep 2025 08:20:50 +0200 Subject: [PATCH 1/3] reset power limit if bat control permitted is false --- packages/control/bat_all.py | 65 +++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 32 deletions(-) diff --git a/packages/control/bat_all.py b/packages/control/bat_all.py index ea4020dddd..ac3a393ec0 100644 --- a/packages/control/bat_all.py +++ b/packages/control/bat_all.py @@ -291,40 +291,41 @@ def set_power_limit_controllable(self): def get_power_limit(self): if self.data.config.bat_control_permitted is False: - return - chargepoint_by_chargemodes = get_chargepoints_by_chargemodes(CONSIDERED_CHARGE_MODES_CHARGING) - # Falls aktive Steuerung an und Fahrzeuge laden und kein Überschuss im System ist, - # dann Speicherleistung begrenzen. - if (self.data.config.power_limit_mode != BatPowerLimitMode.NO_LIMIT.value and - len(chargepoint_by_chargemodes) > 0 and - data.data.cp_all_data.data.get.power > 100 and - self.data.get.power_limit_controllable and - self.data.get.power <= 0 and - data.data.counter_all_data.get_evu_counter().data.get.power >= -100): - if self.data.config.power_limit_mode == BatPowerLimitMode.LIMIT_STOP.value: - self.data.set.power_limit = 0 - elif self.data.config.power_limit_mode == BatPowerLimitMode.LIMIT_TO_HOME_CONSUMPTION.value: - self.data.set.power_limit = data.data.counter_all_data.data.set.home_consumption * -1 - log.debug(f"Speicher-Leistung begrenzen auf {self.data.set.power_limit/1000}kW") + self.data.set.power_limit else: - self.data.set.power_limit = None - control_range_low = data.data.general_data.data.chargemode_config.pv_charging.control_range[0] - control_range_high = data.data.general_data.data.chargemode_config.pv_charging.control_range[1] - control_range_center = control_range_high - (control_range_high - control_range_low) / 2 - if len(chargepoint_by_chargemodes) == 0: - log.debug("Speicher-Leistung nicht begrenzen, " - "da keine Ladepunkte in einem Lademodus mit Netzbezug sind.") - elif data.data.cp_all_data.data.get.power <= 100: - log.debug("Speicher-Leistung nicht begrenzen, da kein Ladepunkt mit Netzbezug lädt.") - elif self.data.get.power_limit_controllable is False: - log.debug("Speicher-Leistung nicht begrenzen, da keine regelbaren Speicher vorhanden sind.") - elif self.data.get.power > 0: - log.debug("Speicher-Leistung nicht begrenzen, da kein Speicher entladen wird.") - elif data.data.counter_all_data.get_evu_counter().data.get.power < control_range_center + 80: - # Wenn der Regelbereich zB auf Bezug steht, darf auch die Leistung des Regelbereichs entladen werden. - log.debug("Speicher-Leistung nicht begrenzen, da EVU-Überschuss vorhanden ist.") + chargepoint_by_chargemodes = get_chargepoints_by_chargemodes(CONSIDERED_CHARGE_MODES_CHARGING) + # Falls aktive Steuerung an und Fahrzeuge laden und kein Überschuss im System ist, + # dann Speicherleistung begrenzen. + if (self.data.config.power_limit_mode != BatPowerLimitMode.NO_LIMIT.value and + len(chargepoint_by_chargemodes) > 0 and + data.data.cp_all_data.data.get.power > 100 and + self.data.get.power_limit_controllable and + self.data.get.power <= 0 and + data.data.counter_all_data.get_evu_counter().data.get.power >= -100): + if self.data.config.power_limit_mode == BatPowerLimitMode.LIMIT_STOP.value: + self.data.set.power_limit = 0 + elif self.data.config.power_limit_mode == BatPowerLimitMode.LIMIT_TO_HOME_CONSUMPTION.value: + self.data.set.power_limit = data.data.counter_all_data.data.set.home_consumption * -1 + log.debug(f"Speicher-Leistung begrenzen auf {self.data.set.power_limit/1000}kW") else: - log.debug("Speicher-Leistung nicht begrenzen.") + self.data.set.power_limit = None + control_range_low = data.data.general_data.data.chargemode_config.pv_charging.control_range[0] + control_range_high = data.data.general_data.data.chargemode_config.pv_charging.control_range[1] + control_range_center = control_range_high - (control_range_high - control_range_low) / 2 + if len(chargepoint_by_chargemodes) == 0: + log.debug("Speicher-Leistung nicht begrenzen, " + "da keine Ladepunkte in einem Lademodus mit Netzbezug sind.") + elif data.data.cp_all_data.data.get.power <= 100: + log.debug("Speicher-Leistung nicht begrenzen, da kein Ladepunkt mit Netzbezug lädt.") + elif self.data.get.power_limit_controllable is False: + log.debug("Speicher-Leistung nicht begrenzen, da keine regelbaren Speicher vorhanden sind.") + elif self.data.get.power > 0: + log.debug("Speicher-Leistung nicht begrenzen, da kein Speicher entladen wird.") + elif data.data.counter_all_data.get_evu_counter().data.get.power < control_range_center + 80: + # Wenn der Regelbereich zB auf Bezug steht, darf auch die Leistung des Regelbereichs entladen werden. + log.debug("Speicher-Leistung nicht begrenzen, da EVU-Überschuss vorhanden ist.") + else: + log.debug("Speicher-Leistung nicht begrenzen.") remaining_power_limit = self.data.set.power_limit for bat_component in get_controllable_bat_components(): if self.data.set.power_limit is None: From 983765a9a70e2f1ba577b3cb0a0cabbb521c1146 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Tue, 2 Sep 2025 08:26:05 +0200 Subject: [PATCH 2/3] flake8 --- packages/control/bat_all.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/control/bat_all.py b/packages/control/bat_all.py index ac3a393ec0..72ba12ebb9 100644 --- a/packages/control/bat_all.py +++ b/packages/control/bat_all.py @@ -322,7 +322,8 @@ def get_power_limit(self): elif self.data.get.power > 0: log.debug("Speicher-Leistung nicht begrenzen, da kein Speicher entladen wird.") elif data.data.counter_all_data.get_evu_counter().data.get.power < control_range_center + 80: - # Wenn der Regelbereich zB auf Bezug steht, darf auch die Leistung des Regelbereichs entladen werden. + # Wenn der Regelbereich zB auf Bezug steht, darf auch die Leistung des Regelbereichs entladen + # werden. log.debug("Speicher-Leistung nicht begrenzen, da EVU-Überschuss vorhanden ist.") else: log.debug("Speicher-Leistung nicht begrenzen.") From 4a57b8aeac4c2af6edff8fe85f19e16d23df8e7f Mon Sep 17 00:00:00 2001 From: LKuemmel <76958050+LKuemmel@users.noreply.github.com> Date: Tue, 2 Sep 2025 09:55:49 +0200 Subject: [PATCH 3/3] Update packages/control/bat_all.py Co-authored-by: benderl --- packages/control/bat_all.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/control/bat_all.py b/packages/control/bat_all.py index 72ba12ebb9..d1085b0d2b 100644 --- a/packages/control/bat_all.py +++ b/packages/control/bat_all.py @@ -291,7 +291,7 @@ def set_power_limit_controllable(self): def get_power_limit(self): if self.data.config.bat_control_permitted is False: - self.data.set.power_limit + self.data.set.power_limit = None else: chargepoint_by_chargemodes = get_chargepoints_by_chargemodes(CONSIDERED_CHARGE_MODES_CHARGING) # Falls aktive Steuerung an und Fahrzeuge laden und kein Überschuss im System ist,