Skip to content

Commit c5fa7f0

Browse files
LKuemmelcshagen
authored andcommitted
fix error handling (openWB#2943)
1 parent 3cc278a commit c5fa7f0

7 files changed

Lines changed: 66 additions & 104 deletions

File tree

packages/modules/common/store/_battery.py

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from helpermodules import compatibility
22
from modules.common.component_state import BatState
3-
from modules.common.fault_state import FaultState
43
from modules.common.store import ValueStore
54
from modules.common.store._api import LoggingValueStore
65
from modules.common.store._broker import pub_to_broker
@@ -12,13 +11,10 @@ def __init__(self, component_num: int) -> None:
1211
self.num = component_num
1312

1413
def set(self, bat_state: BatState):
15-
try:
16-
files.battery.power.write(bat_state.power)
17-
files.battery.soc.write(bat_state.soc)
18-
files.battery.energy_imported.write(bat_state.imported)
19-
files.battery.energy_exported.write(bat_state.exported)
20-
except Exception as e:
21-
raise FaultState.from_exception(e)
14+
files.battery.power.write(bat_state.power)
15+
files.battery.soc.write(bat_state.soc)
16+
files.battery.energy_imported.write(bat_state.imported)
17+
files.battery.energy_exported.write(bat_state.exported)
2218

2319

2420
class BatteryValueStoreBroker(ValueStore[BatState]):
@@ -29,15 +25,12 @@ def set(self, bat_state: BatState):
2925
self.state = bat_state
3026

3127
def update(self):
32-
try:
33-
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/currents", self.state.currents, 2)
34-
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/power", self.state.power, 2)
35-
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/soc", self.state.soc, 0)
36-
if self.state.imported is not None and self.state.exported is not None:
37-
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/imported", self.state.imported, 2)
38-
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/exported", self.state.exported, 2)
39-
except Exception as e:
40-
raise FaultState.from_exception(e)
28+
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/currents", self.state.currents, 2)
29+
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/power", self.state.power, 2)
30+
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/soc", self.state.soc, 0)
31+
if self.state.imported is not None and self.state.exported is not None:
32+
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/imported", self.state.imported, 2)
33+
pub_to_broker("openWB/set/bat/"+str(self.num)+"/get/exported", self.state.exported, 2)
4134

4235

4336
class PurgeBatteryState:

packages/modules/common/store/_car.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from helpermodules import compatibility
22
from modules.common.component_state import CarState
3-
from modules.common.fault_state import FaultState
43
from modules.common.store import ValueStore
54
from modules.common.store._api import LoggingValueStore
65
from modules.common.store._broker import pub_to_broker
@@ -23,15 +22,11 @@ def set(self, state: CarState) -> None:
2322
self.state = state
2423

2524
def update(self):
26-
try:
27-
pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc", self.state.soc, 2)
28-
if self.state.range:
29-
pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/range", self.state.range, 2)
30-
if self.state.soc_timestamp:
31-
pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc_timestamp", self.state.soc_timestamp)
32-
33-
except Exception as e:
34-
raise FaultState.from_exception(e)
25+
pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc", self.state.soc, 2)
26+
if self.state.range:
27+
pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/range", self.state.range, 2)
28+
if self.state.soc_timestamp:
29+
pub_to_broker("openWB/set/vehicle/"+str(self.vehicle_id)+"/get/soc_timestamp", self.state.soc_timestamp)
3530

3631

3732
def get_car_value_store(id: int) -> ValueStore[CarState]:

packages/modules/common/store/_counter.py

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from helpermodules.phase_handling import convert_cp_currents_to_evu_currents
88
from modules.common.component_state import CounterState
99
from modules.common.component_type import ComponentType
10-
from modules.common.fault_state import FaultState
1110
from modules.common.simcount._simcounter import SimCounter
1211
from modules.common.store import ValueStore
1312
from modules.common.store._api import LoggingValueStore
@@ -20,18 +19,15 @@
2019

2120
class CounterValueStoreRamdisk(ValueStore[CounterState]):
2221
def set(self, counter_state: CounterState):
23-
try:
24-
files.evu.voltages.write(counter_state.voltages)
25-
if counter_state.currents:
26-
files.evu.currents.write(counter_state.currents)
27-
files.evu.powers_import.write([int(p) for p in counter_state.powers])
28-
files.evu.power_factors.write(counter_state.power_factors)
29-
files.evu.energy_import.write(counter_state.imported)
30-
files.evu.energy_export.write(counter_state.exported)
31-
files.evu.power_import.write(int(counter_state.power))
32-
files.evu.frequency.write(counter_state.frequency)
33-
except Exception as e:
34-
raise FaultState.from_exception(e)
22+
files.evu.voltages.write(counter_state.voltages)
23+
if counter_state.currents:
24+
files.evu.currents.write(counter_state.currents)
25+
files.evu.powers_import.write([int(p) for p in counter_state.powers])
26+
files.evu.power_factors.write(counter_state.power_factors)
27+
files.evu.energy_import.write(counter_state.imported)
28+
files.evu.energy_export.write(counter_state.exported)
29+
files.evu.power_import.write(int(counter_state.power))
30+
files.evu.frequency.write(counter_state.frequency)
3531

3632

3733
class CounterValueStoreBroker(ValueStore[CounterState]):

packages/modules/common/store/_inverter.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from control import data
44
from helpermodules import compatibility
55
from modules.common.component_state import InverterState
6-
from modules.common.fault_state import FaultState
76
from modules.common.store import ValueStore
87
from modules.common.store._api import LoggingValueStore
98
from modules.common.store._broker import pub_to_broker
@@ -17,14 +16,11 @@ def __init__(self, component_num: int) -> None:
1716
self.__pv = files.pv[component_num - 1]
1817

1918
def set(self, inverter_state: InverterState):
20-
try:
21-
self.__pv.power.write(int(inverter_state.power))
22-
self.__pv.energy.write(inverter_state.exported)
23-
self.__pv.energy_k.write(inverter_state.exported / 1000)
24-
if inverter_state.currents:
25-
self.__pv.currents.write(inverter_state.currents)
26-
except Exception as e:
27-
raise FaultState.from_exception(e)
19+
self.__pv.power.write(int(inverter_state.power))
20+
self.__pv.energy.write(inverter_state.exported)
21+
self.__pv.energy_k.write(inverter_state.exported / 1000)
22+
if inverter_state.currents:
23+
self.__pv.currents.write(inverter_state.currents)
2824

2925

3026
class InverterValueStoreBroker(ValueStore[InverterState]):

packages/modules/common/store/_io.py

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from control import data
22
from modules.common.component_state import IoState
3-
from modules.common.fault_state import FaultState
43
from modules.common.store import ValueStore
54
from modules.common.store._api import LoggingValueStore
65
from modules.common.store._broker import pub_to_broker
@@ -15,31 +14,28 @@ def set(self, state: IoState) -> None:
1514
self.state = state
1615

1716
def update(self):
18-
try:
19-
if self.state.digital_input:
20-
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_input_prev",
21-
data.data.io_states[f"io_states{self.num}"].data.get.digital_input)
22-
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_input", self.state.digital_input)
23-
if self.state.analog_input:
24-
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_input_prev",
25-
data.data.io_states[f"io_states{self.num}"].data.get.analog_input)
26-
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_input", self.state.analog_input)
27-
if self.state.digital_output:
28-
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_output_prev",
29-
data.data.io_states[f"io_states{self.num}"].data.get.digital_output)
30-
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_output", self.state.digital_output)
31-
pub_to_broker(f"openWB/set/io/states/{self.num}/set/digital_output_prev",
32-
data.data.io_states[f"io_states{self.num}"].data.set.digital_output)
33-
pub_to_broker(f"openWB/set/io/states/{self.num}/set/digital_output", self.state.digital_output)
34-
if self.state.analog_output:
35-
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_output_prev",
36-
data.data.io_states[f"io_states{self.num}"].data.get.analog_output)
37-
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_output", self.state.analog_output)
38-
pub_to_broker(f"openWB/set/io/states/{self.num}/set/analog_output_prev",
39-
data.data.io_states[f"io_states{self.num}"].data.set.analog_output)
40-
pub_to_broker(f"openWB/set/io/states/{self.num}/set/analog_output", self.state.analog_output)
41-
except Exception as e:
42-
raise FaultState.from_exception(e)
17+
if self.state.digital_input:
18+
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_input_prev",
19+
data.data.io_states[f"io_states{self.num}"].data.get.digital_input)
20+
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_input", self.state.digital_input)
21+
if self.state.analog_input:
22+
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_input_prev",
23+
data.data.io_states[f"io_states{self.num}"].data.get.analog_input)
24+
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_input", self.state.analog_input)
25+
if self.state.digital_output:
26+
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_output_prev",
27+
data.data.io_states[f"io_states{self.num}"].data.get.digital_output)
28+
pub_to_broker(f"openWB/set/io/states/{self.num}/get/digital_output", self.state.digital_output)
29+
pub_to_broker(f"openWB/set/io/states/{self.num}/set/digital_output_prev",
30+
data.data.io_states[f"io_states{self.num}"].data.set.digital_output)
31+
pub_to_broker(f"openWB/set/io/states/{self.num}/set/digital_output", self.state.digital_output)
32+
if self.state.analog_output:
33+
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_output_prev",
34+
data.data.io_states[f"io_states{self.num}"].data.get.analog_output)
35+
pub_to_broker(f"openWB/set/io/states/{self.num}/get/analog_output", self.state.analog_output)
36+
pub_to_broker(f"openWB/set/io/states/{self.num}/set/analog_output_prev",
37+
data.data.io_states[f"io_states{self.num}"].data.set.analog_output)
38+
pub_to_broker(f"openWB/set/io/states/{self.num}/set/analog_output", self.state.analog_output)
4339

