Chapter 15

Communication protocols

Wi-Fi, Zigbee, Z-Wave, Thread, Matter, Bluetooth, KNX, Modbus, MQTT—what exactly distinguishes them? This chapter compares them side by side, so you can tell whether a light bulb will work in your home before selecting “Add to cart.” You will leave with a lasting quick-reference table and a repeatable checklist for every device purchase.

Why protocols matter

In Chapter 14, you learned how to add an integration to Home Assistant. Integrations belong to the software layer; this chapter goes one layer deeper to explain how a signal actually travels from your phone to a light bulb.

Why should you care about this low-level detail? Three costly reasons:

  • Buying the wrong device wastes your money. A low-cost “smart switch” may advertise voice-assistant support yet work only through its vendor’s cloud account. Home Assistant may not be able to access it at all.
  • An internet outage can disable your entire home. Local protocols can still turn on the lights when your router loses its internet connection. Cloud-controlled devices stop working when your internet provider or the vendor’s service goes down.
  • You may not discover capacity limits until the 20th device. A typical example is filling a home with Wi-Fi plugs, only for the router to begin dropping connections after the first dozen or so. Consumer routers have practical limits on the number of concurrent clients. Avoid this trap before buying your first device.
Concept: A protocol is the language devices use to communicate, together with the means by which they carry that conversation. Choosing a protocol is choosing your home’s communications infrastructure—a decision on the same scale as deciding whether to install network cabling.

By the end of this chapter, you will be able to assess whether a product can work with Home Assistant, choose a primary protocol for your home with confidence, and identify the correct layer to investigate when a device goes offline.

What does a protocol govern? Three distinct layers

Most confusion comes from treating three different concepts as though they were the same. Separate them now, and the rest becomes much clearer. Imagine speaking to someone in another room:

Layer 1: radio or wire—the medium that carries the message

This is the difference between shouting, using a two-way radio, and using a telephone line. Wi-Fi, Zigbee, Thread, and Bluetooth all use radio in the 2.4 GHz band. Z-Wave uses a different, lower-frequency band. KNX and Modbus RTU do not use radio at all; they run over physical wiring.

Layer 2: data format—the language being spoken

Two people can use identical radios and still fail to communicate if one speaks Taiwanese Hokkien and the other French. Zigbee devices understand one another, but Zigbee does not automatically understand Z-Wave. Matter has attracted attention because it aims to provide a common language that many ecosystems understand.

Layer 3: how Home Assistant receives it—who translates

Your Home Assistant host may have Ethernet and Wi-Fi, but it does not automatically have Zigbee or Z-Wave radios. You therefore need either a USB radio adapter, known as a coordinator, or a vendor gateway or hub that translates the protocol into network traffic and passes it to Home Assistant.

Tip: For any unfamiliar protocol, ask three questions: “What carries it?”, “Does Home Assistant have a compatible integration?”, and “Do I need another box between the device and Home Assistant?” The answers will usually tell you whether the device is worth considering.

Two terms you must distinguish

TermPlain-English definitionWhy it matters
Local controlCommands travel directly from Home Assistant to the device without leaving your homeFast, reliable, available without internet access, and independent of the vendor’s continued operation
Cloud controlCommands travel to the vendor’s servers over the internet before returning to your homeSlower; unavailable during an internet outage; and liable to stop working if the vendor closes the service
Mesh networkDevices relay traffic for one another, passing the signal from one node to the nextCoverage can grow around walls and across larger homes
Gateway or hubAn intermediary device that translates a protocol into network trafficAnother powered device to maintain—and another possible point of failure

At-a-glance comparison of nine protocols

This is the chapter’s essential reference table. Treat the range column as an approximate guide, not a specification. Building materials, furniture, and interference have a major effect: the same device may achieve three times the range through timber partitions that it does through reinforced concrete.

ProtocolTypical rangePower useGateway required?Local control?Mesh?
Wi-FiWithin a typical home router’s coverage, through one or two wallsHigh; almost always mains-poweredNo; the router serves this roleVendor-dependent; many products use the cloudNo
ZigbeeRoughly ten metres or more per indoor hop, extended by mesh relaysVery low; battery models can last from several months to more than a yearYes; a USB coordinator or vendor gatewayYesYes
Z-WaveSlightly farther than Zigbee, generally with better wall penetrationVery lowYes; a USB coordinatorYesYes
Thread + MatterSimilar to Zigbee; a border router connects it to the home networkVery lowYes; a border router, already built into many productsYesYes
Bluetooth LEBest within one room; walls quickly reduce rangeExtremely low; a coin cell can last a long timeBuilt-in host Bluetooth or a BLE proxyYesNo; multiple proxies can extend reception
KNXBuilding-wide, subject to the installed wiringNot applicable; wired powerYes; a KNX IP interface or routerYesNo; it uses a bus architecture
Modbus RTULong runs over RS-485 cablingNot applicableYes; a USB-to-RS-485 adapterYesNo
Modbus TCPWithin the wired network or LANNot applicableNo; it runs directly over the LANYesNo
MQTTWithin the LAN; MQTT is not itself a radio protocolNot applicableYes; a broker, which can run on the Home Assistant hostYesNo
Local HTTPWithin the LANNot applicableNoYesNo

