20,919,685Total Points24,106Total Sites23,382Cell Towers69,500Racks Monitored56,753HVAC Units Monitored31,322UPS Units Monitored24,788Generators Monitored20,919,685Total Points24,106Total Sites23,382Cell Towers69,500Racks Monitored56,753HVAC Units Monitored31,322UPS Units Monitored24,788Generators Monitored20,919,685Total Points24,106Total Sites23,382Cell Towers69,500Racks Monitored56,753HVAC Units Monitored31,322UPS Units Monitored24,788Generators Monitored

Chapter 3: Data Sources & ProtocolsLesson 14 of 65

Configuring a BACnet IP Data Source

How to discover BACnet devices on your network and set up a BACnet IP data source in Mango by Radix IoT to monitor building automation systems.

  • 10 min read
  • Intermediate
  • Mango 4.x / 5.x

Overview

BACnet IP is the standard protocol for building automation systems (HVAC, lighting, access control). This guide covers discovering BACnet devices on your network and reading their data points in Mango by Radix IoT.

Prerequisites

  • Running Mango 4.x or 5.x with the BACnet module installed
  • BACnet IP devices on the same network (or routable subnet)
  • Knowledge of your network’s BACnet configuration (broadcast address, port)
  • A BACnet local device already created in Mango (required before you can create a BACnet data source)

Step 1: Create a BACnet Local Device

Nothing else works until this exists. The BACnet/IP data source will not let you save without selecting a local device, and the page you create one on is not in the navigation menu — which is why this step is easy to miss.

The page is hidden from the navigation menu. Open Administration → Admin home and use the Utilities panel, which lists BACnet local devices. You can also go straight to /ui/admin/bacnet-local-devices. Reaching it needs the Edit local devices system permission.

  1. Click Create new local device
  2. Set the Local device ID — the BACnet instance number Mango itself presents on the network. It must be unique across the whole BACnet internetwork; a duplicate is a classic cause of erratic discovery
  3. Set Local bind address (default 0.0.0.0) and Port (default 47808, the standard BACnet/IP port 0xBAC0). Broadcast address defaults to 255.255.255.255 and Subnet to 24
  4. If the devices you need are on another subnet, fill in the BBMD address, BBMD port and BBMD registration interval (seconds)
  5. Save the local device

Local bind address

This is the network interface Mango sends and listens on, and it is the single most common thing to get wrong.

On a server with one network card, the default is fine. On a multi-homed server — two NICs, a VM with several virtual adapters, a container host — the default can bind Mango to the wrong interface. Broadcasts then go out on a network with no BACnet devices on it, discovery returns nothing, and there is no error to tell you why. Set it explicitly to the IP address of the interface that faces your BACnet network.

Warning

Silent failure is the normal symptom of a wrong bind address. If discovery finds nothing and the firewall is open, check the bind address before anything else.

BBMD address

BACnet discovery works by broadcast, and routers do not forward broadcasts. If your devices sit on a different subnet from Mango, a BBMD — BACnet Broadcast Management Device — is what carries broadcasts across the boundary.

Mango registers with it as a foreign device: you supply the BBMD’s address and port (default 47808), plus a registration interval (seconds) that controls how often Mango re-registers (default 300). Let the registration lapse and the BBMD stops forwarding, so discovery that worked yesterday quietly stops. Leave all three blank when Mango and the devices share a subnet.

You will select this local device when creating the data source in the next step.

Step 2: Create the BACnet Data Source

  1. Navigate to Data integration > Data sources > + > BACnet/IP
  2. Select the Local device you created above. This is required — the data source will not save without one
  3. Set the remaining fields:
Field Value Notes
Name Your data source name e.g., “Building A BACnet”
Update period 60 seconds BACnet devices are often polled less frequently
COV lease time (minutes) 60 Only used if you enable COV on a point; see Step 5
  1. Click Save

Note

There is no network configuration on the BACnet/IP data source. Local bind address, Port, Broadcast address, Subnet, Timeout (ms), Retries and the BBMD fields all live on the local device you created in Step 1, and are shared by every data source that selects it. The data source itself has only Local device and COV lease time (minutes), plus the usual name and polling settings.

