BACnet: the building automation protocol

BACnet describes objects, properties and services for HVAC, lighting and energy in buildings. Objects, BACnet/IP, MS/TP and BACnet/SC.
BACnet: the building automation protocol

AI-generated illustration — example setting.

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

VariantMediumNote
BACnet/IPEthernet, UDP port 47808 (0xBAC0)Most common
BACnet MS/TPRS-485Cheap, for field devices, uses token passing
BACnet/SCIP with securityEncrypted 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.