4440

4541
def get_io_value_store(num: int) -> ValueStore[IoState]:

packages/modules/common/store/_io_internal.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
from modules.common.component_state import IoState
2-
from modules.common.fault_state import FaultState
32
from modules.common.store import ValueStore
43
from modules.common.store._api import LoggingValueStore
54
from modules.common.store._broker import pub_to_broker
@@ -13,17 +12,14 @@ def set(self, state: IoState) -> None:
1312
self.state = state
1413

1514
def update(self):
16-
try:
17-
if self.state.digital_input:
18-
pub_to_broker("openWB/set/internal_io/states/get/digital_input", self.state.digital_input)
19-
if self.state.analog_input:
20-
pub_to_broker("openWB/set/internal_io/states/get/analog_input", self.state.analog_input)
21-
if self.state.digital_output:
22-
pub_to_broker("openWB/set/internal_io/states/get/digital_output", self.state.digital_output)
23-
if self.state.analog_output:
24-
pub_to_broker("openWB/set/internal_io/states/get/analog_output", self.state.analog_output)
25-
except Exception as e:
26-
raise FaultState.from_exception(e)
15+
if self.state.digital_input:
16+
pub_to_broker("openWB/set/internal_io/states/get/digital_input", self.state.digital_input)
17+
if self.state.analog_input:
18+
pub_to_broker("openWB/set/internal_io/states/get/analog_input", self.state.analog_input)
19+
if self.state.digital_output:
20+
pub_to_broker("openWB/set/internal_io/states/get/digital_output", self.state.digital_output)
21+
if self.state.analog_output:
22+
pub_to_broker("openWB/set/internal_io/states/get/analog_output", self.state.analog_output)
2723

