diff --git a/packages/modules/devices/kostal/kostal_plenticore/inverter.py b/packages/modules/devices/kostal/kostal_plenticore/inverter.py index 28315988cf..e8904a4d48 100644 --- a/packages/modules/devices/kostal/kostal_plenticore/inverter.py +++ b/packages/modules/devices/kostal/kostal_plenticore/inverter.py @@ -32,14 +32,24 @@ 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 DC-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) - 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 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(