From b7604639ffa689b6e08db6377526a160337ce066 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Tue, 21 Oct 2025 14:07:12 +0200 Subject: [PATCH 1/2] mqtt inverter imported --- packages/helpermodules/setdata.py | 3 ++- packages/modules/devices/generic/mqtt/bat.py | 4 ++-- packages/modules/devices/generic/mqtt/inverter.py | 11 ++++++++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/helpermodules/setdata.py b/packages/helpermodules/setdata.py index a18eaebb9d..f8c3a2c5ea 100644 --- a/packages/helpermodules/setdata.py +++ b/packages/helpermodules/setdata.py @@ -610,7 +610,8 @@ def process_pv_topic(self, msg: mqtt.MQTTMessage): "/get/yearly_exported" in msg.topic or "/get/energy" in msg.topic): self._validate_value(msg, float, [(0, float("inf"))]) - elif "/get/exported" in msg.topic: + elif ("/get/exported" in msg.topic or + "/get/imported" in msg.topic): self._validate_value(msg, float, [(0, float("inf"))]) elif "/get/power" in msg.topic: self._validate_value(msg, float) diff --git a/packages/modules/devices/generic/mqtt/bat.py b/packages/modules/devices/generic/mqtt/bat.py index bbb1026387..08d8b94e02 100644 --- a/packages/modules/devices/generic/mqtt/bat.py +++ b/packages/modules/devices/generic/mqtt/bat.py @@ -34,8 +34,8 @@ def parse_received_topics(value: str): currents = parse_received_topics("currents") power = received_topics[f"{topic_prefix}power"] soc = received_topics[f"{topic_prefix}soc"] - if (received_topics.get(f"{topic_prefix}imported") and - received_topics.get(f"{topic_prefix}exported")): + if (received_topics.get(f"{topic_prefix}imported") is not None and + received_topics.get(f"{topic_prefix}exported") is not None): imported = received_topics[f"{topic_prefix}imported"] exported = received_topics[f"{topic_prefix}exported"] else: diff --git a/packages/modules/devices/generic/mqtt/inverter.py b/packages/modules/devices/generic/mqtt/inverter.py index 26593035d4..c88888c326 100644 --- a/packages/modules/devices/generic/mqtt/inverter.py +++ b/packages/modules/devices/generic/mqtt/inverter.py @@ -31,10 +31,14 @@ def parse_received_topics(value: str): # [] für erforderliche Topics, .get() für optionale Topics topic_prefix = f"openWB/mqtt/pv/{self.component_config.id}/get/" power = received_topics[f"{topic_prefix}power"] - if received_topics.get(f"openWB/mqtt/pv/{self.component_config.id}/get/exported"): + + if received_topics.get(f"{topic_prefix}exported") is None or received_topics.get(f"{topic_prefix}imported") is None: + imported, exported = self.sim_counter.sim_count(power) + if received_topics.get(f"{topic_prefix}exported"): exported = received_topics[f"{topic_prefix}exported"] - else: - exported = self.sim_counter.sim_count(power)[1] + if received_topics.get(f"{topic_prefix}imported"): + imported = received_topics[f"{topic_prefix}imported"] + currents = parse_received_topics("currents") dc_power = parse_received_topics("dc_power") @@ -42,6 +46,7 @@ def parse_received_topics(value: str): currents=currents, power=power, exported=exported, + imported=imported, dc_power=dc_power ) self.store.set(inverter_state) From e60ad14d7462975c26711f53f7c454c8050fe0fc Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Tue, 21 Oct 2025 14:17:22 +0200 Subject: [PATCH 2/2] flake8 --- packages/modules/devices/generic/mqtt/inverter.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/modules/devices/generic/mqtt/inverter.py b/packages/modules/devices/generic/mqtt/inverter.py index c88888c326..cd5b77317b 100644 --- a/packages/modules/devices/generic/mqtt/inverter.py +++ b/packages/modules/devices/generic/mqtt/inverter.py @@ -32,7 +32,8 @@ def parse_received_topics(value: str): topic_prefix = f"openWB/mqtt/pv/{self.component_config.id}/get/" power = received_topics[f"{topic_prefix}power"] - if received_topics.get(f"{topic_prefix}exported") is None or received_topics.get(f"{topic_prefix}imported") is None: + if (received_topics.get(f"{topic_prefix}exported") is None or + received_topics.get(f"{topic_prefix}imported") is None): imported, exported = self.sim_counter.sim_count(power) if received_topics.get(f"{topic_prefix}exported"): exported = received_topics[f"{topic_prefix}exported"]