Zigbee is a low-power wireless protocol used by hundreds of smart home devices โ sensors, bulbs, switches, plugs, and more. Brands like IKEA, Aqara, Philips Hue, Sonoff, and Tuya all make Zigbee products.
Zigbee2MQTT is open-source software that converts Zigbee device communications into MQTT messages, allowing Home Assistant to control and monitor these devices completely locally โ no cloud account, no proprietary hub, no internet connection required.
It's the preferred Zigbee integration for Home Assistant power users because:
The alternative is ZHA (Zigbee Home Automation), which is built into Home Assistant. ZHA is simpler to set up, but Zigbee2MQTT offers broader device support, more granular configuration, and a better advanced feature set. For serious Zigbee setups, Zigbee2MQTT wins.
| Dongle | Chip | Max Devices | Recommended? |
|---|---|---|---|
| Sonoff Zigbee 3.0 Dongle Plus (E) | EFR32MG21 | 200+ | โ Best overall |
| Sonoff Zigbee 3.0 Dongle Plus (P) | CC2652P | 100+ | โ Great value |
| HUSBZB-1 | EM3581 / EFR32 | 50+ | Zigbee + Z-Wave combo |
| ConBee II / Phoscon | CC2652 | 100+ | Good alternative |
| Aeotec Z-Stick 7 | ZM5304 | 100+ | Z-Wave only, not Zigbee |
We recommend the Sonoff Zigbee 3.0 USB Dongle Plus. It's affordable (~$20), widely supported, works out-of-the-box with Zigbee2MQTT, and the newer "E" variant (EFR32MG21 chip) supports a router/coordinator firmware for larger networks.
The most popular Zigbee coordinator for Home Assistant. Works out-of-the-box with Zigbee2MQTT, supports 200+ devices, and is widely available for under $20. Includes cap and comes in both +E and +P variants.
View on Amazon โAs an Amazon Associate we earn from qualifying purchases.
Most Sonoff Dongle Plus units ship ready to use as a Zigbee coordinator. You generally do not need to flash the firmware before use โ Zigbee2MQTT will detect it automatically.
However, if you bought an older unit or want to update to the latest coordinator firmware for better stability:
For most users, skip this step and proceed directly to installing Mosquitto.
In Home Assistant, navigate to Settings โ Add-ons โ Add-on Store. Search for "Mosquitto broker" and install it. Once installed, click Start and enable Start on boot.
Navigate to Settings โ People โ Users and create a new user specifically for MQTT. Uncheck "Can log in" if you want it to be a service account. Note the username and password โ you'll need them when configuring Zigbee2MQTT.
Alternatively, the Mosquitto add-on can use HA's built-in user accounts automatically โ just leave the broker configuration at defaults and it will use your HA account credentials.
Go to Settings โ Devices & Services. Home Assistant should automatically detect the Mosquitto broker and offer to set up the MQTT integration. Accept it and configure with your credentials. If it doesn't appear automatically, click + Add Integration and search for "MQTT".
Zigbee2MQTT is a community add-on. In the Add-on Store, click the โฎ menu (top right) โ Repositories โ paste this URL:
Click Add, then refresh the page. You'll now see Zigbee2MQTT in the store.
Find Zigbee2MQTT in the add-on store and click Install. After installation, do not start it yet โ configure it first.
Navigate to Settings โ System โ Hardware. Look for your Sonoff dongle โ it will appear as something like /dev/ttyUSB0 or /dev/serial/by-id/usb-ITead_.... Copy the by-id path โ it's more reliable than ttyUSB0 which can change on reboot.
In the Zigbee2MQTT add-on, go to Configuration tab. Edit the YAML configuration:
Then click Save. The main configuration (coordinator path, MQTT credentials, etc.) is handled in the Z2M config file โ see next step.
Using the File Editor add-on, navigate to /config/zigbee2mqtt/configuration.yaml (create it if it doesn't exist) and add:
Replace the serial port with your actual dongle path, and MQTT credentials with your own. Set network_key: GENERATE on first run โ Z2M will auto-generate a secure network key.
Return to the Zigbee2MQTT add-on page, enable Start on boot and Watchdog, then click Start. Check the Log tab โ you should see it connecting to the MQTT broker and initialising the coordinator. Look for: Zigbee2MQTT started!
In HA, navigate to the Zigbee2MQTT panel in the sidebar. Click Permit join (All) โ this opens a 250-second window during which new devices can join the network.
Every device has a different pairing method. Common approaches:
Check the Zigbee2MQTT supported devices list for your specific device's pairing instructions.
Within seconds of successful pairing, the device will appear in the Z2M dashboard with an auto-generated name (e.g., 0x00158d000123abcd). Click the device to rename it to something sensible like "Living Room Motion Sensor". Done!
With homeassistant: true set in your Z2M config, devices are automatically discovered and added to Home Assistant via MQTT discovery. They'll appear in Settings โ Devices & Services โ MQTT.
From there, you can:
coordinator_backup.json file โ this lets you restore your network if the dongle needs replacingbedroom_motion, kitchen_temp. Good naming makes automations readable/dev/serial/by-id/ path, not /dev/ttyUSB0.Zigbee2MQTT is the gold standard for Zigbee integration in Home Assistant. Once set up, it's rock-solid, completely local, and supports an enormous range of devices. The initial configuration takes about 30โ60 minutes, but the result is a Zigbee network that you own entirely โ no cloud accounts, no subscriptions, no vendor lock-in.
Pair it with the Sonoff Zigbee 3.0 USB Dongle Plus and you have everything you need for a professional-grade Zigbee setup at an entry-level price.