Skip to main content

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:

FieldMeaning
Device IDBACnet device instance number
AddressIP address (and network, if routed)
VendorVendor name
ModelModel name (if reported)
FirmwareFirmware revision (if reported)
LocationConfigured device location (if reported)
Max APDULargest APDU the device accepts
SegmentationWhether 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 Null to 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:

TypeReadWrite
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.