DNP3
The dnp3 adapter implements DNP3 per IEEE 1815 in two modes. The standard
DNP3-over-TCP port is 20000.
Gateway mode (default)
A transparent serial ↔ TCP bridge with full data-link frame validation:
sync 0x05 0x64, CRC-16/DNP computed per 16-byte block.
Outstation mode
OmniBus itself acts as a DNP3 outstation (slave) answering from a configurable point database — binary inputs, binary output status, counters, analog inputs, analog output status.
Application-layer support:
- FC=01 READ — class-0 reads (
g60v1 q06) and specific-group reads withstart..stopqualifiers. - FC=02 WRITE — for time and IIN clear.
- FC=18 DELAY_MEASURE, COLD_RESTART / WARM_RESTART.
- IIN management —
DEVICE_RESTARTis set on boot and cleared by the master viag80v1WRITE.
In both modes the application-layer object decoder publishes structured
points to MQTT/webhooks: binary inputs (g1v1/v2), binary output status
(g10v2), counters (g20v1/v2/v5/v6), analog inputs (g30v1–v6, including
32-bit float and 64-bit double), and time (g50v1).
Outstation REST
| Action | Body | Effect |
|---|---|---|
set-point | {type, index, value} | Populate the database (also persisted to disk). |
set-iin | {set, clear} | Override IIN flags (for testing). |
Limitations
:::caution Operate and unsolicited events not implemented
OPERATE (FC=04/05/06) returns NO_FUNC_CODE_SUPPORT — no controllable
point types are wired yet. Unsolicited events are not implemented, so a
master that depends on push-style reporting must poll.
:::
Outputs
| Output | Behavior |
|---|---|
| TCP | Gateway transport / outstation listener (port 20000). |
| MQTT | Publishes decoded points. |
| REST | Outstation point/IIN management. |
| Webhooks | Fan out decoded points. |