Zigbee2MQTT or ZHA for Home Assistant: which to choose
ZHA vs Zigbee2MQTT: architecture, dongles, setup steps, migration traps and who each suits—based on official docs, October 2026.
AI-generated illustration
ZHA vs Zigbee2MQTT: architecture, dongles, setup steps, migration traps and who each suits—based on official docs, October 2026.
Also available in French.
You plugged a Zigbee USB stick into your Pi or Home Assistant Green and Home Assistant offers ZHA or Zigbee2MQTT. Both run your sensors, plugs and bulbs—but differently. This guide follows the ZHA integration docs and Zigbee2MQTT getting started (October 2026). We did not benchmark speed or range—no invented performance numbers.
ZHA: Zigbee device → USB stick → Home Assistant (ZHA)
Zigbee2MQTT: Zigbee device → USB stick → Zigbee2MQTT → MQTT (Mosquitto) → Home Assistant
| ZHA | Zigbee2MQTT | |
|---|---|---|
| Runs on | Inside Home Assistant | Add-on or separate host |
| MQTT broker | Not needed | Required (Mosquitto) |
| Setup | Few clicks, auto-detect common sticks | Mosquitto, repo, add-on, wizard |
| UI | Home Assistant settings | Dedicated Zigbee2MQTT frontend |
| Radio families (docs) | Silicon Labs (EZSP), TI (ZNP), deCONZ, ZiGate | TI (zStack) and Silicon Labs (Ember) recommended; deCONZ supported |
| Odd devices | “Quirks” in ZHA | “Converters” in Z2M |
| OTA firmware | Limited vendor list | Community firmware repo |
| Network backup | Automatic; migration between some sticks in ZHA | Coordinator backup (zStack/Ember); changing stack often means re-pairing |
| Use sensors outside HA | No | Yes—Node-RED, scripts, etc. |
| Minimum hardware | Same as HA | 64-bit; Pi 4+ advised for the add-on |
Silicon Labs and Texas Instruments sticks suit both stacks. The SONOFF ZBDongle-E (EFR32MG21) is listed for ZHA; Zigbee2MQTT uses the ember adapter. Home Assistant Connect ZBT-2 is the official stick (MG24)—Zigbee or Thread. Details: best Zigbee dongle.
| Dongle | Notes |
|---|---|
| SONOFF ZBDongle-E | UK · US |
| Home Assistant Connect ZBT-2 | UK · US |
Zigbee2MQTT tip: use a USB extension so the stick sits away from the Pi—first fix for pairing drops and 2.4 GHz clash with Wi-Fi.
https://github.com/zigbee2mqtt/hassio-zigbee2mqtt.Example manual config for ZBDongle-E (port from ha hardware info):
adapter: ember
port: /dev/serial/by-id/usb-…-if00-port0
Official migration without re-pairing is documented within ZHA (stick to stick). Moving ZHA ↔ Zigbee2MQTT usually means re-pairing everything—choose before you deploy twenty sensors. Full HA backup first.
/dev/tty*modemmanager grabbing the stick on generic Linux—ZHA docs say to remove itMore: Install Home Assistant on Pi 5 · Zigbee temperature sensor.
Torn between two models or stuck on a build? Drop us a line and we will get back to you by email.