BACnet
Connect a BACnet device and read its objects, by polling or change-of-value subscription.
BACnet reads the objects of a BACnet building-automation device. You can read values by polling at a fixed interval or by subscribing to change-of-value (COV) notifications.
Connecting a BACnet device
| Setting | What it does |
|---|---|
| Name | Identifies the device (with an optional custom name). |
| Enabled | Whether THMI connects to the device. Turn it off to stop communication and value collection without deleting it. |
| Local bind address | The IP address of the local network interface used for broadcasting. Usually only needed if the machine has multiple active interfaces. Defaults to 0.0.0.0 (all interfaces). |
| Subnet | The subnet mask for the local network. Defaults to 255.255.255.0. |
| Device ID | The unique instance number of the remote BACnet device on the network. |
| Port | The UDP port. Defaults to 47808, the standard BACnet port. |
| Timeout | How long to wait for a response before treating the request as failed. Defaults to 5 seconds (5000 ms). |
BBMD
If the device is on a different subnet, enable BBMD (BACnet Broadcast Management Device) and give its host and port (default 47808) so THMI can reach the device across the network boundary. Leave it off when the device is on the local subnet.
Reading a value: the object
A BACnet value is identified by its object type and instance number — together these make the BACnet ObjectID. Choose the object type that matches the value, then enter the instance number that identifies the specific object within the device.
THMI supports these object types. By convention, input objects come from the field and are read-only, while output and value objects can usually be written:
| Object type | Abbr. | Writable | Typical data type |
|---|---|---|---|
| Analog input | AI | No | Numeric |
| Analog output | AO | Yes | Numeric |
| Analog value | AV | Yes | Numeric |
| Binary input | BI | No | Boolean |
| Binary output | BO | Yes | Boolean |
| Binary value | BV | Yes | Boolean |
| Integer value | IV | Yes | Signed integer |
| Positive integer value | PIV | Yes | Unsigned integer |
| Multi-state input | MSI | No | Integer |
| Multi-state output | MSO | Yes | Integer |
| Multi-state value | MSV | Yes | Integer |
| Accumulator | — | No | Unsigned integer |
| Pulse converter | — | No | Numeric |
The data type determines how the value is interpreted; the choices available
depend on the object type (see Data types).
For example, analog objects accept the integer and floating-point types, while
binary objects are bool.
Polling vs. subscription
The access method controls how the value is kept up to date:
- Polling — THMI reads the value every polling interval milliseconds (default 5000).
- Subscription — THMI subscribes to change-of-value notifications, and the device pushes updates. The COV increment sets the minimum change in value required before the device reports a new value — larger increments reduce traffic for noisy signals.
Writing
Writable lets users with permission change the value (see Values and history). It’s available only for object types that support being written.