Home Assistant · Zigbee

Zigbee2MQTT vs ZHA in Home Assistant: Which Fits Your Setup?

Two supported Zigbee stacks, one coordinator, and a decision that is mostly about how much you want to run. Here is the short answer, a six-question fit check, and the order to do things in if you do switch.

The short answer

Start from what already works. If ZHA is stable and every device answers after a restart, stay on ZHA — placement, channel and backups come before any stack change. Move to Zigbee2MQTT when you already run MQTT, when you want the Zigbee layer to live outside Home Assistant, or when one specific device is handled better there.

Stay on ZHA ifthe mesh is calm and you do not want another service to update, back up and monitor.
Move to Zigbee2MQTT ifyou already run an MQTT broker, or the Zigbee layer should sit outside your Home Assistant install.
Fix first, in every casecoordinator placement, 2.4 GHz channel, and a backup you have actually tested.

Six questions before you switch stacks

Answer in order. The first question matters most: a network that already works is the thing you are risking.

01

Is your current network stable — does every device still answer after a Home Assistant restart?

Yes Stay where you are and fix placement first. A stack swap is not maintenance.
No Keep reading. A swap is one option here, not the first one.
02

Are you already running an MQTT broker for something else?

Yes Zigbee2MQTT adds a piece you already operate instead of a brand-new one.
No ZHA stays simpler: nothing extra to install, update or back up.
03

Do Zigbee devices ever need to reach something other than Home Assistant?

Yes The MQTT boundary is the real reason to move.
No ZHA covers the usual single-hub setup.
04

Is one specific device behaving badly today?

Yes Look that exact model up in both projects' device lists before you migrate anything. One device is not a reason to move a whole network.
No Carry on to the next question.
05

Do you want to update the Zigbee stack on its own schedule?

Yes Zigbee2MQTT ships separately from Home Assistant.
No ZHA moves with the Home Assistant release you install.
06

Is your coordinator one whose firmware only one of the two stacks documents?

Yes Read the coordinator's own manual before you plan anything, and do not flash firmware to "make it work".
Unsure Leave the coordinator alone and ask in the project's support channel.

ZHA and Zigbee2MQTT, side by side

Neither column is a verdict. The right-hand column is the part that decides most setups.

DimensionZHAZigbee2MQTTCheck this before deciding
Where it runsAn integration inside Home AssistantA separate application that hands devices to Home Assistant over MQTTWhether you want to run and update one more service
Extra pieces to runNothing beyond Home AssistantAn MQTT broker plus the Zigbee2MQTT applicationWhether an MQTT broker is already part of your setup
Where you configure itHome Assistant's own interfaceIts own interface and configurationWhich one you will actually keep tidy six months from now
Device handlingHandled inside Home AssistantHandled by the project's own convertersLook your exact model up in both device lists
Update rhythmFollows the Home Assistant release you installShips on its own scheduleWhether you want the Zigbee stack updated independently of Home Assistant
Coordinator firmwareDocumented per coordinatorDocumented per coordinatorRead your coordinator's manual — the two stacks can expect different firmware
Backup and restoreCovered by your Home Assistant backupsYour own configuration, plus a coordinator network backupConfirm what your backup actually contains before you rely on it
What it does not fixInterference, distance, and a poorly placed stickInterference, distance, and a poorly placed stickNothing on this page replaces placement work

Situation → what we would do

Matched to the state of your network, not to a preference for either project.

Your situationWhat we would doWhy
Everything works and you are only reading upStay on ZHAA working mesh is the asset. Placement beats a stack swap.
You already run MQTT for something elseZigbee2MQTT is the shorter pathThe extra moving part is already in your stack.
One device is poorly exposedCheck that model in both device lists firstA single-device gap is worth fixing before you move a whole network.
30+ devices with occasional dropoutsAudit placement and channel before the stackOur own 46-device network runs on one coordinator, and moving the stick has solved more complaints than changing software.
You want the Zigbee layer to outlive a Home Assistant rebuildZigbee2MQTTThe Zigbee layer lives in its own service, separate from the Home Assistant install.
You do not want to maintain another serviceZHAFewer moving parts to install, update, back up and monitor.

If you do switch, do it in this order

