BACnet Duplicate Device ID: Find and Fix It

BACnetdevice IDduplicatetroubleshootingBACnet/IP
April 14, 2026|7 min read

A BACnet duplicate device ID occurs when two or more devices on the same BACnet internetwork share the same device instance number (valid range: 0–4194302). This causes I-Am response collisions, unpredictable property reads, and control commands reaching the wrong device. To fix it, scan the network with YABE or Wireshark to identify the conflicting devices, reassign one to an unused device instance number, and power cycle the affected controller to flush the old identity from the network.

Symptoms of Duplicate BACnet Device IDs

Duplicate device instance numbers produce symptoms that are easy to confuse with network faults or device failures. If you're seeing any combination of the following, a device ID collision should be on your short list:

How BACnet Device Instance Numbers Work

Every BACnet device on an internetwork must have a globally unique device instance number. This is a 22-bit unsigned integer stored in the Object_Identifier property of the Device object, giving a valid range of 0 through 4194302. Instance number 4194303 is reserved by the BACnet specification as a wildcard value for Who-Is broadcasts and must never be assigned to a device.

The device instance number serves as the primary identifier when a client needs to reach a specific device. When a BAS front-end or workstation tool sends a Who-Is request, devices respond with an I-Am that includes their device instance number and network address. The client then caches that mapping and uses it for all subsequent Read-Property, Write-Property, and subscription requests. If two devices share the same instance number, the client's address cache oscillates between the two addresses, causing every symptom described above.

It is critical to distinguish the device instance number from other BACnet addresses:

A device can have a unique MAC address on its MS/TP trunk and still conflict on the device instance number with a controller on a completely different subnet. This is the scenario technicians miss most often—the conflict doesn't require devices to be on the same wire.

How to Find Duplicate Device IDs

Finding the conflict is the hard part. Once you've identified which two devices share the same instance number, the fix is straightforward. Here are three proven methods, from quickest to most thorough.

Method 1: Wireshark Capture

Wireshark on a workstation connected to the BACnet/IP network is the fastest way to confirm a duplicate. Capture traffic on the interface carrying BACnet/IP (UDP 47808) and apply these display filters:

# Show all I-Am responses — look for the same device instance
# from two different source IP addresses
bacnet.unconfirmed_service == 0

# Filter I-Am responses for a specific suspected device instance
# Replace 310001 with the instance number you suspect is duplicated
bacnet.unconfirmed_service == 0 && bacnet.instance_number == 310001

# Show all Who-Is requests (useful to trigger I-Am responses)
bacnet.unconfirmed_service == 8

# Show Who-Is and I-Am together for the full exchange
bacnet.unconfirmed_service == 8 || bacnet.unconfirmed_service == 0

# Show I-Have responses (another service that reveals device identity)
bacnet.unconfirmed_service == 1

To trigger the conflict, send a Who-Is broadcast while the capture is running. If two I-Am responses come back with the same device instance number but different source IP addresses, you have confirmed the duplicate. Note both IP addresses—these are the two devices you need to resolve.

