BACnet
The BACnet tab discovers BACnet/IP devices on your local network, browses their objects, and reads live values. With Pro you can also write present-values, command outputs at a chosen priority, and relinquish commands.
Discover devicesโ
Tap ๐ก Discover devices (Who-Is). BacBus broadcasts a BACnet Who-Is and
listens for I-Am replies for about six seconds, adding a card for each device
as it answers. The counter shows how many devices have been found.
Each device card shows:
- Name (or
Device <id>if the device doesn't report one) - Device ID
- Vendor
- IP address
Devices already discovered earlier in the session stay listed, so you can scan repeatedly without losing your list. If nothing shows up, see Troubleshooting.
:::info Who-Is is a broadcast Discovery uses UDP broadcast, which does not cross routed subnets. Your phone has to be on the same subnet/VLAN as the controllers for them to hear the Who-Is. :::
Device detailโ
Tap a device to open it. BacBus reads its identity properties and then scans its full object list.
Identityโ
The identity card shows what the device reports about itself:
| Field | Meaning |
|---|---|
| Device ID | BACnet device instance number |
| Address | IP address (and network, if routed) |
| Vendor | Vendor name |
| Model | Model name (if reported) |
| Firmware | Firmware revision (if reported) |
| Location | Configured device location (if reported) |
| Max APDU | Largest APDU the device accepts |
| Segmentation | Whether the device supports segmented messages |
Object scanโ
BacBus reads the device's object list and then reads each object's name and
present-value. The scan is pipelined โ objects fill in live as the
concurrent reads resolve โ and the header shows progress (Read 12 of 48โฆ) and
elapsed time.
The completed scan is cached for the session, so reopening the device is
instant. The header shows when it was cached (e.g. cached ยท 2m ago ยท 3.4s scan). After five minutes the cache is flagged as potentially stale; tap โป
Rescan to read fresh values. BacBus never auto-rescans โ you stay in control of
when the device is polled.
Search and filterโ
Once objects load, you get:
- A search box that matches object name, type, and instance.
- A โ Writable toggle that limits the list to commandable objects (outputs and commandable values).
Each object row shows its name, type and instance (e.g. analog-value 7), and
formatted present-value (with engineering units for analog points, Active /
Inactive for binary points). A colored left stripe marks writable
(commandable) objects in teal and read-only objects in grey.
Reading valuesโ
Present-values are read during the scan and shown on each object row. Re-open a device or Rescan to refresh them. After any write, BacBus automatically re-reads the affected object so the row reflects what the device actually applied (after clamping or higher-priority masking).
Writing values (Pro)โ
Writing requires BacBus Pro. Tap a writable object (teal stripe, โ icon) to expand its control panel:
- Analog objects (analog-value, analog-output) โ a numeric stepper with an adjustable Step, or type a value directly.
- Binary objects (binary-value, binary-output) โ an Active/Inactive switch.
- Multi-state objects (multi-state-value, multi-state-output) โ a stepper that increments the state number (minimum 1).
The value you set is staged โ nothing is sent to the device until you tap
Write. The panel shows current <value> โ pending so you can confirm the
change before committing. Tap Reset to discard the staged value.
Priorityโ
Commandable objects (outputs, and any object that exposes a priority array) write through the BACnet priority array. Pick a Priority from 1 (highest) to 16 (lowest); BacBus labels the standard uses (e.g. 8 โ Manual Operator). The write is applied at that priority level.
The priority array (Pro)โ
When an object is commandable, BacBus detects and reads its 16-slot priority array. Tap Show priority array to see every slot, its standard use, and the value commanding it. The currently-active (highest-priority) slot is highlighted.
From here you can clear stuck commands:
- Relinquish a single priority level โ writes
Nullto that slot, releasing your (or another tool's) command at that level. - Relinquish all โ releases every occupied slot in one action, handy for clearing a point that's been left in override.
After relinquishing, BacBus re-reads the object so you can see control return to the next-lower priority (or the relinquish-default).
:::warning Writes affect live equipment Writing and relinquishing command real building systems. Confirm you're on the right object and priority before committing, and relinquish overrides when you're done so you don't leave a point stuck. :::
Export (Pro)โ
Tap โค CSV in the objects header to export the scanned object list โ type, instance, name, present-value, and units โ and share it via the OS share sheet. CSV export requires Pro.
Supported object typesโ
BacBus reads any object the device exposes. Writing and the priority array apply to the commandable/value types:
| Type | Read | Write |
|---|---|---|
| analog-value, analog-output | โ | โ |
| binary-value, binary-output | โ | โ |
| multi-state-value, multi-state-output | โ | โ |
| analog-input, binary-input, multi-state-input, and others | โ | read-only |
Outputs (analog-output, binary-output, multi-state-output) are commandable
and use the priority array; commandable values do too.