Step 3: Discover Devices

  1. Save the data source first, then open its Device browser tab — the tab is only active once the data source exists and has a local device selected
  2. Click Start Who-Is. Mango broadcasts a BACnet Who-Is; Cancel Who-Is stops a scan in progress
  3. Devices that respond appear in the list as they answer
  4. Each device shows its instance number, name, and address. Use the filters — Device ID start, Device ID end, Vendor, Model, Name, MAC — to narrow a large result set

Note

Two things share this name. The Device browser tab on the data source is the one that feeds points into that data source. BACnet device browser is a separate page, also reached from the Utilities panel on Administration’s Admin home, which inspects any device against a local device you choose and is restricted to superadmins. There is no separate “discovery” view — Who-Is is run from whichever browser you are in.

Warning

If no devices are discovered, check that your firewall allows UDP traffic on port 47808. BACnet uses UDP broadcasts, which many firewalls block by default.

Step 4: Discover Objects on a Device

  1. Select a discovered device
  2. Select the device to load its Device objects — Mango queries it for all its BACnet objects:
    • Analog Input (AI) - temperature, humidity, pressure
    • Analog Output (AO) - setpoints, valve positions
    • Analog Value (AV) - calculated values
    • Binary Input (BI) - on/off status
    • Binary Output (BO) - commands
    • Binary Value (BV) - mode settings

Step 5: Add Data Points

For each object you want to monitor:

  1. Select the object from the discovery results
  2. Select the objects you want and use Add points. To add specific properties rather than whole objects, select them and use Add data points for selected properties
  3. Configure which BACnet property to read (usually Present value)
  4. Leave Use COV subscription off and poll instead. Change of Value sounds better than polling — the device pushes updates rather than Mango asking — but in practice most BACnet devices do not implement it correctly. Turn it on only for a device you have confirmed handles it, and expect to set COV lease time (minutes) so the subscription is renewed before it expires.

Tip

When bulk-adding points, add one point type per batch (all numeric, then all multistate, then binaries, then alphanumeric). Mango bulk-create uses a single type for the batch; mixing types can create the wrong point types and force delete/recreate.

Step 6: Understanding BACnet Object Types

Mango lists object types by full name in sentence case — “Analog input”, “Multi-state input”, “Trend log”. The abbreviations below are the BACnet convention you will hear from controls engineers and see in device documentation; they are not what Mango displays.

Object Type Abbreviation Typical Use
Analog Input AI Sensor readings (temp, pressure)
Analog Output AO Control outputs (valve %, fan speed)
Analog Value AV Setpoints, calculated values
Binary Input BI Status (on/off, open/closed)
Binary Output BO Commands (start/stop)
Multi-state input MSI Status with multiple states
Schedule SCH Time-based schedules
Trend Log TL History logged on the device itself. Mango does not import that log: a point reads one property of the object

Troubleshooting

No devices discovered

  • Verify UDP port 47808 is open in your firewall
  • Check the device is on the same subnet (or a BACnet router is configured)
  • Try specifying the device IP directly instead of broadcast discovery
  • Some devices have BACnet disabled by default - check device configuration

Timeout errors during object discovery

  • Increase Timeout (ms) on the local device, not on the data source — Mango’s own error message says “try increasing your local device timeout setting”. The default is 6000 ms, with Retries at 2
  • Raise Segment timeout (ms) (default 5000) as well for devices returning large segmented responses
  • Some controllers with many objects can take 30+ seconds to respond
  • Try discovering objects in smaller batches

COV subscriptions not working

  • Not all devices support COV - fall back to polling
  • COV requires the device to actively send updates - verify the device supports it for that object type

Get free access to all 65 Mango by Radix IoT training lessons

One short form unlocks every lesson and its video in this browser.

This form is hosted by Zoho. It loads only after you enable support cookies or choose to load it below.

We honored your browser’s Global Privacy Control signal — optional cookies are off and nothing is tracked.