Universal Acquisition Read
x/iotRead component: v0.37.0+ universal acquisition entry. Switches the protocol backend by driver (modbus / s7 / eip / snmp / opcua / mc / fins / dlt645 / iec104); configuration is passed through to the corresponding protocol read node. Output is unified to iot_points.Data, decoupled from any specific protocol - switch backends by changing only driver and that protocol's connection/point config, with the rest of the chain unchanged.
Requires the extension library: rulego-components-iot (opens new window)
# Configuration
| Field | Type | Description | Default |
|---|---|---|---|
| driver | string | Acquisition backend: modbus / s7 / eip / snmp / opcua / mc / fins / dlt645 / iec104 | none (required) |
| ...(passthrough) | - | The selected protocol's connection/point config, passed as-is to its read node | - |
Backend mapping:
| driver | Actual node | Key config |
|---|---|---|
| modbus | x/modbusRead | server / unitId / points(addr=Modicon) |
| s7 | x/s7Read | server / rack / slot / points |
| eip | x/eipRead | server / slot / points |
| snmp | x/snmpRead | server / points(addr=OID) |
| opcua | x/opcuaRead | server / policy / points(addr=NodeID) |
| mc | x/mcRead | server / points(addr=device) |
| fins | x/finsRead | server / transport / points(addr=DM/CIO) |
| dlt645 | x/dlt645Read | server / addr(meter) / points(addr=DI) |
| iec104 | x/iec104Read | server / commonAddr / points(addr=IOA) |
# Output
Unified contract iot_points.Data (same as the protocol read nodes):
[
{"name": "temp", "value": 23.5, "timestamp": 1789999999000000000},
{"name": "humidity", "value": null, "timestamp": 1789999999000000000, "error": "timeout"}
]
1
2
3
4
2
3
4
A single-point failure only marks error on that point; it does not fail the whole batch.
# Example
{
"id": "read",
"type": "x/iotRead",
"configuration": {
"driver": "modbus",
"server": "tcp://192.168.1.100:502",
"unitId": 1,
"points": [{"name": "temp", "addr": "40001", "type": "FLOAT32"}]
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# Related
- Universal write entry: x/iotWrite
- Universal storage entry: x/tsdbWrite (accepts the acquisition point array directly once
measurementis configured)
Edit this page on GitHub (opens new window)
Last Updated: 2026/08/01, 05:05:14