This project implements a Zigbee End Device (ZED) sensor using the ESP32 platform and ESP-IDF framework. It's designed to connect to a Zigbee network and transmit sensor data from a SEN66 environmental sensor.
- Zigbee End Device implementation
- SEN66 environmental sensor integration
- ESP-IDF development framework
- SEN66 environmental sensor module
- ESP32 zigbee microcontroller (tested with ESP32-H2)
- Open the project in VS Code with Remote Containers
- Build the project using ESP-IDF commands
- Flash to your ESP32 device
The SEN66 sensor connects to the ESP32 via I2C:
- SDA -> GPIO10 (green wire)
- SCL -> GPIO22 (yellow wire)
- VCC -> 3.3V
- GND -> GND
Pins can of course be changed in main/sen66_esp32.c
About SEN66
It includes following sensors:
This project exposes usual clusters:
- Temperature
- Humidity
- PM2.5
- CO2
But also custom clusters that are not defined in the Zigbee standard:
- PM1 (0xFC01)
- PM4 (0xFC02)
- PM10 (0xFC03)
- VOC Index (0xFC04)
- NOx Index (0xFC05)
For these custom clusters, we can't use IDs lower than 0x8000 because they are reserved for the standard clusters. (So we can't use the same IDs as the one defined in the Matter specification)
For now, this device is not yet supported by Zigbee2MQTT. If you want to use it, you can use the external_converters feature.
You can find the definition in the sen66.js file.
All Sensirion's code defined in main/sen66 comes from embedded-i2c-sen66 and is under BSD 3-Clause License