| Our Rating | |
|---|---|
| Affordability | ★★★★★ |
| Ease of Use | ★★★★★ |
| Support | ★★★★★ |
| Overall | ★★★★★ |
As the smart home ecosystem continues to expand, integrating various devices and protocols becomes essential for seamless automation. Zigbee, a wireless communication standard, has gained prominence due to its efficiency, low power consumption, and mesh networking capabilities.
Zigbee2MQTT, an open-source project, takes Zigbee integration a step further by allowing you to control Zigbee devices using your preferred home automation platform without relying on proprietary bridges or cloud services.
In this comprehensive guide, we’ll explore everything you need to know about Zigbee2MQTT—from hardware selection and installation to advanced configuration and troubleshooting.
What is Zigbee2MQTT?
Zigbee2MQTT is a bridge that connects Zigbee devices with MQTT (Message Queuing Telemetry Transport) servers. This open-source project acts as a translator, enabling Zigbee devices to communicate with home automation platforms like Home Assistant, OpenHAB, Node-RED, and virtually any system that supports MQTT.
Unlike manufacturer-specific hubs (like the Philips Hue Bridge or IKEA TRADFRI gateway), Zigbee2MQTT gives you complete local control over your devices, eliminating cloud dependencies and subscription fees.
Hardware Requirements: Choosing Your Coordinator
The heart of any Zigbee2MQTT setup is the Zigbee coordinator—a USB dongle or module that communicates with your Zigbee devices. Choosing the right coordinator is crucial for a stable, performant network.
Recommended Coordinators
- SLZB-06 (Sonoff): Excellent value, USB + Ethernet, works out-of-the-box with Zigbee2MQTT firmware pre-installed
- SkyConnect (Nabu Casa): Purpose-built for Home Assistant, includes threaded U.FL connector for external antenna
- CC2652P-based dongles: EGGREE, Sonoff Dongle-P, and SMLIGHT SLZB-06 offer excellent range with PA/LNA amplifiers
- ConBee II: Popular choice with strong community support, works well for networks up to 200 devices

⚠️ Gotcha: Cheap Generic Dongles
Be cautious with cheap CC2531-based dongles. While inexpensive ($3-5 AUD on AliExpress), they have limited memory, poor range, and can’t handle more than 20-30 devices reliably. For a serious smart home, invest in a modern CC2652 or ConBee II coordinator.
Installation Methods
Zigbee2MQTT can be installed in several ways. Choose the method that best fits your setup:
Option 1: Home Assistant Add-on (Easiest)
If you’re running Home Assistant with the official add-on store, this is the simplest approach:
- Go to Settings → Add-ons → Add-on Store
- Search for “Zigbee2MQTT” (official add-on by Nabu Casa)
- Click Install
- Configure the USB path in the add-on configuration
- Start the add-on

Option 2: Docker (Most Flexible)
For users running Docker, Zigbee2MQTT can be deployed as a container:
docker run -d
--name="zigbee2mqtt"
--restart=unless-stopped
--device=/dev/ttyUSB0
-v /path/to/data:/app/data
-e TZ=Australia/Sydney
koenkk/zigbee2mqtt
Your docker-compose.yml might look like:
version: '3.8'
services:
zigbee2mqtt:
container_name: zigbee2mqtt
image: koenkk/zigbee2mqtt
restart: unless-stopped
volumes:
- ./data:/app/data
devices:
- /dev/ttyUSB0:/dev/ttyUSB0
environment:
- TZ=Australia/Sydney
Option 3: Standalone Installation
For advanced users, you can install directly on your system:
# Clone the repository
git clone https://github.com/Koenkk/zigbee2mqtt.git
cd zigbee2mqtt
# Install dependencies
npm install
# Start Zigbee2MQTT
npm start
Configuration Deep Dive
The main configuration file is configuration.yaml in your data directory. Here’s a comprehensive example:
homeassistant: true
permit_join: false
mqtt:
base_topic: zigbee2mqtt
server: 'mqtt://localhost:1883'
user: my_user # Optional
password: my_password # Optional
serial:
port: /dev/ttyUSB0
# For adapters that need baud rate specification:
# baudrate: 115200
frontend:
port: 8080
advanced:
network_key: GENERATE
pan_id: GENERATE
ext_pan_id: GENERATE
homeassistant_discovery_topic: homeassistant
homeassistant_status_topic: homeassistant/status
log_level: info
log_output:
- console
# Australian channel (2.4 GHz band)
channel: 15
# Enable this for better performance with many devices
cache_state: true
cache_state_persistent: true
# Last_seen timestamp
last_seen: ISO_8601
# Device availability settings
availability_timeout: 60
availability_blocklist: []
availability_passlist: []

