What is this post for?
More people are coming fresh to Home Assistant (and the Forum) after buying either a Yellow or a Green plus SkyConnect. When they want to add a few sensors, Zigbee seems the obvious choice - but it may not be the best option. Building a reliable Zigbee network can involve a considerable amount of time and expense, both of which may be unnecessary just to connect A to B.
This post is intended to clarify what Zigbee is good at… and what it does less well.
Zigbee is not wi-fi or RF. Signals are very weak and they don’t travel in a direct line. They cross distances by being passed from one mains-powered device - typically a light bulb or plug - to the next. At each stage of the journey the mains-powered device (the router) will evaluate its connections with its neighbours and select the best one, so that each message may take a different (and sometimes quite roundabout) route, avoiding obstacles and interference from other equipment.
Ideally…
Zigbee works best in a house where every light bulb and plug is a router. These form a dense mesh of connections which battery-powered sensors (end devices) can use to relay messages back to HA.
Here the oval shapes are routers; the circles are battery-powered sensors and the rectangle in the centre is the coordinator. A message from A (a motion sensor) to B (the coordinator in the Home Assistant server) has a very large number of routes it can take depending on changing traffic and interference. This makes it very resilient.
None of the hops is likely to be very long. In theory and ideal conditions the Zigbee signal can travel a good way, but in real conditions, with walls and furniture and plants and people and animals getting in the way it’s more likely to be something in the order of 10-15 feet.
Less ideal…
You can send a Zigbee message from A to B along a single path, with a chain of routers connecting sensor and coordinator.
This works… sometimes, depending of the layout of your house, the routers being close enough together and how much interference your neighbour’s wi-fi is blasting out. Even if you do get lucky, a line of three routers gives you four possible points of failure. Maintaining it may be frustrating.
Performance may be improved by adding a more routers.
… but this simple A-B connection is not the sort of application Zigbee is designed for.
Common questions
A number of questions keep popping up on the forum. They’re often followed by a long discussion of hardware options, when the real answer should be: “Sorry, Zigbee’s just not good at that.”
Q: My Zigbee devices worked with a [insert manufacturer’s name here] hub. Why don’t they work with my new SkyConnect stick?
The hub may have had a bigger antenna, which masked weaknesses in your Zigbee network (see next question).
Also, most manufacturers make damn sure their devices work with their own hubs. Research them on the forum - as vanilla Zigbee devices they may need custom device handlers.
Q: Zigbee is unreliable connecting A to B - can I get a bigger antenna with more range?
If you like. It won’t fix your problem, but it may mask it.
Here, the co-ordinator (B) connects with router C but it can’t reach sensor A. It’s too far away to connect directly and there is an obstruction blocking the path between C and A. A more powerful antenna might allow it to connect directly with A but this doesn’t really solve the problem - to do that you need another router (D) to provide a way round the obstruction.
Q: Do I really have to have routers?
Actually, no. If you’re lucky. A co-ordinator may connect directly with a sensor if conditions are good, but it would have to be pretty close. A co-ordinator can only connect directly with a limited number of devices.
Q: Would changing to a different integration help?
No.
Using a different integration sometimes helps when you are dealing with a problem device - Z2M has more custom device handlers than ZHA - but Zigbee is Zigbee - the network is the same whatever the integration with HA.
Q: Should I change Zigbee channels?
Finding a channel that doesn’t clash with wi-fi can improve any Zigbee network, but it isn’t a cure-all. There’s a good blog post on choosing a channel here.
If you’re using ZHA you can check channel usage by going to the ZHA card in Devices & Services, clicking on the three dots next to Configure and selecting Download diagnostics. Right at the end of the file you get will be something like this:
"energy_scan": {
"11": 73.50699819621309,
"12": 3.2311094587038967,
"13": 70.89933442360993,
"14": 91.05606689948522,
"15": 85.82097888710312,
"16": 65.26028270288712,
"17": 7.659755505061292,
"18": 43.057636198227904,
"19": 1.1664179210724432,
"20": 62.257682586134884,
"21": 2.509919386096536,
"22": 3.6632469452765037,
"23": 4.15070068297423,
"24": 0.9017765778954641,
"25": 1.5075412082833717,
"26": 21.09014924761344
The numbers show the percentage of noise on each channel, including Zigbee traffic, wi-fi traffic (your neighbour’s as well as yours) and plain old interference.
With ZHA changing channels is no longer the ordeal it once was. Providing they are powered on, routers shoud detect the channel change and shift automatically. Most end-devices will too - you will probably just have to re-pair a few contact sensors. It doesn’t happen immediately, though - wait a couple of hours before you panic.
If you only want to make a few simple connections, what are the alternatives?
Many products have their own integrations, but here are a few generic approaches.
This is where other members of the community can chip in to add their favourites…
Tasmota
Uses wi-fi to connect with devices.
ESPHome
Uses wi-fi to connect with devices.
Z-Wave
Another mesh system like Zigbee.
Bluetooth
RF
RF integrations are mostly for specific products (there’s a list of HA integrations here).
Using a device like the Broadlink RM4 Pro you can send RF commands to a large number of devices over quite a wide area. Communication is one-way, though, as with a remote control. The Broadlink connects with HA via wi-fi.
IR
Again, check the list of product integrations.
One-way line of sight only, as with a remote control.