I created a native bacnet add-on for HA.
https://github.com/home-assistant/core/pull/162584
Node-red hackery is annoying me to do somehting that is quite simple..
Here's a summary of the BACnet integration:
-
Hub-device model — A single BACnet/IP client (hub) binds to a network interface and manages communication with multiple BACnet devices, each added as a separate config entry.
-
Config flow — Two-stage setup within the HA UI: (1) pick a network interface for the hub, (2) discover devices via WhoIs broadcast or add manually, then select which BACnet objects to monitor. Options flow lets you change object selection later.
-
Entity platforms: - Sensors — Analog Input, Analog Value, and similar read-only numeric objects (50+ BACnet unit mappings) - Binary sensors — Binary Input, Binary Value
- Numbers — Analog Output (writable)
- Switches — Binary Output (writable)
- Selects — Multi-State Output (writable, with state text labels)
All writes use BACnet priority 16 (lowest).
Data updates — Hybrid strategy: COV (Change of Value) subscriptions for real-time push updates, with 60-second polling as fallback for objects that don't support COV.
Discovery — Periodic WhoIs broadcasts every 5 minutes find new devices and trigger HA discovery flows automatically.
Lifecycle — Removing the hub cascades removal to all child devices. Unloading cancels COV subscriptions and discovery tasks cleanly.
@fervent raptor wanted to discuss on discord.. let's do it! I am keen to get this RP accepted and merged asap, so I can use it without a custom HA build.