
BACnet (Building Automation and Control Network) is an open communication protocol used in building automation systems. It allows equipment from different manufacturers—like HVAC systems, lighting controls, security systems, fire alarms, and elevators—to communicate with each other on the same network.
Key points:
- Standardized: Defined by ASHRAE Standard 135.
- Interoperable: Enables devices from different vendors to work together.
- Object-based: Uses standardized “objects” (e.g., Analog Input, Binary Output) so systems can exchange data in a common language.
- Network-flexible: Works over IP networks (BACnet/IP), MSTP (RS-485), Ethernet, and others.
- Widely used: Common in commercial buildings, campuses, and industrial facilities.
What it’s used for:
- Monitoring and controlling HVAC
- Managing energy usage
- Integrating lighting and security
- Coordinating fire and life-safety systems
- Centralizing building management interfaces
How BACnet Works
BACnet is a data communication protocol designed specifically for building automation. Its purpose is to allow devices to share information and control commands in a consistent, structured way—regardless of manufacturer.
1. BACnet’s Architecture
BACnet is built around two core ideas:
A. Standardized Objects
Everything a device exposes is represented as an object with properties.
Examples:
| Object Type | Example Use |
|---|---|
| Analog Input (AI) | Temperature sensor value |
| Analog Output (AO) | Valve command (0–100%) |
| Binary Input (BI) | Door open/closed |
| Binary Output (BO) | Fan relay control |
| Device | Identifies the device and its capabilities |
Each object has properties such as Present Value, Status Flags, Units, Priority Array, etc.
B. Services
BACnet devices communicate by invoking services (requests) and sending responses.
Examples:
- ReadProperty / ReadPropertyMultiple – read object data
- WriteProperty – write to a property
- SubscribeCOV / UnconfirmedCOVNotification – event-based updates
- Who-Is / I-Am – device discovery
- ReinitializeDevice – restart or change the state of a device
2. Communication Layers (Encodings & Networking)
BACnet is unique because it supports multiple physical and data link layers. The most common are:
A. BACnet/IP (UDP Port 47808 / 0xBAC0)
- Uses standard Ethernet + IP + UDP
- Forms the backbone of modern systems
- Supports BBMDs (BACnet Broadcast Management Devices) to cross subnets
- Fast, scalable, widely adopted
B. BACnet MS/TP (RS-485)
- Master–Slave/Token-Passing
- Used for field-level controllers and sensors
- Lower speed (typically 9.6 kbps–115.2 kbps)
- Reliable, low-cost, but slower than IP
C. Others
- BACnet/Ethernet (rare today)
- BACnet over ARCNET (legacy)
- BACnet over LonTalk (legacy)
3. Message Flow Example
Read a temperature from a VAV controller
- A BAS workstation sends:
- ReadProperty request
- Object: Analog Input 1
- Property: Present Value
- The VAV controller responds with:
- Value: 23.4°C
- Status flags (fault, overridden, out of service, etc.)
Write a command to a device
- WriteProperty to BO1 → Present Value = Active
- The device applies priority array rules
- The device activates the output relay
Priority arrays ensure predictable control resolution (e.g., safety → manual override → automation).
4. Discovery and Addressing
BACnet uses broadcast discovery:
- Who-Is → “Who is out there?”
- I-Am → “Here’s my device ID and network info.”
Devices also have:
- Device Instance IDs (0–4,194,302)
- Network Numbers
- MAC addresses (varies by transport)
On IP, each device also has:
- IP address
- UDP port 47808
5. COV (Change of Value) Reporting
Rather than continuously polling, BACnet supports subscription-based updates.
Flow:
- Client sends SubscribeCOV
- Device stores subscription
- When the property value changes significantly:
- Device sends COV Notification
- Client updates trend logs or UI with new value
This substantially reduces traffic on large networks.
6. Security (Addendum 135-2016 & BACnet/SC)
Traditional BACnet/IP is not secure.
New standard: BACnet Secure Connect (BACnet/SC)
Features:
- TLS encryption
- Certificate-based authentication
- Hub-and-spoke or full mesh topology
- Uses WebSockets instead of UDP
BACnet/SC is increasingly required in new installations.
7. Example BACnet Data Packet (Simplified)
NPDU:
Version: 1
Control: 0x04 (Destination spec.)
DNET: 1001
DLEN: 0
DADR: -
Hop Count: 255
APDU:
PDU Type: Complex-ACK
Service Choice: ReadProperty
Object: Analog Input:1
Property: Present Value
Value: 23.1 (°C)
This structure is standard across all BACnet transports.
In Short
BACnet works by combining:
- A network-independent object and service model
- Multiple supported transport layers (IP, MS/TP, etc.)
- Standardized device discovery, reading, writing, and eventing
- Optional modern security layer (BACnet/SC)