Skip to content

Commit 5adc75f

Browse files
committed
component-wise error handling
1 parent 8171079 commit 5adc75f

55 files changed

Lines changed: 165 additions & 60 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/samples/sample_modbus/sample_modbus/device.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from typing import Iterable, Union
44

55
from modules.common.abstract_device import DeviceDescriptor
6+
from modules.common.component_context import SingleComponentUpdateContext
67
from modules.common.configurable_device import ConfigurableDevice, ComponentFactoryByType, MultiComponentUpdater
78
from modules.common.modbus import ModbusTcpClient_
89
from modules.devices.sample_modbus.sample_modbus.bat import SampleBat
@@ -31,7 +32,8 @@ def create_inverter_component(component_config: SampleInverterSetup):
3132
def update_components(components: Iterable[Union[SampleBat, SampleCounter, SampleInverter]]):
3233
with client:
3334
for component in components:
34-
component.update()
35+
with SingleComponentUpdateContext(component.fault_state, update_always=False):
36+
component.update()
3537

3638
def initializer():
3739
nonlocal client

docs/samples/sample_request_by_device/sample_request_by_device/device.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
from modules.common import req
66
from modules.common.abstract_device import DeviceDescriptor
7+
from modules.common.component_context import SingleComponentUpdateContext
78
from modules.common.configurable_device import ConfigurableDevice, ComponentFactoryByType, MultiComponentUpdater
89
from modules.devices.sample_request_by_device.sample_request_by_device.bat import SampleBat
910
from modules.devices.sample_request_by_device.sample_request_by_device.config import Sample, SampleBatSetup, SampleCounterSetup, SampleInverterSetup
@@ -26,7 +27,8 @@ def create_inverter_component(component_config: SampleInverterSetup):
2627
def update_components(components: Iterable[Union[SampleBat, SampleCounter, SampleInverter]]):
2728
response = req.get_http_session().get(device_config.configuration.ip_address, timeout=5).json()
2829
for component in components:
29-
component.update(response)
30+
with SingleComponentUpdateContext(component.fault_state, update_always=False):
31+
component.update(response)
3032