The next table explains how each option connects to Home Assistant:

ProtocolCommon brands or devicesHow to connect it to Home Assistant
Wi-FiTuya-based products, Shelly, TP-Link, Xiaomi products, and robot vacuumsMost use a brand-specific integration. Search for the brand under Settings > Devices & services > Add integration. DIY devices running ESPHome or Tasmota also connect this way
ZigbeeIKEA, Aqara, Philips Hue, SONOFF, and Tuya Zigbee modelsConnect a Zigbee coordinator, then use the ZHA integration or Zigbee2MQTT
Z-WaveAeotec, Fibaro, Zooz, and HeltunConnect a Z-Wave coordinator and use the Z-Wave integration, which runs Z-Wave JS
Thread / MatterNanoleaf, Eve, newer Aqara products, and selected SwitchBot modelsInstall the Matter integration and Matter Server, then pair with the mobile app
Bluetooth LEXiaomi temperature and humidity sensors, SwitchBot, Bluetooth scales, and plant sensorsUse the Bluetooth integration with built-in host Bluetooth, or add an ESPHome Bluetooth Proxy
KNXABB, Gira, Jung, and Schneider; mainly professional residential and commercial installationsUse the KNX integration through a KNX IP interface
ModbusElectricity meters, variable-frequency drives, PLCs, industrial HVAC controllers, and some solar invertersConfigure the Modbus integration in configuration.yaml
MQTTZigbee2MQTT, Tasmota, optionally ESPHome, and many DIY devicesInstall a Mosquitto broker, then add the MQTT integration
Local HTTPSome NAS devices, printers, open-source firmware, and self-hosted servicesUse an official integration, or call the API with rest_command
Warning: A brand may sell nearly identical Wi-Fi and Zigbee versions of the same product, with model numbers that differ by only one or two letters. Read the entire product title before ordering; do not rely on the photographs.

Hands-on: inventory the protocols in your home

Before buying anything new, establish what you already have. These five steps take about ten minutes.

  1. Review your integrations

    In the sidebar, select Settings, then open Devices & services. This page lists every configured integration. Note the relevant names. If you see MQTT, Zigbee Home Automation, or Bluetooth, for example, those technologies are already in use in your home.

  2. Look for dedicated Zigbee or Z-Wave pages

    If you have connected a Zigbee coordinator and configured ZHA, a Zigbee entry appears under Settings. A configured Z-Wave network similarly adds a Z-Wave entry. These are the quickest indicators that the corresponding network exists. Menu locations may change slightly between releases; follow the labels in your installed version.

  3. Count your Wi-Fi devices

    Sign in to your router’s administration page and find its connected-device list. Exclude phones, computers, and televisions; the remaining clients are likely to include your Wi-Fi smart devices. If you already have more than a dozen and intend to keep expanding, consider Zigbee or Thread for future devices.

  4. Classify each device as local or cloud-dependent

    Return to Settings > Devices & services and inspect each integration. If setup required credentials for the vendor’s app or redirected you to the vendor’s website for authorization, it is probably cloud-dependent. If it required only a local IP address or was discovered directly on your LAN, it is probably local.

  5. Conduct an internet-outage drill

    Disconnect the router’s WAN cable—not Wi-Fi—while leaving your internal network running. Then use Home Assistant to control each device. Devices that respond are genuinely local; those that time out depend on the cloud. Reconnect the cable when you finish.

  6. Record the results

    Use the labels described in Chapter 4 to add a “Cloud” label to cloud-dependent devices. You will then know at a glance what will fail during an outage and what to replace first.

Zigbee in depth: coordinators, routers, and channel interference

Zigbee is widely available, relatively inexpensive, and highly efficient for battery-powered devices. It also has several pitfalls that can make the protocol seem unreliable when the real problem is network design.

Three roles: coordinator, router, and end device

RolePurposeTypical exampleImportant consideration
CoordinatorManages the entire network; each Zigbee network has only oneA USB adapter connected to the Home Assistant hostIf it fails, the entire Zigbee network stops communicating with Home Assistant
RouterRelays traffic for other devicesZigbee bulbs, plugs, and permanently powered switchesOnly a device that remains powered can function as a router
End DeviceReports its own data but does not relay traffic for other devicesBattery-powered contact sensors, temperature and humidity sensors, and buttonsIt does not extend network coverage
Concept: The official documentation explicitly states that Zigbee router devices “must remain available at all times.” The right way to extend Zigbee coverage is therefore not to buy a more powerful coordinator, but to add permanently powered Zigbee plugs or bulbs in corridors and stairwells so that traffic has intermediate relay points.

Choosing a coordinator

Home Assistant currently recommends several coordinator families: models based on Silicon Labs EmberZNet chips, including Home Assistant Connect ZBT-2, Connect ZBT-1, Home Assistant Yellow, SONOFF ZBDongle-E, and SMLIGHT SLZB-07; USB adapters based on the Texas Instruments CC2652 and CC1352 families; and the dresden elektronik ConBee III.

