Matter ESP32 Water Heater Example#
This example demonstrates the Matter Water Heater application on ESP platforms.
Please setup ESP-IDF and CHIP Environment and refer building and commissioning guides to get started.
Building the Example Application#
Building the example application requires the use of the Espressif ESP32 IoT Development Framework and the xtensa-esp32-elf toolchain for ESP32 modules or the riscv-esp32-elf toolchain for ESP32C3 modules.
The VSCode devcontainer has these components pre-installed, so you can skip this step. To install these components manually, follow these steps:
Clone the Espressif ESP-IDF and checkout the appropriate release
$ mkdir ${HOME}/tools $ cd ${HOME}/tools $ git clone https://github.com/espressif/esp-idf.git $ cd esp-idf $ git checkout v5.1.2 $ git submodule update --init $ ./install.shInstall ninja-build
$ sudo apt-get install ninja-build
Currently building in VSCode using ESP-IDF Visual Studio Code Extension v1.6.0 is not supported, please build the application using idf.py script.
To build the application, follow these steps:#
If you are using a devcontainer, activate the Matter environment by running the following command:
$ source scripts/activate.sh
If you are not using a devcontainer, activate the ESP-IDF environment by running the following command:
$ cd ${HOME} $ mkdir -p ${HOME}/tools $ cd ${HOME}/tools $ git clone https://github.com/espressif/esp-idf.git $ cd esp-idf $ git checkout v5.1.2 $ git submodule update --init $ export IDF_PATH=${HOME}/tools/esp-idf $ ./install.sh $ . ./export.shIn the root of the example directory, sync submodules
$ cd examples/water-heater-app/esp32 $ git submodule update --initBuild the example:
$ idf.py set-target {TARGET} $ idf.py buildwhere {TARGET} can be
esp32,esp32c3,esp32c6,esp32h2, etc.After building the application, to flash it outside of VSCode, connect your device via USB. Then run the following command to flash the demo application onto the device and then monitor its output. If necessary, replace
/dev/tty.SLAB_USBtoUART(MacOS) with the correct USB device name for your system(like/dev/ttyUSB0on Linux). Note that sometimes you might have to press and hold thebootbutton on the device while it’s trying to connect before flashing. For ESP32-DevKitC, use/dev/ttyUSB0by default.$ idf.py -p /dev/tty.SLAB_USBtoUART flash monitor
Note: Some users might have to install the VCP driver before the device shows up on
/dev/tty.Quit the monitor by hitting
Ctrl+].Note: You can see a menu of various monitor commands by hitting
Ctrl+t Ctrl+hwhile the monitor is running.If desired, the monitor can be run again like so:
$ idf.py -p /dev/tty.SLAB_USBtoUART monitor
Commissioning and Control#
Refer to the main Water Heater README for general information about the Water Heater application.
For commissioning and controlling the device, refer to the chip-tool documentation or the examples in the main Water Heater Linux README.