ZHA vs Zigbee2MQTT: Which Zigbee Integration Should You Use?
A practical comparison of ZHA and Zigbee2MQTT for Home Assistant, covering setup complexity, device support, features, and recommendations by use case.
Search results
Overview
Home Assistant supports two primary Zigbee integrations: ZHA (Zigbee Home Automation) and Zigbee2MQTT. Both are mature, actively maintained, and capable of managing a full Zigbee network. Choosing between them depends on your priorities — simplicity vs. control.
Our recommendation: Use ZHA if you want a straightforward setup with minimal dependencies. Use Zigbee2MQTT if you need advanced device configuration, broader OTA coverage, or prefer to manage Zigbee independently from Home Assistant.
At a Glance
| Feature | ZHA | Zigbee2MQTT |
|---|---|---|
| Installation | Built into HA with auto-discovery | Separate add-on + MQTT broker |
| Dependencies | None | Mosquitto (or another MQTT broker) |
| Web frontend | HA device pages + network map | Dedicated standalone dashboard |
| Device support | ~2,500+ devices via quirks | ~3,400+ devices via converters |
| Device config | Basic (what HA exposes) | Deep per-device settings |
| Groups | Yes (via HA UI) | Yes (via Z2M UI or YAML) |
| Bindings | Yes | Yes |
| OTA updates | Limited manufacturer coverage | Broader manufacturer coverage |
| External converters | Quirks (Python, community) | Converters (JS, large library) |
| Runs independently of HA | No | Yes (communicates via MQTT) |
| Coordinator migration | Built-in migration wizard | Automatic via backup file |
Setup Complexity
ZHA: Minimal Setup
ZHA is built into Home Assistant. You plug in a coordinator, add the integration, and start pairing. There are no additional services to install, no broker to configure, and no separate processes to manage. For a standard residential installation where you want to get devices paired and move on, ZHA gets you there fastest.
Total components: Home Assistant + USB coordinator.
Zigbee2MQTT: More Moving Parts
Zigbee2MQTT requires an MQTT broker (typically Mosquitto) and the Zigbee2MQTT add-on. Both need to be installed, configured, and kept running. The MQTT integration in Home Assistant must also be set up to receive device data. This adds complexity to the initial setup but gives you a fully independent Zigbee management layer.
Total components: Home Assistant + Mosquito MQTT broker + Zigbee2MQTT app + USB coordinator.
Device Support
Both integrations support the most common Zigbee devices (IKEA TRADFRI, Philips Hue, Aqara, Sonoff, Third Reality, etc.). The difference is at the edges.
Zigbee2MQTT generally has a larger supported device list because its community is prolific at writing converters for new devices. When a new Zigbee device hits the market, a Zigbee2MQTT converter often appears within days to weeks. ZHA quirks follow a similar community process but tend to take slightly longer to appear.
Where this matters: If you work with niche or brand-new devices, Zigbee2MQTT is more likely to have day-one support. For mainstream devices from major manufacturers, both integrations work equally well.
Device Configuration
This is where the two integrations differ most.
ZHA exposes device settings through Home Assistant’s standard device and entity pages. You can pair, rename, update firmware, and manage groups. For most residential installations, this is sufficient.
Zigbee2MQTT exposes significantly more per-device configuration through its dedicated frontend. Depending on the device, you can adjust motion sensor sensitivity, reporting intervals, LED behavior, power-on state, temperature calibration offsets, and other settings that are not accessible through ZHA. If you requests specific device behavior tuning, Zigbee2MQTT gives you the controls.
Network Management
ZHA provides a network visualization within Home Assistant that shows the mesh topology, device routing, and basic signal quality. It covers the essentials but offers limited diagnostic detail.
Zigbee2MQTT provides a richer network map with link quality (LQI) values on every connection, detailed neighbor tables, and the ability to request a network map refresh. The dedicated frontend also gives you direct access to logs, device interviews, and raw Zigbee cluster data — useful when diagnosing unusual device behavior.
Independence from Home Assistant
ZHA is tightly integrated with Home Assistant. If Home Assistant restarts, the Zigbee network is briefly interrupted. If Home Assistant has an issue, Zigbee management is unavailable until it recovers.
Zigbee2MQTT runs as a separate process. If Home Assistant restarts or crashes, the Zigbee network continues operating. Bindings and groups still work because they operate at the Zigbee protocol level. The MQTT broker continues to receive device state updates, and they are forwarded to Home Assistant when it comes back online. This separation also means you can access the Zigbee2MQTT frontend directly (on its own port) even when Home Assistant is down.
Where this matters: In installations where uptime is critical (e.g., Zigbee-based security sensors or locks), the independence of Zigbee2MQTT provides an extra layer of resilience.
OTA Firmware Updates
Zigbee2MQTT maintains its own OTA firmware index that covers more manufacturers than ZHA’s index. If keeping devices on the latest firmware is important to your workflow, Zigbee2MQTT provides better coverage out of the box.
ZHA supports OTA updates for major manufacturers (IKEA, Legrand, LEDVANCE) but the selection is more limited. Some devices that have OTA support through Zigbee2MQTT do not have it through ZHA.
When to Use ZHA
ZHA is the right choice when:
- You want the simplest possible setup with no extra dependencies.
- The installation uses mainstream Zigbee devices from well-known manufacturers.
- You do not need deep per-device configuration beyond what Home Assistant exposes.
- You prefer to manage everything from a single interface (Home Assistant).
- You are setting up a standard residential installation and want to minimize the number of components to maintain.
When to Use Zigbee2MQTT
Zigbee2MQTT is the right choice when:
- You need advanced per-device configuration (sensor sensitivity, reporting intervals, LED behavior).
- You work with niche or newly released devices that may not have ZHA quirks yet.
- You want the Zigbee network to operate independently of Home Assistant for maximum uptime.
- You need broader OTA firmware update coverage.
- You prefer a dedicated Zigbee management dashboard separate from Home Assistant.
- The installation is large (100+ Zigbee devices) and you want the additional diagnostic tools.
- You are already running an MQTT broker for other devices (Shelly, Tasmota, ESPHome via MQTT).
Can You Switch Between Them?
Switching from ZHA to Zigbee2MQTT (or the reverse) requires re-pairing all devices. The two integrations use different network key storage and device databases. There is no direct migration path.
Before committing, consider which integration better fits the long-term needs of the installation. Switching after 50+ devices are paired is a significant effort.
Last modified April 17, 2026: Refactor Communication Protocol docs (257aea1)