---
title: BACnet Tool
description: Discover and inspect BACnet/IP and MSTP devices from the Edge Server, covering both configured clients and ad-hoc Who-Is polling.
source: https://documentation.controlcomtech.com/build/edge-server/web-interface/tools/bacnet
---

# BACnet

`/tools/bacnet` has two tabs: **Configured Clients** (works against BACnet clients defined in the cloud configuration) and **Poller** (fully ad-hoc, like the Modbus tool).

> **Workflow Stage: Collect**

## Configured Clients

Per BACnet client, you see its transport (IP or MSTP), online status, and a Who-Is panel:

* **Who-Is target**: optional. Blank broadcasts; supply `host:port` for an IP unicast or a MAC `0–127` for MSTP.
* **Wait time**: how long to wait for I-Am replies before refreshing the device list.
* **Send Who-Is**: fires the request.
* **Export CSV**: exports all discovered devices and their inspected properties.

Discovered devices show in a table with **Device #**, **Address**, **Vendor**, **Max APDU**, **Segmentation**, **First Seen**, and **Last Seen**. Expand a device to inspect it: the tool runs ReadPropertyMultiple across all objects and renders a collapsible property tree per object. Use this when bringing a new BACnet device online to verify the vendor, supported objects, and any non-default property values.

## Poller

The Poller tab is the ad-hoc equivalent of the Modbus tool. Add either **IP** or **MSTP** clients with their respective parameters:

| IP field            | Notes                                            |
| ------------------- | ------------------------------------------------ |
| **Host**            | The BACnet/IP device.                            |
| **Port**            | Default `47808`.                                 |
| **Device Instance** | Optional.                                        |
| **RP Property ID**  | Default `85` (PROP\_ALL).                        |
| **Read Mode**       | ReadPropertyMultiple (RPM) or ReadProperty (RP). |

| MSTP field        | Notes                                |
| ----------------- | ------------------------------------ |
| **Serial Port**   | Local serial device path.            |
| **Baud Rate**     | Default `38400`.                     |
| **MAC**           | Our station's MAC (0–127).           |
| **Target MAC**    | Remote MAC (0–127).                  |
| **Discover wait** | Seconds after Who-Is before refresh. |

Click **Discover** to fire Who-Is, pull the device's Objects list, and auto-fill polling rows. Each polling row identifies an **Object Type** and **Instance Number**; on each poll tick the row's expandable property tree updates and changed values flash.
