ESP32-C6 with OH

Hi there,
is there anyone who has seccessfull connected a ESP32-C6 to OH anc can use it as a switch (for example) ?
Or has some Links/HowTos ?

Exactly de model C6? Or any Esp32? Because I have some of them using ESPHOME and connecting through MQTT.


C6, becouse it has hardware zigbee support.

okey, mqtt may be a workarround, thanks for the tip.
but i would realy prefer zigbee. now when esp32 provides it

I have one working as a toggle switch. But it is very EARLY.

oh cool. congratulations ! :slight_smile:
which example did you used and what did you changed ?

i use the ha-light example. OH sees the ESP, but at this moment, ESP-Log says: network steering error (something like this).
can add the ESP to Things-List in OH, but with error: could not be discovered

The network steering error means its not connecting to the network.
I used the esp_HA_customized_switch. And changed esp_HA_customized_switch.c per
ESP32-C6 Unable to join zigbee network (IDFGH-9286) · Issue #10662 · espressif/esp-idf · GitHub adding modelid[] and manufname[]

This let zigbee2mqtt see it. And add this as a custom converter to zigbee2mqtt

const fz = require('zigbee-herdsman-converters/converters/fromZigbee');
const tz = require('zigbee-herdsman-converters/converters/toZigbee');
const exposes = require('zigbee-herdsman-converters/lib/exposes');
const reporting = require('zigbee-herdsman-converters/lib/reporting');
const extend = require('zigbee-herdsman-converters/lib/extend');
const e = exposes.presets;
const ea = exposes.access;

const definition = {
    zigbeeModel: ['ESP32C6.Light'],
    model: 'ESP32C6.Light',  // works leftover from trying light exampes
    vendor: 'Espressif',
    description: 'light_bulb',
    fromZigbee: [fz.on_off],
    toZigbee: [tz.on_off],
    exposes: [e.switch()],
    // The configure method below is needed to make the device reports on/off state changes
    // when the device is controlled manually through the button on it.
    configure: async (device, coordinatorEndpoint, logger) => {
        const endpoint = device.getEndpoint(1);
        await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
        await reporting.onOff(endpoint);
module.exports = definition;

It’s a start. when the arudino support is released the c6 and H2 are going to be very cool. Cheap DIY zigbee stuff.

okey, thanks. for the code.
but do i understand right? its only for “mqtt”, not a native zigbee3 handled by OH ?

Yes I use zigbee2mqtt. I am on OH 1.8 so I do not use the OH zigbee.