Skip to content

Commit cc06c3e

Browse files
committed
feat(matter): necesary IDE options to build matter
1 parent 46f5588 commit cc06c3e

File tree

3 files changed

+73
-0
lines changed

3 files changed

+73
-0
lines changed
1.46 KB
Loading
3.25 KB
Loading

docs/en/matter/matter.rst

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,26 @@ The Matter library provides support for creating Matter-compatible devices inclu
1616

1717
The Matter library is built on top of `ESP Matter SDK <https://github.com/espressif/esp-matter>`_ and provides a high-level Arduino-style interface for creating Matter devices.
1818

19+
Building and Flashing Matter Examples
20+
--------------------------------------
21+
22+
Before uploading any Matter example sketch, it is necessary to configure the Arduino IDE with the following settings:
23+
24+
1. **Partition Scheme**: Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu.
25+
26+
.. image:: ../_static/matter_partition_scheme.png
27+
:alt: "Partition Scheme: Huge APP (3MB No OTA/1MB SPIFFS)"" Arduino IDE menu option
28+
29+
2. **Erase Flash**: Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu.
30+
31+
.. image:: ../_static/matter_erase_flash.png
32+
:alt: Erase All Flash Before Sketch Upload: Enabled" Arduino IDE menu option
33+
34+
These settings are required for the following reasons:
35+
36+
* **Partition Scheme**: Matter firmware requires a large application partition (3MB) to accommodate the Matter stack and application code.
37+
* **Erase Flash**: Erasing flash is necessary to remove any leftover WiFi or Matter configuration from the NVS (Non-Volatile Storage) partition. Without erasing, previous network credentials, Matter fabric information, or device commissioning data may interfere with the new firmware, causing commissioning failures or connectivity issues.
38+
1939
Matter Protocol Overview
2040
************************
2141

@@ -86,6 +106,10 @@ The ``Matter`` class provides the following key methods:
86106
* ``isWi-FiConnected()``: Checks Wi-Fi connection status (if Wi-Fi is enabled)
87107
* ``isThreadConnected()``: Checks Thread connection status (if Thread is enabled)
88108
* ``isDeviceConnected()``: Checks overall device connectivity
109+
* ``isWiFiStationEnabled()``: Checks if WiFi Station mode is supported and enabled
110+
* ``isWiFiAccessPointEnabled()``: Checks if WiFi AP mode is supported and enabled
111+
* ``isThreadEnabled()``: Checks if Thread network is supported and enabled
112+
* ``isBLECommissioningEnabled()``: Checks if BLE commissioning is supported and enabled
89113
* ``decommission()``: Factory resets the device
90114
* ``getManualPairingCode()``: Gets the manual pairing code for commissioning
91115
* ``getOnboardingQRCodeUrl()``: Gets the QR code URL for commissioning
@@ -148,6 +172,55 @@ The library provides specialized endpoint classes for different device types. Ea
148172

149173
ep_*
150174