The documentation no longer recommends several older models, including ConBee II, RaspBee II, SONOFF ZBBridge, Nortek HUSBZB-1, the Elelabs, Digi XBee, and ZiGate ranges, and TI CC2530, CC2531, and CC2538 devices. Many remain available through online marketplaces and second-hand sellers, often at one-third the price of a recommended model. Before ordering an unusually cheap adapter, check whether it appears on the “not recommended” list.

Home Assistant Connect ZBT-2 uses a Silicon Labs MG24 radio and an ESP32-S3 for USB connectivity. Its data rate is 460800, compared with 115200 for the preceding ZBT-1; it has an external antenna; and its suggested retail price is US$49 or €45. The box includes a 1.5-metre USB-C cable.

Warning: ZBT-2 can run only one protocol at a time. The official documentation is explicit: it cannot serve simultaneously as a Zigbee coordinator and a Thread border router. Use it for Zigbee or for Thread; if you need both, you need two adapters.

Channel interference: do not rush to change the Zigbee channel

Zigbee and Wi-Fi both occupy the 2.4 GHz band, so interference is common. Home Assistant’s ZHA documentation differs from much online advice: best practice is not to change the Zigbee channel. When a network is created, ZHA’s Smart option scans all channels once and gives preference to channels 15, 20, and 25.

If interference persists, the documented sequence is to move the coordinator away from Wi-Fi access points and other Wi-Fi sources first. If that does not help, change your router’s Wi-Fi channel, not the Zigbee channel. The practical reason is that changing the Zigbee channel usually requires every device to be paired again—easily an afternoon’s work.

USB 3.0: the hidden source of interference

Danger: The official documentation explicitly warns that a Zigbee USB adapter must be connected to a USB 2.0 port, not a USB 3.x port. USB 3.0 generates substantial noise in the 2.4 GHz band and can severely disrupt a Zigbee network. If your host has only USB 3 ports, use a powered USB 2.0 hub.

Use a USB extension cable to move the adapter away from the host itself, because the computer, hard drives, and SSDs are all potential interference sources. The documentation recommends a well-shielded extension cable; thicker cables generally provide better shielding.

Placement recommendations

  • Place the coordinator in a central location, not at the back of a media console or inside a metal cabinet.
  • Keep it away from appliances and dense wiring. Refrigerators, microwave ovens, and power supplies are poor locations.
  • In a large or elongated home, add a permanently powered Zigbee device near the midpoint as a relay before expanding farther.
  • ZHA users can select Show map under Settings > Zigbee to inspect the network topology. RSSI and LQI values can help identify especially weak links.

ZHA or Zigbee2MQTT?

The same coordinator and set of Zigbee devices can connect to Home Assistant in two ways. This is one of the most common decisions for newcomers.

CriterionZHA (Zigbee Home Automation)Zigbee2MQTT
What it isA built-in Home Assistant integrationIndependent software that communicates with Home Assistant over MQTT
Installation difficultyLow. A connected adapter is usually discovered automatically and configured under Devices & servicesModerate. You must install an MQTT broker and Zigbee2MQTT, then configure the connection
Components requiredOne: the integration itselfThree: a broker, Zigbee2MQTT, and the MQTT integration
Configuration interfaceIntegrated into Home Assistant, with a dedicated Settings > Zigbee pageA separate web interface
Support for less common devicesUses the zigpy library and supports most mainstream devicesRapid community updates often add unusual or newly released devices first
If Home Assistant stopsThe Zigbee network stops with itZigbee2MQTT continues running, and messages remain in the broker
Best suited toFirst-time users who want fewer failure points and use mainstream devicesDiverse or unusual devices and users who want more detailed configuration
Tip: For your first Zigbee installation, start with ZHA: it has two fewer components that can fail. Consider migrating to Zigbee2MQTT if you later encounter a sensor that ZHA does not support. Both options can use the same coordinator, but switching usually requires every device to be paired again.
Warning: Never run ZHA and Zigbee2MQTT against the same USB adapter. A coordinator can be controlled by only one application at a time; if both compete for it, neither will work.

Zigbee2MQTT currently recommends zStack (Texas Instruments) and EmberZNet (Silicon Labs) adapters. This overlaps substantially with the ZHA recommendations, so a good coordinator can support either route. In Home Assistant, Zigbee2MQTT is installed as an App, formerly called an add-on. It also requires an MQTT broker; Mosquitto is the official recommendation.

What if you replace the coordinator?

ZHA includes a migration function under Settings > Zigbee. The official documentation describes migration among devices based on Silicon Labs, Texas Instruments, and ConBee or RaspBee hardware. This may allow you to replace an old adapter without pairing every sensor again. Follow the migration wizard shown in your installed version.

Z-Wave: more expensive, but dependable

Z-Wave is much less visible than Zigbee in Taiwan and is substantially more expensive, but it is a mainstream choice in Europe and North America. Because it does not share Wi-Fi’s 2.4 GHz band, it is inherently subject to far less interference.

