- Home
- BACnet reference
- Service choice numbers
BACnet reference
BACnet service choice numbers
Updated 7 November 2026
Every BACnet request carries a service choice number. Packet captures and error logs show it; this is what each one is. Examples: 0 = acknowledge-alarm, 1 = cov-notification, 2 = event-notification.
Looking for a number but not sure which list it belongs to? Use the BACnet number lookup, which searches every table at once.
Confirmed services (35)
| Number | Service | Notes |
|---|---|---|
| 0 | acknowledge-alarm | |
| 1 | cov-notification | |
| 2 | event-notification | |
| 3 | get-alarm-summary | |
| 4 | get-enrollment-summary | |
| 5 | subscribe-cov | |
| 6 | atomic-read-file | |
| 7 | atomic-write-file | |
| 8 | add-list-element | |
| 9 | remove-list-element | |
| 10 | create-object | |
| 11 | delete-object | |
| 12 | read-property | |
| 13 | read-prop-conditional (newer) | |
| 14 | read-prop-multiple | |
| 15 | write-property | |
| 16 | write-prop-multiple | |
| 17 | device-communication-control | |
| 18 | private-transfer | |
| 19 | text-message | |
| 20 | reinitialize-device | |
| 21 | vt-open | |
| 22 | vt-close | |
| 23 | vt-data | |
| 24 | authenticate (newer) | |
| 25 | request-key (newer) | |
| 26 | read-range | |
| 27 | life-safety-operation | |
| 28 | subscribe-cov-property | |
| 29 | get-event-information | |
| 30 | subscribe-cov-property-multiple | |
| 31 | cov-notification-multiple | |
| 32 | audit-notification (newer) | |
| 33 | audit-log-query (newer) | |
| 34 | auth-request (newer) |
Unconfirmed services (15)
| Number | Service | Notes |
|---|---|---|
| 0 | i-am | |
| 1 | i-have | |
| 2 | cov-notification | |
| 3 | event-notification | |
| 4 | private-transfer | |
| 5 | text-message | |
| 6 | time-synchronization | |
| 7 | who-has | |
| 8 | who-is | |
| 9 | utc-time-synchronization | |
| 10 | write-group | |
| 11 | cov-notification-multiple | |
| 12 | audit-notification (newer) | |
| 13 | who-am-i (newer) | |
| 14 | you-are (newer) |
Values come from the open-source bacnet-stack 1.6.1 (bacenum.h), which follows ANSI/ASHRAE Standard 135, and were cross-checked one by one against two other independent BACnet stacks (bacpypes and @bacnet-js/client). Entries marked (newer) are in bacnet-stack only, because the other two stacks predate them. Numbers 0-255 (and the higher ASHRAE ranges) are standard; vendors may use proprietary numbers above them.
More BACnet reference
- BACnet engineering units list
- BACnet property identifiers
- BACnet object types
- BACnet error, reject and abort codes
- BACnet reliability, event state and device status
- BACnet Object Identifier decoder
- BACnet Vendor ID lookup
- Compare a scan with a points list
Easy BACnet reads these values straight off the device from an Android phone and shows them as words, not numbers.