Skip to content

Commit 4cbf649

Browse files
committed
fixes
1 parent 4db0759 commit 4cbf649

File tree

9 files changed

+23
-26
lines changed

9 files changed

+23
-26
lines changed

packages/control/io_device.py

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
from dataclasses import dataclass, field
22
from typing import Dict, Optional, Tuple, Union
3-
from control import data
4-
from control.limiting_value import LimitingValue, LoadmanagementLimit
3+
from control.limiting_value import LoadmanagementLimit
54
from helpermodules.constants import NO_ERROR
6-
from modules.common.utils.component_parser import get_io_name_by_id
75
from modules.io_actions.controllable_consumers.dimming.api_eebus import DimmingEebus
86
from modules.io_actions.controllable_consumers.dimming.api_io import DimmingIo
97
from modules.io_actions.controllable_consumers.dimming_direct_control.api import DimmingDirectControl
@@ -63,16 +61,11 @@ def setup(self):
6361
for action in self.actions.values():
6462
action.setup()
6563

66-
def _check_fault_state_io_device(self, io_device: int) -> None:
67-
if data.data.io_states[f"io_states{io_device}"].data.get.fault_state == 2:
68-
raise ValueError(LimitingValue.CONTROLLABLE_CONSUMERS_ERROR.value.format(get_io_name_by_id(io_device)))
69-
7064
def dimming_get_import_power_left(self, device: Dict) -> Tuple[Optional[float], LoadmanagementLimit]:
7165
for action in self.actions.values():
7266
if isinstance(action, (DimmingIo, DimmingEebus)):
7367
for d in action.config.configuration.devices:
7468
if device == d:
75-
self._check_fault_state_io_device(action.config.configuration.io_device)
7669
return action.dimming_get_import_power_left()
7770
else:
7871
return None, LoadmanagementLimit(None, None)
@@ -89,7 +82,6 @@ def dimming_via_direct_control(self, device: Dict) -> Tuple[Optional[float], Loa
8982
if isinstance(action, DimmingDirectControl):
9083
for d in action.config.configuration.devices:
9184
if device == d:
92-
self._check_fault_state_io_device(action.config.configuration.io_device)
9385
return action.dimming_via_direct_control()
9486
else:
9587
return None, LoadmanagementLimit(None, None)
@@ -99,7 +91,6 @@ def ripple_control_receiver(self, device: Dict) -> Tuple[float, LoadmanagementLi
9991
if isinstance(action, RippleControlReceiver):
10092
for d in action.config.configuration.devices:
10193
if device == d:
102-
self._check_fault_state_io_device(action.config.configuration.io_device)
10394
return action.ripple_control_receiver()
10495
else:
10596
return 1, LoadmanagementLimit(None, None)
@@ -108,7 +99,6 @@ def stepwise_control(self, device_id: int) -> Tuple[Optional[float], Loadmanagem
10899
for action in self.actions.values():
109100
if isinstance(action, (StepwiseControlEebus, StepwiseControlIo)):
110101
if device_id in [component["id"] for component in action.config.configuration.devices]:
111-
self._check_fault_state_io_device(action.config.configuration.io_device)
112102
return action.control_stepwise()
113103
else:
114104
return None, LoadmanagementLimit(None, None)

packages/control/limiting_value.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ class LimitingValue(Enum):
1212
RIPPLE_CONTROL_RECEIVER = (", da der Ladepunkt durch den RSE-Kontakt auf {}% der konfigurierten Anschlussleistung "
1313
"reduziert wird.")
1414
CONTROL_STEPWISE = "Leistung begrenzt auf {}%"
15-
CONTROLLABLE_CONSUMERS_ERROR = (", da aufgrund eines Fehlers im IO-Gerät {} die steuerbaren Verbraucher nicht "
16-
"gesteuert werden können. Bitte prüfe die Status-Seite.")
15+
CONTROLLABLE_CONSUMERS_ERROR = (", da aufgrund eines Fehlers im IO-Gerät {} die steuerbaren Verbraucher nur "
16+
"mit der minimalen Leistung betrieben werden können. Bitte prüfe die Status-Seite.")
1717
MISSING_CONFIFGURATION = ", da die Konfiguration für die Aktion unvollständig ist."
1818

1919

packages/control/loadmanagement.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ def _limit_by_dimming_via_direct_control(self,
144144
available_currents = [current_per_phase -
145145
cp.data.set.target_current if c > 0 else 0 for c in missing_currents]
146146
log.debug(f"Dimmung per Direkt-Steuerung: {available_currents}A")
147+
else:
148+
available_currents = missing_currents
147149
return available_currents, limit
148150

149151
def _limit_by_dimming(self,

packages/modules/io_actions/controllable_consumers/dimming/api_eebus.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ def setup(self) -> None:
5555
control_command_log.info(f"Dimmen aktiviert. Übermittelter LPC-Wert: {lpc_value/1000}kWh. "
5656
"Leistungswerte vor Ausführung des Steuerbefehls:")
5757

58-
msg = (f"EVU-Zähler: "
59-
f"{data.data.counter_data[data.data.counter_all_data.get_evu_counter_str()].data.get.powers}W")
58+
evu_counter = data.data.counter_data[data.data.counter_all_data.get_evu_counter_str()]
59+
msg = f"EVU-Zähler: {evu_counter.data.get.powers}W, {evu_counter.data.get.power}W"
6060
for device in self.config.configuration.devices:
6161
if device["type"] == "cp":
6262
cp = f"cp{device['id']}"

packages/modules/io_actions/controllable_consumers/dimming/api_io.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,8 @@ def setup(self) -> None:
6060
control_command_log.info("Fehler des IO-Geräts: Dimmen aktiviert für Failsafe-Modus.")
6161
control_command_log.info("Dimmen aktiviert. Leistungswerte vor Ausführung des Steuerbefehls:")
6262

63-
msg = (f"EVU-Zähler: "
64-
f"{data.data.counter_data[data.data.counter_all_data.get_evu_counter_str()].data.get.powers}W")
63+
evu_counter = data.data.counter_data[data.data.counter_all_data.get_evu_counter_str()]
64+
msg = f"EVU-Zähler: {evu_counter.data.get.powers}W, {evu_counter.data.get.power}W"
6565
for device in self.config.configuration.devices:
6666
if device["type"] == "cp":
6767
cp = f"cp{device['id']}"

packages/modules/io_actions/controllable_consumers/dimming_direct_control/api.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@ def __init__(self, config: DimmingDirectControlSetup):
3232

3333
def setup(self) -> None:
3434
with ModifyLoglevelContext(control_command_log, logging.DEBUG):
35-
if data.data.io_states[f"io_states{self.config.configuration.io_device}"].data.get.digital_input[
36-
self.dimming_input] == self.dimming_value or check_fault_state_io_device(self.config.configuration.io_device):
35+
if (data.data.io_states[f"io_states{self.config.configuration.io_device}"].data.get.digital_input[
36+
self.dimming_input] == self.dimming_value or
37+
check_fault_state_io_device(self.config.configuration.io_device)):
3738
device = self.config.configuration.devices[0]
3839
if device["type"] == "cp":
3940
cp = f"cp{device['id']}"
@@ -48,8 +49,8 @@ def setup(self) -> None:
4849
f"{data.data.cp_data[cp].data.config.name} aktiviert. "
4950
"Leistungswerte vor Ausführung des Steuerbefehls:")
5051

51-
msg = (f"EVU-Zähler: "
52-
f"{data.data.counter_data[data.data.counter_all_data.get_evu_counter_str()].data.get.powers}W")
52+
evu_counter = data.data.counter_data[data.data.counter_all_data.get_evu_counter_str()]
53+
msg = f"EVU-Zähler: {evu_counter.data.get.powers}W, {evu_counter.data.get.power}W"
5354
if device["type"] == "cp":
5455
msg += (f", Ladepunkt {data.data.cp_data[cp].data.config.name}: "
5556
f"{data.data.cp_data[cp].data.get.powers}W")

packages/modules/io_actions/controllable_consumers/ripple_control_receiver/api.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ def log_active_ripple_control_receiver():
2525
Pub().pub(f"openWB/set/io/action/{self.config.id}/timestamp", create_timestamp())
2626
if check_fault_state_io_device(self.config.configuration.io_device):
2727
control_command_log.info(
28-
"Fehler des IO-Geräts: Dimmen aktiviert für Failsafe-Modus.")
28+
"Fehler des IO-Geräts: RSE aktiviert für Failsafe-Modus.")
2929
control_command_log.info(
3030
f"RSE-Sperre mit Wert {pattern['value']*100}"
3131
"% aktiviert. Leistungswerte vor Ausführung des Steuerbefehls:")
3232

3333
evu_counter = data.data.counter_data[data.data.counter_all_data.get_evu_counter_str()]
34-
msg = f"EVU-Zähler: {evu_counter.data.get.powers}W"
34+
msg = f"EVU-Zähler: {evu_counter.data.get.powers}W, {evu_counter.data.get.power}W"
3535
for device in self.config.configuration.devices:
3636
if device["type"] == "cp":
3737
cp = f"cp{device['id']}"
@@ -48,7 +48,8 @@ def log_active_ripple_control_receiver():
4848
log_active_ripple_control_receiver()
4949
for pattern in self.config.configuration.input_pattern:
5050
for digital_input, value in pattern["matrix"].items():
51-
if data.data.io_states[f"io_states{self.config.configuration.io_device}"].data.get.digital_input[
51+
if data.data.io_states[
52+
f"io_states{self.config.configuration.io_device}"].data.get.digital_input[
5253
digital_input] != value:
5354
break
5455
else:

packages/modules/io_actions/generator_systems/stepwise_control/api_eebus.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def setup(self) -> None:
5858
for inverter in self.config.configuration.devices:
5959
max_output_inverter += data.data.pv_data[f"pv{inverter['id']}"].data.config.max_ac_out
6060

61-
if self.lpp_active:
61+
if self.lpp_active or check_fault_state_io_device(self.config.configuration.io_device):
6262
try:
6363
self.step = self.lpp_value / max_output_inverter
6464
except ZeroDivisionError:
@@ -71,7 +71,8 @@ def setup(self) -> None:
7171
if self.step <= s:
7272
self.step = s
7373
break
74-
74+
if check_fault_state_io_device(self.config.configuration.io_device):
75+
control_command_log.info("Fehler des IO-Geräts: EZA-Begrenzung kann nicht erfasst werden.")
7576
if changed:
7677
Pub().pub(f"openWB/set/io/action/{self.config.id}/timestamp", create_timestamp())
7778
control_command_log.info(f"EEBus-Steuerung: LPP-Wert {self.lpp_value} / "

packages/modules/io_actions/generator_systems/stepwise_control/api_io.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ def setup(self) -> None:
5959
if digital_input[input_name] != digital_input_prev[input_name]
6060
]) > 0
6161

62+
if check_fault_state_io_device(self.config.configuration.io_device):
63+
control_command_log.info("Fehler des IO-Geräts: EZA-Begrenzung kann nicht erfasst werden.")
6264
for pattern in self.config.configuration.input_pattern:
6365
for action_input, value in pattern["matrix"].items():
6466
if digital_input[action_input] != value:

0 commit comments

Comments
 (0)