Confirm the frequency region before buying

Note: The zh-TW source focuses on Taiwan’s mixed Z-Wave market. Internationally, the same rule applies: sub-GHz frequencies differ by region, and European, North American, and Australian devices cannot communicate with one another. Before ordering, confirm that the coordinator and every device use the same regional version; a mismatch prevents any connection.

How Z-Wave runs in Home Assistant

Home Assistant’s Z-Wave integration uses Z-Wave JS. Once configured, access its management page through Settings > Z-Wave or Settings > Devices & services > Z-Wave. It uses the Z-Wave JS “App,” formerly known as an “Add-on.” Home Assistant 2026.2 officially renamed Add-ons to Apps, and the menu path is now Settings > Apps. Localized wording may continue to change; “App” and its translation refer to the same place. See Appendix A for a fuller explanation.

Hardware and device inclusion

For a new installation, the official documentation recommends an 800-series adapter with firmware 7.23.2 or later, and specifically names Home Assistant Connect ZWA-2. Older devices such as Aeotec Z-Stick Gen5+, Zooz ZST10, and Nortek HUSBZB-1 remain on the compatible list, but “compatible” does not mean “recommended for a new purchase.”

There are two ways to add a device to the network, a process called inclusion:

  • SmartStart: Scan the QR code on the device. Once powered, the device should join automatically within 10 minutes, according to the official documentation.
  • Traditional inclusion: Put both the controller and the device into inclusion mode. Consult the device manual for its exact procedure; every manufacturer differs.

Z-Wave supports S2 encryption. The official documentation notes that S2 provides additional benefits without adding network-traffic overhead. Security keys are generated automatically when a new network is created. Z-Wave Long Range is also available as a long-distance network topology for compatible devices.

Matter and Thread: one is the language, the other the route

These terms are often confused. In short, Thread defines how data is transported at the network layer, while Matter defines what devices say at the application layer. Consequently, both Matter over Thread and Matter over Wi-Fi devices exist; both are Matter devices.

What is a Thread border router?

Thread devices form a low-power mesh network using IPv6. A border router connects that Thread network to your home’s Wi-Fi or wired network.

The official Thread integration documentation currently lists the following border routers:

EcosystemDevices
Home AssistantHome Assistant Yellow, Connect ZBT-1, and Connect ZBT-2, used with the OpenThread Border Router App
GoogleNest Hub 2nd generation, Nest Hub Max, Nest Wifi Pro, Nest Wifi, and Google TV Streamer (4K)
AppleHomePod 2nd generation, HomePod mini, and Apple TV 4K 2nd or 3rd generation
OtherSelected Nanoleaf and Amazon devices

If you already own a HomePod mini or Nest Hub, you already have a border router and do not need to buy another. To view your Thread network status, open Settings > Devices & services > Thread > Configure.

Add a Matter device to Home Assistant

One prerequisite causes particular confusion: you must pair Matter devices through the mobile Companion app; a browser cannot perform the pairing. Home Assistant’s Matter controller uses the Companion app for commissioning. Chapter 7 covers Companion app installation.

  1. Install the Matter integration

    Under Settings > Devices & services, add the Matter integration. If you use Home Assistant OS, the system asks whether to install the official Matter Server; select Submit and allow it to install. Matter Server runs independently and connects your Matter network, known as a fabric, to Home Assistant.

  2. Confirm that IPv6 is enabled

    The official documentation lists IPv6 as a requirement. Under Settings > System > Network, set IPv6 to Automatic or Static. If IPv6 is disabled, later pairing can fail without an obvious explanation.

  3. Open the Companion app on your phone

    In the Home Assistant app, open Settings > Matter and select Add device. Android users must also set the app’s location permission to “Allow all the time,” or discovery will fail.

  4. Specify whether the device is new or already commissioned

    For a new device that has not joined another platform, select “No, it’s new.” Scan the device’s QR code with your phone, or select “More options” and enter the pairing code manually. Finally, select Add to Home Assistant.

  5. If the device is already on another platform

    If the device is already part of Apple Home or Google Home, select “Yes, it’s already in use,” identify its current controller, and follow the on-screen instructions. In practice, you generate a sharing QR code or pairing code in the other platform’s app, then use that code in Home Assistant. One of Matter’s major advantages is that several platforms can control the same device simultaneously.

Warning: Matter depends heavily on local discovery traffic such as mDNS and multicast. The official documentation requires this traffic to move freely across your network. If you use VLAN segmentation or enable AP isolation on the router, Matter pairing will almost certainly fail. When pairing a Matter-over-Wi-Fi device, the phone and device must also be on the same 2.4 GHz network.
Concept: Matter continues to add device types. The official documentation currently lists lights, switches, locks, covers, fans, climate devices, water heaters, sensors, binary sensors, buttons, sirens, valves, robot vacuums, electric vehicles, and several generic entity types, including numbers, selects, and updates. In practice, “supported” does not mean that every feature works. Basic controls may operate while features exclusive to the vendor’s app remain unavailable. Search the community for reports on the exact model before buying.

