From 839745412b2c7e797fedeb4e85a6d8d5e08b1291 Mon Sep 17 00:00:00 2001 From: SeaSpotter Date: Wed, 30 Jul 2025 13:25:23 +0200 Subject: [PATCH 1/6] Fix dc_power if not availble --- .../modules/devices/kostal/kostal_plenticore/inverter.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/modules/devices/kostal/kostal_plenticore/inverter.py b/packages/modules/devices/kostal/kostal_plenticore/inverter.py index 28315988cf..6cd7f29521 100644 --- a/packages/modules/devices/kostal/kostal_plenticore/inverter.py +++ b/packages/modules/devices/kostal/kostal_plenticore/inverter.py @@ -38,8 +38,12 @@ def update(self) -> None: 575, ModbusDataType.INT_16, unit=self.modbus_id, wordorder=self.endianess) * -1 exported = self.client.read_holding_registers( 320, ModbusDataType.FLOAT_32, unit=self.modbus_id, wordorder=self.endianess) - dc_power = self.client.read_holding_registers( - 1066, ModbusDataType.FLOAT_32, unit=self.modbus_id, wordorder=self.endianess) * -1 + # Try to read dc_power, if it fails just skip it and set to 0 + try: + dc_power = self.client.read_holding_registers( + 1066, ModbusDataType.FLOAT_32, unit=self.modbus_id, wordorder=self.endianess) * -1 + except Exception as e: + dc_power = 0 imported, _ = self.sim_counter.sim_count(power) inverter_state = InverterState( From 0667da22bdb5d90d5dc9ee50e60fe42ae3409f88 Mon Sep 17 00:00:00 2001 From: SeaSpotter Date: Wed, 30 Jul 2025 13:30:27 +0200 Subject: [PATCH 2/6] flake8 --- packages/modules/devices/kostal/kostal_plenticore/inverter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/modules/devices/kostal/kostal_plenticore/inverter.py b/packages/modules/devices/kostal/kostal_plenticore/inverter.py index 6cd7f29521..4f7451f5da 100644 --- a/packages/modules/devices/kostal/kostal_plenticore/inverter.py +++ b/packages/modules/devices/kostal/kostal_plenticore/inverter.py @@ -42,8 +42,8 @@ def update(self) -> None: try: dc_power = self.client.read_holding_registers( 1066, ModbusDataType.FLOAT_32, unit=self.modbus_id, wordorder=self.endianess) * -1 - except Exception as e: - dc_power = 0 + except Exception: + dc_power = 0 imported, _ = self.sim_counter.sim_count(power) inverter_state = InverterState( From 6a7dbb5f39e4ed9d8cb338a802c7fb030bccdfd7 Mon Sep 17 00:00:00 2001 From: SeaSpotter Date: Wed, 30 Jul 2025 13:54:21 +0200 Subject: [PATCH 3/6] dc_power = none instead 0f 0 Co-authored-by: LKuemmel <76958050+LKuemmel@users.noreply.github.com> --- packages/modules/devices/kostal/kostal_plenticore/inverter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/modules/devices/kostal/kostal_plenticore/inverter.py b/packages/modules/devices/kostal/kostal_plenticore/inverter.py index 4f7451f5da..ed7a17f25f 100644 --- a/packages/modules/devices/kostal/kostal_plenticore/inverter.py +++ b/packages/modules/devices/kostal/kostal_plenticore/inverter.py @@ -43,7 +43,7 @@ def update(self) -> None: dc_power = self.client.read_holding_registers( 1066, ModbusDataType.FLOAT_32, unit=self.modbus_id, wordorder=self.endianess) * -1 except Exception: - dc_power = 0 + dc_power = None imported, _ = self.sim_counter.sim_count(power) inverter_state = InverterState( From 613af2c4d20e9918e8d626e3c67134baecfd55e9 Mon Sep 17 00:00:00 2001 From: SeaSpotter Date: Thu, 31 Jul 2025 12:48:09 +0200 Subject: [PATCH 4/6] Improve fault_handling with Text --- .../modules/devices/kostal/kostal_plenticore/inverter.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/modules/devices/kostal/kostal_plenticore/inverter.py b/packages/modules/devices/kostal/kostal_plenticore/inverter.py index ed7a17f25f..03c787df8b 100644 --- a/packages/modules/devices/kostal/kostal_plenticore/inverter.py +++ b/packages/modules/devices/kostal/kostal_plenticore/inverter.py @@ -32,18 +32,23 @@ def initialize(self) -> None: self.store = get_inverter_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) self.sim_counter = SimCounter(self.kwargs['device_id'], self.component_config.id, prefix="Wechselrichter") + self.fault_text = ( + "Es kann keine PV Leistung aus dem Wechselrichter ausgelesen werden, " + "möglicherweise kann ein Firmware-Update für den Wechselrichter nötig sein." def update(self) -> None: power = self.client.read_holding_registers( 575, ModbusDataType.INT_16, unit=self.modbus_id, wordorder=self.endianess) * -1 exported = self.client.read_holding_registers( 320, ModbusDataType.FLOAT_32, unit=self.modbus_id, wordorder=self.endianess) - # Try to read dc_power, if it fails just skip it and set to 0 + # Try to read dc_power, if it fails just skip it and set to None try: dc_power = self.client.read_holding_registers( 1066, ModbusDataType.FLOAT_32, unit=self.modbus_id, wordorder=self.endianess) * -1 + self.fault_state.no_error() except Exception: dc_power = None + self.fault_state.no_error(self.fault_text) imported, _ = self.sim_counter.sim_count(power) inverter_state = InverterState( From f9829770c7f4a2ccb44640d6dd39d961228573a0 Mon Sep 17 00:00:00 2001 From: SeaSpotter Date: Thu, 31 Jul 2025 12:50:08 +0200 Subject: [PATCH 5/6] flake8 --- packages/modules/devices/kostal/kostal_plenticore/inverter.py | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/modules/devices/kostal/kostal_plenticore/inverter.py b/packages/modules/devices/kostal/kostal_plenticore/inverter.py index 03c787df8b..b7962994d5 100644 --- a/packages/modules/devices/kostal/kostal_plenticore/inverter.py +++ b/packages/modules/devices/kostal/kostal_plenticore/inverter.py @@ -35,6 +35,7 @@ def initialize(self) -> None: self.fault_text = ( "Es kann keine PV Leistung aus dem Wechselrichter ausgelesen werden, " "möglicherweise kann ein Firmware-Update für den Wechselrichter nötig sein." + ) def update(self) -> None: power = self.client.read_holding_registers( From 9a26d3278a14ab684fedd900fd4485bbfd3528fa Mon Sep 17 00:00:00 2001 From: SeaSpotter Date: Thu, 31 Jul 2025 12:59:54 +0200 Subject: [PATCH 6/6] typo --- packages/modules/devices/kostal/kostal_plenticore/inverter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/modules/devices/kostal/kostal_plenticore/inverter.py b/packages/modules/devices/kostal/kostal_plenticore/inverter.py index b7962994d5..e8904a4d48 100644 --- a/packages/modules/devices/kostal/kostal_plenticore/inverter.py +++ b/packages/modules/devices/kostal/kostal_plenticore/inverter.py @@ -33,7 +33,7 @@ def initialize(self) -> None: self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) self.sim_counter = SimCounter(self.kwargs['device_id'], self.component_config.id, prefix="Wechselrichter") self.fault_text = ( - "Es kann keine PV Leistung aus dem Wechselrichter ausgelesen werden, " + "Es kann keine DC-Leistung aus dem Wechselrichter ausgelesen werden, " "möglicherweise kann ein Firmware-Update für den Wechselrichter nötig sein." )