3133
return ConfigurableDevice(
3234
device_config=device_config,

packages/modules/devices/algodue/algodue/device.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def create_counter_component(component_config: AlgodueCounterSetup):
2323
def update_components(components: Iterable[counter.AlgodueCounter]):
2424
with client:
2525
for component in components:
26-
with SingleComponentUpdateContext(component.fault_state):
26+
with SingleComponentUpdateContext(component.fault_state, update_always=False):
2727
component.update()
2828

2929
def initializer():

packages/modules/devices/alpha_ess/alpha_ess/device.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from typing import Iterable, Union
55

66
from helpermodules.utils.run_command import run_command
7+
from modules.common.component_context import SingleComponentUpdateContext
78
from modules.common.configurable_device import ComponentFactoryByType, ConfigurableDevice, MultiComponentUpdater
89
from modules.devices.alpha_ess.alpha_ess.config import (
910
AlphaEss, AlphaEssBatSetup, AlphaEssCounterSetup, AlphaEssInverterSetup)
@@ -48,7 +49,8 @@ def update_components(components: Iterable[Union[alpha_ess_component_classes]]):
4849
nonlocal client
4950
with client:
5051
for component in components:
51-
component.update()
52+
with SingleComponentUpdateContext(component.fault_state, update_always=False):
53+
component.update()
5254

5355
def initializer():
5456
nonlocal client

packages/modules/devices/ampere/ampere/device.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from typing import Iterable, Union
44

55
from modules.common.abstract_device import DeviceDescriptor
6+
from modules.common.component_context import SingleComponentUpdateContext
67
from modules.common.configurable_device import ComponentFactoryByType, ConfigurableDevice, MultiComponentUpdater
78
from modules.common.modbus import ModbusTcpClient_
89
from modules.devices.ampere.ampere.bat import AmpereBat
@@ -40,7 +41,8 @@ def create_inverter_component(component_config: AmpereInverterSetup):
4041
def update_components(components: Iterable[Union[AmpereBat, AmpereCounter, AmpereInverter]]):
4142
with client:
4243
for component in components:
43-
component.update()
44+
with SingleComponentUpdateContext(component.fault_state, update_always=False):
45+
component.update()
4446

4547
def initializer():
4648
nonlocal client

packages/modules/devices/avm/avm/device.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from helpermodules.pub import Pub
1010
from modules.common import req
1111
from modules.common.abstract_device import DeviceDescriptor
12+
from modules.common.component_context import SingleComponentUpdateContext
1213
from modules.common.configurable_device import ConfigurableDevice, ComponentFactoryByType, MultiComponentUpdater
1314
from modules.devices.avm.avm.config import Avm, AvmCounterSetup
1415
from modules.devices.avm.avm.counter import AvmCounter
@@ -36,7 +37,8 @@ def update_components(components: Iterable[AvmCounter]):
3637
deviceListElementTree = ET.fromstring(response.text.strip())
3738

3839
for component in components:
39-
component.update(deviceListElementTree)
40+
with SingleComponentUpdateContext(component.fault_state, update_always=False):
41+
component.update(deviceListElementTree)
4042

4143
def get_session_id():
4244
# checking existing sessionID

packages/modules/devices/azzurro_zcs/azzurro_zcs/device.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from typing import Iterable, Union
44

55
from modules.common.abstract_device import DeviceDescriptor
6+
from modules.common.component_context import SingleComponentUpdateContext
67
from modules.common.configurable_device import ConfigurableDevice, ComponentFactoryByType, MultiComponentUpdater
78
from modules.common.modbus import ModbusTcpClient_
89
from modules.devices.azzurro_zcs.azzurro_zcs.bat import ZCSBat
@@ -36,7 +37,8 @@ def update_components(components: Iterable[Union[ZCSBat, ZCSCounter, ZCSInverter
3637
nonlocal client
3738
with client:
3839
for component in components:
39-
component.update()
40+
with SingleComponentUpdateContext(component.fault_state, update_always=False):
41+
component.update()
4042

4143
def initializer():
4244
nonlocal client

packages/modules/devices/batterx/batterx/device.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
from helpermodules.cli import run_using_positional_cli_args
66
from modules.common.abstract_device import DeviceDescriptor
7-
from modules.common.component_context import MultiComponentUpdateContext
7+
from modules.common.component_context import MultiComponentUpdateContext, SingleComponentUpdateContext
88
from modules.common.configurable_device import ComponentFactoryByType, ConfigurableDevice, MultiComponentUpdater
99
from modules.common.store import get_inverter_value_store
1010
from modules.devices.batterx.batterx import bat, external_inverter
@@ -39,7 +39,8 @@ def update_components(components: Iterable[batterx_component_classes]):
3939
'http://' + device_config.configuration.ip_address + '/api.php?get=currentstate',
4040
timeout=5).json()
4141
for component in components:
42-
component.update(resp_json)
42+
with SingleComponentUpdateContext(component.fault_state, update_always=False):
43+
component.update(resp_json)
4344

4445
return ConfigurableDevice(
4546
device_config=device_config,

packages/modules/devices/carlo_gavazzi/carlo_gavazzi/device.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import logging
33
from typing import Iterable
44

5+
from modules.common.component_context import SingleComponentUpdateContext
56
from modules.common.configurable_device import ComponentFactoryByType, ConfigurableDevice, MultiComponentUpdater
67
from modules.devices.carlo_gavazzi.carlo_gavazzi import counter
78
from modules.devices.carlo_gavazzi.carlo_gavazzi.config import CarloGavazzi, CarloGavazziCounterSetup
@@ -23,7 +24,8 @@ def update_components(components: Iterable[counter.CarloGavazziCounter]):
2324
nonlocal client
2425
with client:
2526
for component in components:
26-
component.update()
27+
with SingleComponentUpdateContext(component.fault_state, update_always=False):
28+
component.update()
2729

2830
def initializer():
2931
nonlocal client

packages/modules/devices/deye/deye/device.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
from helpermodules.cli import run_using_positional_cli_args
66
from modules.common.abstract_device import DeviceDescriptor
7+
from modules.common.component_context import SingleComponentUpdateContext
78
from modules.common.configurable_device import ConfigurableDevice, ComponentFactoryByType, MultiComponentUpdater
89
from modules.common.modbus import ModbusTcpClient_
910
from modules.devices.deye.deye.bat import DeyeBat
@@ -34,7 +35,8 @@ def update_components(components: Iterable[Union[DeyeBat, DeyeCounter, DeyeInver
3435
nonlocal client
3536
with client:
3637
for component in components:
37-
component.update()
38+
with SingleComponentUpdateContext(component.fault_state, update_always=False):
39+
component.update()
3840

3941
def initializer():
4042
nonlocal client

0 commit comments

Comments
 (0)