As the title says: are there ESP micro-controllers that are able to communicate over zigbee?
I know that ESPHome now has a zigbee component but would like to get an idea whether someone has already built something and how good it works.
As the title says: are there ESP micro-controllers that are able to communicate over zigbee?
I know that ESPHome now has a zigbee component but would like to get an idea whether someone has already built something and how good it works.
TL;DR: Yes, on the ESP32-C6 and ESP32-H2 (the only ESP32s with a native 802.15.4 radio). ESPHome's native Zigbee component (2026.5.0+) builds end-devices that pair straight into ZHA/zigbee2mqtt. It works for basic sensors today; H2 is the more reliable choice.
Only the ESP32-C6 (WiFi + BLE + 802.15.4) and ESP32-H2 (BLE + 802.15.4, no WiFi) can do Zigbee natively. Classic ESP32/S3/C3 can't, they'd need an external module.
ESPHome's Zigbee component (landed in 2026.5.0) builds Zigbee end-devices: your ESPHome entities show up as Zigbee clusters that ZHA and Z2M auto-recognize when you pair to your existing coordinator. The "$5 ESP32-C6 Zigbee sensor" builds are real.
How well it works, honestly:
Want a router or coordinator instead of an end-device? That's outside ESPHome, use Espressif's esp-zigbee-sdk directly.
ESP32-H2 on ESPHome 2026.5+ for a clean Zigbee sensor; reach for the C6 only if you want WiFi + Zigbee/Thread on one chip, kept as an end-device.
Can you give an example of a non "basic" sensor?
Any sensor that processes and interprets dynamic data instead of merely reporting raw, static measurements.
So template sensors are not supported?
They are supported on the ESP32-C6 and ESP32-H2 (the only ESP32s with a native 802.15.4 radio). ESPHome's Zigbee component (2026.5.0+) builds end-devices that pair straight into ZHA/zigbee2mqtt. On ESP32 it currently exposes binary_sensor and numeric sensor entities, and template sensors work fine.
"non-basic" Anything that isn't a plain binary_sensor or numeric sensor
I recently programmed a C6 to interface my Geiger counter to HA via Zigbee. Quite a bit of stuffing around but I got it going in the end. Had to pass the counts per minute as a temperature since the ESP32 functions in HA are a bit fresh still. Eventually HA will add the appropriate endpoint types and I'll update the device.
For now it is working well and I will put it in an enclosure in the next week or so. Has been running for over a month without fault so far.
This is a plot of the 5-minute running average.
Did not realize I needed a Zigbee Geiger counter until now, so thanks for that ;D. Great build.
The "CPM as a temperature" trick is the right call: on ESP32 the component only maps binary_sensor to binary_input and numeric sensor to analog_input, and the analog one doesn't always surface cleanly in ZHA/Z2M, so borrowing a recognized cluster like temperature reliably gets you a proper sensor entity with a unit. Smart workaround, not a kludge.
If the degrees label bugs you, override the entity's unit_of_measurement and name to CPM on the HA side (or with a small Z2M converter), the temperature cluster just stays the pipe. Drop-in swap once ESPHome adds the proper endpoint types.
Which board did you use?
The back of the board says "nanoESP32-C6 v1.0". It was the ESP32-C6-N4, purchased from Aliexpress.
Thanks. Good pick: the N4's 4MB is plenty for an end-device, and since the Geiger counter skips WiFi, the C6 radio isn't splitting time between WiFi and Zigbee. That contention is what makes some C6 setups flaky, so you've sidestepped the main cause of trouble, which probably explains the rock-solid month. Appreciate the part number. ![]()