Introduction
BACnet is a communication protocol used in Building Automation and Control (BAC) networks that comply with ASHRAE, ANSI, and ISO 16484-5 standards. It enables communication between automation systems used for HVAC, lighting control, access control, fire detection, and other building equipment.
BACnet was created to allow devices from different manufacturers to exchange information regardless of their specific function. Before the introduction of BACnet, technologies such as Modbus RTU and Modbus TCP dominated the industry. As buildings continue to integrate more systems, BACnet—an object-oriented protocol—provides a unified, interoperable way to share information across devices.
Purpose of BACnet
BACnet is designed to allow different building systems to communicate and interoperate. It supports everything from simple data sharing to complex coordination between devices. While it does not provide “plug and play” interchangeability, it enables both basic and advanced device interactions using standardized, reliable mechanisms. BACnet does not replace control logic or device programming but enhances communication between systems.
BACnet Object-Oriented Technology
Objects
All information in BACnet is represented using objects. An object may represent a physical I/O point or a logical function such as a setpoint. Each object has a unique identifier, such as AI-1 (Analog Input 1).
Unlike traditional data points that hold only a single value, BACnet objects contain multiple properties, including:
- Present Value
- Units
- Device Type
- Description
For example, an Analog Input object reporting room temperature at 72°F includes not just the temperature value but also metadata such as units, sensor type, and description.
Services
Services are the methods used by BACnet devices to access object properties or request actions. These services allow devices to exchange data, perform commands, and report events. BACnet defines 32 standard services, but only the Read Property service is mandatory for all devices.
Device capability information is available in the PICS (Protocol Implementation Conformance Statement).
Properties
Objects are monitored and controlled only through their properties. BACnet defines 123 standard properties. Each object contains:
- Required properties (must be supported)
- Optional properties (manufacturer-dependent)
Some properties are read-only, while others allow read-write access depending on device permissions.
Data Sharing
Data sharing refers to the exchange of information between BACnet devices. It can be one-way or two-way. Applications include:
- Data collection for storage, graphics, and reporting
- Sharing sensor values between devices
- Coordinated control strategies
- Modifying setpoints or operational parameters
![]()
BACnet enables data sharing among different types of devices from a broad set of suppliers
In data sharing, a client device requests or writes data to a server device. If multiple clients write to the same property, the latest write is used unless command prioritization is applied. BACnet supports priority levels from 1 to 16, with 1 being highest.
BACnet Protocol Stack
The BACnet protocol stack includes physical, link, network, and application layers. It is a simplified version of the OSI model—session and transport layers are integrated into the application layer.
![]()
BACnet Physical Layer
BACnet can run over various physical media, including:
- ARCNET
- Ethernet
- IP tunnels
- BACnet/IP
- RS-232
- RS-485
- LonWorks / LonTalk
RS-232 supports point-to-point communication, while RS-485 can support up to 32 nodes over 1200 meters at 76 kbps.
BACnet Link Layer
- LonTalk and IEEE 802.2 link layers can implement BACnet directly.
- PTP (Point-to-Point) is used for RS-232 connections.
- MS/TP is used for RS-485 networks.
BACnet defines BVLL (BACnet Virtual Link Layer), which provides mechanisms such as broadcasting required by BACnet devices. BACnet/IP uses BVLL to encapsulate messages for IP networks. BBMD (BACnet Broadcast Management Device) converts BACnet broadcasts to IP multicast/broadcast messages.
BACnet Network Layer
This layer defines network addressing required for routing between segments. Bridges link segments using the same LAN technology, while routers interconnect different LAN types.
BACnet Application Layer
This layer handles reliability, segmentation, and sequencing. BACnet devices exchange service primitives described using ASN.1 syntax and serialized using ASN.1 BER.
BACnet Security Layer
BACnet supports secure communication through session key exchange using DES 56-bit encryption. Devices authenticate by exchanging encrypted challenge responses. The InvokeID helps identify authenticated transactions.
Advantages of BACnet
- Designed specifically for building automation and control
- Independent of specific LAN/WAN technologies
- Scalable from small buildings to large networks
- Supports non-standard extensions without breaking interoperability
- Adopted by major fire protection and chiller manufacturers
- Proven reliability in real-world building control systems
Disadvantages of BACnet
- Earlier versions had compliance issues, resolved with the establishment of BTL (BACnet Testing Laboratories)
- Vulnerabilities include lack of spoofing protection, authentication gaps, and weak encryption
- Possible exposure to DoS attacks and unauthorized write access
Applications of BACnet
- HVAC systems
- Fire detection and control systems
- Lighting control
- Security and alarm systems
- Utility management
- Data exchange between automation devices
- Interoperable control in multi-vendor building environments
