BACnet Write
x/bacnetWrite component: v0.37.0+ BACnet/IP writes object properties (present-value of analog-output/binary-output/multi-state-value), routing to Success/Failure.
Requires: rulego-components-iot (opens new window)
# Configuration
| Field | Type | Description | Default |
|---|---|---|---|
| server | string | Device address host:port, default port 47808 | 127.0.0.1:47808 |
| timeout | int | Request timeout (seconds) | 5 |
| priority | int | Write priority 1-16, 0=omit (device default) | 0 |
| points | array | Control point table (addr=object address, type=value type, value=write value) | see below |
# Point Table Fields
| Field | Description | Example |
|---|---|---|
| name | Point name | Setpoint |
| addr | Object address: objectType:instance[:property] | analog-output:0 |
| type | Value type: FLOAT32/FLOAT64/BOOL/ENUM/STRING/INT32/UINT16 | FLOAT32 |
| value | Write value (string form) | 18.5 |
type selects the BACnet application data type for the write:
FLOAT32/FLOAT64: analog-output (real/double)BOOL: binary-outputENUM: multi-state-valueSTRING: string property
All fields support ${msg.xx} / ${metadata.xx} templates.
# Input/Output
- Input:
msg.Datawith point list JSON[{"addr","type","value"}] - Output: passes the message through on
Success
# Example
{
"id": "bacnet_write",
"type": "x/bacnetWrite",
"configuration": {
"server": "192.168.1.10:47808",
"timeout": 5,
"priority": 8,
"points": [
{"name": "Setpoint", "addr": "analog-output:0", "type": "FLOAT32", "value": "${msg.setpoint}"}
]
}
}
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Dynamic write (msg.Data with point list):
[{"name": "Fan", "addr": "binary-output:1", "type": "BOOL", "value": "true"}]
1
# Related
- Read: x/bacnetRead
- Universal write entry: x/iotWrite (driver=bacnet)
Edit this page on GitHub (opens new window)
Last Updated: 2026/08/05, 01:52:29