Skip to main content
Version: 2.6-dev

BACnet BACnet/IP Integration Guide

MaestroHub integrates natively with BACnet/IP building automation devices. Browse device objects, read property values in batch, and orchestrate building data acquisition inside your pipelines.

Overview

The BACnet/IP connector provides:

  • Direct UDP communication with any ASHRAE Standard 135 compliant device
  • Object discovery via device browsing to enumerate all available objects
  • Batch property reads using ReadPropertyMultiple for efficient data acquisition
  • OS-managed routing by default — bind to all interfaces and let the kernel pick the source per destination; with an explicit interface override for multi-NIC industrial hosts

Connection Configuration

Creating a BACnet/IP Connection

Navigate to ConnectionsNew ConnectionBACnet/IP and configure the device endpoint with the following fields.

BACnet/IP Connection Creation Fields

1. Profile Information
FieldDefaultDescription
Profile NameA descriptive name for this connection profile (required, max 100 characters)
DescriptionOptional description for this BACnet connection
2. BACnet/IP Settings
FieldDefaultDescription
Device IP AddressIPv4 address of the target BACnet device (e.g., 192.168.1.100) — required
Port47808BACnet/IP UDP port on the target device (1–65535)
Device IDBACnet Device Instance ID (0–4194302) — required
Timeout (ms)10000Timeout for all BACnet operations including connect, read, and browse (1000–300000 ms)
3. Advanced

Source-side network controls live under the dedicated Advanced tab on the connection form. Defaults work for almost every setup — only touch these when you need to pin the outgoing interface on a multi-NIC host, or work around a local-port collision.

FieldDefaultDescription
Network Interface(blank — auto)Name of the local network interface to bind to (e.g. Ethernet 4, eth0). When blank, the connector binds to 0.0.0.0:<localPort> and the OS picks the source IP per destination via its routing table — the right default for almost every deployment, including loopback targets and Docker port-published simulators. Set explicitly when running on a multi-NIC industrial host where source-IP allowlists at the device level require a deterministic source NIC.
Local Port47810Local UDP port to bind for outgoing BACnet traffic (1–65535). Must differ from the target device's BACnet port (default 47808) so the two can coexist on a single host. If the configured port is already in use, the connector auto-shifts to the next free port within a 10-port window (4781047819). Set explicitly when you need a deterministic outgoing port for upstream firewall rules.
When to leave Advanced alone
  • Loopback / local simulator (e.g. bacnet-sim published on 127.0.0.1) — leave both blank; the OS routes correctly.
  • Single-NIC host on the same subnet as the device — defaults are correct.
  • Multiple BACnet connections on one MaestroHub instance — the auto-shift handles port reuse; only override Local Port if you need predictability for firewall rules.
4. Connection Labels
FieldDefaultDescription
LabelsKey-value pairs to categorize and organize this BACnet connection (max 10 labels)

Example Labels

  • building: main-campus — Building name
  • floor: 2nd — Floor level
  • system: hvac — Building system
  • location: mechanical-room — Physical location
Notes
  • UDP Protocol: BACnet/IP communicates over UDP. The MaestroHub server must have direct network access to the device on the configured port.
  • No Authentication: BACnet/IP has no built-in authentication — security is managed at the network level.
  • Device ID: The Device Instance ID uniquely identifies the target device on the BACnet network. It can be found in device documentation, the device's configuration interface, or via a BACnet discovery tool.
  • Port 47808: This is the standard BACnet/IP port (0xBAC0). Only change it if the device uses a non-standard port.
  • Timeout: The default 10000 ms (10 seconds) works well for local networks. Increase for slower networks or devices with many objects.
  • Routing: When the Advanced → Network Interface field is left blank, the connector binds to all local interfaces and the OS chooses the source IP per destination. This works correctly on Linux, macOS, and Windows, including loopback targets. Set an explicit interface only when source-side NIC control is required.

Function Builder

Creating BACnet Functions

Once the connection is saved:

  1. Go to the Functions tab → New Function
  2. Choose Read Properties
  3. Configure the read items with names, object types, and property IDs
BACnet Function Creation

Configure BACnet read functions with named items and the browse panel for object discovery

Read Properties Function

Purpose: Read property values from one or more BACnet objects using ReadPropertyMultiple. Each item is given a unique name that becomes the key in the result output.

Configuration Fields

FieldTypeRequiredDefaultDescription
Function NameStringYesA descriptive name for this read function (1–100 characters)
DescriptionStringNoOptional description
Read ItemsArrayYesList of BACnet objects/properties to read (1–50 items)

Read Item Fields

FieldTypeRequiredDefaultDescription
Item NameStringYesUnique name for this item — used as the key in results
Object TypeSelectionYesBACnet object type (e.g., AnalogInput, BinaryInput, Device)
InstanceNumberYesObject instance number
Property IDSelectionNo85 (Present_Value)BACnet property to read

Supported Object Types

CodeNameTypical Use
0AnalogInputTemperature sensors, pressure sensors, flow meters
1AnalogOutputValve positions, damper commands, setpoints
2AnalogValueInternal calculated values, configurable setpoints
3BinaryInputOccupancy sensors, switch states, alarms
4BinaryOutputRelay commands, on/off controls
5BinaryValueInternal binary states, mode flags
8DeviceThe device itself (instance = Device ID)
12LoopPID control loops
13MultiStateInputMulti-position switches, fan speed states
14MultiStateOutputMulti-position actuator commands
17ScheduleWeekly schedules
20TrendLogHistorical data logs

Common Property IDs

IDNameDescription
85Present_ValueCurrent value — the most commonly read property
77Object_NameHuman-readable name of the object
28DescriptionText description of the object
36Event_StateCurrent alarm/event state
103ReliabilityReliability status of the object
111Status_FlagsBitmask: in-alarm, fault, overridden, out-of-service
117UnitsEngineering units (e.g., degrees-Fahrenheit, percent)

Browse Panel

The function configuration page includes a Browse Device Objects panel on the right side. Click Browse to discover all objects on the connected device. You can then:

  • Search/filter objects by name, type, or instance number
  • Click an object to add it as a read item with auto-generated name

Testing Functions

Before saving, you can test your configuration:

  • Per-item testing: Click the test tube icon on any read item to verify it reads correctly
  • Full function test: Click Test Function to execute all items and view results in the test dialog

Pipeline Integration

Use the BACnet Read node inside the Pipeline Designer to incorporate building automation data into your pipelines. Select the connection, choose a read function, and bind parameters to upstream outputs or constants.

For orchestration blueprints that combine BACnet with analytics, SQL, or notification steps, review the Connector Nodes page.

BACnet node in pipeline designer

BACnet Read node with connection binding and function selection

Common Use Cases

HVAC Monitoring

Read temperature, humidity, and airflow values from air handling units (AHUs), rooftop units (RTUs), and variable air volume (VAV) boxes, then push results to dashboards or historians.

Energy Management

Acquire meter readings, power consumption, and demand data from BACnet-enabled meters and submeters for energy analytics and reporting.

Alarm Aggregation

Poll event states and status flags from building controllers to aggregate alarms into a central notification system with escalation workflows.

Occupancy Analytics

Read occupancy sensor data and schedule objects to optimize HVAC and lighting based on real-time building usage patterns.