To use Zigbee devices on your home network or the Internet you will need a Zigbee Gateway.
This Gateway usually acts as a Zigbee coordinator and also a Zigbee to TCP/IP gateway.
Commercial gateways like the Sonoff gateway connect the Zigbee network to the Sonoff cloud network and the same is true of other commercial Gateways.
This is fine if you are happy to manage your devices using the cloud App provided by the manufacturer.
However if you want local control and want to use home automations systems like Home Assistant then you require a different Gateway.
In this tutorial we will cover 3 options that are in common use on home networks. They are
The Zigbbe2MQTT gateway is a software application that needs to be installed on a computer (e.g raspberry Pi).
It requires a Zigbee radio dongle to work and it functions as a Zigbee coordinator and Converts Zigbee messages to MQTT Messages and vice versa.
To work you also need an MQTT broker on your network. You could use a cloud broker or even a test broker, but it is almost always used with a local broker.
Because it converts the Zigbee messages to MQTT messages the gateway doesn’t need to be installed on the same computer as the one running your home automation system (e.g Home Assistant).
Zigbee to Tasmota
What is Tasmota?-
Tasmota is a free software / firmware that makes it possible to operate SmartHome devices and solutions without connecting them to a cloud.
This is a less common method and a newer method is to use the Tasmota 2 MQTT Gateway.
The Tasmota 2 MQTT gateway is modelled on the Zigbbe2MQTT gateway, but it runs on a dedicated gateway device and doesn’t require a physical connection to a computer.
It is obtained by flashing an existing commercial gateway with the Tasmota firmware.
In my case I used a Sonoff Zigbee gateway.
The reason I went for this option is because the sonoff Zigbee gateway has a longer range than the CC2531 dongle which I was using with Zigbee2MQTT.
In addition I can position this anywhere I want rather than being plugged directly into the Home Assistant machine.
A major drawback of this method is that you will need to create the code to detect the devices.
This is a good option if you are developing your own Home automation platform using node-red for example.
ZHA is a home assistant integration that functions as a Zigbee coordinator and allows you to control Zigbee devices in Home assistant.
If you are using Home assistant as your home automation platform then it is the obvious choice.
Just as with the Zigbee2MQTT gateway you need a Zigbee wireless dongle to handle the Zigbee communication.
The documentation suggests several recommend dongles as shown in the screen shot below
You can see that the dongle is flashed as a Zigbee coordinator. This will need to be plugged into the computer that runs Home Assistant.
It is also possible to use a flashed Sonoff bridge but it is not a recommended option but is covered here.
Common Questions and Answers
Q- Can you manage Zigbee devices using just Zigbee
A- Yes in some cases. As an example I have a Salus Zigbee thermostat which has a Local control device that lets you control it even if the home network is down.
Q- Can you configure Zigbee Devices from Home Assistant.
A- No creating Zigbee groups, renaming devices requires management software. I currently have a node-red management flow in development that is modelled on the zigbee2mqtt admin flow.
If you want to flash a sonoff gateway with the tasmota Gateway then here are the resources I used:
- Tasmota-Zigbee Docs
- Flashing Tasmota On a Sonoff Zigbee Bridge –Video
- video- How to flash with Tasmota and setup in Home Assistant with ZHA
- This clearly describes both methods. using tasmota2mqtt and ZHA.
Zigbee2MQTT- Software coordinator and MQTT gateway, it requires a Zigbee wireless dongle + MQTT broker
Tasmota2MQTT – Hardware/software coordinator and Tasmota/MQTT gateway requires flashed Zigbee coordinator + MQTT broker.
ZHA– Recommend dongle coordinator.