Don’t forget that the first post in a community guide is a wiki - feel free to add to it or correct it.
This guide was written with reference to:
Core 2023.11.3
Supervisor 2023.11.6
Operating System 11.2
Frontend 20231030.2
Summary
This post is aimed at newcomers to Zigbee - and possibly to Home Assistant - who have stumbled into the wild west of Zigbee devices and manufacturers. It does not recommend particular products; instead it advocates a cautious approach to buying. When it comes to cheap devices from China it really is a case of “buyer beware”. If you only take one thing away from reading this, it should be do your research.
Zigbee
Zigbee is a low-bandwidth communication protocol that relies on using small low-power digital radios to connect compatible devices to local Zigbee wireless private area networks. ZHA will create a single Zigbee network to which you can then pair/join most Zigbee-based devices that are made for home automation and lighting. In hardware terms of the hardware equipment needed usually consists of a USB radio adapter (the Zigbee Coordinator) plugged directly into the machine running HA.
You have a Zigbee Gateway application running that uses the Zigbee Coordinator as a radio and controller to create a Zigbee network as a local PAN (Private Area Network) it will automatically create a Zigbee network and you will be able to join/pair any Zigbee Router devices (normally mains-powered devices which each act as repeaters/extenders) and Zigbee End Devices (usually battery powered-devices that do not act as repeaters/extender).
Zigbee devices use low-power radios and therefore rely heavily on mesh networking to overcome the limitations of short range and poor radio propagation (i.e. very bad signal penetration of building materials). All of your Zigbee Router devices will relay messages to and from other Zigbee Router as well as battery-powered sensors and other non-router devices. Since every Zigbee router device (the mains-powered ones) can connect with every other one it makes a Zigbee network mesh very resilient as there are usually many possible paths for messages to take, and although the signal is weak it can find its way round walls and other obstructions.
(This is a generalisation, of course. In practice not all mains-powered devices act as routers and some routers are more effective than others - plugs and wall switches tend to have a more powerful signal than lightbulbs, for example. Still, you get the idea.)
Although Zigbee is respectable standard, maintained by the Connectivity Standards Alliance, it is also an open standard, which means that any manufacturer can put the name on the box. (In contrast, Zwave devices require certification from the Zwave Alliance, for which there is a fee.) In recent months there has been an explosion of inexpensive devices from China. The simpler ones (contact sensors, buttons) usually work as expected; more complicated devices (thermostats, TRVs) may not.
Zigbee Gateway integrations
You need a Zigbee Gateway. Home Assistant’s own built-in ZHA integration and Zigbee2MQTT which are two most popular open-source and hardware-independent Zigbee Gateway implementationsfor Home Assistant integration will allow you do use almost any Zigbee device with Home Assistant, and with either one of those you will be able to mix devices from different manufacturers. Which one of those you choose use in the end is a matter of personal preference (some people even use both of them, but they then need to use two separate Zigbee Coordinator adapters and device can not be on both networks at the same time). Both are equally stable. Whichever one you choose, the Zigbee protocol is the same.
Zigbee Home Automation (or “ZHA” for short) is the name of Home Assistant’s native Zigbee Gateway integration (built-in open-source component that is part of Home Assistant Core) . If you buy the official Home Assistant SkyConnect / Home Assistant Connect ZBT-1 Zigbee Coordinator adapter, then it will be installed by default; with a different brand/type of Zigbee Coordinator the installation and device discovery is still very simple through the GUI. If a device follow the standard Zigbee specification then will work with out-of-the-box with the ZHA integration. In practice icompliance with the standard Zigbee specification is less common than you might think and many devices need custom device handlers (also known as quirks) for the ZHA integration. In most cases such ZHA Device handlers (quirks) will be included for most common/popular devices in the latest release of the integration, but very new or odder types of devices may have missing features initially so you will need to submit a device support request and help provide information needed to develop new/additional ZHA Device handlers or extend existing zha quirks. More details here.
Zigbee2MQTT is an open source gateway application for controlling Zigbee networks - in other words, it performs the same function as (say) a Philips Hue bridge but it is not restricted to any particular manufacurer’s devices. It works well with HA and with other smart home systems. If you wish you can run it on a machine separate from your HA server - which means your lights will still work while HA is being restarted. As the name suggests, it needs a MQTT broker, which makes it more complicated to set up and maintain than ZHA, however Z2M supports more non-compliant devices. More details here.
Propriatory and commercial closed-source Zigbee Gateways/Bridges/Hubs/Controllers
A lot of manufacturers will suggest that you use their proprietary gateway/bridge/hub/controller. There are pros and cons with doing so. You will be restricted to using one manufacturer’s devices, but on the other hand you can resonably expect them to work with their brand of devices (or at least you will know who to complain to). This can be a good starting point with Zigbee if you only bug a few devices as you can always move all Zigbee devices you bought to either that built-in native ZHA or Zigbee2MQTT later. But see comments below. It’s certainly not a good idea to use more than one hub - things can get very messy and the best practice is always to consolidate all Zigbee devices to a single Zigbee gateway/coordinator if possible.
Do your research
There is a list of recommended Zigbee radio adapters in the HA docs, but do not just go out and buy the first radio adapter you see on that list. Generally you do not want to buy a radio adapter that is based on an old chip and is no longer getting firmware updates or one that uses a radio type/manufacturer that is not specificlly recommend for the Zigbee integration that you will use.
The Zigbee Device Compatibility Repository is a good starting point for devices of all kinds. It will give you an idea of whether a gadget works with ZHA or Z2M, but it’s user compiled so further checks are a good idea.
If you’re using Z2M, their webpage has a database of supported devices (with pictures - very useful).
If you’re using ZHA, have a look at the GitHub device handler issues page. This will tell you what devices other people have requested support for - and whether support has been added. It will also give you a good idea of which devices are problematic.
Above all, before you part with your credit card number, search this forum and ask questions. There may be a few ranters but someone somewhere will probably already have tried out the device you’re considering.
In January 2024 about half the problem devices forum members posted about were Tuya. Just saying.
A final thought
End devices - switches, contact sensors, movement sensors etc. - are the exciting part of a Zigbee network but they won’t work properly without plenty of routers. Build the backbone of your network first - lights, plugs, wall sockets, mains-powered devices generally - then add the fun stuff.
Other Zigbee guides