# Matter ESP32 All Clusters Example A prototype application that demonstrates device commissioning and cluster control. Please [setup ESP-IDF and CHIP Environment](../../../docs/platforms/esp32/setup_idf_chip.md) and refer [building and commissioning](../../../docs/platforms/esp32/build_app_and_commission.md) guides to get started. --- - [Cluster control](#cluster-control) - [Matter OTA guide](../../../docs/platforms/esp32/ota.md) - [RPC console and Device Tracing](../../../docs/platforms/esp32/rpc_console.md) - [Multiple Network Interfaces](#multiple-network-interfaces) --- ### Cluster control #### onoff To use the Client to send Matter commands, run the built executable and pass it the target cluster name, the target command name as well as an endpoint id. ``` $ ./out/debug/chip-tool onoff on ``` The client will send a single command packet and then exit. #### levelcontrol ```bash Usage: $ ./out/debug/chip-tool levelcontrol move-to-level Level=10 TransitionTime=0 OptionMask=0 OptionOverride=0 ``` ### Multiple Network Interfaces The data model of this example includes a secondary NetworkCommissioning Endpoint with another NetworkCommissioning cluster. The Endpoint Id for the secondary NetworkCommissioning Endpoint is 65534. The secondary NetworkCommissioning Endpoint can be used to manage the driver of extra network interface. For ESP32-C6 DevKits, if `CHIP_DEVICE_CONFIG_ENABLE_WIFI` and `CHIP_DEVICE_CONFIG_ENABLE_THREAD` are both enabled, please set `CONFIG_THREAD_NETWORK_ENDPOINT_ID` to 0 and set `CONFIG_WIFI_NETWORK_ENDPOINT_ID` to 65534, which presents that the NetworkCommissioning cluster in Endpoint 0 will be used for Thread network driver and the same cluster on Endpoint 65534 will be used for Wi-Fi network driver. Or vice versa. For ESP32-Ethernet-Kits, if `CHIP_DEVICE_CONFIG_ENABLE_WIFI` and `CHIP_DEVICE_CONFIG_ENABLE_ETHERNET` are both enabled, please set `CONFIG_ETHERNET_NETWORK_ENDPOINT_ID` to 0 and set `CONFIG_WIFI_NETWORK_ENDPOINT_ID` to 65534, which presents that the NetworkCommissioning cluster in Endpoint 0 will be used for Ethernet network driver and the same cluster on Endpoint 65534 will be used for Wi-Fi network driver. Or vice versa. --- This demo app illustrates controlling OnOff cluster (Server) attributes of an endpoint. For `ESP32-DevKitC`, `ESP32-WROVER-KIT_V4.1` and `ESP32C3-DevKitM`, a GPIO (configurable through `STATUS_LED_GPIO_NUM` in `main/main.cpp`) is updated through the on/off/toggle commands from the `python-controller`. For `M5Stack`, a virtual Green LED on the display is used for the same. If you wish to see the actual effect of the commands on `ESP32-DevKitC`, `ESP32-WROVER-KIT_V4.1`, you will have to connect an external LED to GPIO `STATUS_LED_GPIO_NUM`. For `ESP32C3-DevKitM`, the on-board LED will show the actual effect of the commands.