What BACnet is
BACnet (Building Automation and Control Network) is an ASHRAE standard, also adopted as ISO 16484-5. It was developed for buildings: ventilation and air conditioning, lighting, energy, boiler rooms. Unlike Modbus, BACnet describes what the device is, not just how registers are read.
Objects and properties
Every device is a set of objects, and every object has properties.
- Analog Input / Output / Value — temperature, humidity, setpoint
- Binary Input / Output / Value — state, command
- Device — the device itself
- Schedule, Calendar — schedules
- Trend Log — recording values over time
- Notification Class — alarm notifications
The most important property is Present_Value, the current value.
Services
- Who-Is / I-Am — discovering devices on the network
- ReadProperty / WriteProperty — read and write
- SubscribeCOV — a message only when a value changes
- Alarm and Event — alarms with states and acknowledgement
The priority array for commands decides who has the right to override a value.
Transport
| Variant | Medium | Note |
|---|---|---|
| BACnet/IP | Ethernet, UDP port 47808 (0xBAC0) | Most common |
| BACnet MS/TP | RS-485 | Cheap, for field devices, uses token passing |
| BACnet/SC | IP with security | Encrypted connections using TLS and WebSocket |
BBMD
Who-Is is sent as a broadcast, which does not cross subnets. A BBMD (BACnet Broadcast Management Device) forwards such messages between subnets.
Compatibility
The maker states what a device supports in a PICS document and through BIBB blocks. Before choosing devices, compare these documents, not just the word "BACnet" on the datasheet.
Typical problems
- Duplicate Device IDs in one network.
- Different MS/TP line speed, or more than the recommended number of devices.
- A missing BBMD between subnets.
- Polling too often instead of using COV.
