Skip to main content
Selora Homes Selora Homes

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.

Zigbee ZHA Zigbee2MQTT Comparison MQTT

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 or 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

FeatureZHAZigbee2MQTT
InstallationBuilt into HA with auto-discoverySeparate app + MQTT broker
DependenciesNoneMosquitto (or another MQTT broker)
Web frontendHA device pages + network mapDedicated standalone dashboard
Device supportMost standard Zigbee devices, plus quirks for non-standard ones (no official list)5,700+ devices from 600+ vendors (published list)
Device configSettings exposed by quirks; vary by deviceDeep per-device settings
GroupsYes (via HA UI)Yes (via Z2M UI or YAML)
BindingsYesYes
OTA updatesCurated index on by default, more providers opt-inBroader manufacturer coverage out of the box
External convertersQuirks (Python, community)Converters (JS, large library)
Runs independently of HANoYes (communicates via MQTT)
Coordinator migrationBuilt-in migration wizardAutomatic backup restore (zStack and Ember adapters only)

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 app (called an “add-on” before Home Assistant 2026.2). 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 + Mosquitto 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.

ZHA works with most devices that follow the Zigbee standard and uses community-written quirks to handle devices that don’t. A few device types, such as Green Power-only and Smart Energy devices, are not supported. Because standard devices need no quirk, ZHA has no official compatibility list.

Zigbee2MQTT publishes a list of every device it supports, and 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. When a device has a quirk, it can also expose settings such as motion sensitivity or LED behavior as configuration entities, but coverage varies from device to device. 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 ZHA often does not expose. If a project requires specific device behavior tuning, Zigbee2MQTT gives you the controls.

Network Management

ZHA provides a network map within Home Assistant that shows the mesh topology as reported by each device, with the signal strength (RSSI) and link quality (LQI) of each link. It covers the essentials for most installations.

Zigbee2MQTT provides a network map with LQI on every connection and detailed neighbor tables, which you can refresh on demand. The dedicated frontend also gives you direct access to logs, device interviews, and raw Zigbee cluster data, which is useful when diagnosing unusual device behavior.

Independence from Home Assistant

ZHA is tightly integrated with Home Assistant. If Home Assistant restarts, the coordinator goes offline until ZHA starts again. The mesh keeps routing and direct bindings (a remote bound to a light, for example) keep working, but nothing reaches Home Assistant and Zigbee management is unavailable until it recovers.

Zigbee2MQTT runs as a separate process. If Home Assistant restarts or crashes, the coordinator stays online and Zigbee2MQTT keeps tracking device state. When Home Assistant comes back, Zigbee2MQTT republishes the last known state of every device over MQTT. Bindings, Zigbee groups, and any other tools connected to the MQTT broker keep working in the meantime. If the Zigbee2MQTT frontend is exposed on its own port, you can also reach it while 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 uses a community-curated OTA firmware index that mirrors updates from about 50 manufacturers, including IKEA, Philips Hue, Aqara, Legrand, and Tuya. If keeping devices on the latest firmware is important to your workflow, Zigbee2MQTT provides better coverage out of the box.

ZHA checks its own curated firmware index by default, along with the LEDVANCE and SONOFF update servers. The curated index is smaller, covering around ten manufacturers such as Inovelli, Innr, Third Reality, and Ubisys. Other providers, including IKEA and the Zigbee2MQTT firmware index, are opt-in and require editing the Home Assistant configuration. Without them, some devices that get updates through Zigbee2MQTT do not get them 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?

There is no supported migration between ZHA and Zigbee2MQTT. Both are built on the same open coordinator backup format, so on some adapters an experienced installer can carry the Zigbee network (channel, PAN ID, and network key) across by hand and avoid re-pairing most devices. This is not guaranteed: expect to re-pair some devices anyway, and plan to redo everything stored in the integration itself: device names, entity IDs, groups, automations, and dashboards. Re-pairing every device is the safe fallback if the network migration fails.

Before committing, consider which integration better fits the long-term needs of the installation. Switching after 50+ devices are paired is a significant effort either way.

Type to search across

↑↓ navigate ↵ open
⌘K search