Industrial IoT Protocols
Modbus, BACnet, KNX, OPC UA — the protocols underneath whole-building / commercial systems.
The protocols you bump into when smart-home hobby meets the real-building / industrial world: HVAC controllers, EU whole-house wiring (KNX), inverters (Modbus), commercial floor BMS (BACnet), and SCADA (OPC UA).
For the hub above this layer see Smart Home Hubs; for ESPHome's industrial bridges see IoT Firmware Platforms; for energy-focused Modbus see Energy Monitoring.
Modbus (the universal industrial bus)
- ★ Modbus RTU — RS-485 serial; the most-deployed industrial protocol on the planet; spoken by every inverter, VFD, BMS, and PLC. ESPHome and HA both have native Modbus integrations.
- ★ Modbus TCP — the IP version of the same protocol; Wi-Fi / Ethernet inverters (Fronius, SolarEdge, SMA, Growatt) speak it.
pymodbus— Python lib; powers most HA integrations.- HA
modbusintegration — built-in; declarative YAML; great for inverters, energy meters, industrial sensors. - ★ ESPHome
modbus_controller— turn an ESP32 into a Modbus master; talk to a $20 Eastron meter or your inverter directly. The cheap path. - MBMD (Modbus Meter Daemon) / mbpoll — CLI testing tools.
Modbus is the protocol you'll use most often outside pure consumer smart-home — inverters, HVAC compressors, water-treatment, generators, and industrial sensors all speak it.
BACnet (commercial HVAC / BMS)
- BACnet/IP and BACnet MS/TP — the dominant commercial-building automation protocol (the "office building thermostat" world). Vast device support; complicated.
- HA BACnet integration — community-maintained; works for IP variants; finicky setup.
- ★
bacpypes/bacpypes3— Python BACnet stack; the way most BACnet-on-Linux work happens. - Volttron (PNNL) — DOE-funded BACnet/Modbus/Distribution platform; open-source; for commercial deployments.
- Cmd-line BACnet stack (Steve Karg) — venerable C library; basis for many tools.
If you have a commercial / enterprise HVAC system, BACnet is almost certainly how to read setpoints / sensors. Painful to set up; reliable once running.
KNX (European whole-home installations)
- ★ KNX/IP and KNX TP (twisted pair) — the EU whole-house wiring standard, especially in new builds; expensive devices but rock-solid; tight integrator scene.
- HA
knxintegration — built-in; first-class; the easiest "I just bought a KNX house" entry point. - ETS — Engineering Tool Software; KNX's paid configuration suite (Lite is free for 5 devices, full is €1000+). The reality of KNX is that ETS is the source of truth.
- xknx / knxd — Python libs; HA's integration sits on top.
- OpenHAB KNX — alternative; some KNX integrators prefer OpenHAB's mapping model over HA's.
KNX is the "I have an electrician, I have a budget, I want this working in 30 years" play. Niche outside Europe.
OPC UA (industrial SCADA)
- OPC UA (OPC Unified Architecture) — secure, modern industrial protocol; PubSub + classic client/server; replaces older OPC DA/HDA.
- OPC UA HA integration — community; works.
asyncua— Python OPC UA client/server.- node-opcua — Node.js implementation.
- Eclipse Milo — Java OPC UA stack.
- UA Expert — closed but free GUI client; the "MQTT Explorer of OPC UA."
You'll meet OPC UA when bridging into Siemens / Rockwell / Beckhoff / Mitsubishi PLCs.
Apache PLC4X (the "all PLCs" lib)
- ★ Apache PLC4X — Java lib that speaks Siemens S7, Modbus, AB Ethernet/IP, OPC UA, EtherCAT, BACnet, ADS, KNX, OMRON FINS, ProfiNet through one driver model. The "I'm building an industrial gateway" pick.
Other protocols you may meet
- EnOcean — battery-less wireless (energy harvesting); old; still in EU office buildings.
- DALI — commercial lighting bus; ESPHome has a basic DALI integration; commercial DALI controllers are pricey.
- DMX-512 / Art-Net / sACN (E1.31) — stage lighting; WLED, Madrix, Resolume; see Lighting.
- CAN bus — automotive + industrial; see [Industrial IoT — Modbus] adjacent; HA has some CAN bridges.
- HomeMatic / EnOcean / FS20 — German legacy radios; FHEM is the strongest hub for these.
- M-Bus / wM-Bus — utility-meter protocol (water / gas / heat); EU-mandated; bridge with ESPHome
wmbusor USB M-Bus dongles. - InfluxDB Line Protocol over MQTT — not really industrial but the lingua franca for "send this metric to my time series DB" (see Time Series Databases).
Node-RED industrial nodes
- ★ Node-RED +
node-red-contrib-modbus,node-red-contrib-opcua,node-red-contrib-knx-ultimate— the easiest path for an industrial-meets-home-automation gateway. Pairs naturally with HA via the Node-RED HA integration.
Practical guidance
- ★ Always isolate industrial protocol traffic on its own VLAN. A misbehaving Modbus master can flood a network.
- Modbus register maps are vendor-specific. Get the manufacturer PDF; don't guess.
- BACnet on a flat broadcast network requires a BBMD. Multi-segment BACnet = pain.
- KNX backwards compatibility is generational. A 1995 KNX bus device often still works on modern coupling units.
- OPC UA security profiles are non-trivial. Plan to manage certificates if you go beyond "Basic128Rsa15 + None."
Pick this if…
- Default for inverters / energy meters / VFDs: Modbus (RTU or TCP) via HA or ESPHome.
- Commercial HVAC: BACnet via HA or Volttron.
- EU smart home wiring: KNX via HA's built-in integration.
- PLC bridging: OPC UA + asyncua, or Apache PLC4X for many-protocol gateways.
- One-stop industrial gateway: Node-RED + protocol nodes.