Setting Up Zigbee2MQTT From Scratch: A Complete UK Guide

From an empty USB port to your first paired device: installing Mosquitto, Zigbee2MQTT, and building a reliable mesh network.

Luke Updated 29 Aug 2026
How we test
Contents

Our Home Assistant advanced automations guide mentions Zigbee2MQTT as an alternative to buying separate manufacturer hubs for every Zigbee brand you own. This is the actual step-by-step setup - from an empty USB port to your first paired device.

What You’ll Need

  • Home Assistant already running (Home Assistant OS is the easiest route for this specific setup)
  • A USB Zigbee coordinator dongle - the Sonoff Zigbee 3.0 USB Dongle Plus and the ConBee II are both well-supported and commonly used in the UK
  • An hour or so free the first time - subsequent device pairings take a couple of minutes each

Check Zigbee Coordinator Dongles on Amazon UK →Affiliate link

Step 1: Install the MQTT Broker

Zigbee2MQTT talks to Home Assistant via MQTT, a lightweight messaging protocol - you’ll need a broker running first.

  1. Go to Settings → Add-ons → Add-on Store
  2. Search for Mosquitto broker and install it
  3. Start it, and enable Start on boot and Watchdog in its options
  4. Home Assistant should auto-discover the MQTT integration once Mosquitto is running - accept the prompt if it appears, or add the MQTT integration manually under Settings → Devices & Services

Step 2: Plug In the Coordinator and Install Zigbee2MQTT

  1. Plug the USB coordinator into your Home Assistant machine - a short USB extension cable is worth using, since USB 3.0 ports can cause Zigbee radio interference at close range
  2. In the Add-on Store, search for Zigbee2MQTT and install it
  3. Before starting it, open its Configuration tab and set the serial port to match your coordinator - Home Assistant’s add-on usually detects it automatically and lists it as an option
  4. Start the add-on, then open its Web UI from the add-on page
A USB Zigbee coordinator dongle plugged into a computer

Step 3: Pair Your First Device

  1. In the Zigbee2MQTT web UI, click Permit join (all) - this opens a pairing window, usually 254 seconds by default
  2. Put your Zigbee device into pairing mode (this varies by device - check the manufacturer’s instructions, but it’s often holding a button for 5-10 seconds, or a specific reset sequence)
  3. The device should appear in the Zigbee2MQTT device list within a few seconds; give it a friendly name so it’s identifiable later
  4. It should now also appear automatically in Home Assistant under Settings → Devices & Services → MQTT, ready to add to a dashboard or use in automations

Building a Reliable Mesh as You Add More Devices

Zigbee is a mesh network - mains-powered devices (smart plugs, some bulbs) act as “routers” that relay signal to battery-powered devices further from the coordinator. A network with only battery sensors and no mains-powered routers will have a much shorter effective range than one with a healthy spread of powered devices. If you’re building out coverage across a larger house, add a few smart plugs specifically to strengthen the mesh in areas where sensors are struggling to connect, rather than assuming you need to move the coordinator itself.

Picking a Zigbee Channel That Doesn’t Fight Your Wi-Fi

Zigbee and 2.4GHz Wi-Fi share the same radio band, and their channel numbering doesn’t line up in an obvious way - this catches a lot of people out, since a “sensible-sounding” default can quietly overlap with your router’s Wi-Fi channel and cause exactly the flaky, drops-out-randomly behaviour that looks like a mesh coverage problem but isn’t. Zigbee channels 15, 20 and 25 sit in the gaps between the standard non-overlapping Wi-Fi channels (1, 6 and 11), so they’re the safest defaults if your router is using typical UK ISP settings. Zigbee2MQTT lets you set this in the add-on’s configuration under advanced → channel - it’s worth setting deliberately rather than leaving on the default, especially in a flat or terraced house where you’ll pick up plenty of neighbours’ Wi-Fi networks on the same band too.

Changing the channel after you’ve already paired devices requires re-pairing everything, since the channel is set at network creation - so it’s much cheaper to get this right on day one than to fix it later once you’ve got twenty devices on the mesh.

Troubleshooting Pairing Failures

  • Device won’t enter pairing mode - double-check the manufacturer’s specific reset sequence; some brands require holding a button for an unusually long or short time
  • Device pairs but immediately drops offline - usually a mesh coverage issue; try pairing it closer to the coordinator first, then relocate it once connected
  • Coordinator not detected at all - check the serial port setting matches the actual device path, and try a different USB port (avoiding USB 3.0 ports specifically, which are known to cause 2.4GHz interference with some coordinators)

Devices Pair in Zigbee2MQTT But Don’t Appear in Home Assistant

This specific failure (visible in the Z2M web UI, invisible in Home Assistant) is almost always an MQTT discovery problem rather than a Zigbee problem, and it’s worth knowing the difference before assuming your pairing failed. Check these in order:

  • Confirm MQTT discovery is enabled in Zigbee2MQTT’s configuration (it’s on by default, but worth checking if you’ve edited the config file directly) - without it, Z2M has no way to tell Home Assistant a device exists
  • Check the MQTT integration is actually connected under Settings → Devices & Services → MQTT - a broker restart can sometimes leave the integration showing as connected when it’s actually stale; reloading the integration forces a fresh handshake
  • Restart the MQTT integration, not just the device - Home Assistant’s MQTT discovery messages are typically sent once, when a device first pairs; if Home Assistant’s integration wasn’t listening at that exact moment (e.g. it was mid-restart), it can miss the announcement entirely. Removing and re-adding the device in Z2M forces it to re-announce.

For confirming a device is genuinely healthy rather than just “present,” Zigbee2MQTT’s network map (in its web UI) shows each device’s LQI (link quality indicator) and how recently it last reported in. A device with a very low LQI or a last seen timestamp that’s stopped updating is a mesh-coverage problem worth solving with an extra router device nearby, even if it still technically shows as “paired.”

Frequently Asked Questions

Can I use Zigbee2MQTT alongside a manufacturer’s own hub?

Not for the same physical device - a Zigbee device can only be paired to one coordinator/hub at a time. You’d need to factory-reset a device currently on a manufacturer hub before pairing it to Zigbee2MQTT instead.

Is Zigbee2MQTT harder to maintain than a manufacturer hub long-term?

Day to day, no - once devices are paired, they behave the same as any other Home Assistant entity. The main ongoing task is occasionally updating the add-on itself and, for large networks, keeping an eye on mesh health via the Zigbee2MQTT web UI’s network map feature.

For genuinely complex automation logic once your devices are paired, our Node-RED setup guide is the natural next step beyond the basic automation editor.

Advertisement

Luke

Researches and tests UK smart home gear hands-on, cross-checking manufacturer specs against real UK electrical standards, pricing and compatibility.

16 guides in Guides & Tutorials

Scroll to Top