For MS/TP networks behind a BACnet router, the I-Am responses will show the same source IP (the router's IP) but different NPDU source addresses (SADR). Check the BACnet Network Layer source address field to distinguish the two devices.

Method 2: YABE (Yet Another BACnet Explorer)

YABE provides a graphical device tree that makes duplicates visible at a glance:

  1. Launch YABE and add a BACnet/IP transport on the correct network interface.
  2. Click Send WhoIs to discover all devices.
  3. Examine the device tree in the left panel. If a device instance number appears twice with different addresses, YABE will show two separate entries with the same instance number.
  4. Right-click each entry and read the Device object properties to identify the device model, vendor, and location.

YABE's log tab (bottom of the window) also shows raw BACnet traffic, so you can see both I-Am responses arriving in real time.

Method 3: Vendor-Specific Tools

Most BAS platform tools include some form of device discovery that will flag duplicates:

How to Fix BACnet Device ID Conflicts

Once you've identified the two devices sharing an instance number, follow these steps:

Step 1: Decide Which Device Keeps the Current ID

If one device has been on the network longer and has existing integrations, trend logs, schedules, and alarm configurations pointing to its instance number, that device should keep its current ID. The newer or less-integrated device gets reassigned.

Step 2: Choose a New Device Instance Number

Select an unused number within the valid range of 0 through 4194302. Most organizations use a structured numbering scheme tied to building number, floor, or equipment type. Common conventions:

# Example device instance numbering convention
# Format: BBBFFDD (Building-Floor-Device)
#
# Building 3, Floor 1, Device 01:  310001
# Building 3, Floor 1, Device 02:  310002
# Building 3, Floor 2, Device 01:  320001
# Building 5, Floor 1, Device 01:  510001
#
# Before assigning, run a Who-Is across the full range to confirm
# the chosen number is not already in use:
# In YABE: Send WhoIs with range [new_id] to [new_id]
# In Wireshark: filter for bacnet.instance_number == [new_id]

Step 3: Change the Device Instance Number

The method varies by controller platform:

Step 4: Power Cycle and Verify

After changing the device instance, reboot the controller. Some devices apply the change immediately; others cache the old identity until the BACnet stack restarts. After the reboot:

  1. Send a Who-Is targeting the old (conflicting) instance number. You should receive exactly one I-Am response.
  2. Send a Who-Is targeting the new instance number. You should receive exactly one I-Am from the reassigned device.
  3. Verify that the BAS front-end shows both devices online simultaneously without flickering.
  4. Check trend logs, schedules, and alarm routing for any references to the old instance number that need updating.

Step 5: Update Integrations

Changing a device instance number breaks any existing references to that device. Update these items on the BAS front-end and any third-party integrations:

Preventing Future Conflicts

Duplicate device IDs are almost always the result of poor planning or skipped commissioning steps. These practices eliminate the problem:

Common Mistakes

Platform Compatibility

Duplicate device instance numbers are a BACnet protocol-level issue, not a vendor-specific bug. Any device implementing BACnet per ASHRAE Standard 135 is subject to the same uniqueness requirement. The detection and resolution steps above apply universally, with platform-specific configuration differences noted below:

Platform / ControllerDevice Instance Config MethodDuplicate DetectionNotes
Tridium Niagara (JACE, FX)Workbench > BacnetNetwork > Local DeviceDevice Table shows duplicatesNiagara 4.8+ logs I-Am conflicts in the station log
Johnson Controls Metasys (NAE, NIE)SCT / SMP > Device ObjectIntegration tab flags conflictsFEC/FAC field controllers use SCT for instance assignment
Schneider Electric (AS-P, AS-B)EcoStruxure Building OperationBACnet scan flags duplicatesSmartX controllers support instance change via web interface
Honeywell (Spyder, WEBs)CARE tool / Niagara WorkbenchManual scan requiredSpyder controllers may require a firmware download after ID change
Distech Controls (EC-BOS, ECB)Web UI / Niagara WorkbenchDevice discovery listFront panel LCD can display current instance for field verification
Carrier (i-Vu, CCN)i-Vu Pro / CCTManual scan requiredCCN-to-BACnet gateways have their own instance numbers; check both
Reliable Controls (MACH series)RC-Studio / RC-ArchiveRC-Studio discoveryInstance number lockable via software to prevent accidental changes
Delta Controls (enteliWEB, DAC)ORCAweb / enteliWEBSystem discovery scanDelta uses structured instance numbering by default; check the scheme

The valid device instance range (0–4194302) and the uniqueness requirement have been part of the BACnet standard since ASHRAE 135-1995 and remain unchanged through all revisions, including BACnet/SC (Secure Connect).

Source Attribution

The technical guidance in this entry is informed by the following sources:

Additional testing and field validation by SiteConduit.

device IDduplicatetroubleshootingBACnet/IPdevice instance

Was this article helpful?

Related Articles

Need to do this remotely? SiteConduit provides Layer 2 access that preserves BACnet broadcasts — no BBMD needed for remote sessions. Join the waitlist.

SC

SiteConduit Technical Team

Idea Networks Inc.

SiteConduit builds managed remote access for building automation. Our knowledge base is maintained by BAS professionals with hands-on experience deploying and troubleshooting BACnet, Niagara, Modbus, and Facility Explorer systems.