Your Zigbee sensors drop off the network for no obvious reason — usually in the evening, right when everyone's streaming. You re-pair them, they hold for a day, then drop again. It often isn't the sensor itself. It's that your Zigbee mesh and your 2.4 GHz Wi-Fi are fighting over the same slice of spectrum, and right now Wi-Fi is winning.
Why they collide
Zigbee and 2.4 GHz Wi-Fi live in the same band, 2.4 to 2.48 GHz. Wi-Fi grabs a wide lane: a single 2.4 GHz Wi-Fi channel is about 20 MHz across. Zigbee uses narrow 2 MHz channels (numbered 11 through 26) spaced every 5 MHz. So one Wi-Fi channel sits on top of four or five Zigbee channels at once, and it transmits with far more power. Where they overlap, Zigbee packets get stepped on, retransmits pile up, and the weakest links — your battery sensors — fall off first.
Here's the overlap that actually matters. The three non-overlapping Wi-Fi channels are 1, 6, and 11:
- Wi-Fi channel 1 covers Zigbee channels 11–14
- Wi-Fi channel 6 covers Zigbee channels 15–19
- Wi-Fi channel 11 covers Zigbee channels 20–24
Zigbee channels 25 and 26 sit at the upper edge of the band and are often cleaner than the crowded middle. The catch is compatibility and power: some devices don't like the upper channels, and in North America 25 and 26 are transmit-power-limited to meet FCC rules. For most ZHA installs, 15, 20, or 25 are the practical picks — the same set Home Assistant's Smart channel option prefers.
Pick your two channels so they don't overlap: Wi-Fi on 1 → Zigbee on 20 or 25, or Wi-Fi on 11 → Zigbee on 15. The single most common broken setup is Wi-Fi left on auto — where it can drift back onto channel 6 — with Zigbee on the default 15, so they sit right on top of each other.
| Router 2.4 GHz channel | Safer Zigbee picks |
|---|---|
| Wi-Fi 1 | Zigbee 20 or 25 |
| Wi-Fi 6 | Zigbee 25 (or move Wi-Fi off 6 if you can) |
| Wi-Fi 11 | Zigbee 15 or 20 |
The USB 3.0 problem nobody mentions
Before you touch channels: if your Zigbee coordinator is a USB stick plugged straight into the back of your server, that's likely half the problem. USB 3.0 ports and cables throw broadband noise right across 2.4 GHz. A coordinator sitting next to a USB 3.0 port or an SSD enclosure gets deafened no matter which channel you pick.
Fix it physically first:
- Put the coordinator on a USB 2.0 extension cable, at least a meter, away from the host.
- Keep it off USB 3.0 ports entirely — use a USB 2.0 port if the host has one.
- Get it clear of the router, the Wi-Fi AP, and any metal enclosure.
Find where you actually are
Two numbers to pull. First, your Wi-Fi channel: check the router admin page, or use a Wi-Fi analyzer app to see which channel your AP — and your neighbors — are camped on. Lock the router to 1, 6, or 11. Don't leave it on auto; auto roams, and your careful Zigbee plan stops matching reality the moment it hops.
Second, your Zigbee channel. In Home Assistant, go to Settings → Zigbee → Network information; the channel in use is shown there. To change it, hit the pencil, pick a channel from the dropdown — or choose Smart, which scans the band and prefers 15, 20, or 25 — then confirm. Home Assistant's own guidance is to leave the ZHA default alone unless you have a specific reason, like the interference we're chasing here.
That UI path is the reliable way on a running network. If you're forming a brand-new network you can pin the channel up front in configuration.yaml — but treat YAML as version-dependent and check it against the current ZHA docs before relying on it:
# configuration.yaml -- applies only when the network FIRST forms.
# Existing network? Use Settings > Zigbee > Network information instead.
zha:
zigpy_config:
network:
channel: 25
On an established network the coordinator migrates mains-powered routers automatically, but some battery-powered end devices — door, motion, and temp sensors — may not follow cleanly and can need to be woken, power-cycled, or re-paired. Give it time, too: devices can take up to an hour to reconnect, and power-cycling the stragglers speeds it up. Getting the channel right the first time still beats doing this twice.
The fix, in order
- Move the coordinator onto a USB 2.0 extension cable, away from the host and any USB 3.0 hardware.
- Lock the router to a fixed 2.4 GHz channel — 1, 6, or 11.
- Pick the non-overlapping Zigbee channel for that Wi-Fi channel (1→25, 11→15).
- Set the Zigbee channel, re-pair any battery devices that drop, and let the mesh settle for a day.
- Add a couple of mains-powered Zigbee routers (smart plugs work) so end devices have stronger hops back to the coordinator.
If devices still drop
At that point it's usually mesh, not interference: end devices too far from any router, or a "router" that's actually a cheap bulb with a terrible radio. Map which devices route through what, and drop a real mains-powered repeater between the coordinator and the dead zone.
Channel planning is what gets you a mesh that stops dropping at 2am. The reason it's worth doing is everything you build on top of it — automations only feel reliable when the sensors underneath them are.