// projects / home assistant

BACnet/IP integration for Home Assistant

Brings building automation, such as HVAC controllers, air handling units and BMS controllers, into Home Assistant as normal entities. Fully set up through the UI, no YAML. Open source.

GitHub stars Latest release Last commit License

// features

What it does

Used with BACnet/IP controllers such as Siemens PXC, Kieback&Peter DDC4000/DDC420 and Tridium Niagara. Built on BACpypes3.

  • Automatic discovery

    Devices are found with Who-Is/I-Am, also across subnets via BBMD. Then you pick which objects to import.

  • Live values

    Instant updates via COV, with polling as a reliable fallback. Reads are batched with ReadPropertyMultiple and adapt to what the controller can handle.

  • Read and write

    Writes with proper BACnet priority array handling. Relinquish and one-off writes are available as actions.

  • Entities

    Sensors, binary sensors, switches, numbers, selects (multi-state with state texts) and climate entities.

  • Schedulesbeta

    Read and change the weekly schedules and exceptions of BACnet Schedule objects from Home Assistant.

  • Any BACnet propertybeta

    Extra properties, such as a fan's minimum on time, alarm limits or out of service, as their own entities. No templates needed.

  • Alarmsbeta

    An alarm sensor and active-alarm list per device (GetEventInformation), plus an event for notifications. Read-only: nothing gets acknowledged.

  • Trend logsbeta

    Read logged values with ReadRange. Trend Log objects show up as entities.

  • Reliability

    Diagnostics, a repair message when a device goes offline and automatic reconnect. English and Dutch UI.

  • Tested in the field

    Users test it on real controllers. The list of tested devices is in the README.

// screenshots

What it looks like

Demo: a simulated air handling unit (AHU 1), not a real installation.

  • Setup: network settings
    Setup: network settings
  • Selecting objects to import
    Selecting objects to import
  • Device page in Home Assistant
    Device page in Home Assistant
  • History of live values
    History of live values
  • BACnet attributes of an entity
    BACnet attributes of an entity
  • Customizing individual objects
    Customizing individual objects
  • Climate entity with setpoint and room temperature
    Climate entity with setpoint and room temperature
  • Active alarms per device
    Active alarms per device

// installation

Install via HACS

Open HACS repository on My Home Assistant

  • 01Add the repository

    Open HACS, choose ⋮ → Custom repositories, paste https://github.com/CervezaStallone/Home-Assistant-BACnet-integration and select category Integration.

  • 02Download

    Download BACnet IP Integration and restart Home Assistant. For the features marked beta, enable beta versions in HACS first.

  • 03Add the integration

    Go to Settings → Devices & services → Add integration and search for BACnet IP.

  • 04Pick a device

    Choose a discovered device, select its objects and you're done. Values start coming in right away.