Every step is reversible until step 5. After that, the old network is the thing you are giving up.

  1. Write down what you have. — Coordinator model, firmware version, Zigbee channel, and a list of every device with its model name. Do this before you touch anything; you will want it if you roll back.
  2. Take a backup and confirm it exists. — A Home Assistant backup, and a coordinator network backup if your coordinator's tooling offers one. Find the file afterwards so you know it is real.
  3. Check every device model against the target stack's device list. — If a model is not listed, assume it is the one that will not work, and decide now whether that is acceptable.
  4. Check what firmware your coordinator's manual names for the target stack. — Stop here if the manual does not cover your exact coordinator and firmware combination. Ask the project's support channel before going further.
  5. Stand up the new pieces before you unpair anything. — For Zigbee2MQTT: the MQTT broker first, then the application, then a single test device. The old network keeps running while you do this.
  6. Move one device. — Pick a mains-powered device near the coordinator. Join it to the new stack and leave it for a day. If it drops, fix placement and channel before adding anything else.
  7. Move the network in batches. — A few devices at a time. Confirm each batch still answers after a restart before starting the next one.
  8. Keep the old setup until the new one has run a full week. — That week should include a Home Assistant restart and at least one coordinator power cycle. Only then retire the old network.

Mistakes that cost a weekend

All six of these are more common than a genuine stack limitation.

Migrating a network that already works

If every device answers and restarts are boring, the stack is not your problem.

Blaming the stack for interference

USB 3.0 ports and busy 2.4 GHz Wi-Fi sit right on top of Zigbee. Move the stick before you move the software.

Unpairing first and checking later

Verify your exact device models in the target stack's list while the old network is still standing.

Running two Zigbee networks on the same channel

If you keep both stacks live while you migrate, give each its own coordinator radio and keep their channels apart. Two stacks sharing one coordinator is not a configuration to attempt.

Skipping the backup because the move looks simple

The simple ones are exactly where it gets skipped.

Copying someone else's channel number

Their 2.4 GHz environment is not yours. Scan your own before you pick.

Edge cases worth knowing about

These are the ones that turn a tidy migration into an evening.

Battery devices that sleepThey may not re-interview on the first try. Wake the device at the hardware and be patient. A factory reset is not the first move.
Vendor-specific quirksSome models need special handling. Check whether the target project documents yours before assuming it will behave the way it does today.
Multi-protocol radiosA stick that can do Zigbee and Thread does one job at a time. Confirm which mode yours is in before you debug a network.
Discontinued coordinatorsIf your coordinator has been replaced by a newer model, read the successor's documentation before buying or migrating. The new model may not follow the same firmware path.
Ethernet coordinatorsPlacement usually improves, but the network still has to be rebuilt or restored using your coordinator's documented process. Do not assume a like-for-like swap.
Rebuilding the hostDo the host move first and confirm the Zigbee network survived it. Change one thing at a time.

Before you flash anything

Coordinator firmware is the one step on this page that can leave hardware unusable. Flash only firmware that your coordinator's official manual names for your exact model, using the vendor's documented tool. If the manual does not cover your combination, stop and ask the project's support channel or the coordinator vendor first. Nothing on this page replaces your device's official documentation, and if you are unsure at any point, stop and consult the manufacturer's instructions or a qualified professional.

Questions we get about the switch

Can I run ZHA and Zigbee2MQTT at the same time?
Only with separate coordinator radios, and only if you keep their channels apart. One coordinator cannot serve both stacks at once. If you are testing, keep the second network small and short-lived.
Will I have to re-pair every device when I switch?
Plan for it unless your coordinator's documentation describes a supported way to carry the network across. Check that document for your exact model first. If it does not cover your case, assume re-pairing.
Which one is more reliable?
In our experience the stack is rarely the deciding factor. Placement, channel and coordinator firmware decide more. We run 46 Zigbee devices on a single coordinator, and when something misbehaves we move the stick before we change software.
Do I need MQTT if I use ZHA?
No. MQTT is how Zigbee2MQTT hands devices to Home Assistant. ZHA talks to Home Assistant directly.
Does device count decide it?
No. Both stacks are used on large networks. Pick the one whose device list covers your models and whose maintenance you will actually keep up with.
Can I keep my current coordinator?
Usually, but check. Each stack documents the firmware it expects for a given coordinator, and the two do not always match. Read your coordinator's manual before you plan the move.

Pick the stack, then copy a setup that already runs

Our guides come from a live 46-device Zigbee network at home: choosing a coordinator, migrating a network to new hardware, and the placement fixes that resolve most "device unavailable" complaints.

Some links on ConnectedCasa guide pages may be affiliate links: if you buy through them, ConnectedCasa may earn a small commission at no extra cost to you. Recommendations stay independent.