A custom ZigBee device designed for adding home automations to your monitor / workstation setup based on the ESP32-C6 MCU.
- CEC Control via HDMI:
- Switch monitor input sources
- Control power state
- Adjust backlight brightness
- Ambient Light Sensor:
- VEML7700 is used for accurate ambient light measurements
- IR Transmitter (NEC Protocol):
- Supports sending custom commands over ZigBee for controlling various devices (Speakers, KVM switches, ...)
- ZigBee Communication:
- External converter for Zigbee2Mqtt
- Allows for integration into HomeAssistant for easy automation
- Low power usage (average of 1mah, could be further reduced with less aggressive CEC polling & ambient light measurements)
- External converter for Zigbee2Mqtt
- Internal temperature (ESP32-C6 sensor), only accurate if chip is hot:
- Endpoint:
10
- Clusters: Basic, identify cluster and temperature measurement (HA profile) as server side. Identify cluster as client side.
- Endpoint:
- Ambient light (VEML7700):
- Endpoint:
11
- Clusters: Basic, identify and illuminance clusters (HA profile) as server side.
- Endpoint:
- Monitor DDC:
- Endpoint:
12
- Clusters: Basic, identify and custom cluster for ddc control with the following attributes as server side:
0x0000 R/W, Reporting, 16bit enum
: Input select (see ddc.h for enum values)0x0001 R/W, Reporting, 16bit unsigned
: Brightness (in percent)0x0002 R/W, Reporting, 8bit enum
: Power mode
- Endpoint:
- IR Emitter:
- Endpoint:
13
- Clusters: Basic, identify and custom cluster for ir commands without attributes but a custom command as server side:
0x0000, payload: 4 bytes, bytes 1 & 2: NEC address (little endian), bytes 3 & 4: NEC command (little endian)
: IR command
- Endpoint:
The Tenstar Robot ESP32-C6 Supermini (AliExpress link) was used because of its small size and the inclusion of an RGB LED to display the current system status.
Pin | Usage |
---|---|
0 | I2C SDA (HDMI CEC [I recommend using a logic level shifter, HDMI uses 5v] & VEML7700) |
1 | I2C SCL (HDMI CEC [I recommend using a logic level shifter, HDMI uses 5v] & VEML7700) |
6 | IR LED Cathode |
7 | IR LED Anode (use a properly sized resistor!) |
8 (Built in RGB LED) | WS2812 LED to show current ZigBee Status (green = reset successful, red = connecting, off = ready) |
9 (Boot button) | Reset / Re-pair ZigBee |
15 (Built in LED) | on = awake, off = light sleep |
To house all the electronics I have designed a simple 3d printable case. The files for which can be found in the project root. See pictures & screenshots below for some impressions.