MQTT and local HTTP: two versatile routes for DIY projects

The protocols above describe forms of radio communication. MQTT and HTTP are different: they are application-layer protocols that run over your home network, whether the underlying connection is Wi-Fi or Ethernet. When a device lacks a dedicated integration, these two routes can be invaluable.

MQTT as a community noticeboard

Imagine a noticeboard in an apartment lobby, divided into spaces called topics. Every five minutes, a temperature sensor posts the value 26.5 in the living-room/temperature space. Home Assistant subscribes to that space and receives every new value. The broker is the server that provides the noticeboard and distributes its messages.

The publisher does not need to know who is reading, and subscribers do not need to know who published the message. You can therefore add any number of devices and subscribers without directly connecting each one to every other participant.

Install a broker

The official MQTT documentation recommends the Mosquitto Broker App, formerly called the Mosquitto add-on, as the simplest option. It can also be installed automatically while you configure the MQTT integration.

To add the integration, open Settings > Devices & services, select Add integration in the lower-right corner, and choose MQTT.

Discovery: the compelling part

Concept: MQTT discovery is enabled by default, and its default topic prefix is homeassistant. When a device publishes a correctly formatted introduction under a topic beginning with homeassistant/..., Home Assistant can create the corresponding entity automatically, with no manual configuration.

This is why Zigbee2MQTT and Tasmota feel so seamless: pair a new sensor in their interface, and its entity appears automatically in Home Assistant a few seconds later.

After initial setup, the documentation distinguishes between two kinds of change:

  • Change the broker connection, such as its IP address or credentials: open Settings > Devices & services, select the MQTT integration, open the three-dot menu, and select Reconfigure.
  • Change discovery and related options: on the same MQTT integration page, select Configure MQTT Options.

Button labels vary by release and language. If the wording differs, look for the three-dot menu and the options button on the integration page.

Local HTTP: a last resort, but a useful one

Some devices provide no supported protocol but do expose a web interface or an HTTP endpoint. The rest_command integration can call that API. It must currently be configured in configuration.yaml:

rest_command:
  open_gate:
    url: "http://192.168.1.50/api/open"
    method: post
    verify_ssl: false

Documented parameters include url, which is required and supports templates; method, which defaults to get and accepts get, patch, post, put, or delete; headers; payload; verify_ssl, which defaults to true; and timeout, which defaults to 10 seconds. The example disables verify_ssl because small devices on a private LAN often lack a valid certificate. Do not disable verification when calling an internet service. Once configured, call it from an automation or script as follows:

actions:
  - action: rest_command.open_gate
Tip: This example uses action:, not the older service: syntax. Home Assistant now calls Services “Actions,” and triggers:, conditions:, and actions: are all plural in YAML. See Chapter 8 for the complete explanation.

Bluetooth LE: inexpensive and efficient, but short-range

Bluetooth Low Energy (BLE) devices are often the least expensive, and a coin cell can power one for a long time. The limitation is equally direct: Bluetooth signals penetrate walls poorly, and Bluetooth does not form a mesh, so a device in one room may not reach the next.

Two operating modes

ModeHow it worksSuitable for
Passive reception (broadcast)The device continuously broadcasts values; Home Assistant records the broadcasts it receivesReporting devices such as temperature and humidity sensors or plant sensors
Active connectionHome Assistant establishes a connection to query the device or send a commandBluetooth locks, curtain motors that require commands, and thermostats

The Home Assistant Bluetooth integration provides three scanning modes: Auto, which listens passively most of the time and performs brief active scans; Active, which scans continuously for the fastest updates at the cost of more power; and Passive, which only listens and has the least effect on battery life. According to the official documentation, Auto mode uses about 95% less scanning power than continuous active scanning. Unless you have a specific reason to change it, leave the mode on Auto.

Add it under Settings > Devices & services > Add integration > Bluetooth.

Bluetooth Proxy: put a receiver in every room

Because Bluetooth has limited range, do not rely exclusively on the host’s own Bluetooth radio. Place an inexpensive device in each room to receive Bluetooth signals, then forward them to Home Assistant over Wi-Fi or Ethernet. This is a Bluetooth proxy.

The official Bluetooth documentation explains that the integration can receive advertisements from remote scanners. It specifically lists ESPHome on ESP32 devices, Shelly Gen2 and later devices, and SMLIGHT SLZB-U.

Tip: If you already have Shelly Gen2 or later smart switches installed in the walls, they can also serve as Bluetooth proxies—an effectively free upgrade that many users overlook.

Build an ESPHome Bluetooth Proxy

Buy an inexpensive ESP32 development board, install ESPHome, and use these core configuration lines:

esp32_ble_tracker:

bluetooth_proxy:
  active: true

