From 1e275e80d57d6a8178434efe48c943bf4dedc3c9 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Wed, 26 Aug 2026 09:55:20 +0200 Subject: [PATCH 1/4] improve --- packages/control/process.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/control/process.py b/packages/control/process.py index 99e6d73055..b852f9be90 100644 --- a/packages/control/process.py +++ b/packages/control/process.py @@ -181,6 +181,8 @@ def _update_state_consumer(self, consumer: Consumer) -> None: consumer.data.set.current = consumer.data.set.current_prev else: consumer.data.set.current = round(consumer.data.set.current, 2) + if consumer.data.set.current != consumer.data.set.current_prev: + consumer.data.set.timestamp_last_current_set = timecheck.create_timestamp() if consumer.data.set.current != 0 and control_parameter.state not in CHARGING_STATES: control_parameter.state = ChargepointState.CHARGING_ALLOWED if control_parameter.state != ChargepointState.NO_CHARGING_ALLOWED or consumer.data.set.current != 0: @@ -191,8 +193,6 @@ def _update_state_consumer(self, consumer: Consumer) -> None: f"state {ChargepointState(control_parameter.state).name}") def _start_consumer(self, consumer: Consumer) -> Thread: - if consumer.data.set.current != consumer.data.set.current_prev: - consumer.data.set.timestamp_last_current_set = timecheck.create_timestamp() if consumer.data.usage.type in (ConsumerUsage.CONTINUOUS, ConsumerUsage.SUSPENDABLE_ONOFF): return Thread( From cb4d0e523420b2d217a9dffa106b8d26e84f3055 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Wed, 26 Aug 2026 14:49:12 +0200 Subject: [PATCH 2/4] review: update comments --- packages/control/counter_all/hierarchy.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/control/counter_all/hierarchy.py b/packages/control/counter_all/hierarchy.py index cd5195f17d..b14ec14e04 100644 --- a/packages/control/counter_all/hierarchy.py +++ b/packages/control/counter_all/hierarchy.py @@ -27,7 +27,7 @@ def _get_all_elements_without_children_recursive(self: HierarchyProtocol, child: log.exception("Fehler in der allgemeinen Zähler-Klasse") def get_loads_of_counter(self: HierarchyProtocol, counter: str) -> List[str]: - """ gibt eine Liste der Ladepunkte, die in den folgenden Zweigen des Zählers sind, zurück. + """ gibt eine Liste der Ladepunkte und Verbraucher, die in den folgenden Zweigen des Zählers sind, zurück. """ self.connected_loads = [] if counter == self.get_evu_counter_str(): @@ -45,7 +45,7 @@ def get_loads_of_counter(self: HierarchyProtocol, counter: str) -> List[str]: return self.connected_loads def _get_all_loads_connected_to_counter(self: HierarchyProtocol, child: Dict) -> None: - """ Rekursive Funktion, die alle Ladepunkte ermittelt, die an den angegebenen Zähler angeschlossen sind. + """ Rekursive Funktion, die alle Ladepunkte und Verbraucher ermittelt, die an den angegebenen Zähler angeschlossen sind. """ # Alle Objekte der Ebene durchgehen for child in child["children"]: @@ -61,7 +61,7 @@ def _get_all_loads_connected_to_counter(self: HierarchyProtocol, child: Dict) -> log.exception("Fehler in der allgemeinen Zähler-Klasse") def get_counters_to_check(self: HierarchyProtocol, num: int) -> List[str]: - """ ermittelt alle Zähler im Zweig des Ladepunkts. + """ ermittelt alle Zähler im Zweig des Ladepunkts/Verbrauchers. """ self.connected_counters = [] self._get_all_counter_in_branch(self.data.get.hierarchy[0], num) @@ -91,7 +91,7 @@ def _is_id_in_top_level(self: HierarchyProtocol, id_to_find: int) -> Dict: return {} def _get_all_counter_in_branch(self: HierarchyProtocol, child: Dict, id_to_find: int) -> bool: - """ Rekursive Funktion, die alle Zweige durchgeht, bis der entsprechende Ladepunkt gefunden wird und dann alle + """ Rekursive Funktion, die alle Zweige durchgeht, bis der entsprechende Ladepunkt/Verbraucher gefunden wird und dann alle Zähler in diesem Pfad der Liste anhängt. """ parent_id = child["id"] @@ -135,8 +135,8 @@ def _get_entry_of_parent(self: HierarchyProtocol, child: Dict, id_to_find: int) def hierarchy_add_item_aside(self: HierarchyProtocol, new_id: int, new_type: ComponentType, id_to_find: int) -> None: - """ ruft die rekursive Funktion zum Hinzufügen eines Zählers oder Ladepunkts in die Zählerhierarchie auf - derselben Ebene wie das angegebene Element. + """ ruft die rekursive Funktion zum Hinzufügen eines Zählers, Ladepunkts oder Verbrauchers in die + Zählerhierarchie auf derselben Ebene wie das angegebene Element. """ if self._is_id_in_top_level(id_to_find): self.data.get.hierarchy.append({"id": new_id, "type": new_type.value, "children": []}) From 14bf869c3bfb5ab46c1f5be5821b0402ccb5e7e6 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Wed, 26 Aug 2026 15:01:39 +0200 Subject: [PATCH 3/4] flake8 --- packages/control/counter_all/hierarchy.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/control/counter_all/hierarchy.py b/packages/control/counter_all/hierarchy.py index b14ec14e04..deb21187a1 100644 --- a/packages/control/counter_all/hierarchy.py +++ b/packages/control/counter_all/hierarchy.py @@ -45,7 +45,8 @@ def get_loads_of_counter(self: HierarchyProtocol, counter: str) -> List[str]: return self.connected_loads def _get_all_loads_connected_to_counter(self: HierarchyProtocol, child: Dict) -> None: - """ Rekursive Funktion, die alle Ladepunkte und Verbraucher ermittelt, die an den angegebenen Zähler angeschlossen sind. + """ Rekursive Funktion, die alle Ladepunkte und Verbraucher ermittelt, die an den angegebenen Zähler + angeschlossen sind. """ # Alle Objekte der Ebene durchgehen for child in child["children"]: @@ -91,8 +92,8 @@ def _is_id_in_top_level(self: HierarchyProtocol, id_to_find: int) -> Dict: return {} def _get_all_counter_in_branch(self: HierarchyProtocol, child: Dict, id_to_find: int) -> bool: - """ Rekursive Funktion, die alle Zweige durchgeht, bis der entsprechende Ladepunkt/Verbraucher gefunden wird und dann alle - Zähler in diesem Pfad der Liste anhängt. + """ Rekursive Funktion, die alle Zweige durchgeht, bis der entsprechende Ladepunkt/Verbraucher gefunden wird + und dann alle Zähler in diesem Pfad der Liste anhängt. """ parent_id = child["id"] for child in child["children"]: From 3c39c1536c9cff53dfaf009e749fcf7f7c876c96 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Tue, 8 Sep 2026 09:28:13 +0200 Subject: [PATCH 4/4] fix rebase --- packages/helpermodules/command.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/helpermodules/command.py b/packages/helpermodules/command.py index af0c5d75ad..e7531c7880 100644 --- a/packages/helpermodules/command.py +++ b/packages/helpermodules/command.py @@ -799,7 +799,7 @@ def removeVehicle(self, connection_id: str, payload: dict) -> None: if SubData.system_data["system"].data["security"]["user_management_active"]: remove_acl_role("vehicle--access", payload["data"]["id"]) remove_acl_role("vehicle--write-access", payload["data"]["id"]) - SubData.counter_all_data.remove_loadmanagement_prio_item(payload["data"]["id"]) + SubData.counter_all_data.remove_loadmanagement_prio_item(ComponentType.VEHICLE, payload["data"]["id"]) Pub().pub("openWB/set/counter/get/loadmanagement_prios", SubData.counter_all_data.data.get.loadmanagement_prios) pub_user_message( @@ -1214,7 +1214,7 @@ def removeConsumer(self, connection_id: str, payload: dict) -> None: ProcessBrokerBranch(f'consumer/{payload["data"]["consumer_id"]}/').remove_topics() SubData.counter_all_data.hierarchy_remove_item(payload["data"]["consumer_id"]) Pub().pub("openWB/set/counter/get/hierarchy", SubData.counter_all_data.data.get.hierarchy) - SubData.counter_all_data.remove_loadmanagement_prio_item(payload["data"]["consumer_id"]) + SubData.counter_all_data.remove_loadmanagement_prio_item(ComponentType.CONSUMER, payload["data"]["consumer_id"]) Pub().pub("openWB/set/counter/get/loadmanagement_prios", SubData.counter_all_data.data.get.loadmanagement_prios) pub_user_message(payload, connection_id, f'Verbraucher mit ID \'{payload["data"]["consumer_id"]}\' gelöscht.', MessageType.SUCCESS)