BACnet organizes data into standardized object types, each with specific properties and behaviors. Understanding these objects is fundamental to BACnet integration.
| Type | Abbreviation | Purpose |
|---|---|---|
| Analog Input | AI | Temperature, pressure, humidity sensors |
| Binary Input | BI | Status contacts, switches, alarms |
| Multi-state Input | MSI | Mode indicators with multiple states |
| Type | Abbreviation | Purpose |
|---|---|---|
| Analog Output | AO | Valve positions, damper commands, speed |
| Binary Output | BO | On/off commands, enable/disable |
| Multi-state Output | MSO | Mode commands with multiple states |
| Type | Abbreviation | Purpose |
|---|---|---|
| Analog Value | AV | Setpoints, calculated values, parameters |
| Binary Value | BV | Software flags, enable settings |
| Multi-state Value | MSV | Mode selections, state machines |
Represents continuous sensor readings.
Common properties:
| Property | Description |
|---|---|
| Present_Value | Current sensor reading |
| Units | Engineering units (degrees-fahrenheit, percent, etc.) |
| Out_of_Service | Bypass hardware, use manual value |
| Status_Flags | In-alarm, fault, overridden, out-of-service |
| COV_Increment | Change threshold for COV subscriptions |
Examples:
Represents continuous control outputs.
Common properties:
| Property | Description |
|---|---|
| Present_Value | Current output value |
| Priority_Array | 16-level priority command stack |
| Relinquish_Default | Value when all priorities null |
| Min/Max_Pres_Value | Output limits |
Examples:
Represents two-state input signals.
Common properties:
| Property | Description |
|---|---|
| Present_Value | Active (1) or Inactive (0) |
| Polarity | Normal or Reverse |
| Active_Text | Display text for active state |
| Inactive_Text | Display text for inactive state |
Examples:
Represents two-state control outputs.
Common properties:
| Property | Description |
|---|---|
| Present_Value | Active (1) or Inactive (0) |
| Priority_Array | 16-level command priority |
| Polarity | Normal or Reverse |
| Minimum_On/Off_Time | Prevents short cycling |
Examples:
Represents calculated or configured values.
Common uses:
Represents software binary states.
Common uses:
Represent enumerated states beyond binary.
Example MSV - Operating Mode:
| State | Meaning |
|---|---|
| 1 | Off |
| 2 | Auto |
| 3 | Cooling |
| 4 | Heating |
| 5 | Emergency Heat |
Controls time-based operations.
Key properties:
| Property | Description |
|---|---|
| Weekly_Schedule | 7-day recurring schedule |
| Exception_Schedule | Holidays, special events |
| Schedule_Default | Value when no schedule active |
| Present_Value | Current scheduled value |
| List_of_Object_Property_References | Points controlled by schedule |
Schedule structure:
Monday:
06:00 - Occupied (1)
18:00 - Unoccupied (0)
Tuesday-Friday: [same]
Saturday-Sunday:
All day - Unoccupied (0)
Defines date-based events.
Key properties:
| Property | Description |
|---|---|
| Date_List | List of dates/date ranges |
| Present_Value | True if today matches |
Examples:
Stores historical data.
Key properties:
| Property | Description |
|---|---|
| Log_Buffer | Stored samples |
| Buffer_Size | Maximum samples |
| Log_Interval | Sample rate (if periodic) |
| Stop_When_Full | Behavior when buffer full |
| Total_Record_Count | Number of samples stored |
Manages alarm routing.
Key properties:
| Property | Description |
|---|---|
| Priority | Alarm priority levels |
| Ack_Required | Which transitions need acknowledgment |
| Recipient_List | Where to send notifications |
Every BACnet object is uniquely identified:
Object Identifier format:
(Object_Type, Instance_Number)
Examples:
- (Analog-Input, 1) = AI-1
- (Binary-Output, 100) = BO-100
- (Schedule, 5) = Schedule-5
All BACnet objects share these properties:
| Property | Description |
|---|---|
| Object_Identifier | Unique ID (type + instance) |
| Object_Name | Human-readable name (must be unique) |
| Object_Type | AI, AO, AV, BI, BO, etc. |
| Present_Value | Current value |
| Description | Optional text description |
| Status_Flags | In-alarm, fault, overridden, out-of-service |
Commandable objects (AO, BO, MSO, AV, BV, MSV) use priority arrays:
| Priority | Typical Use |
|---|---|
| 1 | Manual-Life-Safety |
| 2 | Automatic-Life-Safety |
| 3-4 | Available |
| 5 | Critical Equipment Control |
| 6 | Minimum On/Off |
| 7 | Available |
| 8 | Manual Operator |
| 9-13 | Available |
| 14 | Scheduling |
| 15 | Available |
| 16 | Default/Lowest |
Reference: ASHRAE Standard 135-2020, Clause 12 - BACnet Object Types