Tooling

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 modbus integration — 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 knx integration — 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 wmbus or 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.

On this page