All Devices App for ESP32#

This example demonstrates a dynamic Matter device application that allows you to configure the device type at runtime via CLI commands. The selected device type is persisted in NVS (Non-Volatile Storage) and automatically restored on subsequent boots.

Supported Hardware#

This application supports WiFi-based ESP32 SoCs only

Note: Thread devices are not supported by this example.

Building the Example#

Please setup ESP-IDF and CHIP Environment and refer building and commissioning guides to get started.

Usage#

First Boot (No Stored Device Type)#

On first boot, the application will display:

==================================================
No stored device type found.
Use command: devtype set <device-type>
==================================================

Setting a Device Type#

Use the shell command to set and initialize a device type:

devtype set <device-type>

Example:

devtype set contact-sensor

On successful initialization, the device type is saved to NVS and the Matter server starts.

Subsequent Boots#

On subsequent boots, the application automatically:

  1. Reads the stored device type from NVS

  2. Initializes the device with that type

  3. Starts the Matter server

==================================================
Found stored device type: contact-sensor
Auto-initializing...
==================================================

Supported Device Types#

The available device types depend on what’s registered in the DeviceFactory. Check all-devices-common/devices/device-factory/DeviceFactory.h for the list of supported types.

Changing Device Type (Factory Reset)#

To change the device type after it has been set, you need to perform a factory reset to clear the NVS:

Using Matter Shell#

matter device factoryreset

After factory reset, reboot the device and set a new device type using the devtype set command.