What Is BACnet?
BACnet (Building Automation and Control Networks) is an open-standard communication protocol specifically designed for building automation systems. Developed by ASHRAE and ratified as an ISO standard in 2003, it's the common language that lets devices from different manufacturers — thermostats, air handlers, lighting controllers, fire panels, elevators — all communicate on a single network.
Before BACnet, building systems were siloed. Your HVAC controller from one vendor couldn't talk to the lighting system from another. You needed proprietary gateways and custom integrations for everything. BACnet changed that by providing a universal data model and communication protocol that any vendor could implement.
The BACnet Object Model
BACnet represents everything in a building system as objects with properties. This is the core abstraction that makes the protocol so flexible.
The most common object types you'll encounter:
| Object Type | Abbreviation | Example |
|---|---|---|
| Analog Input | AI | Temperature sensor reading (72.4°F) |
| Analog Output | AO | Damper position command (0–100%) |
| Analog Value | AV | Setpoint (70°F cooling setpoint) |
| Binary Input | BI | Fan status (running / stopped) |
| Binary Output | BO | Lights on/off command |
| Binary Value | BV | Occupied mode flag |
| Schedule | SCH | HVAC occupancy schedule |
| Trend Log | TL | Historical temperature data |
Every object has a set of properties. The most important one is the Present Value — the current reading or command state of that object. When you're commissioning a system, you spend a lot of time reading and writing Present Values to verify that controllers are responding correctly.
ReadProperty-Request {
object-identifier: (analog-input, 1) // AI-1
property-identifier: present-value
}
ReadProperty-ACK {
object-identifier: (analog-input, 1)
property-identifier: present-value
property-value: 72.4 // 72.4°F
}
BACnet Transport Options
BACnet can run over several different physical and network layers, which is one reason it's so widely deployed:
- BACnet/IP — The most common today. BACnet messages carried over standard Ethernet/IP networks. Easy to integrate with IT infrastructure.
- BACnet MS/TP — Master-Slave/Token-Passing over RS-485. A serial protocol common for field-level devices like VAV controllers. Very cost-effective for large deployments.
- BACnet/Ethernet — Direct Ethernet framing without IP. Less common now.
- BACnet/MSTP over Arcnet — Legacy, rarely seen anymore.
In practice at Siemens, we typically see a hybrid: BACnet/IP for controllers at the floor or building level, MS/TP for the field devices (VAV boxes, fan coil units) hanging off those controllers. A BACnet router bridges between the two.
Change of Value (COV) Subscriptions
Polling every device every few seconds to check its current value would create enormous network traffic in a large building. BACnet solves this elegantly with Change of Value (COV) subscriptions.
Instead of asking "what's the temperature?" every 30 seconds, a supervisor subscribes to a sensor object and only receives a notification when the value changes beyond a defined increment. This dramatically reduces network load while keeping the BMS current.
SubscribeCOV-Request {
subscriber-process-identifier: 1
monitored-object-identifier: (analog-input, 1)
issue-confirmed-notifications: TRUE
lifetime: 3600 // renew every hour
COV-increment: 0.5 // notify on 0.5°F change
}
What I've Learned in the Field
Working as a commissioning intern at Siemens, BACnet goes from textbook protocol to something very real very quickly. A few things I've picked up:
Network configuration matters more than you'd think
Getting BACnet/IP devices to communicate reliably on a construction-site network — where IT infrastructure is often temporary and shared with dozens of contractors — requires careful attention to subnets, BBMD (BACnet Broadcast Management Device) configuration, and network segmentation. A misconfigured BBMD is often the first thing to check when devices can't discover each other.
Sequence of operations is everything
The sequence of operations (SOO) document defines exactly how a system should behave — when the AHU should start, how the dampers should respond to occupancy, what happens during a fire alarm. During commissioning, you verify that what's programmed in the controller actually matches the SOO. This is where BACnet read/write access is essential.
Interoperability is real, but not guaranteed
BACnet is an open standard, but "BACnet certified" devices still vary in how completely they implement the spec. Always check the PICS (Protocol Implementation Conformance Statement) document for a device to know exactly what BACnet features it supports before you design an integration around it.
Further Reading
- ASHRAE Standard 135 — The BACnet standard itself. Dense but authoritative.
- BACnet International — Industry organization with great educational resources.
- Siemens Building Technologies blog — Practical articles on BAS implementation.