The ESPHome documentation highlights the following points:

  • Use an ESP32-family board. The documentation recommends the esp-idf framework for the ESP32 platform because the alternative arduino framework uses substantially more memory and performs less well for this purpose.
  • active enables the proxy to make active connections. Documentation for different versions is inconsistent about its default, so explicitly setting active: true, as above, makes the intended behavior unambiguous.
  • connection_slots controls the number of simultaneous active connections and defaults to 3. The documentation recommends no more than 5 to avoid memory problems; with the esp-idf framework, the maximum is 9. Each slot uses about 1 KB of memory, and the value cannot exceed the limit configured under esp32_ble_tracker as max_connections.
  • Ethernet-connected boards such as Olimex ESP32-PoE-ISO are generally more reliable because Bluetooth does not have to compete with Wi-Fi for the 2.4 GHz radio.
Warning: Connection slots are finite. A proxy with 3 slots can maintain active connections to no more than 3 devices at once. If your home has five Bluetooth locks, add more proxies to share the load. Passive broadcasts from temperature and humidity sensors do not occupy a slot, so dozens of such devices are not a problem.

KNX and Modbus: protocols for buildings and industry

These are professional-grade protocols. You will rarely encounter them in consumer marketplaces, but a newly built smart home or a commercial office may use one throughout the building. Both are wired, exceptionally reliable, and capable of operating for decades—but they also demand specialist knowledge to configure.

KNX: the bus inside the walls

KNX is a European standard for building automation. Switches, covers, and HVAC controllers all connect to a dedicated bus cable. Its defining feature is that it can operate without a central controller. Assign a living-room wall switch and light to the same group address, and the switch still operates the light even if Home Assistant is offline.

A Group Address is fundamental to KNX. It resembles the three-part number 1/2/3. Think of it as a slot on a noticeboard: a switch posts “on” to 1/2/3, and every light subscribed to that address turns on. The official KNX integration documentation accepts group addresses as strings or integers; 1/2/3 is the three-level format.

Configure the KNX integration through the UI under Settings > Devices & services > Add integration. The official documentation lists three connection methods:

Connection methodWhat it does
AutomaticScans at startup for KNX IP interfaces on the network
TunnelingConnects to a specified KNX IP interface
RoutingCommunicates with a KNX IP router by multicast

Secure Tunneling and KNX IP Secure Routing provide encrypted alternatives. The documentation also describes a KNX panel that creates entities, configures devices, and manages exposures directly in the frontend without handwritten YAML.

Concept: KNX projects are generally configured in professional software called ETS, used by electricians and system integrators. For a builder-installed system, ask the installer for the ETS project file or at least a group-address table. It can save dozens of hours of guesswork. For encrypted installations, the official documentation describes exporting a Keyring file from ETS and importing it into Home Assistant. Open the KNX integration’s three-dot menu, select Reconfigure, then choose the option to import a KNX Keyring.

Modbus: the common language of industrial equipment

Modbus is a veteran industrial protocol dating from 1979. It remains ubiquitous in electricity meters, variable-frequency drives, PLCs, industrial HVAC controllers, and solar inverters. Its model is extremely simple: a device contains numbered locations called registers. You read a register and receive a number; the manufacturer’s register map tells you what that number means.

Modbus has two common connection methods:

  • Modbus RTU: Runs over physical RS-485 wiring. It generally requires a USB-to-RS-485 adapter connected to the host. Cables can run long distances and resist interference well.
  • Modbus TCP: Runs over the network, and the device has its own IP address. It is considerably easier to configure.

The official Modbus integration currently must be configured in YAML, and Home Assistant must be restarted after a change. It supports four connection types: tcp, udp, rtuovertcp, and serial. A minimal configuration looks like this:

modbus:
  - name: modbus_hub
    type: tcp
    host: 192.168.1.60
    port: 502
    sensors:
      - name: Office master meter
        address: 100
        input_type: holding
        device_address: 1

For an RS-485 serial connection, use these key fields instead:

modbus:
  - name: modbus_hub
    type: serial
    port: /dev/ttyUSB0
    baudrate: 9600
    bytesize: 8
    method: rtu
    parity: E
    stopbits: 1

The documentation specifies these key parameters and defaults:

ParameterMeaningDefault
addressThe register or coil address to read; hexadecimal notation such as 0x789A is acceptedRequired
input_typeThe read type: discrete_input, coil, holding, or inputPlatform-dependent
slave / device_addressThe device number on the bus1
scan_intervalHow often to poll, in seconds15

The official documentation currently lists seven entity platforms: sensor, switch, binary sensor, climate, cover, fan, and light.

Warning: The official documentation contains an easy-to-miss rule: each Modbus hub must define at least one entity, or the integration will not load. Do not create an empty connection block with the intention of adding entities later; the connection will not start.
Danger: Modbus can write to equipment. Writing the wrong register can change operating parameters, damage equipment, or create a hazard. For your first connection, configure read-only sensors:. Before writing anything, obtain the device’s register map and confirm the operation with the person responsible for the equipment.

Five checks and a decision process before you buy

This is the most practical part of the chapter. Bookmark it and work through it before every purchase.

