How writes work in the Home Assistant BACnet integration

Safety on a live site

What this integration writes to your devices, so you know before you try it on a running building:

Warning: The integration is provided as is, without warranty. Do not use it to control life-safety systems such as fire alarm or smoke control. You are responsible for what you write to a running building; test on a single object first.

The Priority Array

BACnet lets several writers command one output at once. Each writer uses one of 16 priority levels, and the device acts on the lowest-numbered level that holds a value. This list of 16 slots is the Priority Array. Level 8 is by convention the Manual Operator; level 16 is the lowest.

All writes to commandable objects use this array:

Binary outputs use the BACnet Enumerated type: 0 is inactive, 1 is active. If a device rejects a write, Home Assistant shows an error instead of silently keeping the old state.

Write Priority select

A Write Priority select entity (under Configuration on the device page) is added to every BACnet device. It is disabled by default to keep dashboards tidy.

To use it:

  1. Go to Settings → Devices & Services → BACnet IP and open your device.
  2. Find the Write Priority entity and enable it.
  3. Use the dropdown to select a priority.

Step by step: Switch with priority.

Available levels: 8 (Manual Operator), 9, 12, 13, 14, 15 and 16 (default, lowest). Priority 16 is the safest default; use 8 if your building management system requires a Manual Operator override. The selected priority persists across restarts. It applies to entity writes and to actions that do not give their own priority.