The BACnet standard supports at least 18 different BACnet objects. ASHRAE will add new object types from time to time, but it’s rare to see these exotic object types in the field. The common objects provide intuitive access to building automation features. There is a loop object for PID loops, a calendar object for holidays and special events, and a device object for monitoring firmware versions and operational status. The standard doesn’t require every device support every BACnet object, very few are mandatory. You’ll run into some devices that are “BACnet” that’ll leave you hungry for a couple relays instead of a protocol. Here’s an overview of some core object types with some broad usage cases. Since BACnet is very flexible, none of these are absolute rules.

Core BACnet Objects

Analog Value

An analog value can be thought of as a “pseudo-point”; they don’t typically represent a physical value. You can read and write analog value points. They could be setpoints, override commands, or anything else the programmer decided. Analog value points are useful for representing some part of system logic in a way the user can both see and override.


  • Space temperature setpoint
  • Boiler reset temperatures (x4)
  • Economizer mode enable temperature

Analog Input

Analog inputs are typically sensor values. You can’t write to an analog input, they are read-only. There is an exception to this, covered in another article.


  • Space temperature
  • Differential pressure
  • Valve position from a valve with feedback

Analog Output

Analog outputs are typically physical outputs that touch the field and often can be overridden by a user. Valve commands, fan speeds, and boiler fire rate outputs are represented as Analog Outputs.


  • Fan speed command
  • Valve position command
  • Boiler fire rate

Binary Value

These are “pseudo-points” that don’t typically represent a physical value. This could be used to “enable” a heating system by operator control, or maybe to represent some internal logic in a way that can be overridden by the operator. A nice thing about BACnet objects and binary values is that the “text” can be something other than “ON” and “OFF”. You can program a BACnet point to say something smart, like “Free Cooling” and “Mechanical Cooling” instead by changing the trueText and falseText properties.


  • System enable
  • Economizer mode enable
  • Night set back mode

Binary Input

Binary inputs are typically used to represent a physically measured two-position state of something. They are read-only BACnet objects.


  • Fan status from a current transducer
  • Leak detector
  • Filter alarm from a pressure switch

Binary Output

Binary outputs typically represent a physical digital output. They can be overridden, typically.


  • Boiler enable
  • Two-position valve position
  • Cooling tower high/low speed mode


Device objects are special, and not often directly useful to a technician or operator. They are useful for a building automation system to keep track of devices for monitoring. They have an operational state parameter that can give the system feedback about the device’s health. This object will also contain a note of who made it (the vendor), and often a firmware version. You can’t write to a device object, but there are some actions you can perform on them. Devices can be reinitialized, warm started, and cold started. All of these are different levels of a restart, with the final one being as close to a power cycle as you can get without pulling the plug. Careful with cold starts, you’ll often lose any overrides without your automation system knowing.

Schedule, Calendar

Schedule and calendar objects are just what they sound like! Together they can handle holidays without too much intervention, aside from the odd Easter holiday that’s always a challenge to schedule in advance.

Multistate Input

These are just like binary inputs, except they can represent many states. Each can be descriptively labelled, allowing a system to distill the mode of a complicated sequence with one simple point. These are less likely to represent physical points, and more likely to represent some state of a process that cannot be changed by the user.


  • Defrost cycle state
  • Cistern level

Multistate Output

Just like binary outputs, but for more states. These can often be overridden by a user. Useful for process states, like “morning warm up”, “normal”, “standby”, etc.


  • Air handler mode
  • Cooling tower mode (one fan, low; one fan, high; two fans, low; two fans, high)


Loop objects represent PID-loops and allow a user to tune the loop. The provide a proportional, integral, and derivative gain parameter that can be used to alter the loops performance.


  • Return temperature control loop
  • Duct pressure control loop


These are the basic BACnet objects that you’ll encounter in the field as an operator or technician. There are more details than are provided here that are important to a system integrator.