From e8c3f830fc60539591cce43a91d34fda47c09eba Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Fri, 20 Mar 2026 14:45:40 +0100 Subject: [PATCH] generator_systems: configure another output io device as input device --- packages/control/process.py | 2 +- packages/helpermodules/update_config.py | 15 ++++++++++++++- .../generator_systems/stepwise_control/config.py | 1 + 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/packages/control/process.py b/packages/control/process.py index fdda08c128..33e67ac420 100644 --- a/packages/control/process.py +++ b/packages/control/process.py @@ -89,7 +89,7 @@ def process_algorithm_results(self) -> None: # set digital outputs according to matching output_pattern for output in pattern["matrix"].keys(): data.data.io_states[ - f"io_states{action.config.configuration.io_device}" + f"io_states{action.config.configuration.io_device_output}" ].data.set.digital_output[output] = pattern["matrix"][output] for io in data.data.system_data.values(): if isinstance(io, AbstractIoDevice): diff --git a/packages/helpermodules/update_config.py b/packages/helpermodules/update_config.py index f79bff292e..bb6487455a 100644 --- a/packages/helpermodules/update_config.py +++ b/packages/helpermodules/update_config.py @@ -57,7 +57,7 @@ class UpdateConfig: - DATASTORE_VERSION = 113 + DATASTORE_VERSION = 114 valid_topic = [ "^openWB/bat/config/bat_control_permitted$", @@ -2958,3 +2958,16 @@ def upgrade(topic: str, payload) -> None: self._loop_all_received_topics(upgrade) self._append_datastore_version(113) + + def upgrade_datastore_114(self) -> None: + def upgrade(topic: str, payload) -> Optional[dict]: + if re.search("openWB/io/action/[0-9]+/config", topic) is not None: + config = decode_payload(payload) + if (config["configuration"]["passthrough_enabled"] is True and + config["configuration"].get("io_device_output") is None): + config["configuration"]["io_device_output"] = config["configuration"].get("io_device") + else: + config["configuration"]["io_device_output"] = None + return {topic: config} + self._loop_all_received_topics(upgrade) + self._append_datastore_version(114) diff --git a/packages/modules/io_actions/generator_systems/stepwise_control/config.py b/packages/modules/io_actions/generator_systems/stepwise_control/config.py index 7cfc0d4802..9fb3bb23fc 100644 --- a/packages/modules/io_actions/generator_systems/stepwise_control/config.py +++ b/packages/modules/io_actions/generator_systems/stepwise_control/config.py @@ -11,6 +11,7 @@ class StepwiseControlConfig: devices: List[Dict] = field(default_factory=empty_list_factory) # [{"type": "inverter", "id": 1},...] passthrough_enabled: bool = False + io_device_output: Optional[int] = None output_pattern: List[Dict] = field(default_factory=empty_io_pattern_stepwise_factory)