BACnet Object Identifier decoder
Free browser tool · nothing is uploaded · updated 10 November 2026
A BACnet Object Identifier packs an object type and an instance number into a single 32-bit value — the top 10 bits are the type, the bottom 22 bits are the instance. This tool goes both ways: pick a type and instance to get the encoded number, or paste a raw Object Identifier to see what it means. Background: what is a BACnet IP points list? and BACnet object types explained.
Decode — number to type + instance
How the number is built
An Object Identifier is 4 bytes, 32 bits. The first 10 bits hold the object type (0–1023) and the last 22 bits hold the instance (0–4,194,303). Shifting the type left by 22 bits is the same as multiplying it by 4,194,304, so the whole thing is one line of math:
Object Identifier = object type × 4,194,304 + instance
To go the other way, divide by 4,194,304. The whole-number part is the type and the remainder is the instance.
| Object | Math | Decimal | Hex |
|---|---|---|---|
| Analog Input 1 | 0 × 4,194,304 + 1 | 1 | 0x00000001 |
| Analog Value 7 | 2 × 4,194,304 + 7 | 8,388,615 | 0x00800007 |
| Binary Output 3 | 4 × 4,194,304 + 3 | 16,777,219 | 0x01000003 |
| Device 1234 | 8 × 4,194,304 + 1,234 | 33,555,666 | 0x020004D2 |
In hex the split is easy to read by eye: the type sits in the top bits, so every Analog Value starts 0x008…, every Binary Output 0x010… and every Device 0x020….
Where you run into the raw number
- Wireshark and packet captures. ReadProperty requests carry the Object Identifier as those 4 bytes, so the hex in the packet bytes pane decodes here.
- Gateway and driver configs. Some gateways, OPC servers and integration tools store a point as one 32-bit number instead of a type and an instance.
- Logs and error messages. A controller or BMS log that says “object 33555666 unknown” is talking about Device 1234.
Limits worth knowing
- Types 0–127 are reserved for the standard. Types 128–1023 are left for vendors, which is why a decoded type can come back as a number this tool has no name for.
- The highest instance, 4,194,303, is the “wildcard” or uninitialized value. That is why a real Device ID tops out at 4,194,302. See what a BACnet Device ID is.
- Instance numbers only have to be unique per object type inside one device. AI 1 and AV 1 on the same controller are different objects with different Object Identifiers.
For the instance numbers a specific unit uses, look it up in the BACnet points list library or run a brand instance calculator. To look up any other BACnet enum value, such as a property ID or engineering unit, use the BACnet number lookup.