⚠️ Gotcha: USB Device Paths Change
On Linux, USB device paths (/dev/ttyUSB0) can change after reboots. Use the persistent device ID instead:
serial:
port: /dev/serial/by-id/usb-Silicon_Labs_Sonoff_Zigbee_3.0_USB_Dongle_Plus-if00
Find your device ID with: ls -la /dev/serial/by-id/
Device Pairing Guide
Step 1: Enable Pairing Mode
Before pairing devices, Zigbee2MQTT must be in permit join mode:
- Via Frontend: Open the web UI (usually http://your-server:8080) and click “Permit Join”
- Via MQTT: Publish
{"permit_join": true}tozigbee2mqtt/bridge/request/permit_join - Via Config: Set
permit_join: truein configuration.yaml (remember to set it back to false after pairing!)
Step 2: Put Device in Pairing Mode
Each device has its own pairing procedure. Common methods:
- Smart plugs: Hold the power button for 5-10 seconds until LED blinks rapidly
- Light bulbs: Toggle power 5-6 times quickly (smart plugs work similarly)
- Buttons/switches: Hold the main button for 10 seconds
- Sensors: Often enter pairing mode automatically when first powered on, or press the reset button
Step 3: Verify Pairing
Check the Zigbee2MQTT logs or frontend to confirm the device was added. You’ll see messages like:
Successfully interviewed '0x00158d0001a2b3c4', device has successfully been paired

⚠️ Gotcha: Devices Must Be Reset
If a device was previously paired to another hub (like Philips Hue or IKEA TRADFRI), you MUST factory reset before pairing with Zigbee2MQTT. The pairing mode won’t work if the device still has old network credentials stored.
Device Groups and Scenes
Zigbee2MQTT supports device groups for coordinated control. This is particularly useful for:
- Controlling multiple lights simultaneously
- Creating “All Lights Off” scenarios
- Grouping sensors by room
Creating Groups via configuration.yaml:
groups:
'1':
friendly_name: living_room_lights
retain: false
devices:
- 0x00158d0001a2b3c4/1
- 0x00158d0001a2b5d6/1
- 0x00158d0001a2b7e8/1
Creating Scenes:
scenes:
'1':
friendly_name: movie_mode
transition: 5
states:
- device: living_room_light
state: 'ON'
brightness: 80
color_temp: 370
- device: hallway_light
state: 'OFF'
Troubleshooting Common Issues
Device Won’t Pair
- Check coordinator distance: The device should be within a few metres during initial pairing
- Verify permit join is enabled: Look for “Permit joining” in the logs
- Factory reset the device: Devices need to be cleared of old network data
- Check for interferers: Wi-Fi on channel 1 can interfere with Zigbee channels 11-15; use Zigbee channel 20 or 25 if you have Wi-Fi interference
Devices Dropping Offline
- Weak mesh: Add more mains-powered devices (repeaters) like plugs or bulbs
- Interference: Change Zigbee channel in advanced settings
- Power issues: Ensure all routers (mains-powered devices) are powered on
- Check coordinator logs: Enable debug logging to see detailed error messages
Slow Response Times
- Network congestion: Too many devices on one coordinator; consider multiple networks
- Poor mesh routing: Reset the mesh by touching each device’s reset button while the network is active
- Channel conflicts: Use Wi-Fi analyzer to check for overlapping channels

Best Practices for Australian Homes
- Acknowledge power standards: Australian smart plugs with Zigbee (like Aurora, Grid Connect) work perfectly with Zigbee2MQTT
- Channel selection: Channel 15, 20, or 25 typically works best in Australia to avoid Wi-Fi interference (most Australian routers use channels 1, 6, or 11)
- Temperature considerations: In Australia’s hot climate, ensure your Zigbee coordinator isn’t exposed to extreme heat (don’t put it in a roof space or north-facing window)
- Local cloud services: Using Home Assistant with Zigbee2MQTT keeps everything local—no data leaves your home
Supported Devices (A Growing List)
Zigbee2MQTT supports over 3,000 devices from hundreds of manufacturers. Popular categories include:
- Lighting: Philips Hue, IKEA TRADFRI, LIFX, Gledopto, Innr
- Sensors: Aqara, Sonoff, Tuya devices, IKEA, Hue motion sensors
- Switches & Buttons: IKEA TRADFRI, Aqara, Hue tap, Sonoff
- Smart Plugs: IKEA, Sonoff, Grid Connect (Australia), Aurora
- Thermostats: Danfoss, Tuya, Moes
- Locks: Yale, Danalock, Nuki
Check the full list at the official supported devices page.
Key Features and Benefits
1. Device Compatibility
Zigbee2MQTT supports thousands of devices from different manufacturers, allowing you to create a diverse and interconnected smart home environment without being locked into one brand.
2. Decentralized Control
By leveraging MQTT, Zigbee2MQTT enables direct control of Zigbee devices from your chosen home automation platform, eliminating manufacturer-specific hubs and cloud dependencies.
3. Freedom of Choice
You’re not locked into a single ecosystem. Use Home Assistant today, switch to OpenHAB tomorrow—your devices work regardless.
4. Active Community Support
The Zigbee2MQTT project is actively developed with regular updates, new device support, bug fixes, and improvements. Issues are typically resolved quickly on their GitHub repository.
5. Local Control and Privacy
Your device data stays within your network, enhancing security and privacy compared to cloud-based alternatives. No internet required!
Conclusion
Zigbee2MQTT bridges the gap between Zigbee devices and home automation platforms, providing a powerful, flexible solution for creating a cohesive smart home ecosystem. With support for thousands of devices, local control, and compatibility with multiple platforms, Zigbee2MQTT empowers you to fully harness the potential of Zigbee technology.
For Australian smart home enthusiasts, Zigbee2MQTT offers an affordable, private, and powerful alternative to proprietary hubs—giving you complete control over your smart home without subscription fees or cloud dependencies.
Official Resources:
- Zigbee2MQTT Documentation
- Getting Started Guide
- Supported Devices
- GitHub Repository
- Discord Community
Discover more from JRB Consulting
Subscribe to get the latest posts sent to your email.
