Skip to content

Commit 4e74cc3

Browse files
seaspotterLKuemmel
andauthored
Fix Kostal dc_power (openWB#2618)
* Fix dc_power if not availble * flake8 * dc_power = none instead 0f 0 Co-authored-by: LKuemmel <76958050+LKuemmel@users.noreply.github.com> * Improve fault_handling with Text * flake8 * typo --------- Co-authored-by: LKuemmel <76958050+LKuemmel@users.noreply.github.com>
1 parent c3b3782 commit 4e74cc3

File tree

1 file changed

+12
-2
lines changed
  • packages/modules/devices/kostal/kostal_plenticore

1 file changed

+12
-2
lines changed

packages/modules/devices/kostal/kostal_plenticore/inverter.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,24 @@ def initialize(self) -> None:
3232
self.store = get_inverter_value_store(self.component_config.id)
3333
self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config))
3434
self.sim_counter = SimCounter(self.kwargs['device_id'], self.component_config.id, prefix="Wechselrichter")
35+
self.fault_text = (
36+
"Es kann keine DC-Leistung aus dem Wechselrichter ausgelesen werden, "
37+
"möglicherweise kann ein Firmware-Update für den Wechselrichter nötig sein."
38+
)
3539

3640
def update(self) -> None:
3741
power = self.client.read_holding_registers(
3842
575, ModbusDataType.INT_16, unit=self.modbus_id, wordorder=self.endianess) * -1
3943
exported = self.client.read_holding_registers(
4044
320, ModbusDataType.FLOAT_32, unit=self.modbus_id, wordorder=self.endianess)
41-
dc_power = self.client.read_holding_registers(
42-
1066, ModbusDataType.FLOAT_32, unit=self.modbus_id, wordorder=self.endianess) * -1
45+
# Try to read dc_power, if it fails just skip it and set to None
46+
try:
47+
dc_power = self.client.read_holding_registers(
48+
1066, ModbusDataType.FLOAT_32, unit=self.modbus_id, wordorder=self.endianess) * -1
49+
self.fault_state.no_error()
50+
except Exception:
51+
dc_power = None
52+
self.fault_state.no_error(self.fault_text)
4353
imported, _ = self.sim_counter.sim_count(power)
4454

4555
inverter_state = InverterState(

0 commit comments

Comments
 (0)