BACnet extra properties as Home Assistant entities

Entities show the present value of an object. BACnet objects have many more properties, such as a fan's minimum run time (minimumOnTime, property 67), an alarm limit (highLimit) or outOfService. There are two ways to use them.

Extra properties as entities

For properties you want to see or change from the dashboard, no automation or template is needed. In Configure → Customize objects, tick the object and pick its extra properties. Each becomes its own entity on the device, named after the object and the property (for example Ventilation fan Minimum On Time), and is read with every poll.

PropertyEntityObjects
Minimum On Time, Minimum Off Timenumber (s)Binary Output / Value
Time Delaynumber (s)analog, binary, multi-state
High Limit, Low Limit, Deadband, COV Incrementnumber (object's unit)analog
Relinquish Defaultnumber (object's unit)Analog Output / Value
Out Of Serviceswitchanalog, binary, multi-state, Schedule
Event State, Reliabilitysensoranalog, binary, multi-state (Reliability also Schedule)
Change Of State Countsensorbinary, multi-state
Elapsed Active Timesensor (s)binary

Targeting one of these entities with bacnet.write_value or bacnet.read_property uses its property, so property can be left out.

Writable ones (number, switch) are under Configuration on the device page, read-only ones under Diagnostic. A property the object does not have shows as unknown.

Other properties

Under other properties in Customize objects you can type any other property by name (inactiveText) or number, separated by commas. These become read-only sensors, unless the table above lists them for that object type. An unknown name is refused with a message that explains the accepted formats.

Read or write one-off with actions

To read or change a property once, use bacnet.read_property and the property field of bacnet.write_value. The property can be given by name (minimumOnTime or minimum-on-time) or by number (67).

action: bacnet.write_value
target:
  entity_id: switch.ahu_1_ventilation_fan
data:
  property: minimumOnTime
  value: 600

Writes to other properties never carry a priority. Values are sent in the property's own BACnet type. Writing a property other than the present value changes the configuration of the object, so it is only allowed for administrators. Field details: Actions.

Objects you did not import

Pick the BACnet device in the device field instead of a target entity, and add object_type (a name such as analog-value or trend-log, or the number) and instance. This is only allowed for administrators, because it reaches every object on the device.

action: bacnet.read_property
data:
  device: 0123456789abcdef0123456789abcdef
  object_type: analog-value
  instance: 12
  property: highLimit
response_variable: result

The device value is the Home Assistant device ID of the BACnet device; the device picker in the action editor fills it in for you.