Five checks

  1. Which protocol does it actually use?

    Read the product title and specifications. If you cannot find Zigbee, Z-Wave, Matter, Thread, or Bluetooth, and the listing mentions only “smart,” “Wi-Fi connectivity,” or “mobile remote control,” treat it as a cloud-dependent Wi-Fi device. When one model comes in several protocol versions, the suffix in the model number is often decisive.

  2. Can it operate without the cloud?

    Look for “local control” or “local API.” Conversely, treat “requires the XX app” or “account registration required” as warning signs of cloud dependence. Matter-certified devices provide greater assurance here because Matter is designed for local operation.

  3. Does Home Assistant have a compatible integration?

    Before ordering, search for the brand at home-assistant.io/integrations/. An official integration is ideal. If only a HACS custom integration is available, check whether the project is still maintained; approach one that has not been updated for six months with caution.

  4. Will you need another gateway?

    Some vendors tie their Zigbee products to a proprietary gateway. If you already own a general-purpose Zigbee coordinator, you can usually pair the device directly without that gateway. Some brands, however, use proprietary commands that limit a general-purpose coordinator to basic on/off control. Before buying, search for the brand name with “ZHA” or “Zigbee2MQTT” and read community reports.

  5. Will replacements still be available?

    A model that is readily available in your region and widely discussed by the community is a better choice than one with impressive specifications sold by a single overseas retailer. You will appreciate that decision when you need a second unit three years from now.

Purchase decision guide

Work through these situations in order to identify a sensible starting point:

SituationRecommended routeReason
You need many battery-powered devices, such as sensors or buttonsZigbee or ThreadWi-Fi consumes too much power for practical long-lived battery devices
You need only one or two devices close to the routerWi-Fi is reasonableNo additional coordinator is required
You already have a Zigbee coordinatorContinue with ZigbeeIt has the lowest marginal cost, and every powered router device can strengthen the mesh
You already own a HomePod mini or Nest HubConsider Thread + MatterYou already have a border router
You need cross-platform control because some family members use iPhone and others AndroidMatterSeveral platforms can control the same device simultaneously
You need to connect an electricity meter, inverter, or industrial deviceModbusModbus is the established protocol in that market
The building already has KNX wiringKNXReplacing the installed system would not be cost-effective
You only need room temperature and humidity on a very limited budgetBluetooth LE + proxyThe sensors are inexpensive, and one ESP32 can provide the proxy
Tip: A straightforward first-time plan is to make Zigbee your primary protocol, using an official or recommended coordinator; reserve Wi-Fi for a few mains-powered, high-bandwidth devices such as cameras and robot vacuums; and use Bluetooth for supplementary temperature and humidity sensing. This combination is inexpensive, local, and maintainable, and it does not prevent you from adding Thread later.

Troubleshooting common problems

  1. One device frequently shows “Offline” or “Unavailable”

    First determine whether every device has dropped offline or only one. If all devices are unavailable, inspect the coordinator or gateway: check for a loose USB connection, a USB 3 port, or another application claiming the adapter. If only one device fails, signal quality is the likely cause. It may be too far from its nearest router device or obstructed by a structural wall, metal door, mirror, or aquarium. Add a permanently powered device between them to provide a relay. For a battery device, check the battery first—many people spend three hours investigating the network only to discover a flat battery.

  2. A Zigbee device is unstable only five metres from the coordinator

    Inspect the USB connection. The official documentation explicitly says not to use a USB 3.x port, because USB 3 noise directly interferes with 2.4 GHz. Then confirm that an extension cable moves the adapter away from the host and that no Wi-Fi access point sits beside the coordinator. ZHA users can open Show map under Settings > Zigbee and inspect LQI and RSSI; an especially low value identifies the weak link.

  3. The mesh does not reach the farthest room

    Remember that only permanently powered router devices relay mesh traffic; battery devices do not. Installing ten battery sensors in the farthest room does nothing to extend the network. Instead, add a mains-powered Zigbee plug or bulb at an intermediate point such as a corridor or landing. The distant devices may need to be paired again, or may take some time to adopt the new route automatically.

  4. A Matter device repeatedly fails to pair

    Check every requirement in the official documentation: IPv6 is enabled under Settings > System > Network and set to Automatic or Static; mDNS and multicast traffic can move freely across the network and are not blocked by a VLAN or AP isolation; you are using the mobile Companion app rather than a browser; Android location permission is set to “Allow all the time”; and, for Matter over Wi-Fi, the phone is on the same 2.4 GHz network as the device. Missing any one of these five requirements can prevent pairing.

  5. A newly purchased device is locked to the vendor’s gateway

    The symptoms are a Zigbee device that will not pair with a general-purpose coordinator, or one that pairs but exposes only basic switching while every advanced function disappears. The vendor is using proprietary commands. Two remedies are possible: check whether Zigbee2MQTT has a matching device definition, because its community often reverse-engineers such devices; or buy the vendor gateway and determine whether it provides a local API. The only long-term solution is to read community reports before your next purchase.

  6. Half the devices stop working when the internet goes down

    This is the classic sign of cloud dependence. Use the internet-outage drill above to identify the affected devices, then label them. In the short term, move important automations involving safety or lighting to local triggers and devices. In the long term, replace cloud-dependent products gradually. Door locks and alarms in particular must never rely exclusively on the cloud.

  7. The Modbus integration does not start after configuration

    The most common cause is defining the connection without defining an entity. The official documentation requires at least one entity under each Modbus hub, or the integration will not load. You must also restart Home Assistant after changing Modbus configuration; reloading alone is insufficient. A serial-device path such as /dev/ttyUSB0 may also change when USB devices are reconnected in a different order.