175+
Matter Examples
176+
---------------
177+
178+
The Matter library includes a comprehensive set of examples demonstrating various device types and use cases. All examples are available in the `ESP Arduino GitHub repository <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples>`_.
179+
180+
**Basic Examples:**
181+
182+
* **Matter Minimum** - The smallest code required to create a Matter-compatible device. Ideal starting point for understanding Matter basics. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterMinimum>`_
183+
* **Matter Status** - Demonstrates how to check enabled Matter features and connectivity status. Implements a basic on/off light and periodically reports capability and connection status. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterStatus>`_
184+
* **Matter Events** - Shows how to monitor and handle Matter events. Provides a comprehensive view of all Matter events during device operation. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterEvents>`_
185+
* **Matter Commission Test** - Tests Matter commissioning functionality with automatic decommissioning after a 30-second delay for continuous testing cycles. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterCommissionTest>`_
186+
187+
**Lighting Examples:**
188+
189+
* **Matter On/Off Light** - Creates a Matter-compatible on/off light device with commissioning, device control via smart home ecosystems, and manual control using a physical button with state persistence. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterOnOffLight>`_
190+
* **Matter Dimmable Light** - Creates a Matter-compatible dimmable light device with brightness control. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterDimmableLight>`_
191+
* **Matter Color Temperature Light** - Creates a Matter-compatible color temperature light device with adjustable color temperature control. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterTemperatureLight>`_
192+
* **Matter Color Light** - Creates a Matter-compatible color light device with RGB color control (HSV color model). `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterColorLight>`_
193+
* **Matter Enhanced Color Light** - Creates a Matter-compatible enhanced color light with color temperature and brightness control. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterEnhancedColorLight>`_
194+
* **Matter Composed Lights** - Creates a Matter node with multiple light endpoints (On/Off Light, Dimmable Light, and Color Light) in a single node. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterComposedLights>`_
195+
* **Matter On Identify** - Implements the Matter Identify cluster callback for an on/off light device, making the LED blink when the device is identified from a Matter app. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterOnIdentify>`_
196+
197+
**Sensor Examples:**
198+
199+
* **Matter Temperature Sensor** - Creates a Matter-compatible temperature sensor device with sensor data reporting to smart home ecosystems. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterTemperatureSensor>`_
200+
* **Matter Humidity Sensor** - Creates a Matter-compatible humidity sensor device with sensor data reporting. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterHumiditySensor>`_
201+
* **Matter Pressure Sensor** - Creates a Matter-compatible pressure sensor device with automatic simulation of pressure readings. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterPressureSensor>`_
202+
* **Matter Contact Sensor** - Creates a Matter-compatible contact sensor device (open/closed state). `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterContactSensor>`_
203+
* **Matter Occupancy Sensor** - Creates a Matter-compatible occupancy sensor device with automatic simulation of occupancy state changes. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterOccupancySensor>`_
204+
* **Matter Water Leak Detector** - Creates a Matter-compatible water leak detector device with automatic simulation of water leak detection state changes. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterWaterLeakDetector>`_
205+
* **Matter Water Freeze Detector** - Creates a Matter-compatible water freeze detector device with automatic simulation of water freeze detection state changes. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterWaterFreezeDetector>`_
206+
* **Matter Rain Sensor** - Creates a Matter-compatible rain sensor device with automatic simulation of rain detection state changes. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterRainSensor>`_
207+
208+
**Control Examples:**
209+
210+
* **Matter Fan** - Creates a Matter-compatible fan device with speed and mode control. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterFan>`_
211+
* **Matter Thermostat** - Creates a Matter-compatible thermostat device with temperature setpoint management and simulated heating/cooling systems with automatic temperature regulation. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterThermostat>`_
212+
* **Matter Temperature Controlled Cabinet** - Creates a Matter-compatible temperature controlled cabinet device with precise temperature setpoint control with min/max limits (temperature_number mode). `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterTemperatureControlledCabinet>`_
213+
* **Matter Temperature Controlled Cabinet Levels** - Creates a Matter-compatible temperature controlled cabinet device using predefined temperature levels (temperature_level mode). `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterTemperatureControlledCabinetLevels>`_
214+
* **Matter On/Off Plugin** - Creates a Matter-compatible on/off plugin unit (power relay) device with state persistence for power control applications. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterOnOffPlugin>`_
215+
* **Matter Dimmable Plugin** - Creates a Matter-compatible dimmable plugin unit (power outlet with level control) device with state persistence for dimmable power control applications. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterDimmablePlugin>`_
216+
* **Matter Smart Button** - Creates a Matter-compatible smart button (generic switch) device that sends button click events to smart home ecosystems and triggers automations. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterSmartButton>`_
217+
* **Matter Window Covering** - Creates a Matter-compatible window covering device with lift and tilt control (blinds, shades) with manual control using a physical button. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterWindowCovering>`_
218+
* **Matter Simple Window Blinds** - A minimal example that only controls lift percentage using a single onGoToLiftPercentage() callback. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterSimpleWidowsBlind>`_
219+
220+
**Advanced Examples:**
221+
222+
* **Matter Lambda Single Callback Many Endpoints** - Demonstrates how to create multiple Matter endpoints in a single node using a shared lambda function callback with capture for efficient callback handling. `View on GitHub <https://github.com/espressif/arduino-esp32/tree/master/libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs>`_
223+
151224
Common Problems and Issues
152225
--------------------------
153226

0 commit comments

Comments
 (0)