From 1a32b20648ebe4d2da8f2b5aaf7fc38bd261e187 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Wed, 3 Dec 2025 18:09:25 +0100 Subject: [PATCH] car control --- config/config.yaml | 39 +++++++++++++++++++++++++++++++- src/pv_controller/FromDevices.py | 3 +++ src/pv_controller/config.py | 1 + 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 9980cea..1dfeb93 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -129,4 +129,41 @@ output: unit: "-" register_type: holding data_type: int32 - adaptor: onOffAdaptor \ No newline at end of file + adaptor: onOffAdaptor + - name: car_control + publish_topic: IoT/Car/Control + slave_id: 5 + registers: + - address: 0x0001 + attribute: state + name: State + unit: "-" + register_type: holding + data_type: int32 + adaptor: onOffAdaptor + - name: car_meter + enabled: true + publish_topic: IoT/Car/Values + slave_id: 6 + registers: + - address: 14 + attribute: voltageL1 + name: Voltage L1 + unit: V + register_type: input + data_type: float32 + adaptor: floatAdaptor + - address: 16 + attribute: voltageL2 + name: Voltage L2 + unit: V + register_type: input + data_type: float32 + adaptor: floatAdaptor + - address: 18 + attribute: voltageL3 + name: Voltage L3 + unit: V + register_type: input + data_type: float32 + adaptor: floatAdaptor diff --git a/src/pv_controller/FromDevices.py b/src/pv_controller/FromDevices.py index d1acb5a..ef28a75 100644 --- a/src/pv_controller/FromDevices.py +++ b/src/pv_controller/FromDevices.py @@ -29,6 +29,9 @@ class FromDevices(AbstractMqttPublisher): payload['timestamp'] = datetime.datetime.isoformat(datetime.datetime.utcnow()) for device in self.config.output: logger.debug(f"{device.name=} {device.publish_topic=}") + if not device.enabled: + logger.debug(f" device disabled, skipping") + continue for registers in device.registers: logger.debug(f" {registers.name=} {registers.address=} {registers.register_type=}") rawValue = self.modbusHandler.readRegister(registers.register_type, device.slave_id, registers.address, registers.data_type) diff --git a/src/pv_controller/config.py b/src/pv_controller/config.py index 225616b..36d4e53 100644 --- a/src/pv_controller/config.py +++ b/src/pv_controller/config.py @@ -21,6 +21,7 @@ class RegisterConfig(BaseModel): class OutputConfig(BaseModel): """Output Configuration for Modbus Devices""" name: str + enabled: bool = Field(default=True) publish_topic: str slave_id: int registers: List[RegisterConfig]