A BACnet device publishes its data as objects. Each object represents one point or function, such as a temperature input, a fan command or an operating mode, and carries properties such as its current value, units and status. A usable point list names every object that the project needs, in a form that another system can read without guessing. This guide explains the objects and properties you meet most, and the fields a point list needs.
This guide is part of the BACnet and building protocols series.
Objects
The BACnet Committee's primer describes the object model. Every object has three required properties: Object_Identifier, Object_Name and Object_Type. The identifier combines the object type and an instance number, and it is unique inside one device. Analog-input 1 exists in thousands of controllers. To name a point on a site, you need the device instance as well.
Every BACnet device has exactly one Device object. Its instance number must be unique across the whole BACnet internetwork, because other devices use it to find the device. The discovery guide covers device instances.
The object types you will meet most in energy and HVAC work:
| Object type | Typical use | Present_Value |
|---|---|---|
| analog-input | A measured value: temperature, flow, power | A real number |
| analog-output | A physical output: valve position, damper | A real number, commandable |
| analog-value | A software value: set point, calculated value | A real number, often commandable |
| binary-input | A contact or status: pump running, filter alarm | Active or inactive |
| binary-output | A physical on/off command: start a fan | Active or inactive, commandable |
| binary-value | A software flag: occupancy mode, enable | Active or inactive |
| multi-state-input, -output, -value | A mode with several states: off, heat, cool, auto | A state number from 1 |
| schedule, calendar | Time programmes | Varies |
| trend-log | Stored history of another property | Log records |
| device | The device itself | None |
Properties to read with the value
Present_Value alone is not enough. Read these with it:
| Property | Why it matters |
|---|---|
| Units | The engineering unit. A value of 68 means little without knowing that it is °F |
| Status_Flags | Four flags: in alarm, fault, overridden, out of service |
| Reliability | Why a value is faulty: open circuit, over range, no sensor |
| Out_Of_Service | When true, Present_Value is not taken from the physical input and can be written by hand |
| Object_Name, Description | The meaning on this site, as the integrator named it |
| State_Text, Number_Of_States | The names of the states of a multi-state object |
| Active_Text, Inactive_Text | The names of the two states of a binary object |
| COV_Increment | The change that triggers a COV report on an analog object; see the COV guide |
| Priority_Array, Relinquish_Default | Who is commanding a commandable object, and its value when nobody is |
Multi-state values are numbers. State 2 may mean "heat" on one controller and "occupied" on another. Read the state texts from each device, or from the integrator's documentation, and store them in the point list.
The PICS
Every BACnet device should have a Protocol Implementation Conformance Statement (PICS). It lists the object types the device supports, which properties are writable, and which services it supports, such as ReadPropertyMultiple, SubscribeCOV or WriteProperty. Ask for the PICS of each controller model before you promise the owner what the integration will do. A device that does not support ReadPropertyMultiple, for example, needs one request per property, which matters on a slow MS/TP bus.
The PICS describes the product, not the site. The objects that exist on a given controller, and their names, depend on how the integrator programmed it.
Build the point list
A point list is the contract between the BMS integrator and every system that reads the data. For each point, record:
| Field | Example |
|---|---|
| Site point ID | AHU-02 supply air temperature |
| Device instance | 20102 |
| Network (IP address or network number and MAC) | 10.20.4.31, or network 12 MAC 7 |
| Object type and instance | analog-input 3 |
| Object_Name on the device | AHU02_SAT |
| Units | degrees-celsius |
| States (binary and multi-state) | 1 = off, 2 = heat, 3 = cool, 4 = auto |
| Access | Read only, or writable at priority 12 with owner approval |
| Poll interval or COV | 60 s poll |
| Owner | BMS integrator |
Many BMS tools export the objects of a device as a file, often in the EDE (engineering data exchange) spreadsheet format. Use the export as a starting point, then add the site meaning, the access and the owner. A list of 400 exported objects is not a point list until someone has chosen the points the project needs.
Check the list against the device
- Read each point, with Units and Status_Flags, and compare it with the BMS front end.
- For a sensor, compare with a reference reading, or check that it moves when the plant changes.
- For a multi-state point, change the mode and check that the state number and the state text agree.
- For a writable point, test the write only with the BMS owner, at the agreed priority, and check the release. The priority array guide explains why.
BACnet objects with Edge
Edge on the ZGW-20 Gateway reads the present value of analog, binary and multi-state input, output and value objects from BACnet/IP controllers. For each point you set the device instance, the object type and instance, and optionally a multiplier and offset. Binary values become 0 or 1, and multi-state values their state number, so keep the state texts in the point list. Output and value objects can be written only when an administrator provisions them for control.
Common questions
What is a BACnet object?
A standard way to represent one piece of data or function in a device, such as a temperature input (analog-input), a fan start command (binary-output) or an operating mode (multi-state-value). Every object has an identifier (type and instance number), a name and a type, plus the properties that its type requires.
What are the most common BACnet object types?
Analog input, output and value; binary input, output and value; multi-state input, output and value; and the Device object, which every BACnet device has exactly one of. Schedule, calendar, trend log and notification class objects are common in controllers.
What is Present_Value in BACnet?
The property that holds an object's current value: the measured temperature of an analog input, or the commanded state of a binary output. Read it together with Units and Status_Flags.
What is a BACnet PICS?
The Protocol Implementation Conformance Statement: the manufacturer's declaration of which BACnet object types, properties and services a device supports. It is the first document to ask for in an integration.