From 7bd8bab7123c5c2f3bcb580393ede4946171bcbb Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Fri, 14 Nov 2025 15:33:50 +0100 Subject: [PATCH] fix error handling --- packages/modules/common/store/_battery.py | 27 ++++------- packages/modules/common/store/_car.py | 15 ++---- packages/modules/common/store/_counter.py | 22 ++++----- packages/modules/common/store/_inverter.py | 14 ++---- packages/modules/common/store/_io.py | 48 +++++++++---------- packages/modules/common/store/_io_internal.py | 20 ++++---- packages/modules/common/store/_tariff.py | 24 +++------- 7 files changed, 66 insertions(+), 104 deletions(-) diff --git a/packages/modules/common/store/_battery.py b/packages/modules/common/store/_battery.py index da4bf72d57..41ded60c93 100644 --- a/packages/modules/common/store/_battery.py +++ b/packages/modules/common/store/_battery.py @@ -1,6 +1,5 @@ from helpermodules import compatibility from modules.common.component_state import BatState -from modules.common.fault_state import FaultState from modules.common.store import ValueStore from modules.common.store._api import LoggingValueStore from modules.common.store._broker import pub_to_broker @@ -12,13 +11,10 @@ def __init__(self, component_num: int) -> None: self.num = component_num def set(self, bat_state: BatState): - try: - files.battery.power.write(bat_state.power) - files.battery.soc.write(bat_state.soc) - files.battery.energy_imported.write(bat_state.imported) - files.battery.energy_exported.write(bat_state.exported) - except Exception as e: - raise FaultState.from_exception(e) + files.battery.power.write(bat_state.power) + files.battery.soc.write(bat_state.soc) + files.battery.energy_imported.write(bat_state.imported) + files.battery.energy_exported.write(bat_state.exported) class BatteryValueStoreBroker(ValueStore[BatState]): @@ -29,15 +25,12 @@ def set(self, bat_state: BatState): self.state = bat_state def update(self): - try: - pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/currents", self.state.currents, 2) - pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/power", self.state.power, 2) - pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/soc", self.state.soc, 0) - if self.state.imported is not None and self.state.exported is not None: - pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/imported", self.state.imported, 2) - pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/exported", self.state.exported, 2) - except Exception as e: - raise FaultState.from_exception(e) + pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/currents", self.state.currents, 2) + pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/power", self.state.power, 2) + pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/soc", self.state.soc, 0) + if self.state.imported is not None and self.state.exported is not None: + pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/imported", self.state.imported, 2) + pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/exported", self.state.exported, 2) class PurgeBatteryState: diff --git a/packages/modules/common/store/_car.py b/packages/modules/common/store/_car.py index 6933ba7b9f..dc6585d417 100644 --- a/packages/modules/common/store/_car.py +++ b/packages/modules/common/store/_car.py @@ -1,6 +1,5 @@ from helpermodules import compatibility from modules.common.component_state import CarState -from modules.common.fault_state import FaultState from modules.common.store import ValueStore from modules.common.store._api import LoggingValueStore from modules.common.store._broker import pub_to_broker @@ -23,15 +22,11 @@ def set(self, state: CarState) -> None: self.state = state def update(self): - try: - pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc", self.state.soc, 2) - if self.state.range: - pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/range", self.state.range, 2) - if self.state.soc_timestamp: - pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc_timestamp", self.state.soc_timestamp) - - except Exception as e: - raise FaultState.from_exception(e) + pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc", self.state.soc, 2) + if self.state.range: + pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/range", self.state.range, 2) + if self.state.soc_timestamp: + pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc_timestamp", self.state.soc_timestamp) def get_car_value_store(id: int) -> ValueStore[CarState]: diff --git a/packages/modules/common/store/_counter.py b/packages/modules/common/store/_counter.py index f3f46ce6f7..b6a359af8d 100644 --- a/packages/modules/common/store/_counter.py +++ b/packages/modules/common/store/_counter.py @@ -7,7 +7,6 @@ from helpermodules.phase_handling import convert_cp_currents_to_evu_currents from modules.common.component_state import CounterState from modules.common.component_type import ComponentType -from modules.common.fault_state import FaultState from modules.common.simcount._simcounter import SimCounter from modules.common.store import ValueStore from modules.common.store._api import LoggingValueStore @@ -20,18 +19,15 @@ class CounterValueStoreRamdisk(ValueStore[CounterState]): def set(self, counter_state: CounterState): - try: - files.evu.voltages.write(counter_state.voltages) - if counter_state.currents: - files.evu.currents.write(counter_state.currents) - files.evu.powers_import.write([int(p) for p in counter_state.powers]) - files.evu.power_factors.write(counter_state.power_factors) - files.evu.energy_import.write(counter_state.imported) - files.evu.energy_export.write(counter_state.exported) - files.evu.power_import.write(int(counter_state.power)) - files.evu.frequency.write(counter_state.frequency) - except Exception as e: - raise FaultState.from_exception(e) + files.evu.voltages.write(counter_state.voltages) + if counter_state.currents: + files.evu.currents.write(counter_state.currents) + files.evu.powers_import.write([int(p) for p in counter_state.powers]) + files.evu.power_factors.write(counter_state.power_factors) + files.evu.energy_import.write(counter_state.imported) + files.evu.energy_export.write(counter_state.exported) + files.evu.power_import.write(int(counter_state.power)) + files.evu.frequency.write(counter_state.frequency) class CounterValueStoreBroker(ValueStore[CounterState]): diff --git a/packages/modules/common/store/_inverter.py b/packages/modules/common/store/_inverter.py index 30380bb37b..2b9ecbf0ae 100644 --- a/packages/modules/common/store/_inverter.py +++ b/packages/modules/common/store/_inverter.py @@ -3,7 +3,6 @@ from control import data from helpermodules import compatibility from modules.common.component_state import InverterState -from modules.common.fault_state import FaultState from modules.common.store import ValueStore from modules.common.store._api import LoggingValueStore from modules.common.store._broker import pub_to_broker @@ -17,14 +16,11 @@ def __init__(self, component_num: int) -> None: self.__pv = files.pv[component_num - 1] def set(self, inverter_state: InverterState): - try: - self.__pv.power.write(int(inverter_state.power)) - self.__pv.energy.write(inverter_state.exported) - self.__pv.energy_k.write(inverter_state.exported / 1000) - if inverter_state.currents: - self.__pv.currents.write(inverter_state.currents) - except Exception as e: - raise FaultState.from_exception(e) + self.__pv.power.write(int(inverter_state.power)) + self.__pv.energy.write(inverter_state.exported) + self.__pv.energy_k.write(inverter_state.exported / 1000) + if inverter_state.currents: + self.__pv.currents.write(inverter_state.currents) class InverterValueStoreBroker(ValueStore[InverterState]): diff --git a/packages/modules/common/store/_io.py b/packages/modules/common/store/_io.py index f083c4d46f..9bbaf27c6f 100644 --- a/packages/modules/common/store/_io.py +++ b/packages/modules/common/store/_io.py @@ -1,6 +1,5 @@ from control import data from modules.common.component_state import IoState -from modules.common.fault_state import FaultState from modules.common.store import ValueStore from modules.common.store._api import LoggingValueStore from modules.common.store._broker import pub_to_broker @@ -15,31 +14,28 @@ def set(self, state: IoState) -> None: self.state = state def update(self): - try: - if self.state.digital_input: - pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_input_prev", - data.data.io_states[f"io_states{self.num}"].data.get.digital_input) - pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_input", self.state.digital_input) - if self.state.analog_input: - pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_input_prev", - data.data.io_states[f"io_states{self.num}"].data.get.analog_input) - pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_input", self.state.analog_input) - if self.state.digital_output: - pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_output_prev", - data.data.io_states[f"io_states{self.num}"].data.get.digital_output) - pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_output", self.state.digital_output) - pub_to_broker(f"openWB/set/io/states/{self.num}/set/digital_output_prev", - data.data.io_states[f"io_states{self.num}"].data.set.digital_output) - pub_to_broker(f"openWB/set/io/states/{self.num}/set/digital_output", self.state.digital_output) - if self.state.analog_output: - pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_output_prev", - data.data.io_states[f"io_states{self.num}"].data.get.analog_output) - pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_output", self.state.analog_output) - pub_to_broker(f"openWB/set/io/states/{self.num}/set/analog_output_prev", - data.data.io_states[f"io_states{self.num}"].data.set.analog_output) - pub_to_broker(f"openWB/set/io/states/{self.num}/set/analog_output", self.state.analog_output) - except Exception as e: - raise FaultState.from_exception(e) + if self.state.digital_input: + pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_input_prev", + data.data.io_states[f"io_states{self.num}"].data.get.digital_input) + pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_input", self.state.digital_input) + if self.state.analog_input: + pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_input_prev", + data.data.io_states[f"io_states{self.num}"].data.get.analog_input) + pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_input", self.state.analog_input) + if self.state.digital_output: + pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_output_prev", + data.data.io_states[f"io_states{self.num}"].data.get.digital_output) + pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_output", self.state.digital_output) + pub_to_broker(f"openWB/set/io/states/{self.num}/set/digital_output_prev", + data.data.io_states[f"io_states{self.num}"].data.set.digital_output) + pub_to_broker(f"openWB/set/io/states/{self.num}/set/digital_output", self.state.digital_output) + if self.state.analog_output: + pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_output_prev", + data.data.io_states[f"io_states{self.num}"].data.get.analog_output) + pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_output", self.state.analog_output) + pub_to_broker(f"openWB/set/io/states/{self.num}/set/analog_output_prev", + data.data.io_states[f"io_states{self.num}"].data.set.analog_output) + pub_to_broker(f"openWB/set/io/states/{self.num}/set/analog_output", self.state.analog_output) def get_io_value_store(num: int) -> ValueStore[IoState]: diff --git a/packages/modules/common/store/_io_internal.py b/packages/modules/common/store/_io_internal.py index b3f191f76b..652355cee0 100644 --- a/packages/modules/common/store/_io_internal.py +++ b/packages/modules/common/store/_io_internal.py @@ -1,5 +1,4 @@ from modules.common.component_state import IoState -from modules.common.fault_state import FaultState from modules.common.store import ValueStore from modules.common.store._api import LoggingValueStore from modules.common.store._broker import pub_to_broker @@ -13,17 +12,14 @@ def set(self, state: IoState) -> None: self.state = state def update(self): - try: - if self.state.digital_input: - pub_to_broker("openWB/set/internal_io/states/get/digital_input", self.state.digital_input) - if self.state.analog_input: - pub_to_broker("openWB/set/internal_io/states/get/analog_input", self.state.analog_input) - if self.state.digital_output: - pub_to_broker("openWB/set/internal_io/states/get/digital_output", self.state.digital_output) - if self.state.analog_output: - pub_to_broker("openWB/set/internal_io/states/get/analog_output", self.state.analog_output) - except Exception as e: - raise FaultState.from_exception(e) + if self.state.digital_input: + pub_to_broker("openWB/set/internal_io/states/get/digital_input", self.state.digital_input) + if self.state.analog_input: + pub_to_broker("openWB/set/internal_io/states/get/analog_input", self.state.analog_input) + if self.state.digital_output: + pub_to_broker("openWB/set/internal_io/states/get/digital_output", self.state.digital_output) + if self.state.analog_output: + pub_to_broker("openWB/set/internal_io/states/get/analog_output", self.state.analog_output) def get_internal_io_value_store() -> ValueStore[IoState]: diff --git a/packages/modules/common/store/_tariff.py b/packages/modules/common/store/_tariff.py index 0dedce1328..7d35171cb7 100644 --- a/packages/modules/common/store/_tariff.py +++ b/packages/modules/common/store/_tariff.py @@ -1,7 +1,6 @@ from datetime import timedelta from control import data from modules.common.component_state import TariffState -from modules.common.fault_state import FaultState from modules.common.store import ValueStore from modules.common.store._api import LoggingValueStore from modules.common.store._broker import pub_to_broker @@ -19,12 +18,9 @@ def set(self, state: TariffState) -> None: self.state = state def update(self): - try: - prices = self.state.prices - pub_to_broker("openWB/set/optional/ep/flexible_tariff/get/prices", prices) - log.debug(f"published prices list to MQTT having {len(prices)} entries") - except Exception as e: - raise FaultState.from_exception(e) + prices = self.state.prices + pub_to_broker("openWB/set/optional/ep/flexible_tariff/get/prices", prices) + log.debug(f"published prices list to MQTT having {len(prices)} entries") def get_flexible_tariff_value_store() -> ValueStore[TariffState]: @@ -39,12 +35,9 @@ def set(self, state: TariffState) -> None: self.state = state def update(self): - try: - prices = self.state.prices - pub_to_broker("openWB/set/optional/ep/grid_fee/get/prices", prices) - log.debug(f"published grid tariff prices list to MQTT having {len(prices)} entries") - except Exception as e: - raise FaultState.from_exception(e) + prices = self.state.prices + pub_to_broker("openWB/set/optional/ep/grid_fee/get/prices", prices) + log.debug(f"published grid tariff prices list to MQTT having {len(prices)} entries") def get_grid_fee_value_store() -> ValueStore[TariffState]: @@ -56,10 +49,7 @@ def __init__(self): pass def update(self): - try: - pub_to_broker("openWB/set/optional/ep/get/prices", self.sum_prices()) - except Exception as e: - raise FaultState.from_exception(e) + pub_to_broker("openWB/set/optional/ep/get/prices", self.sum_prices()) def sum_prices(self): flexible_tariff_prices = data.data.optional_data.data.electricity_pricing.flexible_tariff.get.prices