2824

2925
def get_internal_io_value_store() -> ValueStore[IoState]:

packages/modules/common/store/_tariff.py

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from datetime import timedelta
22
from control import data
33
from modules.common.component_state import TariffState
4-
from modules.common.fault_state import FaultState
54
from modules.common.store import ValueStore
65
from modules.common.store._api import LoggingValueStore
76
from modules.common.store._broker import pub_to_broker
@@ -19,12 +18,9 @@ def set(self, state: TariffState) -> None:
1918
self.state = state
2019

2120
def update(self):
22-
try:
23-
prices = self.state.prices
24-
pub_to_broker("openWB/set/optional/ep/flexible_tariff/get/prices", prices)
25-
log.debug(f"published prices list to MQTT having {len(prices)} entries")
26-
except Exception as e:
27-
raise FaultState.from_exception(e)
21+
prices = self.state.prices
22+
pub_to_broker("openWB/set/optional/ep/flexible_tariff/get/prices", prices)
23+
log.debug(f"published prices list to MQTT having {len(prices)} entries")
2824

2925

3026
def get_flexible_tariff_value_store() -> ValueStore[TariffState]:
@@ -39,12 +35,9 @@ def set(self, state: TariffState) -> None:
3935
self.state = state
4036

4137
def update(self):
42-
try:
43-
prices = self.state.prices
44-
pub_to_broker("openWB/set/optional/ep/grid_fee/get/prices", prices)
45-
log.debug(f"published grid tariff prices list to MQTT having {len(prices)} entries")
46-
except Exception as e:
47-
raise FaultState.from_exception(e)
38+
prices = self.state.prices
39+
pub_to_broker("openWB/set/optional/ep/grid_fee/get/prices", prices)
40+
log.debug(f"published grid tariff prices list to MQTT having {len(prices)} entries")
4841

4942

5043
def get_grid_fee_value_store() -> ValueStore[TariffState]:
@@ -56,10 +49,7 @@ def __init__(self):
5649
pass
5750

5851
def update(self):
59-
try:
60-
pub_to_broker("openWB/set/optional/ep/get/prices", self.sum_prices())
61-
except Exception as e:
62-
raise FaultState.from_exception(e)
52+
pub_to_broker("openWB/set/optional/ep/get/prices", self.sum_prices())
6353

6454
def sum_prices(self):
6555
flexible_tariff_prices = data.data.optional_data.data.electricity_pricing.flexible_tariff.get.prices

0 commit comments

Comments
 (0)