Frequently asked questions

Can I use several protocols at once? Will they conflict?
Yes. Almost every installation eventually combines protocols. Home Assistant is designed to place devices that use different protocols in one interface. A single automation can use a Bluetooth temperature and humidity sensor as its trigger, turn on a Zigbee light, and send a notification to a phone. The only concern is radio interference: Wi-Fi, Zigbee, Thread, and Bluetooth all share the 2.4 GHz band, so coordinator placement becomes important in a dense installation.
Now that Matter exists, is Zigbee obsolete? Should I still buy it?
There is no cause for concern in the near term. Zigbee still leads in device selection, price, and availability, and Home Assistant’s Zigbee support is mature. Matter and Thread are promising, but their ecosystem is still developing and some products do not expose every advanced feature. A prudent approach is to use Zigbee when deploying many sensors today, while choosing a reasonably priced Matter version when it is available for a product you already want. The two networks can coexist without difficulty.
Must I use an official Home Assistant Zigbee coordinator, or will a cheaper one work?
An official model is not required. The ZHA documentation provides a clear recommendation list that includes Silicon Labs EmberZNet devices such as Connect ZBT-2, ZBT-1, SONOFF ZBDongle-E, and SMLIGHT SLZB-07; Texas Instruments CC2652 and CC1352 devices; and ConBee III. Any current model on that list is a sound choice. Avoid older products that the documentation no longer recommends, including ConBee II, RaspBee II, SONOFF ZBBridge, HUSBZB-1, and the ZiGate range. Unusually inexpensive marketplace listings often contain these older models.
A tutorial says to open “Settings > Add-ons,” but I cannot find it. Where did it go?
Home Assistant 2026.2 officially renamed “Add-ons” to “Apps,” so the menu path is now Settings > Apps. Localized labels may continue to change. The rationale is simple: most people already understand choosing and installing an app from an app store. When older instructions mention an Add-on, look under Apps instead. The software itself has not changed; Mosquitto, Z-Wave JS, and OpenThread Border Router remain available. The same release also made the new Home dashboard the default for new installations. You can restore the earlier Overview layout under Settings > Dashboards > Create by selecting “Overview (legacy).”
Zigbee is interfering with Wi-Fi. Should I change the Zigbee channel?
The official ZHA recommendation is the opposite: best practice is not to change the Zigbee channel. ZHA’s Smart option scans every channel when creating the network and gives priority to 15, 20, and 25. If interference persists, first move the coordinator away from Wi-Fi access points. If that is insufficient, change the router’s Wi-Fi channel. The practical reason is that changing the Zigbee channel usually requires every device to be paired again.
How many Bluetooth devices can one ESP32 Bluetooth Proxy support?
There are two cases. Devices such as temperature and humidity sensors that only broadcast passively are practically unlimited because they require no connection. Devices that need an active connection occupy a connection slot. ESPHome documentation states that connection_slots defaults to 3, recommends no more than 5 to avoid memory problems, and allows up to 9 with the esp-idf framework. Each slot uses about 1 KB of memory. If you have many actively connected devices, do not simply maximize the slots on one proxy; distribute several proxies across different rooms.
Would a typical home ever use KNX or Modbus?
KNX usually appears in professionally automated new developments or commercial offices; owners rarely install it from scratch in an ordinary apartment. If your new home came with a central control panel, however, ask the builder whether the underlying system is KNX. If so, you can connect the entire system to Home Assistant, often with far greater flexibility than the vendor’s app. Modbus is more likely to appear at home: many solar inverters, battery-storage systems, distribution-board meters, and central HVAC systems use it. If you want energy data in Home Assistant, you may well encounter Modbus.
MQTT sounds universal. Should every device use it?
No. MQTT is a messaging protocol, not a radio technology; it cannot give a light bulb capabilities the bulb does not have. MQTT provides a clean data channel when another system—such as Zigbee2MQTT, Tasmota, or your own Raspberry Pi application—needs to exchange information with Home Assistant. Its discovery mechanism can also create devices automatically. If a device already has an official integration, use that integration directly. Adding MQTT solely for its own sake creates another layer that can fail.
I want Zigbee and Thread at the same time. Is one USB adapter enough?
For Home Assistant Connect ZBT-2, it is not. The official documentation explicitly states that it cannot run Zigbee and Thread simultaneously; you must choose one protocol at a time. The simplest way to operate both networks is to use two radios. Alternatively, if you already own a HomePod mini, Apple TV 4K, Nest Hub 2nd generation, or another Thread border router, let that device provide Thread while the USB adapter remains dedicated to Zigbee.