ZHA vs Zigbee2MQTT vs Zigbee: What's Actually the Difference?
-
I see this question pop up a lot, so figured I'd break down how I think about it after running both ZHA and Z2M on different setups.
Zigbee itself
Zigbee isn't software you choose, it's the wireless protocol your devices speak. Every bulb, sensor, and plug that says "Zigbee" on the box is talking the same low-power mesh protocol regardless of what's running on your Home Assistant server. The protocol handles the radio layer, pairing, and mesh routing between devices. What you do choose is the software that sits between your Zigbee coordinator (the USB stick or gateway) and Home Assistant, translating Zigbee traffic into something HA understands. That's where ZHA and Z2M come in.
ZHA (Zigbee Home Automation)
ZHA is Home Assistant's built-in integration. No separate app, no extra container, no MQTT broker to manage. You plug in a coordinator, add the integration, and pair devices straight from the HA UI.
What I like about it:
Setup is genuinely the fastest of the two. Fewer moving parts means fewer things to misconfigure.
Device support is handled through quirks, community-contributed device profiles that patch weird or non-standard implementations.
Everything lives inside HA, so there's no second web UI to check when something's not reporting.Where it falls short:
Network visibility is limited. There's no built-in map showing which devices are routing through which repeaters, so diagnosing mesh problems is more guesswork.
Some devices get supported later than they do on Z2M, since the quirks system depends on community contributions catching up.Zigbee2MQTT (Z2M)
Z2M runs as a separate add-on (or standalone service) and talks to HA over MQTT rather than being built into HA directly.
What I like about it:
The network map in the Z2M frontend is genuinely useful. You can see LQI (link quality) between every device and repeater, which makes tracking down a flaky sensor way faster than guessing.
Broader and often faster device support, especially for newer or less common devices.
More granular control over channel settings, reporting intervals, and per-device configuration.Where it falls short:
You're now running MQTT as a dependency, which is one more thing that can go wrong or need troubleshooting.
Slightly more setup overhead upfront, especially if you've never touched an MQTT broker before.So which one do you pick?
If you want the simplest possible setup and don't care about deep network diagnostics, ZHA is the easier starting point. If you've got a larger mesh, want to actually see what's happening between your coordinator and your devices, or you're chasing down flaky connections, Z2M's visibility is worth the extra setup step.
I run Z2M mainly because I lean on the network map constantly when troubleshooting range issues, but I know plenty of people happily running dozens of devices on ZHA without ever needing that level of detail. Neither one is "wrong," they're just optimized for different priorities.
Curious what others are running and why you landed where you did.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login