DL/T 645 Read
x/dlt645Read component: v0.37.0+ Reads meter data items via the DL/T 645-2007 protocol and writes results to msg.Data as a unified iot_points.Data list.
Requires: rulego-components-iot (opens new window)
# Configuration
| Field | Type | Description | Default |
|---|---|---|---|
| server | string | Meter TCP address (serial server passthrough), host:port | 127.0.0.1:8899 |
| addr | string | 12-digit BCD meter address | 000000000001 |
| timeout | int | Request timeout (seconds) | 5 |
| points | array | Default point table (addr=DI). Points in msg.Data take precedence | - |
# Point Table Fields
| Field | Description |
|---|---|
| name | Point name |
| addr | Data Identifier DI (see below) |
| type | Data type (default BCD) |
All fields support ${msg.xx} / ${metadata.xx} templates.
# Address Format (Data Identifier)
Format: XX-XX-XX-XX (4 bytes)
| DI | Description |
|---|---|
| 00-01-00-00 | Forward active total energy |
| 02-01-01-00 | Phase A voltage |
| 02-02-01-00 | Phase A current |
| 02-03-00-00 | Instantaneous active power |
| 04-00-01-01 | Meter number |
# Data Types
- BCD (default): standard BCD, auto-decimal by DI
- BCD_SIGNED: signed BCD
- INT16/UINT16/INT32/UINT32/INT64/UINT64: binary integers
- BOOL/STRING: special types
# Input/Output
- Input: use configured
points, or override them by passing a point list inmsg.Data - Output:
[{"name","value","timestamp","error"}]
# Example
{
"id": "dlt645_read",
"type": "x/dlt645Read",
"configuration": {
"server": "192.168.1.40:8899",
"addr": "000000000001",
"points": [
{"name": "totalEnergy", "addr": "00-01-00-00"},
{"name": "voltageA", "addr": "02-01-01-00"}
]
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# Related
- Overview: x/dlt645
- Write: x/dlt645Write
- Universal acquisition entry: x/iotRead (driver=dlt645)
- To time-series storage: x/tsdbWrite (measurement configured)
Edit this page on GitHub (opens new window)
Last Updated: 2026/08/01, 05:05:14