BACnet Agent

BACnet Agent

ID: uniflow.plugin.bacnetagent Category: Building Automation Version: v1.2.0 Min Uniflow Version: Uniflow ≥ v1.4.0

BACnet Agent Plugin Reference Manual

1. Overview

Plugin Name: BACnet Agent

Type: Building Automation

Identifier: uniflow.plugin.bacnetagent

Description

Integration with BACnet/IP devices as an agent.


2. Technical Architecture

The BACnet Agent plugin acts as an active BACnet/IP server node over UDP socket port 47808 (or custom configured port). It exposes local BACnet objects (Analog Input, Analog Output, Binary Input, Binary Output, Multi-state) into the BACnet network, responds to Who-Is / I-Am discovery broadcasts, processes incoming ReadProperty / WriteProperty requests, and handles optional Foreign Device BBMD registration.

System Interaction & Exposed Catalog Routes

The BACnet Agent plugin implements an embedded BACnet Server / Device object. It exposes Uniflow telemetry as standard BACnet Objects (Analog Input, Binary Input, Analog Value, Binary Value, Multi-State Value) and responds to ReadProperty / WriteProperty requests from external BMS networks.

Catalog Routes & Node Integration

Input Event Triggers (Input Nodes):

  • bacnet.point_changed - Emitted when an internal BACnet object value changes.
  • bacnet.write_request_received - Emitted when an external BMS writes to a BACnet object.
  • Executable Actions (Action Nodes):

  • bacnet.update_present_value - Updates the Present_Value of a BACnet object.
  • bacnet.set_out_of_service - Toggles the Out_Of_Service flag.
  • bacnet.trigger_cov_notification - Forces a COV notification to subscribers.
  • Architecture Diagram

    VISUAL ARCHITECTURE FLOW DIAGRAM
    Rendering Flow Architecture Diagram...

    3. Configuration Parameters

    The following configuration fields are available in the User Interface for this plugin:

    Configuration SettingDescription
    Device NameSpecifies the device name.
    Device IDSpecifies the device id.
    Device DescriptionSpecifies the device description.
    Local IP Address (0.0.0.0 for all)Specifies the local ip address (0.0.0.0 for all).
    UDP PortNumeric value specifying the udp port.
    BBMD AddressSpecifies the bbmd address.
    PortNumeric value specifying the port.
    TTL (s)Specifies the ttl (s).
    Enable BBMD RegistrationToggle to enable or disable enable bbmd registration.

    4. Exposed Routes & Data Types

    This plugin exposes catalog fields across the following rule graph nodes:

    Input Source

    The Input Source node reads current values of local BACnet server objects hosted by the agent.

    Human-Readable Field NameData TypeDescription
    Configured BACnet Object  Double` / `Bool` / `Int32` / `String
    Present value of configured local BACnet object (Analog Input/Output/Value, Binary Input/Output/Value, Multi-state Value).

    Output Target

    The Output Target node acts as an action sink node to update present values of local BACnet server objects.

    Target NameData TypeAssociated ParametersParameter Data TypeRequiredDescription
    Configured Writable BACnet Object  Double` / `Bool` / `Int32` / `String
    ValueDouble / Bool / Int32 / StringTrueValue payload to write to present_value property of the object.

    5. Usage Examples

    Scenario A: High Air Handling Unit BACnet Temperature Triggers Chiller Relay & Webhook Alert

    Workflow Overview:

    The BACnet Agent hosts local object AnalogValue_101 representing the Air Handling Unit supply air temperature (AnalogValue_101 > 28.0°C). When the temperature exceeds 28.0°C, Uniflow evaluates the BACnet point update and executes two actions:

    1. Writes a Modbus TCP coil (Coil 8 = True) to engage the secondary chiller compressor stage.

    2. Dispatches an alert HTTP POST request to the facility maintenance dashboard.

    Rule Node Configuration:

    1. Input Source Node: BACnet Agent

  • Point Name: AnalogValue_101 (Double)
  • 2. Logic Filter Node: GreaterThan

  • Expression: AnalogValue_101 > 28.0
  • 3. Output Target Node A: Modbus Client Writer

  • Action Target: Direct Access
  • Type: Coils
  • Address: 8
  • Value: True
  • 4. Output Target Node B: HTTP Client Action

  • Action Target: POST Request
  • URL: https://bms.facility.local/api/alerts
  • Logic Flow Diagram:

    VISUAL ARCHITECTURE FLOW DIAGRAM
    Rendering Flow Architecture Diagram...

    Scenario B: External BMS Write Event to BACnet Object Triggers Modbus Damper Control

    Workflow Overview:

    When an external BACnet Workstation issues a WriteProperty command setting local BACnet object BinaryValue_12 to Active (bacnet.write_request_received), Uniflow catches the write request and activates a physical Modbus damper motor relay (Coil 15 = True).

    Rule Node Configuration:

    1. Event Input Node: BACnet Agent Listener

  • Filter Event: bacnet.write_request_received
  • Exposed Schema Fields: ObjectName (String), Value (String), Timestamp (DateTime)
  • 2. Logic Filter Node: And Condition

  • Expression: ObjectName == "BinaryValue_12" AND Value == "Active"
  • 3. Output Target Node: Modbus Client Writer

  • Action Target: Direct Access
  • Type: Coils
  • Address: 15
  • Value: True
  • Logic Flow Diagram:

    VISUAL ARCHITECTURE FLOW DIAGRAM
    Rendering Flow Architecture Diagram...
    Architecture Flow Diagram — Full Preview