Easy BACnet · BACnet IP Controls made Easy

Why doesn't my BACnet value change when I write to it?

Updated 18 September 2026

Short answer

You wrote the point, got no error, and nothing moved. In BACnet that almost always means something at a higher priority is already in command. A commandable point obeys the highest active slot in its 16-level priority array, so a write at priority 8 does nothing while priority 5 is held. The other possibilities: you wrote at a priority the equipment's logic immediately overrides on its next cycle, you wrote a read-only property, or the write went to the wrong object. Reading the priority array tells you which in one look.

The priority array is the whole story

A commandable BACnet point does not simply hold the last value written. It has sixteen priority slots, and its Present_Value follows the highest-priority slot that currently has a value. If slot 5 holds 72 and you write 68 at slot 8, the point stays at 72 — your write landed, it is just being outranked. This is working exactly as designed, and it is the number-one reason a write “does nothing.” See BACnet priority and stuck overrides.

Work through it in order

1. Read the priority array

Look at all sixteen slots. If any slot above the one you wrote holds a value, that is what is winning. Common culprits: a manual override left in slot 8 by a previous technician, or the building program holding a low-numbered slot.

2. Decide the right way to win

You can write at a higher priority than the one holding it — but understand what you are overriding before you do, because you may be fighting the safety logic. Often the correct fix is not to write higher but to release the slot that should not be held (write NULL to relinquish it), letting the point fall back to the program.

3. Check you wrote at a priority at all

Writing Present_Value as a bare value, with no priority, behaves inconsistently across controllers — some take it, some ignore it. Write explicitly at a priority (8 is the usual manual slot).

4. Rule out read-only and wrong-object

If the point is an input or a non-commandable object, a “successful” write may have gone nowhere useful — or returned Write Access Denied. Confirm you are on a commandable output or value object.

5. The program rewrites it every cycle

If the value flicks to yours for a second and then snaps back, the controller's own logic is writing that point on its scan at a higher priority. You cannot win that from outside without addressing the program — and you usually should not.

Easy BACnet reads the full priority array after every write and shows which slot is in command, so “nothing happened” becomes “priority 5 is holding it” — the difference between guessing and knowing. It also offers a one-tap release to hand a stuck slot back to Auto.