car control

This commit is contained in:
2025-12-03 18:09:25 +01:00
parent 78946ac4c7
commit 1a32b20648
3 changed files with 42 additions and 1 deletions

View File

@@ -129,4 +129,41 @@ output:
unit: "-"
register_type: holding
data_type: int32
adaptor: onOffAdaptor
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

View File

@@ -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)

View File

@@ -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]