This example shows how to configure the Zigbee Router device and use it as a Home Automation (HA) network range extender.
To see if the communication with your Zigbee network works, use the Serial monitor and watch for output there.
Currently, this example supports the following targets.
Supported Targets | ESP32-C6 | ESP32-H2 |
---|
- A USB cable for power supply and programming
- Board (ESP32-H2 or ESP32-C6) as Zigbee router device and upload the Zigbee_Range_Extender example
- Zigbee network / coordinator (Other board with switch examples or Zigbee2mqtt or ZigbeeHomeAssistant like application)
To get more information about the Espressif boards see Espressif Development Kits.
- Before Compile/Verify, select the correct board:
Tools -> Board
. - Select the Coordinator/Router device Zigbee mode:
Tools -> Zigbee mode: Zigbee ZCZR (coordinator/router)
- Select Partition Scheme for Zigbee:
Tools -> Partition Scheme: Zigbee 4MB with spiffs
(select correct size) - Select the COM port:
Tools -> Port: xxx
where thexxx
is the detected COM port. - Optional: Set debug level to verbose to see all logs from Zigbee stack:
Tools -> Core Debug Level: Verbose
.
If the Router device flashed with this example is not connecting to the coordinator, erase the flash of the Router device before flashing the example to the board. It is recommended to do this if you re-flash the coordinator. You can do the following:
- In the Arduino IDE go to the Tools menu and set
Erase All Flash Before Sketch Upload
toEnabled
. - Add to the sketch
Zigbee.factoryReset();
to reset the device and Zigbee stack.
By default, the coordinator network is closed after rebooting or flashing new firmware. To open the network you have 2 options:
- Open network after reboot by setting
Zigbee.setRebootOpenNetwork(time);
before callingZigbee.begin();
. - In application you can anytime call
Zigbee.openNetwork(time);
to open the network for devices to join.
Important: Make sure you are using a good quality USB cable and that you have a reliable power source
- LED not blinking: Check the wiring connection and the IO selection.
- Programming Fail: If the programming/flash procedure fails, try reducing the serial connection speed.
- COM port not detected: Check the USB cable and the USB to Serial driver installation.
If the error persists, you can ask for help at the official ESP32 forum or see Contribute.
To know how to contribute to this project, see How to contribute.
If you have any feedback or issue to report on this example/library, please open an issue or fix it by creating a new PR. Contributions are more than welcome!
Before creating a new issue, be sure to try Troubleshooting and check if the same issue was already created by someone else.
- Official ESP32 Forum: Link
- Arduino-ESP32 Official Repository: espressif/arduino-esp32
- ESP32-C6 Datasheet: Link to datasheet
- ESP32-H2 Datasheet: Link to datasheet
- Official ESP-IDF documentation: ESP-IDF