From 46f55887cd3f11dfc16b7afc13c2195df44c6ab9 Mon Sep 17 00:00:00 2001 From: SuGlider Date: Sat, 13 Dec 2025 14:36:54 -0300 Subject: [PATCH 01/28] feat(matter): adds ways to check matter features in execution time --- libraries/Matter/src/Matter.cpp | 60 ++++++++++++++++++++++++++++++++- libraries/Matter/src/Matter.h | 8 +++++ 2 files changed, 67 insertions(+), 1 deletion(-) diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp index 5ddacc1622c..c486599532e 100644 --- a/libraries/Matter/src/Matter.cpp +++ b/libraries/Matter/src/Matter.cpp @@ -175,9 +175,67 @@ void ArduinoMatter::begin() { } } +// Network and Commissioning Capability Queries +bool ArduinoMatter::isWiFiStationEnabled() { + // Check hardware support (SOC capabilities) AND Matter configuration +#ifdef SOC_WIFI_SUPPORTED + #if CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION + return true; + #else + return false; + #endif +#else + return false; +#endif +} + +bool ArduinoMatter::isWiFiAccessPointEnabled() { + // Check hardware support (SOC capabilities) AND Matter configuration +#ifdef SOC_WIFI_SUPPORTED + #if CHIP_DEVICE_CONFIG_ENABLE_WIFI_AP + return true; + #else + return false; + #endif +#else + return false; +#endif +} + +bool ArduinoMatter::isThreadEnabled() { + // Check hardware support (SOC capabilities) AND Matter configuration + // Thread requires IEEE 802.15.4 radio support (ESP32-H2, ESP32-C6, ESP32-C5) + // For now, we check Matter configuration as hardware detection is complex +#if CONFIG_ENABLE_MATTER_OVER_THREAD || CHIP_DEVICE_CONFIG_ENABLE_THREAD + return true; +#else + return false; +#endif +} + +bool ArduinoMatter::isBLECommissioningEnabled() { + // Check hardware support (SOC capabilities) AND Matter/ESP configuration + // BLE commissioning requires: SOC BLE support AND (CHIPoBLE or NimBLE enabled) +#ifdef SOC_BLE_SUPPORTED + #if CONFIG_NETWORK_LAYER_BLE || CONFIG_ENABLE_CHIPOBLE + return true; + #else + // Also check if BLE stack is enabled (Bluedroid or NimBLE) + #if defined(CONFIG_BLUEDROID_ENABLED) || defined(CONFIG_NIMBLE_ENABLED) + return true; + #else + return false; + #endif + #endif +#else + return false; +#endif +} + + #if CHIP_DEVICE_CONFIG_ENABLE_THREAD bool ArduinoMatter::isThreadConnected() { - return false; // Thread Network TBD + return chip::DeviceLayer::ConnectivityMgr().IsThreadAttached(); } #endif diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index 73b3b35de62..8672e4ba785 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -179,6 +179,14 @@ class ArduinoMatter { return String("https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT:Y.K9042C00KA0648G00"); } static void begin(); + + // Network and Commissioning Capability Queries + // These methods check both hardware support (SOC capabilities) and Matter configuration + static bool isWiFiStationEnabled(); // Check if WiFi Station mode is supported and enabled + static bool isWiFiAccessPointEnabled(); // Check if WiFi AP mode is supported and enabled + static bool isThreadEnabled(); // Check if Thread network is supported and enabled + static bool isBLECommissioningEnabled(); // Check if BLE commissioning is supported and enabled + static bool isDeviceCommissioned(); #if CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION static bool isWiFiConnected(); From cc06c3e5e1c3d80cf3355687300f5263477f198d Mon Sep 17 00:00:00 2001 From: SuGlider Date: Sun, 14 Dec 2025 17:20:24 -0300 Subject: [PATCH 02/28] feat(matter): necesary IDE options to build matter --- docs/_static/matter_erase_flash.png | Bin 0 -> 1493 bytes docs/_static/matter_partition_scheme.png | Bin 0 -> 3329 bytes docs/en/matter/matter.rst | 73 +++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100644 docs/_static/matter_erase_flash.png create mode 100644 docs/_static/matter_partition_scheme.png diff --git a/docs/_static/matter_erase_flash.png b/docs/_static/matter_erase_flash.png new file mode 100644 index 0000000000000000000000000000000000000000..621fbe9a5b2fb1c2b38e6a60af4c6ab00adc07a4 GIT binary patch literal 1493 zcmb8v`8yN{7zgkfE5@~rSV`<0*^pt(7K);oMy?Dwa$l`$6pApE=5R637QifwdFd7C1CxNSV{y*rkiHRNM zMb&h$AYojv8*aSE1oo)YLN0NZVXQ50&JM~|?1_rix;ZW|F*kD3OHAV3oipasKB;i` zt_bam1i1-nyLU)to}$348};~z#r~dz@ys;^Rj(Y|mI6F(gvWI?5M>-|U_}tOQ-!ux zrh5N$G1s=Y=a5LGh|N|qGf~r(8*G1Uh_K;zKOaV5FB_C)nO}^$AgBkAMk{3879>$g zn}JCh-_K`J3$j!{O`>YQ_aHdoY%X!<9k_NZ9?XUulT{R+hd?0W$w`0ZB0fKuKv3?t zpX2EH|GHpwkMU3XH8scQ-4)ad>m_wxt0#t~oM&LvtN1lzn2pd~8% znn~nr;uSNOP5Ku{iD6<-XI`#9i{`9J>AuN6Q__0N%@Q;?v1?K1{oR4b5-UwZ`Mrya zWz9_H3WviXHk&Vz+}tT2r}8DNz1|uEpT<1doElD!^RLofNv_K!TXB&obuK>Z!An%9 z^d8}cuJO0yk|1}>&7$33rSw&ilr-5UxdiRo7oDdEn*NA3u9Zues2#T|Ykpmzs0`Qn z85RZ-jY7gtmNS3hd#S$>HzG=p@`BKTj6wk#O07ye9Fz=fwp%7DL$2!A%t{p);&W~1 z?mH~e*F?)tPMT-c*Bd9s$H!AK0eVw@K>?7^yCOZr%`nr%B z@*=6?Yb(*<0+6T#r`x9ux!xrRZ5-(m`m&OBc&_1TE-Lc@ko6dTCJ0%>s zYY7_?&?L;>V&q5eNwh2VK^jt<`s_N5FuB9XvZ` zv=p&(VzGFa!5f}R(a7NnOEkV9aMx&{B?CU$sG17aI179MbyWc8JbRDopD%`P*<(oL z!|<>?vej7KFoSS!Gr$1CR{A^M!<~}SNMHUFSty7;SP6bKk3I3_zQ2@k%Mp#TUa2!D2<(Seo|;yY#As+#Ua5ay{#?N(#fx)fHKAS^x9gg zBgd^N_mXL^u6Ea#Egbh$$1{;K+1*#hh3m2`y%2~nEfb$g+#1xY{ zSNHPLiI~wnoSo|IHS8o-cPadQ8#rB?*Nem!s!iCKT4Lkk8Wqiy>Q}WQ4{nn@&2Eve zbY49h*~_c7BRFizad2d9)xbO7`iM4l{LL}}FGjabo_pC8Rq@wG#rW&Iyx&^wi<3NO z19qw^=Eqdu@`HW%+|Z-QO7SVoi|>NGm<6oz5K|A#Ss3w|JDpz{U}k;|S}KBg$Os|t z{cs@Rcp*6BbSehh`3en#2TPGD=}!9s!2+DLu_Q3Yi2Pp=OQeP1-$kA6Ir!56YYQBf If$>ZE7lLuXh5!Hn literal 0 HcmV?d00001 diff --git a/docs/_static/matter_partition_scheme.png b/docs/_static/matter_partition_scheme.png new file mode 100644 index 0000000000000000000000000000000000000000..f835e8b72685bc33430ae84e794d77a83c87c140 GIT binary patch literal 3329 zcma)9cT`h(77mKi!3av1P!y380t1B5q?bSd0fB);0tr<}NCF8+8L5i2p*LYHj9BO> z-5^~f1Q3v-A~IBm5&?nGHq3fvchA{9Xa9Kb-S6J}`|f?;AMbqcwjIKpk6Vlz008h= zT9{k`0NC!aVmZ!}tUKs_yd>+vM!aHf1gPkjSY!cqA43~M0H8XJXAgaXg}Lw+u0#NU zzvJj)>%o;_SO*gQ99>8*Hr6mNT%ZaXgY(3yPy+F+ZU8{nfPzPR1z<@aPppq$ke>W% zGgThshtZRF*052v!5d?J{Vc)>Sch5D`Yv zllhAn#)^;9U>SW~0>&G5#l-AK2Mg)R_>xF?7#K_@lU2y-Dma1<7^1DM4OUeHtEnlo zI+TfFK_oOqIfy9xgTMq!^dk7-Nq)E>&=Dcp6Bk0#lL-m&!@#`J-Wr}5jE1r&S{ApzkDM;}Xpw(gO#h!5*1NKzzm++X>2GzhK`cqhEbWxC@^}CMp5vA#hK>}} za-r=VadWZ65{80wqWcTUUd?;*>0Tg7yARhqNVgS1ZY73-l7D29h4MaV9v{7qcwjua zF6ympp)I__v+)ds?bW~(3~+TyT7cN4d<6Cn(|(${?Tyu3Jq{~-;)rzmxPPz|IW;u8 zv$LZe1LBOSVhbAPVK+R*J{=u@EBz<|F^Oa0xD;s_InEf+bzYz}tBUrz#mU9$7dJMs zIK^%_CL&|RLhaqBfTvl_nhF2ys3V2(#k6%{!sP*H*TT)%8B7TqtfD^5(zCCP0of#| zlr_s#pA(vq^1aGuFnauCba>3yj_uWFB5DtufrTriUq_Ygn%)UP0KD?Dx#I)zA}xF4g`VLfK9!Ri z>?!)5b-0C48n#QlB~L7TSvaAN?zEZP^I1nPuXIMhxII3Fs&~2P>=IPDFlAhf4&^a! zUlYNWQu%prc*Pz*tZoN%PV`7@2G_T3PeKuZ8=F_F-kpe?__L$PcZ}^tQqA2z50rk- zYZh>0S2bJxbhBq_erxc6;rci#ZQNB8+|c~gLHed|aRxkJ<|qsZXS+CRitXoQTW|=P(DC?Sza7S>*`x^ zo~)g3vXM?cUiZ{)w&rxsqlJPpg? z+8AZiTFKlZP09{(*}vgzROFxPhW%yk4O% z%HO%26(v5F4(KxDLz?X_(;Xx4UfQZ3zMzJ5#8xT1=u5rrJGP~Eq3xmo&A(q@=sCU> zZpNz{lp?@Ye5M;Vs&6)~#OIeMxYB4Gq?NGxWm%Hoqs5br)H?equz~y)4V-v7qNkmr z&GBJcHY-GMa{+j1{aGA$CG`MywW$hPeg@Mc08Ky~Zk*XEn&C=9$)ecYp zHTYGMe$rZd`kK@h6lJ{_`beq0s!`GXYA&~3noM1-T>)Y-z9cOIYGHKD!K|pR)h_1? zw8)VDc(#@|%KSl%ovi}<*e6`_xj!GxN~58%1YckM_W55_dGi}(VTkm%21StKhs{ea znI!u-#fr1v^9N}0ayuIrHZ=n~7Yu83Z09}$Q`F#*ulB6uPAV}}%1z>P!~>$+#{$%| z6EcCyW-!R77syMmJ0qp|Q@?)smD?<8o$qG;5YC;@UzSxnv^R_(^buaR~NZt;@_?c26PyIEoOrKX55 z*pghpM|FvhA#Qt5I=?d0m<4XDFzA66T(8N+;14`qmRxX2Vu-eGQ2JpIUD*pSjdWWA z`lL;-G*6c5+Q(p{+jN=4m!sEG#I=I(Gu@k(Cfx;!YX9EwIdfCkOwOO=6f%qC~AoLxWO8reAZq6Vb?6|E*Xy(Wpb<&Qz0ee}BJA zS!Lt%pXhS#ol?@^Xpm>;}lCsv-+#YhQNmeE}eWPx&A0v@|(@`xp(Q zhQX@$7I#n9g|b zj6iYj6Ye47F)kE;j(67FPWZ&MaUI>#TN~M(=k;8w5K5aT%-u3L znz+HJmd|Tz>DQw7vl*1PZn#z_T+LP1*H*a`m>~1PBL?0Ti#ogwi9t6oNFbzqaLZ-tQ_Zr!I$lnTA<1Jt4!JGJK|Wa>(g z8+W>HCS;_?p$QpD2|akH42BOP{e~hf?8Mx^fH(yd!%ZZ&0!|@o0q2M zi0WO-lOv~2)EflO$)?alaoL=5#opD6aQ)Y(#rp#|PNTTrd#$eVlas%U#v7z@Z8*3$ zt7M;~X3QjCEJ<-QfHV=-1SKA3McUN?xc9*qQrl|Bu92HrK(s>Uy z%JGD%5Cqv2b?*&t&n60}xX$wnTicwS2+nvg3T}*ik!7B>I*}>yuDa%%gH>1R!Tq)5 zcv$iD-1I}{y?FRQ!`#y08~5zD+uEtIwNle_=Gn@_uY}&wDx^H-ryFQ*E6*m;s&pO6 zLj*^r|5zyS=jWWTG*+(k2@i&N)j z-r4&7Z)X|1#_gx= z@gh^wYZa%&ny>P{6#QJie&~59FA{xu_?on5^m)&|mH9P#qW?15V45x~Bj;}YOq3*( zQ2ASR+U75apX4H*58G3)w+5S~fRW6|JM|Y@xLNM6T!b1?)J!8uH~Sl&8cqA*_$m%P mj%*}I$?*R-hX2b`9-hE?2|v`_5IXwV0a%(MOe%~#V*UXHk00Ft literal 0 HcmV?d00001 diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index 69bcf10603c..4c72b3d00e0 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -16,6 +16,26 @@ The Matter library provides support for creating Matter-compatible devices inclu The Matter library is built on top of `ESP Matter SDK `_ and provides a high-level Arduino-style interface for creating Matter devices. +Building and Flashing Matter Examples +-------------------------------------- + +Before uploading any Matter example sketch, it is necessary to configure the Arduino IDE with the following settings: + +1. **Partition Scheme**: Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + + .. image:: ../_static/matter_partition_scheme.png + :alt: "Partition Scheme: Huge APP (3MB No OTA/1MB SPIFFS)"" Arduino IDE menu option + +2. **Erase Flash**: Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. + + .. image:: ../_static/matter_erase_flash.png + :alt: Erase All Flash Before Sketch Upload: Enabled" Arduino IDE menu option + +These settings are required for the following reasons: + +* **Partition Scheme**: Matter firmware requires a large application partition (3MB) to accommodate the Matter stack and application code. +* **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. + Matter Protocol Overview ************************ @@ -86,6 +106,10 @@ The ``Matter`` class provides the following key methods: * ``isWi-FiConnected()``: Checks Wi-Fi connection status (if Wi-Fi is enabled) * ``isThreadConnected()``: Checks Thread connection status (if Thread is enabled) * ``isDeviceConnected()``: Checks overall device connectivity +* ``isWiFiStationEnabled()``: Checks if WiFi Station mode is supported and enabled +* ``isWiFiAccessPointEnabled()``: Checks if WiFi AP mode is supported and enabled +* ``isThreadEnabled()``: Checks if Thread network is supported and enabled +* ``isBLECommissioningEnabled()``: Checks if BLE commissioning is supported and enabled * ``decommission()``: Factory resets the device * ``getManualPairingCode()``: Gets the manual pairing code for commissioning * ``getOnboardingQRCodeUrl()``: Gets the QR code URL for commissioning @@ -148,6 +172,55 @@ The library provides specialized endpoint classes for different device types. Ea ep_* +Matter Examples +--------------- + +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 `_. + +**Basic Examples:** + +* **Matter Minimum** - The smallest code required to create a Matter-compatible device. Ideal starting point for understanding Matter basics. `View on GitHub `_ +* **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 `_ +* **Matter Events** - Shows how to monitor and handle Matter events. Provides a comprehensive view of all Matter events during device operation. `View on GitHub `_ +* **Matter Commission Test** - Tests Matter commissioning functionality with automatic decommissioning after a 30-second delay for continuous testing cycles. `View on GitHub `_ + +**Lighting Examples:** + +* **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 `_ +* **Matter Dimmable Light** - Creates a Matter-compatible dimmable light device with brightness control. `View on GitHub `_ +* **Matter Color Temperature Light** - Creates a Matter-compatible color temperature light device with adjustable color temperature control. `View on GitHub `_ +* **Matter Color Light** - Creates a Matter-compatible color light device with RGB color control (HSV color model). `View on GitHub `_ +* **Matter Enhanced Color Light** - Creates a Matter-compatible enhanced color light with color temperature and brightness control. `View on GitHub `_ +* **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 `_ +* **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 `_ + +**Sensor Examples:** + +* **Matter Temperature Sensor** - Creates a Matter-compatible temperature sensor device with sensor data reporting to smart home ecosystems. `View on GitHub `_ +* **Matter Humidity Sensor** - Creates a Matter-compatible humidity sensor device with sensor data reporting. `View on GitHub `_ +* **Matter Pressure Sensor** - Creates a Matter-compatible pressure sensor device with automatic simulation of pressure readings. `View on GitHub `_ +* **Matter Contact Sensor** - Creates a Matter-compatible contact sensor device (open/closed state). `View on GitHub `_ +* **Matter Occupancy Sensor** - Creates a Matter-compatible occupancy sensor device with automatic simulation of occupancy state changes. `View on GitHub `_ +* **Matter Water Leak Detector** - Creates a Matter-compatible water leak detector device with automatic simulation of water leak detection state changes. `View on GitHub `_ +* **Matter Water Freeze Detector** - Creates a Matter-compatible water freeze detector device with automatic simulation of water freeze detection state changes. `View on GitHub `_ +* **Matter Rain Sensor** - Creates a Matter-compatible rain sensor device with automatic simulation of rain detection state changes. `View on GitHub `_ + +**Control Examples:** + +* **Matter Fan** - Creates a Matter-compatible fan device with speed and mode control. `View on GitHub `_ +* **Matter Thermostat** - Creates a Matter-compatible thermostat device with temperature setpoint management and simulated heating/cooling systems with automatic temperature regulation. `View on GitHub `_ +* **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 `_ +* **Matter Temperature Controlled Cabinet Levels** - Creates a Matter-compatible temperature controlled cabinet device using predefined temperature levels (temperature_level mode). `View on GitHub `_ +* **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 `_ +* **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 `_ +* **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 `_ +* **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 `_ +* **Matter Simple Window Blinds** - A minimal example that only controls lift percentage using a single onGoToLiftPercentage() callback. `View on GitHub `_ + +**Advanced Examples:** + +* **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 `_ + Common Problems and Issues -------------------------- From b305fb90beb7dafbd200b8369faee6f9e4ccf08a Mon Sep 17 00:00:00 2001 From: SuGlider Date: Sun, 14 Dec 2025 17:21:54 -0300 Subject: [PATCH 03/28] feat(matter): implements Thread connected function and add feature enabled functions --- libraries/Matter/keywords.txt | 8 ++++++-- libraries/Matter/src/Matter.cpp | 21 +++++---------------- libraries/Matter/src/Matter.h | 4 ---- 3 files changed, 11 insertions(+), 22 deletions(-) diff --git a/libraries/Matter/keywords.txt b/libraries/Matter/keywords.txt index 4baaf54f17f..9d1d44f5e04 100644 --- a/libraries/Matter/keywords.txt +++ b/libraries/Matter/keywords.txt @@ -63,10 +63,14 @@ begin KEYWORD2 end KEYWORD2 getManualPairingCode KEYWORD2 getOnboardingQRCodeUrl KEYWORD2 +isBLECommissioningEnabled KEYWORD2 isDeviceCommissioned KEYWORD2 -isWiFiConnected KEYWORD2 -isThreadConnected KEYWORD2 isDeviceConnected KEYWORD2 +isThreadConnected KEYWORD2 +isThreadEnabled KEYWORD2 +isWiFiAccessPointEnabled KEYWORD2 +isWiFiConnected KEYWORD2 +isWiFiStationEnabled KEYWORD2 decommission KEYWORD2 attributeChangeCB KEYWORD2 setOnOff KEYWORD2 diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp index c486599532e..6106e37e331 100644 --- a/libraries/Matter/src/Matter.cpp +++ b/libraries/Matter/src/Matter.cpp @@ -233,31 +233,20 @@ bool ArduinoMatter::isBLECommissioningEnabled() { } -#if CHIP_DEVICE_CONFIG_ENABLE_THREAD -bool ArduinoMatter::isThreadConnected() { - return chip::DeviceLayer::ConnectivityMgr().IsThreadAttached(); -} -#endif - bool ArduinoMatter::isDeviceCommissioned() { return chip::Server::GetInstance().GetFabricTable().FabricCount() > 0; } -#if CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION bool ArduinoMatter::isWiFiConnected() { return chip::DeviceLayer::ConnectivityMgr().IsWiFiStationConnected(); } -#endif + +bool ArduinoMatter::isThreadConnected() { + return chip::DeviceLayer::ConnectivityMgr().IsThreadAttached(); +} bool ArduinoMatter::isDeviceConnected() { - bool retCode = false; -#if CHIP_DEVICE_CONFIG_ENABLE_THREAD - retCode |= ArduinoMatter::isThreadConnected(); -#endif -#if CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION - retCode |= ArduinoMatter::isWiFiConnected(); -#endif - return retCode; + return ArduinoMatter::isWiFiConnected() || ArduinoMatter::isThreadConnected(); } void ArduinoMatter::decommission() { diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index 8672e4ba785..83211a8d317 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -188,12 +188,8 @@ class ArduinoMatter { static bool isBLECommissioningEnabled(); // Check if BLE commissioning is supported and enabled static bool isDeviceCommissioned(); -#if CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION static bool isWiFiConnected(); -#endif -#if CHIP_DEVICE_CONFIG_ENABLE_THREAD static bool isThreadConnected(); -#endif static bool isDeviceConnected(); static void decommission(); From 2440c13fea6386d85b8a2807eb2302d7334f9e0e Mon Sep 17 00:00:00 2001 From: SuGlider Date: Sun, 14 Dec 2025 17:24:36 -0300 Subject: [PATCH 04/28] feat(matter): adds Matter Status example and documentation --- .../examples/MatterStatus/MatterStatus.ino | 119 ++++++++++ .../Matter/examples/MatterStatus/README.md | 203 ++++++++++++++++++ libraries/Matter/examples/MatterStatus/ci.yml | 5 + 3 files changed, 327 insertions(+) create mode 100644 libraries/Matter/examples/MatterStatus/MatterStatus.ino create mode 100644 libraries/Matter/examples/MatterStatus/README.md create mode 100644 libraries/Matter/examples/MatterStatus/ci.yml diff --git a/libraries/Matter/examples/MatterStatus/MatterStatus.ino b/libraries/Matter/examples/MatterStatus/MatterStatus.ino new file mode 100644 index 00000000000..715da8b3ae9 --- /dev/null +++ b/libraries/Matter/examples/MatterStatus/MatterStatus.ino @@ -0,0 +1,119 @@ +// Copyright 2025 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Matter Status Example +// This example demonstrates how to check enabled Matter features and connectivity status +// It implements a basic on/off light and reports capability and connection status + +#include +// CONFIG_ENABLE_CHIPOBLE is enabled when BLE is used to commission the Matter Network +#if !CONFIG_ENABLE_CHIPOBLE // ESP32 and ESP32-S2 do not support BLE commissioning +// if the device can be commissioned using BLE, WiFi is not used - save flash space +#include +// WiFi is manually set and started +const char *ssid = "your-ssid"; // Change this to your WiFi SSID +const char *password = "your-password"; // Change this to your WiFi password +#endif + +// List of Matter Endpoints for this Node +// On/Off Light Endpoint +MatterOnOffLight OnOffLight; + +// set your board LED pin here +#ifdef LED_BUILTIN +const uint8_t ledPin = LED_BUILTIN; +#else +const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN +#warning "Do not forget to set the LED pin" +#endif + +// Matter Protocol Endpoint Callback +bool setLightOnOff(bool state) { + Serial.printf("User Callback :: New Light State = %s\r\n", state ? "ON" : "OFF"); + if (state) { + digitalWrite(ledPin, HIGH); + } else { + digitalWrite(ledPin, LOW); + } + // This callback must return the success state to Matter core + return true; +} + +void setup() { + // Initialize the LED (light) GPIO + pinMode(ledPin, OUTPUT); + digitalWrite(ledPin, LOW); // Start with light OFF + + Serial.begin(115200); + delay(1000); + Serial.println("\n========================================"); + Serial.println("Matter Status Example"); + Serial.println("========================================\n"); + + // Report enabled features + Serial.println("=== Enabled Features ==="); + Serial.printf("WiFi Station Enabled: %s\r\n", Matter.isWiFiStationEnabled() ? "YES" : "NO"); + Serial.printf("WiFi Access Point Enabled: %s\r\n", Matter.isWiFiAccessPointEnabled() ? "YES" : "NO"); + Serial.printf("Thread Enabled: %s\r\n", Matter.isThreadEnabled() ? "YES" : "NO"); + Serial.printf("BLE Commissioning Enabled: %s\r\n", Matter.isBLECommissioningEnabled() ? "YES" : "NO"); + Serial.println(); + +// CONFIG_ENABLE_CHIPOBLE is enabled when BLE is used to commission the Matter Network +#if !CONFIG_ENABLE_CHIPOBLE + // We start by connecting to a WiFi network + if (Matter.isWiFiStationEnabled()) { + Serial.print("Connecting to "); + Serial.println(ssid); + WiFi.mode(WIFI_STA); + WiFi.begin(ssid, password); + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(""); + Serial.println("WiFi connected"); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); + } +#endif + + // Initialize On/Off Light endpoint + OnOffLight.begin(false); // Start with light OFF + OnOffLight.onChange(setLightOnOff); + + // Start Matter + Matter.begin(); + Serial.println("Matter started"); + Serial.println(); + + // Print commissioning information + Serial.println("========================================"); + Serial.println("Matter Node is not commissioned yet."); + Serial.println("Initiate the device discovery in your Matter environment."); + Serial.println("Commission it to your Matter hub with the manual pairing code or QR code"); + Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str()); + Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str()); + Serial.println("========================================\n"); +} + +void loop() { + // Report connection status every 10 seconds + Serial.println("=== Connection Status ==="); + Serial.printf("WiFi Connected: %s\r\n", Matter.isWiFiConnected() ? "YES" : "NO"); + Serial.printf("Thread Connected: %s\r\n", Matter.isThreadConnected() ? "YES" : "NO"); + Serial.printf("Device Connected: %s\r\n", Matter.isDeviceConnected() ? "YES" : "NO"); + Serial.printf("Device Commissioned: %s\r\n", Matter.isDeviceCommissioned() ? "YES" : "NO"); + Serial.println(); + delay(10000); +} \ No newline at end of file diff --git a/libraries/Matter/examples/MatterStatus/README.md b/libraries/Matter/examples/MatterStatus/README.md new file mode 100644 index 00000000000..45320428c7c --- /dev/null +++ b/libraries/Matter/examples/MatterStatus/README.md @@ -0,0 +1,203 @@ +# Matter Status Example + +This example demonstrates how to check enabled Matter features and connectivity status using the Matter library's capability query functions. It implements a basic on/off light device and periodically reports the status of enabled features and network connections. + +## Supported Targets + +| SoC | Wi-Fi | Thread | BLE Commissioning | LED | Status | +| --- | ---- | ------ | ----------------- | --- | ------ | +| ESP32 | ✅ | ❌ | ❌ | Required | Fully supported | +| ESP32-S2 | ✅ | ❌ | ❌ | Required | Fully supported | +| ESP32-S3 | ✅ | ❌ | ✅ | Required | Fully supported | +| ESP32-C3 | ✅ | ❌ | ✅ | Required | Fully supported | +| ESP32-C5 | ✅ | ❌ | ✅ | Required | Fully supported | +| ESP32-C6 | ✅ | ❌ | ✅ | Required | Fully supported | +| ESP32-H2 | ❌ | ✅ | ✅ | Required | Supported (Thread only) | + +### Note on Commissioning: + +- **ESP32 & ESP32-S2** do not support commissioning over Bluetooth LE. For these chips, you must provide Wi-Fi credentials directly in the sketch code so they can connect to your network manually. +- **ESP32-C6** Although it has Thread support, the ESP32 Arduino Matter Library has been precompiled using Wi-Fi only. In order to configure it for Thread-only operation it is necessary to build the project as an ESP-IDF component and to disable the Matter Wi-Fi station feature. +- **ESP32-C5** Although it has Thread support, the ESP32 Arduino Matter Library has been precompiled using Wi-Fi only. In order to configure it for Thread-only operation it is necessary to build the project as an ESP-IDF component and to disable the Matter Wi-Fi station feature. + +## Features + +- Matter protocol implementation for an on/off light device +- **Capability reporting**: Checks and reports enabled Matter features at startup + - `isWiFiStationEnabled()`: Checks if WiFi Station mode is supported and enabled + - `isWiFiAccessPointEnabled()`: Checks if WiFi AP mode is supported and enabled + - `isThreadEnabled()`: Checks if Thread network is supported and enabled + - `isBLECommissioningEnabled()`: Checks if BLE commissioning is supported and enabled +- **Connection status monitoring**: Reports connection status every 10 seconds + - `isWiFiConnected()`: Checks WiFi connection status (if WiFi Station is enabled) + - `isThreadConnected()`: Checks Thread connection status (if Thread is enabled) + - `isDeviceConnected()`: Checks overall device connectivity (WiFi or Thread) + - `isDeviceCommissioned()`: Checks if the device is commissioned to a Matter fabric +- Simple on/off light control +- Matter commissioning via QR code or manual pairing code +- Integration with Apple HomeKit, Amazon Alexa, and Google Home + +## Hardware Requirements + +- ESP32 compatible development board (see supported targets table) +- LED connected to GPIO pin (or using built-in LED) for visual feedback + +## Pin Configuration + +- **LED**: Uses `LED_BUILTIN` if defined, otherwise pin 2 + +## Software Setup + +### Prerequisites + +1. Install the Arduino IDE (2.0 or newer recommended) +2. Install ESP32 Arduino Core with Matter support +3. ESP32 Arduino libraries: + - `Matter` + - `Wi-Fi` (only for ESP32 and ESP32-S2) + +### Configuration + +Before uploading the sketch, configure the following: + +1. **Wi-Fi Credentials** (for ESP32 and ESP32-S2 only): + ```cpp + const char *ssid = "your-ssid"; + const char *password = "your-password"; + ``` + +2. **LED pin configuration** (if not using built-in LED): + ```cpp + const uint8_t ledPin = 2; // Set your LED pin here + ``` + +## Building and Flashing + +1. Open the `MatterStatus.ino` sketch in the Arduino IDE. +2. Select your ESP32 board from the **Tools > Board** menu. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. + +## Expected Output + +Once the sketch is running, open the Serial Monitor at a baud rate of **115200**. You should see output similar to the following: + +``` +======================================== +Matter Status Example +======================================== + +=== Enabled Features === +WiFi Station Enabled: YES +WiFi Access Point Enabled: NO +Thread Enabled: NO +BLE Commissioning Enabled: NO + +Connecting to your-ssid +....... +WiFi connected +IP address: 192.168.1.100 +Matter started + +======================================== +Matter Node is not commissioned yet. +Initiate the device discovery in your Matter environment. +Commission it to your Matter hub with the manual pairing code or QR code +Manual pairing code: 34970112332 +QR code URL: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT:Y.K9042C00KA0648G00 +======================================== + +=== Connection Status === +WiFi Connected: YES +Thread Connected: NO +Device Connected: YES +Device Commissioned: NO + +=== Connection Status === +WiFi Connected: YES +Thread Connected: NO +Device Connected: YES +Device Commissioned: NO + +... (reports every 10 seconds) + +User Callback :: New Light State = ON +=== Connection Status === +WiFi Connected: YES +Thread Connected: NO +Device Connected: YES +Device Commissioned: YES + +... (reports every 10 seconds) +``` + +## Usage + +### Capability Queries + +The example demonstrates the use of capability query functions that check both hardware support (SOC capabilities) and Matter configuration: + +- **`Matter.isWiFiStationEnabled()`**: Returns `true` if the device supports WiFi Station mode and it's enabled in Matter configuration +- **`Matter.isWiFiAccessPointEnabled()`**: Returns `true` if the device supports WiFi AP mode and it's enabled in Matter configuration +- **`Matter.isThreadEnabled()`**: Returns `true` if the device supports Thread networking and it's enabled in Matter configuration +- **`Matter.isBLECommissioningEnabled()`**: Returns `true` if the device supports BLE and BLE commissioning is enabled + +These functions are useful for: +- Determining which features are available on the current device +- Adapting application behavior based on available capabilities +- Debugging configuration issues + +### Connection Status Monitoring + +The example periodically reports connection status every 10 seconds: + +- **`Matter.isWiFiConnected()`**: Returns `true` if WiFi Station is connected (only available if WiFi Station is enabled) +- **`Matter.isThreadConnected()`**: Returns `true` if Thread is attached to a network (only available if Thread is enabled) +- **`Matter.isDeviceConnected()`**: Returns `true` if the device is connected via WiFi or Thread (overall connectivity status) +- **`Matter.isDeviceCommissioned()`**: Returns `true` if the device has been commissioned to a Matter fabric + +### Smart Home Integration + +Use a Matter-compatible hub (like an Apple HomePod, Google Nest Hub, or Amazon Echo) to commission the device. Once commissioned, you can control the light from your smart home app. + +## Code Structure + +- **`setup()`**: + - Initializes hardware (LED) + - Reports enabled features using capability query functions + - Connects to WiFi (if needed and enabled) + - Initializes On/Off Light endpoint + - Starts Matter stack + - Prints commissioning information + +- **`loop()`**: + - Reports connection status every 10 seconds + - All light control is handled via Matter callbacks + +- **Callbacks**: + - `setLightOnOff()`: Controls the physical LED based on the on/off state and prints the state change to Serial Monitor + +## Troubleshooting + +1. **Device not discoverable**: Ensure Wi-Fi is connected (for ESP32/ESP32-S2) or BLE is enabled (for other chips). + +2. **Capability queries return unexpected values**: These functions check both hardware support and Matter configuration. Verify that the features are enabled in your Matter build configuration. + +3. **Connection status not updating**: The status is reported every 10 seconds. Check Serial Monitor output to see the periodic reports. + +4. **LED not responding**: Verify pin configurations and connections. + +5. **Failed to commission**: Try factory resetting the device by calling `Matter.decommission()`. Other option would be to erase the SoC Flash Memory by using `Arduino IDE Menu` -> `Tools` -> `Erase All Flash Before Sketch Upload: "Enabled"` or directly with `esptool.py --port erase_flash` + +## Related Documentation + +- [Matter Overview](https://docs.espressif.com/projects/arduino-esp32/en/latest/matter/matter.html) +- [Matter Endpoint Base Class](https://docs.espressif.com/projects/arduino-esp32/en/latest/matter/matter_ep.html) +- [Matter On/Off Light Endpoint](https://docs.espressif.com/projects/arduino-esp32/en/latest/matter/ep_on_off_light.html) + +## License + +This example is licensed under the Apache License, Version 2.0. + diff --git a/libraries/Matter/examples/MatterStatus/ci.yml b/libraries/Matter/examples/MatterStatus/ci.yml new file mode 100644 index 00000000000..1cbd404d6ed --- /dev/null +++ b/libraries/Matter/examples/MatterStatus/ci.yml @@ -0,0 +1,5 @@ +fqbn_append: PartitionScheme=huge_app + +requires: + - CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y + From 87955b7f4a6b01a06d12d570d193ab8651599b14 Mon Sep 17 00:00:00 2001 From: SuGlider Date: Sun, 14 Dec 2025 17:25:32 -0300 Subject: [PATCH 05/28] feat(matter): adds necessary Arduino IDE options to all README files --- libraries/Matter/examples/MatterColorLight/README.md | 6 ++++-- libraries/Matter/examples/MatterCommissionTest/README.md | 6 ++++-- libraries/Matter/examples/MatterComposedLights/README.md | 6 ++++-- libraries/Matter/examples/MatterContactSensor/README.md | 6 ++++-- libraries/Matter/examples/MatterDimmableLight/README.md | 6 ++++-- libraries/Matter/examples/MatterDimmablePlugin/README.md | 6 ++++-- .../Matter/examples/MatterEnhancedColorLight/README.md | 6 ++++-- libraries/Matter/examples/MatterEvents/README.md | 6 ++++-- libraries/Matter/examples/MatterFan/README.md | 6 ++++-- libraries/Matter/examples/MatterHumiditySensor/README.md | 6 ++++-- .../examples/MatterLambdaSingleCallbackManyEPs/README.md | 6 ++++-- libraries/Matter/examples/MatterMinimum/README.md | 6 ++++-- .../Matter/examples/MatterOccupancySensor/README.md | 6 ++++-- libraries/Matter/examples/MatterOnIdentify/README.md | 6 ++++-- libraries/Matter/examples/MatterOnOffLight/README.md | 6 ++++-- libraries/Matter/examples/MatterOnOffPlugin/README.md | 6 ++++-- libraries/Matter/examples/MatterPressureSensor/README.md | 6 ++++-- libraries/Matter/examples/MatterRainSensor/README.md | 6 ++++-- .../Matter/examples/MatterSimpleWidowsBlind/README.md | 9 +++++++++ libraries/Matter/examples/MatterSmartButton/README.md | 6 ++++-- .../MatterTemperatureControlledCabinet/README.md | 6 ++++-- .../MatterTemperatureControlledCabinetLevels/README.md | 6 ++++-- .../Matter/examples/MatterTemperatureLight/README.md | 6 ++++-- .../Matter/examples/MatterTemperatureSensor/README.md | 6 ++++-- libraries/Matter/examples/MatterThermostat/README.md | 6 ++++-- .../Matter/examples/MatterWaterFreezeDetector/README.md | 6 ++++-- .../Matter/examples/MatterWaterLeakDetector/README.md | 6 ++++-- libraries/Matter/examples/MatterWindowCovering/README.md | 6 ++++-- 28 files changed, 117 insertions(+), 54 deletions(-) diff --git a/libraries/Matter/examples/MatterColorLight/README.md b/libraries/Matter/examples/MatterColorLight/README.md index 4d9e39e4f75..4f18233cb21 100644 --- a/libraries/Matter/examples/MatterColorLight/README.md +++ b/libraries/Matter/examples/MatterColorLight/README.md @@ -78,8 +78,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterColorLight.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterCommissionTest/README.md b/libraries/Matter/examples/MatterCommissionTest/README.md index db5d0e158ea..86bab465b22 100644 --- a/libraries/Matter/examples/MatterCommissionTest/README.md +++ b/libraries/Matter/examples/MatterCommissionTest/README.md @@ -59,8 +59,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterCommissionTest.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterComposedLights/README.md b/libraries/Matter/examples/MatterComposedLights/README.md index 96446810f9f..5dc1e3839a7 100644 --- a/libraries/Matter/examples/MatterComposedLights/README.md +++ b/libraries/Matter/examples/MatterComposedLights/README.md @@ -74,8 +74,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterComposedLights.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterContactSensor/README.md b/libraries/Matter/examples/MatterContactSensor/README.md index 0f54a8f0010..91729a3c4a1 100644 --- a/libraries/Matter/examples/MatterContactSensor/README.md +++ b/libraries/Matter/examples/MatterContactSensor/README.md @@ -78,8 +78,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterContactSensor.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterDimmableLight/README.md b/libraries/Matter/examples/MatterDimmableLight/README.md index f1381b2641c..071c3ae689a 100644 --- a/libraries/Matter/examples/MatterDimmableLight/README.md +++ b/libraries/Matter/examples/MatterDimmableLight/README.md @@ -79,8 +79,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterDimmableLight.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterDimmablePlugin/README.md b/libraries/Matter/examples/MatterDimmablePlugin/README.md index d823c5c1ca7..6104d520b8f 100644 --- a/libraries/Matter/examples/MatterDimmablePlugin/README.md +++ b/libraries/Matter/examples/MatterDimmablePlugin/README.md @@ -82,8 +82,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterDimmablePlugin.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterEnhancedColorLight/README.md b/libraries/Matter/examples/MatterEnhancedColorLight/README.md index 100c216cedf..5485fb33b2c 100644 --- a/libraries/Matter/examples/MatterEnhancedColorLight/README.md +++ b/libraries/Matter/examples/MatterEnhancedColorLight/README.md @@ -81,8 +81,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterEnhancedColorLight.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterEvents/README.md b/libraries/Matter/examples/MatterEvents/README.md index 985fb8748e5..ab902f477da 100644 --- a/libraries/Matter/examples/MatterEvents/README.md +++ b/libraries/Matter/examples/MatterEvents/README.md @@ -62,8 +62,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterEvents.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterFan/README.md b/libraries/Matter/examples/MatterFan/README.md index cae9e15ba5f..9bd63e63279 100644 --- a/libraries/Matter/examples/MatterFan/README.md +++ b/libraries/Matter/examples/MatterFan/README.md @@ -89,8 +89,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterFan.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterHumiditySensor/README.md b/libraries/Matter/examples/MatterHumiditySensor/README.md index 838073093cf..1a40efaad1a 100644 --- a/libraries/Matter/examples/MatterHumiditySensor/README.md +++ b/libraries/Matter/examples/MatterHumiditySensor/README.md @@ -76,8 +76,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterHumiditySensor.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs/README.md b/libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs/README.md index 62c923e3655..150d475d431 100644 --- a/libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs/README.md +++ b/libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs/README.md @@ -98,8 +98,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterLambdaSingleCallbackManyEPs.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterMinimum/README.md b/libraries/Matter/examples/MatterMinimum/README.md index b3687718543..aaf0420a82d 100644 --- a/libraries/Matter/examples/MatterMinimum/README.md +++ b/libraries/Matter/examples/MatterMinimum/README.md @@ -78,8 +78,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterMinimum.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterOccupancySensor/README.md b/libraries/Matter/examples/MatterOccupancySensor/README.md index cb38c63ac6a..aa780625218 100644 --- a/libraries/Matter/examples/MatterOccupancySensor/README.md +++ b/libraries/Matter/examples/MatterOccupancySensor/README.md @@ -79,8 +79,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterOccupancySensor.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterOnIdentify/README.md b/libraries/Matter/examples/MatterOnIdentify/README.md index ce873f9397f..57e32fc5440 100644 --- a/libraries/Matter/examples/MatterOnIdentify/README.md +++ b/libraries/Matter/examples/MatterOnIdentify/README.md @@ -79,8 +79,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterOnIdentify.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterOnOffLight/README.md b/libraries/Matter/examples/MatterOnOffLight/README.md index b973302129a..04341b7bd69 100644 --- a/libraries/Matter/examples/MatterOnOffLight/README.md +++ b/libraries/Matter/examples/MatterOnOffLight/README.md @@ -79,8 +79,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterOnOffLight.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterOnOffPlugin/README.md b/libraries/Matter/examples/MatterOnOffPlugin/README.md index 2603961353c..f69ae65ed93 100644 --- a/libraries/Matter/examples/MatterOnOffPlugin/README.md +++ b/libraries/Matter/examples/MatterOnOffPlugin/README.md @@ -80,8 +80,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterOnOffPlugin.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterPressureSensor/README.md b/libraries/Matter/examples/MatterPressureSensor/README.md index 2f0665067ac..49d70d7cf07 100644 --- a/libraries/Matter/examples/MatterPressureSensor/README.md +++ b/libraries/Matter/examples/MatterPressureSensor/README.md @@ -76,8 +76,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterPressureSensor.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterRainSensor/README.md b/libraries/Matter/examples/MatterRainSensor/README.md index 1e81b3ea3c9..12d6228cf07 100644 --- a/libraries/Matter/examples/MatterRainSensor/README.md +++ b/libraries/Matter/examples/MatterRainSensor/README.md @@ -78,8 +78,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterRainSensor.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterSimpleWidowsBlind/README.md b/libraries/Matter/examples/MatterSimpleWidowsBlind/README.md index 637d2a4b398..dd670a91de5 100644 --- a/libraries/Matter/examples/MatterSimpleWidowsBlind/README.md +++ b/libraries/Matter/examples/MatterSimpleWidowsBlind/README.md @@ -53,6 +53,15 @@ Before uploading the sketch, configure the following: const char *password = "your-password"; ``` +## Building and Flashing + +1. Open the `MatterSimpleWidowsBlind.ino` sketch in the Arduino IDE. +2. Select your ESP32 board from the **Tools > Board** menu. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. + ## Expected Output ``` diff --git a/libraries/Matter/examples/MatterSmartButton/README.md b/libraries/Matter/examples/MatterSmartButton/README.md index e7290ba40b3..08aa6ee35f5 100644 --- a/libraries/Matter/examples/MatterSmartButton/README.md +++ b/libraries/Matter/examples/MatterSmartButton/README.md @@ -71,8 +71,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterSmartButton.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterTemperatureControlledCabinet/README.md b/libraries/Matter/examples/MatterTemperatureControlledCabinet/README.md index 8ed6c69454a..be60edb6ceb 100644 --- a/libraries/Matter/examples/MatterTemperatureControlledCabinet/README.md +++ b/libraries/Matter/examples/MatterTemperatureControlledCabinet/README.md @@ -86,8 +86,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterTemperatureControlledCabinet.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterTemperatureControlledCabinetLevels/README.md b/libraries/Matter/examples/MatterTemperatureControlledCabinetLevels/README.md index 88f74a634bd..626d85aaddb 100644 --- a/libraries/Matter/examples/MatterTemperatureControlledCabinetLevels/README.md +++ b/libraries/Matter/examples/MatterTemperatureControlledCabinetLevels/README.md @@ -87,8 +87,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterTemperatureControlledCabinetLevels.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterTemperatureLight/README.md b/libraries/Matter/examples/MatterTemperatureLight/README.md index 4eb9432400b..264f9136b2c 100644 --- a/libraries/Matter/examples/MatterTemperatureLight/README.md +++ b/libraries/Matter/examples/MatterTemperatureLight/README.md @@ -82,8 +82,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterTemperatureLight.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterTemperatureSensor/README.md b/libraries/Matter/examples/MatterTemperatureSensor/README.md index 9a494aec932..696b61168ea 100644 --- a/libraries/Matter/examples/MatterTemperatureSensor/README.md +++ b/libraries/Matter/examples/MatterTemperatureSensor/README.md @@ -76,8 +76,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterTemperatureSensor.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterThermostat/README.md b/libraries/Matter/examples/MatterThermostat/README.md index 2a87f4d93af..6a567da0690 100644 --- a/libraries/Matter/examples/MatterThermostat/README.md +++ b/libraries/Matter/examples/MatterThermostat/README.md @@ -78,8 +78,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterThermostat.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterWaterFreezeDetector/README.md b/libraries/Matter/examples/MatterWaterFreezeDetector/README.md index 0701a5af979..f2783df8476 100644 --- a/libraries/Matter/examples/MatterWaterFreezeDetector/README.md +++ b/libraries/Matter/examples/MatterWaterFreezeDetector/README.md @@ -78,8 +78,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterWaterFreezeDetector.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterWaterLeakDetector/README.md b/libraries/Matter/examples/MatterWaterLeakDetector/README.md index 3dcf2f2e9f7..ae7d44d29df 100644 --- a/libraries/Matter/examples/MatterWaterLeakDetector/README.md +++ b/libraries/Matter/examples/MatterWaterLeakDetector/README.md @@ -78,8 +78,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterWaterLeakDetector.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output diff --git a/libraries/Matter/examples/MatterWindowCovering/README.md b/libraries/Matter/examples/MatterWindowCovering/README.md index 8e18539c65a..f802f3d0cc1 100644 --- a/libraries/Matter/examples/MatterWindowCovering/README.md +++ b/libraries/Matter/examples/MatterWindowCovering/README.md @@ -82,8 +82,10 @@ Before uploading the sketch, configure the following: 1. Open the `MatterWindowCovering.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. -3. Connect your ESP32 board to your computer via USB. -4. Click the **Upload** button to compile and flash the sketch. +3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. +5. Connect your ESP32 board to your computer via USB. +6. Click the **Upload** button to compile and flash the sketch. ## Expected Output From 091d334d5f8dc6de11815d4687daff44e300263e Mon Sep 17 00:00:00 2001 From: SuGlider Date: Sun, 14 Dec 2025 17:52:48 -0300 Subject: [PATCH 06/28] feat(matter): creates individual exmaple link/URL set in documentation --- docs/en/matter/matter.rst | 58 +++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index 4c72b3d00e0..e9060b037e0 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -179,47 +179,47 @@ The Matter library includes a comprehensive set of examples demonstrating variou **Basic Examples:** -* **Matter Minimum** - The smallest code required to create a Matter-compatible device. Ideal starting point for understanding Matter basics. `View on GitHub `_ -* **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 `_ -* **Matter Events** - Shows how to monitor and handle Matter events. Provides a comprehensive view of all Matter events during device operation. `View on GitHub `_ -* **Matter Commission Test** - Tests Matter commissioning functionality with automatic decommissioning after a 30-second delay for continuous testing cycles. `View on GitHub `_ +* **Matter Minimum** - The smallest code required to create a Matter-compatible device. Ideal starting point for understanding Matter basics. `View Matter Minimum code on GitHub `_ +* **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 Matter Status code on GitHub `_ +* **Matter Events** - Shows how to monitor and handle Matter events. Provides a comprehensive view of all Matter events during device operation. `View Matter Events code on GitHub `_ +* **Matter Commission Test** - Tests Matter commissioning functionality with automatic decommissioning after a 30-second delay for continuous testing cycles. `View Matter Commission Test code on GitHub `_ **Lighting Examples:** -* **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 `_ -* **Matter Dimmable Light** - Creates a Matter-compatible dimmable light device with brightness control. `View on GitHub `_ -* **Matter Color Temperature Light** - Creates a Matter-compatible color temperature light device with adjustable color temperature control. `View on GitHub `_ -* **Matter Color Light** - Creates a Matter-compatible color light device with RGB color control (HSV color model). `View on GitHub `_ -* **Matter Enhanced Color Light** - Creates a Matter-compatible enhanced color light with color temperature and brightness control. `View on GitHub `_ -* **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 `_ -* **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 `_ +* **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 Matter On/Off Light code on GitHub `_ +* **Matter Dimmable Light** - Creates a Matter-compatible dimmable light device with brightness control. `View Matter Dimmable Light code on GitHub `_ +* **Matter Color Temperature Light** - Creates a Matter-compatible color temperature light device with adjustable color temperature control. `View Matter Color Temperature Light code on GitHub `_ +* **Matter Color Light** - Creates a Matter-compatible color light device with RGB color control (HSV color model). `View Matter Color Light code on GitHub `_ +* **Matter Enhanced Color Light** - Creates a Matter-compatible enhanced color light with color temperature and brightness control. `View Matter Enhanced Color Light code on GitHub `_ +* **Matter Composed Lights** - Creates a Matter node with multiple light endpoints (On/Off Light, Dimmable Light, and Color Light) in a single node. `View Matter Composed Lights code on GitHub `_ +* **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 Matter On Identify code on GitHub `_ **Sensor Examples:** -* **Matter Temperature Sensor** - Creates a Matter-compatible temperature sensor device with sensor data reporting to smart home ecosystems. `View on GitHub `_ -* **Matter Humidity Sensor** - Creates a Matter-compatible humidity sensor device with sensor data reporting. `View on GitHub `_ -* **Matter Pressure Sensor** - Creates a Matter-compatible pressure sensor device with automatic simulation of pressure readings. `View on GitHub `_ -* **Matter Contact Sensor** - Creates a Matter-compatible contact sensor device (open/closed state). `View on GitHub `_ -* **Matter Occupancy Sensor** - Creates a Matter-compatible occupancy sensor device with automatic simulation of occupancy state changes. `View on GitHub `_ -* **Matter Water Leak Detector** - Creates a Matter-compatible water leak detector device with automatic simulation of water leak detection state changes. `View on GitHub `_ -* **Matter Water Freeze Detector** - Creates a Matter-compatible water freeze detector device with automatic simulation of water freeze detection state changes. `View on GitHub `_ -* **Matter Rain Sensor** - Creates a Matter-compatible rain sensor device with automatic simulation of rain detection state changes. `View on GitHub `_ +* **Matter Temperature Sensor** - Creates a Matter-compatible temperature sensor device with sensor data reporting to smart home ecosystems. `View Matter Temperature Sensor code on GitHub `_ +* **Matter Humidity Sensor** - Creates a Matter-compatible humidity sensor device with sensor data reporting. `View Matter Humidity Sensor code on GitHub `_ +* **Matter Pressure Sensor** - Creates a Matter-compatible pressure sensor device with automatic simulation of pressure readings. `View Matter Pressure Sensor code on GitHub `_ +* **Matter Contact Sensor** - Creates a Matter-compatible contact sensor device (open/closed state). `View Matter Contact Sensor code on GitHub `_ +* **Matter Occupancy Sensor** - Creates a Matter-compatible occupancy sensor device with automatic simulation of occupancy state changes. `View Matter Occupancy Sensor code on GitHub `_ +* **Matter Water Leak Detector** - Creates a Matter-compatible water leak detector device with automatic simulation of water leak detection state changes. `View Matter Water Leak Detector code on GitHub `_ +* **Matter Water Freeze Detector** - Creates a Matter-compatible water freeze detector device with automatic simulation of water freeze detection state changes. `View Matter Water Freeze Detector code on GitHub `_ +* **Matter Rain Sensor** - Creates a Matter-compatible rain sensor device with automatic simulation of rain detection state changes. `View Matter Rain Sensor code on GitHub `_ **Control Examples:** -* **Matter Fan** - Creates a Matter-compatible fan device with speed and mode control. `View on GitHub `_ -* **Matter Thermostat** - Creates a Matter-compatible thermostat device with temperature setpoint management and simulated heating/cooling systems with automatic temperature regulation. `View on GitHub `_ -* **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 `_ -* **Matter Temperature Controlled Cabinet Levels** - Creates a Matter-compatible temperature controlled cabinet device using predefined temperature levels (temperature_level mode). `View on GitHub `_ -* **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 `_ -* **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 `_ -* **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 `_ -* **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 `_ -* **Matter Simple Window Blinds** - A minimal example that only controls lift percentage using a single onGoToLiftPercentage() callback. `View on GitHub `_ +* **Matter Fan** - Creates a Matter-compatible fan device with speed and mode control. `View Matter Fan code on GitHub `_ +* **Matter Thermostat** - Creates a Matter-compatible thermostat device with temperature setpoint management and simulated heating/cooling systems with automatic temperature regulation. `View Matter Thermostat code on GitHub `_ +* **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 Matter Temperature Controlled Cabinet code on GitHub `_ +* **Matter Temperature Controlled Cabinet Levels** - Creates a Matter-compatible temperature controlled cabinet device using predefined temperature levels (temperature_level mode). `View Matter Temperature Controlled Cabinet Levels code on GitHub `_ +* **Matter On/Off Plugin** - Creates a Matter-compatible on/off plugin unit (power relay) device with state persistence for power control applications. `View Matter On/Off Plugin code on GitHub `_ +* **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 Matter Dimmable Plugin code on GitHub `_ +* **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 Matter Smart Button code on GitHub `_ +* **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 Matter Window Covering code on GitHub `_ +* **Matter Simple Window Blinds** - A minimal example that only controls lift percentage using a single onGoToLiftPercentage() callback. `View Matter Simple Window Blinds code on GitHub `_ **Advanced Examples:** -* **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 `_ +* **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 Matter Lambda Single Callback Many Endpoints code on GitHub `_ Common Problems and Issues -------------------------- From f4e5055b9b2dc3503884e98fbf2eea8e67521bf7 Mon Sep 17 00:00:00 2001 From: SuGlider Date: Sun, 14 Dec 2025 18:14:54 -0300 Subject: [PATCH 07/28] feat(matter): fixes IDE tools option images in documentation --- docs/en/matter/matter.rst | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index e9060b037e0..4e8c2f7db2a 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -23,13 +23,17 @@ Before uploading any Matter example sketch, it is necessary to configure the Ard 1. **Partition Scheme**: Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. - .. image:: ../_static/matter_partition_scheme.png + .. figure:: ../../_static/matter_partition_scheme.png + :align: center :alt: "Partition Scheme: Huge APP (3MB No OTA/1MB SPIFFS)"" Arduino IDE menu option + :figclass: align-center 2. **Erase Flash**: Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. - .. image:: ../_static/matter_erase_flash.png + .. figure:: ../../_static/matter_erase_flash.png + :align: center :alt: Erase All Flash Before Sketch Upload: Enabled" Arduino IDE menu option + :figclass: align-center These settings are required for the following reasons: From 8d2ba4474526eaa4f09df4bcccaea5f0c20b5a79 Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Sun, 14 Dec 2025 18:59:15 -0300 Subject: [PATCH 08/28] fix(matter_docs): typo Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/en/matter/matter.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index 4e8c2f7db2a..70f80e8a076 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -25,7 +25,7 @@ Before uploading any Matter example sketch, it is necessary to configure the Ard .. figure:: ../../_static/matter_partition_scheme.png :align: center - :alt: "Partition Scheme: Huge APP (3MB No OTA/1MB SPIFFS)"" Arduino IDE menu option + :alt: "Partition Scheme: Huge APP (3MB No OTA/1MB SPIFFS)" Arduino IDE menu option :figclass: align-center 2. **Erase Flash**: Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. From a18b800246f083e9e3b3eb3cbc8f241dd8beff95 Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Sun, 14 Dec 2025 18:59:41 -0300 Subject: [PATCH 09/28] fix(matter_docs): typo Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/en/matter/matter.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index 70f80e8a076..fc650b4fd13 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -32,7 +32,7 @@ Before uploading any Matter example sketch, it is necessary to configure the Ard .. figure:: ../../_static/matter_erase_flash.png :align: center - :alt: Erase All Flash Before Sketch Upload: Enabled" Arduino IDE menu option + :alt: "Erase All Flash Before Sketch Upload: Enabled" Arduino IDE menu option :figclass: align-center These settings are required for the following reasons: From 94118c25b2b3770b2da5170ff3b1d2832be1c41f Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Sun, 14 Dec 2025 19:00:12 -0300 Subject: [PATCH 10/28] fix(matter): typo Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/en/matter/matter.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index fc650b4fd13..29640ac3960 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -107,7 +107,7 @@ The ``Matter`` class provides the following key methods: * ``begin()``: Initializes the Matter stack * ``isDeviceCommissioned()``: Checks if the device is commissioned -* ``isWi-FiConnected()``: Checks Wi-Fi connection status (if Wi-Fi is enabled) +* ``isWiFiConnected()``: Checks Wi-Fi connection status (if Wi-Fi is enabled) * ``isThreadConnected()``: Checks Thread connection status (if Thread is enabled) * ``isDeviceConnected()``: Checks overall device connectivity * ``isWiFiStationEnabled()``: Checks if WiFi Station mode is supported and enabled From 78e96564f69a5e8c2f26e28a34d942039121be9b Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Sun, 14 Dec 2025 19:03:01 -0300 Subject: [PATCH 11/28] fix(matter): leftover commentary --- libraries/Matter/src/Matter.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp index 6106e37e331..b004a079b7f 100644 --- a/libraries/Matter/src/Matter.cpp +++ b/libraries/Matter/src/Matter.cpp @@ -204,8 +204,6 @@ bool ArduinoMatter::isWiFiAccessPointEnabled() { bool ArduinoMatter::isThreadEnabled() { // Check hardware support (SOC capabilities) AND Matter configuration - // Thread requires IEEE 802.15.4 radio support (ESP32-H2, ESP32-C6, ESP32-C5) - // For now, we check Matter configuration as hardware detection is complex #if CONFIG_ENABLE_MATTER_OVER_THREAD || CHIP_DEVICE_CONFIG_ENABLE_THREAD return true; #else From 1a501edc628ee78ac9f15c54ad00ea7d3441dad6 Mon Sep 17 00:00:00 2001 From: SuGlider Date: Sun, 14 Dec 2025 19:21:43 -0300 Subject: [PATCH 12/28] fix(matter): fixes window blind terms --- docs/en/matter/matter.rst | 2 +- .../MatterSimpleBlinds.ino} | 4 ++-- .../README.md | 6 +++--- .../{MatterSimpleWidowsBlind => MatterSimpleBlinds}/ci.yml | 0 4 files changed, 6 insertions(+), 6 deletions(-) rename libraries/Matter/examples/{MatterSimpleWidowsBlind/MatterSimpleWidowsBlind.ino => MatterSimpleBlinds/MatterSimpleBlinds.ino} (97%) rename libraries/Matter/examples/{MatterSimpleWidowsBlind => MatterSimpleBlinds}/README.md (98%) rename libraries/Matter/examples/{MatterSimpleWidowsBlind => MatterSimpleBlinds}/ci.yml (100%) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index 29640ac3960..5f2f799d1d1 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -219,7 +219,7 @@ The Matter library includes a comprehensive set of examples demonstrating variou * **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 Matter Dimmable Plugin code on GitHub `_ * **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 Matter Smart Button code on GitHub `_ * **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 Matter Window Covering code on GitHub `_ -* **Matter Simple Window Blinds** - A minimal example that only controls lift percentage using a single onGoToLiftPercentage() callback. `View Matter Simple Window Blinds code on GitHub `_ +* **Matter Simple Blinds** - A minimal example that only controls lift percentage using a single onGoToLiftPercentage() callback. `View Matter Simple Blinds code on GitHub `_ **Advanced Examples:** diff --git a/libraries/Matter/examples/MatterSimpleWidowsBlind/MatterSimpleWidowsBlind.ino b/libraries/Matter/examples/MatterSimpleBlinds/MatterSimpleBlinds.ino similarity index 97% rename from libraries/Matter/examples/MatterSimpleWidowsBlind/MatterSimpleWidowsBlind.ino rename to libraries/Matter/examples/MatterSimpleBlinds/MatterSimpleBlinds.ino index 51c4192d7f2..adcb68d7d1c 100644 --- a/libraries/Matter/examples/MatterSimpleWidowsBlind/MatterSimpleWidowsBlind.ino +++ b/libraries/Matter/examples/MatterSimpleBlinds/MatterSimpleBlinds.ino @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Matter Simple Window Blinds Example +// Matter Simple Blind Example // This is a minimal example that only controls Lift percentage using a single onGoToLiftPercentage() callback #include @@ -45,7 +45,7 @@ void setup() { Serial.begin(115200); delay(1000); Serial.println("\n========================================"); - Serial.println("Matter Simple Window Blinds Example"); + Serial.println("Matter Simple Blinds Example"); Serial.println("========================================\n"); // CONFIG_ENABLE_CHIPOBLE is enabled when BLE is used to commission the Matter Network diff --git a/libraries/Matter/examples/MatterSimpleWidowsBlind/README.md b/libraries/Matter/examples/MatterSimpleBlinds/README.md similarity index 98% rename from libraries/Matter/examples/MatterSimpleWidowsBlind/README.md rename to libraries/Matter/examples/MatterSimpleBlinds/README.md index dd670a91de5..1e902650240 100644 --- a/libraries/Matter/examples/MatterSimpleWidowsBlind/README.md +++ b/libraries/Matter/examples/MatterSimpleBlinds/README.md @@ -1,4 +1,4 @@ -# Matter Simple Window Blinds Example +# Matter Simple Blinds Example This is a minimal example demonstrating how to create a Matter-compatible window covering device with lift control only. This example uses a single `onGoToLiftPercentage()` callback to handle all window covering lift changes, making it ideal for simple implementations. @@ -55,7 +55,7 @@ Before uploading the sketch, configure the following: ## Building and Flashing -1. Open the `MatterSimpleWidowsBlind.ino` sketch in the Arduino IDE. +1. Open the `MatterSimpleWindowBlind.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. @@ -66,7 +66,7 @@ Before uploading the sketch, configure the following: ``` ======================================== -Matter Simple Window Blinds Example +Matter Simple Blinds Example ======================================== Connecting to your-ssid diff --git a/libraries/Matter/examples/MatterSimpleWidowsBlind/ci.yml b/libraries/Matter/examples/MatterSimpleBlinds/ci.yml similarity index 100% rename from libraries/Matter/examples/MatterSimpleWidowsBlind/ci.yml rename to libraries/Matter/examples/MatterSimpleBlinds/ci.yml From 74426232a79cb22e87e836e6b6973c4f24b678d7 Mon Sep 17 00:00:00 2001 From: SuGlider Date: Sun, 14 Dec 2025 19:24:07 -0300 Subject: [PATCH 13/28] fix(matter): fixes window blind terms in code and readme file --- .../MatterSimpleBlinds/MatterSimpleBlinds.ino | 10 +++++----- .../Matter/examples/MatterSimpleBlinds/README.md | 14 +++++++------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/libraries/Matter/examples/MatterSimpleBlinds/MatterSimpleBlinds.ino b/libraries/Matter/examples/MatterSimpleBlinds/MatterSimpleBlinds.ino index adcb68d7d1c..a2f21d1e9aa 100644 --- a/libraries/Matter/examples/MatterSimpleBlinds/MatterSimpleBlinds.ino +++ b/libraries/Matter/examples/MatterSimpleBlinds/MatterSimpleBlinds.ino @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -// Matter Simple Blind Example +// Matter Simple Blinds Example // This is a minimal example that only controls Lift percentage using a single onGoToLiftPercentage() callback #include @@ -33,7 +33,7 @@ const char *password = "your-password"; // Change this to your WiFi password #endif // Simple callback - handles window Lift change request -bool onBlindLift(uint8_t liftPercent) { +bool onBlindsLift(uint8_t liftPercent) { // This example only uses lift Serial.printf("Window Covering change request: Lift=%d%%\r\n", liftPercent); @@ -44,9 +44,9 @@ bool onBlindLift(uint8_t liftPercent) { void setup() { Serial.begin(115200); delay(1000); - Serial.println("\n========================================"); + Serial.println("\n============================"); Serial.println("Matter Simple Blinds Example"); - Serial.println("========================================\n"); + Serial.println("============================\n"); // CONFIG_ENABLE_CHIPOBLE is enabled when BLE is used to commission the Matter Network #if !CONFIG_ENABLE_CHIPOBLE @@ -70,7 +70,7 @@ void setup() { WindowBlinds.begin(100, 0, MatterWindowCovering::ROLLERSHADE); // Set up the onGoToLiftPercentage callback - this handles all window covering changes requested by the Matter Controller - WindowBlinds.onGoToLiftPercentage(onBlindLift); + WindowBlinds.onGoToLiftPercentage(onBlindsLift); // Start Matter Matter.begin(); diff --git a/libraries/Matter/examples/MatterSimpleBlinds/README.md b/libraries/Matter/examples/MatterSimpleBlinds/README.md index 1e902650240..f029b4e314e 100644 --- a/libraries/Matter/examples/MatterSimpleBlinds/README.md +++ b/libraries/Matter/examples/MatterSimpleBlinds/README.md @@ -55,7 +55,7 @@ Before uploading the sketch, configure the following: ## Building and Flashing -1. Open the `MatterSimpleWindowBlind.ino` sketch in the Arduino IDE. +1. Open the `MatterSimpleBlinds.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. @@ -65,9 +65,9 @@ Before uploading the sketch, configure the following: ## Expected Output ``` -======================================== +============================ Matter Simple Blinds Example -======================================== +============================ Connecting to your-ssid WiFi connected @@ -96,7 +96,7 @@ Window Covering change request: Lift=50% ## Code Structure -- **`onBlindLift()`**: Callback function that handles window covering lift changes. This is registered with `WindowBlinds.onGoToLiftPercentage()` and is triggered when `TargetPositionLiftPercent100ths` changes. The callback receives the target lift percentage (0-100%). +- **`onBlindsLift()`**: Callback function that handles window covering lift changes. This is registered with `WindowBlinds.onGoToLiftPercentage()` and is triggered when `TargetPositionLiftPercent100ths` changes. The callback receives the target lift percentage (0-100%). - **`setup()`**: Initializes Wi-Fi (if needed), Window Covering endpoint with `ROLLERSHADE` type, registers the callback, and starts Matter. - **`loop()`**: Empty - all control is handled via Matter callbacks. @@ -104,10 +104,10 @@ Window Covering change request: Lift=50% ### Adding Motor Control -In the `onBlindLift()` callback, replace the simulation code with actual motor control: +In the `onBlindsLift()` callback, replace the simulation code with actual motor control: ```cpp -bool onBlindLift(uint8_t liftPercent) { +bool onBlindsLift(uint8_t liftPercent) { Serial.printf("Moving window covering to %d%%\r\n", liftPercent); // Here you would control your actual motor/actuator @@ -131,7 +131,7 @@ bool onBlindLift(uint8_t liftPercent) { 3. **Commands not working**: Ensure the callback returns `true` to accept the command. If it returns `false`, the command will be rejected. -4. **Motor not responding**: Replace the simulation code in `onBlindLift()` with your actual motor control implementation. Remember to update `CurrentPosition` and set `OperationalState` to `STALL` when movement is complete. +4. **Motor not responding**: Replace the simulation code in `onBlindsLift()` with your actual motor control implementation. Remember to update `CurrentPosition` and set `OperationalState` to `STALL` when movement is complete. ## Notes From 520eafc86081bca863a6512e022cfa766a8893b0 Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Sun, 14 Dec 2025 19:50:09 -0300 Subject: [PATCH 14/28] fix(matter): removes not existing MACRO --- libraries/Matter/src/Matter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp index b004a079b7f..384658a682c 100644 --- a/libraries/Matter/src/Matter.cpp +++ b/libraries/Matter/src/Matter.cpp @@ -215,7 +215,7 @@ bool ArduinoMatter::isBLECommissioningEnabled() { // Check hardware support (SOC capabilities) AND Matter/ESP configuration // BLE commissioning requires: SOC BLE support AND (CHIPoBLE or NimBLE enabled) #ifdef SOC_BLE_SUPPORTED - #if CONFIG_NETWORK_LAYER_BLE || CONFIG_ENABLE_CHIPOBLE + #if CONFIG_ENABLE_CHIPOBLE return true; #else // Also check if BLE stack is enabled (Bluedroid or NimBLE) From f1b900d8d96c8445b665c39a6b742ef555d20c43 Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Sun, 14 Dec 2025 19:51:56 -0300 Subject: [PATCH 15/28] fix(matter): if CHIPoBLE is not defined, it doesn't support it --- libraries/Matter/src/Matter.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp index 384658a682c..42004e696a8 100644 --- a/libraries/Matter/src/Matter.cpp +++ b/libraries/Matter/src/Matter.cpp @@ -218,12 +218,7 @@ bool ArduinoMatter::isBLECommissioningEnabled() { #if CONFIG_ENABLE_CHIPOBLE return true; #else - // Also check if BLE stack is enabled (Bluedroid or NimBLE) - #if defined(CONFIG_BLUEDROID_ENABLED) || defined(CONFIG_NIMBLE_ENABLED) - return true; - #else return false; - #endif #endif #else return false; From 3f967a00032be19e0940138e49e73954dbe5238f Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Sun, 14 Dec 2025 19:55:31 -0300 Subject: [PATCH 16/28] fix(matter): fix commentary --- libraries/Matter/src/Matter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp index 42004e696a8..35f150600f4 100644 --- a/libraries/Matter/src/Matter.cpp +++ b/libraries/Matter/src/Matter.cpp @@ -203,7 +203,7 @@ bool ArduinoMatter::isWiFiAccessPointEnabled() { } bool ArduinoMatter::isThreadEnabled() { - // Check hardware support (SOC capabilities) AND Matter configuration + // Check Matter configuration only #if CONFIG_ENABLE_MATTER_OVER_THREAD || CHIP_DEVICE_CONFIG_ENABLE_THREAD return true; #else From 97df1e7bb155528051d1b1504593bff2db8ea8cf Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Sun, 14 Dec 2025 20:47:02 -0300 Subject: [PATCH 17/28] fix(matter): better commentary Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/en/matter/matter.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index 5f2f799d1d1..4c4ed4a5a18 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -107,8 +107,8 @@ The ``Matter`` class provides the following key methods: * ``begin()``: Initializes the Matter stack * ``isDeviceCommissioned()``: Checks if the device is commissioned -* ``isWiFiConnected()``: Checks Wi-Fi connection status (if Wi-Fi is enabled) -* ``isThreadConnected()``: Checks Thread connection status (if Thread is enabled) +* ``isWiFiConnected()``: Checks Wi-Fi connection status +* ``isThreadConnected()``: Checks Thread connection status * ``isDeviceConnected()``: Checks overall device connectivity * ``isWiFiStationEnabled()``: Checks if WiFi Station mode is supported and enabled * ``isWiFiAccessPointEnabled()``: Checks if WiFi AP mode is supported and enabled From 8da6fc006396ff06d0d5339e6cddecaf2d42ab4d Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Sun, 14 Dec 2025 20:48:03 -0300 Subject: [PATCH 18/28] fix(matter): better commentary Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- libraries/Matter/examples/MatterStatus/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/Matter/examples/MatterStatus/README.md b/libraries/Matter/examples/MatterStatus/README.md index 45320428c7c..90732233f26 100644 --- a/libraries/Matter/examples/MatterStatus/README.md +++ b/libraries/Matter/examples/MatterStatus/README.md @@ -153,8 +153,8 @@ These functions are useful for: The example periodically reports connection status every 10 seconds: -- **`Matter.isWiFiConnected()`**: Returns `true` if WiFi Station is connected (only available if WiFi Station is enabled) -- **`Matter.isThreadConnected()`**: Returns `true` if Thread is attached to a network (only available if Thread is enabled) +- **`Matter.isWiFiConnected()`**: Returns `true` if WiFi Station is connected. If WiFi Station is not enabled, always returns `false`. +- **`Matter.isThreadConnected()`**: Returns `true` if Thread is attached to a network. If Thread is not enabled, always returns `false`. - **`Matter.isDeviceConnected()`**: Returns `true` if the device is connected via WiFi or Thread (overall connectivity status) - **`Matter.isDeviceCommissioned()`**: Returns `true` if the device has been commissioned to a Matter fabric From 7ca27fd6951e82e664e7ae0f2516346932f10f9f Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Sun, 14 Dec 2025 20:49:01 -0300 Subject: [PATCH 19/28] fix(matter): identation --- libraries/Matter/src/Matter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp index 35f150600f4..5900ab573b7 100644 --- a/libraries/Matter/src/Matter.cpp +++ b/libraries/Matter/src/Matter.cpp @@ -218,7 +218,7 @@ bool ArduinoMatter::isBLECommissioningEnabled() { #if CONFIG_ENABLE_CHIPOBLE return true; #else - return false; + return false; #endif #else return false; From 364ccb8ec7690231907d4d7a22d2b0904286c1a3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci-lite[bot]" <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Date: Tue, 16 Dec 2025 20:11:59 +0000 Subject: [PATCH 20/28] ci(pre-commit): Apply automatic fixes --- .../examples/MatterStatus/MatterStatus.ino | 2 +- .../Matter/examples/MatterStatus/README.md | 5 ++- libraries/Matter/examples/MatterStatus/ci.yml | 1 - libraries/Matter/src/Matter.cpp | 31 +++++++++---------- libraries/Matter/src/Matter.h | 8 ++--- 5 files changed, 22 insertions(+), 25 deletions(-) diff --git a/libraries/Matter/examples/MatterStatus/MatterStatus.ino b/libraries/Matter/examples/MatterStatus/MatterStatus.ino index 715da8b3ae9..ffbb5fa6212 100644 --- a/libraries/Matter/examples/MatterStatus/MatterStatus.ino +++ b/libraries/Matter/examples/MatterStatus/MatterStatus.ino @@ -116,4 +116,4 @@ void loop() { Serial.printf("Device Commissioned: %s\r\n", Matter.isDeviceCommissioned() ? "YES" : "NO"); Serial.println(); delay(10000); -} \ No newline at end of file +} diff --git a/libraries/Matter/examples/MatterStatus/README.md b/libraries/Matter/examples/MatterStatus/README.md index 90732233f26..f4ccf49060e 100644 --- a/libraries/Matter/examples/MatterStatus/README.md +++ b/libraries/Matter/examples/MatterStatus/README.md @@ -164,7 +164,7 @@ Use a Matter-compatible hub (like an Apple HomePod, Google Nest Hub, or Amazon E ## Code Structure -- **`setup()`**: +- **`setup()`**: - Initializes hardware (LED) - Reports enabled features using capability query functions - Connects to WiFi (if needed and enabled) @@ -172,7 +172,7 @@ Use a Matter-compatible hub (like an Apple HomePod, Google Nest Hub, or Amazon E - Starts Matter stack - Prints commissioning information -- **`loop()`**: +- **`loop()`**: - Reports connection status every 10 seconds - All light control is handled via Matter callbacks @@ -200,4 +200,3 @@ Use a Matter-compatible hub (like an Apple HomePod, Google Nest Hub, or Amazon E ## License This example is licensed under the Apache License, Version 2.0. - diff --git a/libraries/Matter/examples/MatterStatus/ci.yml b/libraries/Matter/examples/MatterStatus/ci.yml index 1cbd404d6ed..050a80ff543 100644 --- a/libraries/Matter/examples/MatterStatus/ci.yml +++ b/libraries/Matter/examples/MatterStatus/ci.yml @@ -2,4 +2,3 @@ fqbn_append: PartitionScheme=huge_app requires: - CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y - diff --git a/libraries/Matter/src/Matter.cpp b/libraries/Matter/src/Matter.cpp index 5900ab573b7..151a9e8990e 100644 --- a/libraries/Matter/src/Matter.cpp +++ b/libraries/Matter/src/Matter.cpp @@ -179,11 +179,11 @@ void ArduinoMatter::begin() { bool ArduinoMatter::isWiFiStationEnabled() { // Check hardware support (SOC capabilities) AND Matter configuration #ifdef SOC_WIFI_SUPPORTED - #if CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION - return true; - #else - return false; - #endif +#if CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION + return true; +#else + return false; +#endif #else return false; #endif @@ -192,11 +192,11 @@ bool ArduinoMatter::isWiFiStationEnabled() { bool ArduinoMatter::isWiFiAccessPointEnabled() { // Check hardware support (SOC capabilities) AND Matter configuration #ifdef SOC_WIFI_SUPPORTED - #if CHIP_DEVICE_CONFIG_ENABLE_WIFI_AP - return true; - #else - return false; - #endif +#if CHIP_DEVICE_CONFIG_ENABLE_WIFI_AP + return true; +#else + return false; +#endif #else return false; #endif @@ -215,17 +215,16 @@ bool ArduinoMatter::isBLECommissioningEnabled() { // Check hardware support (SOC capabilities) AND Matter/ESP configuration // BLE commissioning requires: SOC BLE support AND (CHIPoBLE or NimBLE enabled) #ifdef SOC_BLE_SUPPORTED - #if CONFIG_ENABLE_CHIPOBLE - return true; - #else - return false; - #endif +#if CONFIG_ENABLE_CHIPOBLE + return true; +#else + return false; +#endif #else return false; #endif } - bool ArduinoMatter::isDeviceCommissioned() { return chip::Server::GetInstance().GetFabricTable().FabricCount() > 0; } diff --git a/libraries/Matter/src/Matter.h b/libraries/Matter/src/Matter.h index 83211a8d317..dc72017a7d3 100644 --- a/libraries/Matter/src/Matter.h +++ b/libraries/Matter/src/Matter.h @@ -182,10 +182,10 @@ class ArduinoMatter { // Network and Commissioning Capability Queries // These methods check both hardware support (SOC capabilities) and Matter configuration - static bool isWiFiStationEnabled(); // Check if WiFi Station mode is supported and enabled - static bool isWiFiAccessPointEnabled(); // Check if WiFi AP mode is supported and enabled - static bool isThreadEnabled(); // Check if Thread network is supported and enabled - static bool isBLECommissioningEnabled(); // Check if BLE commissioning is supported and enabled + static bool isWiFiStationEnabled(); // Check if WiFi Station mode is supported and enabled + static bool isWiFiAccessPointEnabled(); // Check if WiFi AP mode is supported and enabled + static bool isThreadEnabled(); // Check if Thread network is supported and enabled + static bool isBLECommissioningEnabled(); // Check if BLE commissioning is supported and enabled static bool isDeviceCommissioned(); static bool isWiFiConnected(); From 862f1f4a808aa6a1e6c9ec589475e7c47a4bb8c8 Mon Sep 17 00:00:00 2001 From: SuGlider Date: Wed, 17 Dec 2025 00:53:50 -0300 Subject: [PATCH 21/28] fix(CI): Vale check --- docs/en/matter/matter.rst | 6 +++--- .../examples/MatterColorLight/README.md | 2 ++ .../examples/MatterCommissionTest/README.md | 2 ++ .../examples/MatterComposedLights/README.md | 2 ++ .../examples/MatterContactSensor/README.md | 2 ++ .../examples/MatterDimmableLight/README.md | 2 ++ .../examples/MatterDimmablePlugin/README.md | 2 ++ .../MatterEnhancedColorLight/README.md | 2 ++ .../Matter/examples/MatterEvents/README.md | 2 ++ libraries/Matter/examples/MatterFan/README.md | 2 ++ .../examples/MatterHumiditySensor/README.md | 2 ++ .../README.md | 2 ++ .../Matter/examples/MatterMinimum/README.md | 2 ++ .../examples/MatterOccupancySensor/README.md | 2 ++ .../examples/MatterOnIdentify/README.md | 2 ++ .../examples/MatterOnOffLight/README.md | 2 ++ .../examples/MatterOnOffPlugin/README.md | 2 ++ .../examples/MatterPressureSensor/README.md | 2 ++ .../examples/MatterRainSensor/README.md | 2 ++ .../examples/MatterSimpleBlinds/README.md | 2 ++ .../examples/MatterSmartButton/README.md | 2 ++ .../Matter/examples/MatterStatus/README.md | 20 ++++++++++--------- .../README.md | 2 ++ .../README.md | 2 ++ .../examples/MatterTemperatureLight/README.md | 2 ++ .../MatterTemperatureSensor/README.md | 2 ++ .../examples/MatterThermostat/README.md | 2 ++ .../MatterWaterFreezeDetector/README.md | 2 ++ .../MatterWaterLeakDetector/README.md | 2 ++ .../examples/MatterWindowCovering/README.md | 2 ++ 30 files changed, 70 insertions(+), 12 deletions(-) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index 4c4ed4a5a18..e2a7ce6d266 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -38,7 +38,7 @@ Before uploading any Matter example sketch, it is necessary to configure the Ard These settings are required for the following reasons: * **Partition Scheme**: Matter firmware requires a large application partition (3MB) to accommodate the Matter stack and application code. -* **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. +* **Erase Flash**: Erasing flash is necessary to remove any leftover Wi-Fi 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. Matter Protocol Overview ************************ @@ -110,8 +110,8 @@ The ``Matter`` class provides the following key methods: * ``isWiFiConnected()``: Checks Wi-Fi connection status * ``isThreadConnected()``: Checks Thread connection status * ``isDeviceConnected()``: Checks overall device connectivity -* ``isWiFiStationEnabled()``: Checks if WiFi Station mode is supported and enabled -* ``isWiFiAccessPointEnabled()``: Checks if WiFi AP mode is supported and enabled +* ``isWiFiStationEnabled()``: Checks if Wi-Fi Station mode is supported and enabled +* ``isWiFiAccessPointEnabled()``: Checks if Wi-Fi AP mode is supported and enabled * ``isThreadEnabled()``: Checks if Thread network is supported and enabled * ``isBLECommissioningEnabled()``: Checks if BLE commissioning is supported and enabled * ``decommission()``: Factory resets the device diff --git a/libraries/Matter/examples/MatterColorLight/README.md b/libraries/Matter/examples/MatterColorLight/README.md index 4f18233cb21..7781d23d703 100644 --- a/libraries/Matter/examples/MatterColorLight/README.md +++ b/libraries/Matter/examples/MatterColorLight/README.md @@ -78,7 +78,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterColorLight.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterCommissionTest/README.md b/libraries/Matter/examples/MatterCommissionTest/README.md index 86bab465b22..b02f051dbcf 100644 --- a/libraries/Matter/examples/MatterCommissionTest/README.md +++ b/libraries/Matter/examples/MatterCommissionTest/README.md @@ -59,7 +59,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterCommissionTest.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterComposedLights/README.md b/libraries/Matter/examples/MatterComposedLights/README.md index 5dc1e3839a7..841f392fe0b 100644 --- a/libraries/Matter/examples/MatterComposedLights/README.md +++ b/libraries/Matter/examples/MatterComposedLights/README.md @@ -74,7 +74,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterComposedLights.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterContactSensor/README.md b/libraries/Matter/examples/MatterContactSensor/README.md index 91729a3c4a1..e842412c7e2 100644 --- a/libraries/Matter/examples/MatterContactSensor/README.md +++ b/libraries/Matter/examples/MatterContactSensor/README.md @@ -78,7 +78,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterContactSensor.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterDimmableLight/README.md b/libraries/Matter/examples/MatterDimmableLight/README.md index 071c3ae689a..d95d645f13f 100644 --- a/libraries/Matter/examples/MatterDimmableLight/README.md +++ b/libraries/Matter/examples/MatterDimmableLight/README.md @@ -79,7 +79,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterDimmableLight.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterDimmablePlugin/README.md b/libraries/Matter/examples/MatterDimmablePlugin/README.md index 6104d520b8f..c92df9b3844 100644 --- a/libraries/Matter/examples/MatterDimmablePlugin/README.md +++ b/libraries/Matter/examples/MatterDimmablePlugin/README.md @@ -82,7 +82,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterDimmablePlugin.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterEnhancedColorLight/README.md b/libraries/Matter/examples/MatterEnhancedColorLight/README.md index 5485fb33b2c..1b229bf4291 100644 --- a/libraries/Matter/examples/MatterEnhancedColorLight/README.md +++ b/libraries/Matter/examples/MatterEnhancedColorLight/README.md @@ -81,7 +81,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterEnhancedColorLight.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterEvents/README.md b/libraries/Matter/examples/MatterEvents/README.md index ab902f477da..45e712eeb8d 100644 --- a/libraries/Matter/examples/MatterEvents/README.md +++ b/libraries/Matter/examples/MatterEvents/README.md @@ -62,7 +62,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterEvents.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterFan/README.md b/libraries/Matter/examples/MatterFan/README.md index 9bd63e63279..19d5bae2555 100644 --- a/libraries/Matter/examples/MatterFan/README.md +++ b/libraries/Matter/examples/MatterFan/README.md @@ -89,7 +89,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterFan.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterHumiditySensor/README.md b/libraries/Matter/examples/MatterHumiditySensor/README.md index 1a40efaad1a..9058a477691 100644 --- a/libraries/Matter/examples/MatterHumiditySensor/README.md +++ b/libraries/Matter/examples/MatterHumiditySensor/README.md @@ -76,7 +76,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterHumiditySensor.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs/README.md b/libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs/README.md index 150d475d431..16e0c2d403f 100644 --- a/libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs/README.md +++ b/libraries/Matter/examples/MatterLambdaSingleCallbackManyEPs/README.md @@ -98,7 +98,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterLambdaSingleCallbackManyEPs.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterMinimum/README.md b/libraries/Matter/examples/MatterMinimum/README.md index aaf0420a82d..53c9e085730 100644 --- a/libraries/Matter/examples/MatterMinimum/README.md +++ b/libraries/Matter/examples/MatterMinimum/README.md @@ -78,7 +78,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterMinimum.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterOccupancySensor/README.md b/libraries/Matter/examples/MatterOccupancySensor/README.md index aa780625218..95148d76e66 100644 --- a/libraries/Matter/examples/MatterOccupancySensor/README.md +++ b/libraries/Matter/examples/MatterOccupancySensor/README.md @@ -79,7 +79,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterOccupancySensor.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterOnIdentify/README.md b/libraries/Matter/examples/MatterOnIdentify/README.md index 57e32fc5440..effc8e699a5 100644 --- a/libraries/Matter/examples/MatterOnIdentify/README.md +++ b/libraries/Matter/examples/MatterOnIdentify/README.md @@ -79,7 +79,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterOnIdentify.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterOnOffLight/README.md b/libraries/Matter/examples/MatterOnOffLight/README.md index 04341b7bd69..a57aef9bdb7 100644 --- a/libraries/Matter/examples/MatterOnOffLight/README.md +++ b/libraries/Matter/examples/MatterOnOffLight/README.md @@ -79,7 +79,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterOnOffLight.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterOnOffPlugin/README.md b/libraries/Matter/examples/MatterOnOffPlugin/README.md index f69ae65ed93..c36d6b2e382 100644 --- a/libraries/Matter/examples/MatterOnOffPlugin/README.md +++ b/libraries/Matter/examples/MatterOnOffPlugin/README.md @@ -80,7 +80,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterOnOffPlugin.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterPressureSensor/README.md b/libraries/Matter/examples/MatterPressureSensor/README.md index 49d70d7cf07..3a03fd7c50a 100644 --- a/libraries/Matter/examples/MatterPressureSensor/README.md +++ b/libraries/Matter/examples/MatterPressureSensor/README.md @@ -76,7 +76,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterPressureSensor.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterRainSensor/README.md b/libraries/Matter/examples/MatterRainSensor/README.md index 12d6228cf07..e3a08d0a14f 100644 --- a/libraries/Matter/examples/MatterRainSensor/README.md +++ b/libraries/Matter/examples/MatterRainSensor/README.md @@ -78,7 +78,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterRainSensor.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterSimpleBlinds/README.md b/libraries/Matter/examples/MatterSimpleBlinds/README.md index f029b4e314e..ab3b5d0765c 100644 --- a/libraries/Matter/examples/MatterSimpleBlinds/README.md +++ b/libraries/Matter/examples/MatterSimpleBlinds/README.md @@ -57,7 +57,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterSimpleBlinds.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterSmartButton/README.md b/libraries/Matter/examples/MatterSmartButton/README.md index 08aa6ee35f5..10e443d61ba 100644 --- a/libraries/Matter/examples/MatterSmartButton/README.md +++ b/libraries/Matter/examples/MatterSmartButton/README.md @@ -71,7 +71,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterSmartButton.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterStatus/README.md b/libraries/Matter/examples/MatterStatus/README.md index f4ccf49060e..b14f51b37ad 100644 --- a/libraries/Matter/examples/MatterStatus/README.md +++ b/libraries/Matter/examples/MatterStatus/README.md @@ -24,14 +24,14 @@ This example demonstrates how to check enabled Matter features and connectivity - Matter protocol implementation for an on/off light device - **Capability reporting**: Checks and reports enabled Matter features at startup - - `isWiFiStationEnabled()`: Checks if WiFi Station mode is supported and enabled - - `isWiFiAccessPointEnabled()`: Checks if WiFi AP mode is supported and enabled + - `isWiFiStationEnabled()`: Checks if Wi-Fi Station mode is supported and enabled + - `isWiFiAccessPointEnabled()`: Checks if Wi-Fi AP mode is supported and enabled - `isThreadEnabled()`: Checks if Thread network is supported and enabled - `isBLECommissioningEnabled()`: Checks if BLE commissioning is supported and enabled - **Connection status monitoring**: Reports connection status every 10 seconds - - `isWiFiConnected()`: Checks WiFi connection status (if WiFi Station is enabled) + - `isWiFiConnected()`: Checks Wi-Fi connection status (if Wi-Fi Station is enabled) - `isThreadConnected()`: Checks Thread connection status (if Thread is enabled) - - `isDeviceConnected()`: Checks overall device connectivity (WiFi or Thread) + - `isDeviceConnected()`: Checks overall device connectivity (Wi-Fi or Thread) - `isDeviceCommissioned()`: Checks if the device is commissioned to a Matter fabric - Simple on/off light control - Matter commissioning via QR code or manual pairing code @@ -75,7 +75,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterStatus.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. @@ -139,8 +141,8 @@ Device Commissioned: YES The example demonstrates the use of capability query functions that check both hardware support (SOC capabilities) and Matter configuration: -- **`Matter.isWiFiStationEnabled()`**: Returns `true` if the device supports WiFi Station mode and it's enabled in Matter configuration -- **`Matter.isWiFiAccessPointEnabled()`**: Returns `true` if the device supports WiFi AP mode and it's enabled in Matter configuration +- **`Matter.isWiFiStationEnabled()`**: Returns `true` if the device supports Wi-Fi Station mode and it's enabled in Matter configuration +- **`Matter.isWiFiAccessPointEnabled()`**: Returns `true` if the device supports Wi-Fi AP mode and it's enabled in Matter configuration - **`Matter.isThreadEnabled()`**: Returns `true` if the device supports Thread networking and it's enabled in Matter configuration - **`Matter.isBLECommissioningEnabled()`**: Returns `true` if the device supports BLE and BLE commissioning is enabled @@ -153,9 +155,9 @@ These functions are useful for: The example periodically reports connection status every 10 seconds: -- **`Matter.isWiFiConnected()`**: Returns `true` if WiFi Station is connected. If WiFi Station is not enabled, always returns `false`. +- **`Matter.isWiFiConnected()`**: Returns `true` if Wi-Fi Station is connected. If Wi-Fi Station is not enabled, always returns `false`. - **`Matter.isThreadConnected()`**: Returns `true` if Thread is attached to a network. If Thread is not enabled, always returns `false`. -- **`Matter.isDeviceConnected()`**: Returns `true` if the device is connected via WiFi or Thread (overall connectivity status) +- **`Matter.isDeviceConnected()`**: Returns `true` if the device is connected via Wi-Fi or Thread (overall connectivity status) - **`Matter.isDeviceCommissioned()`**: Returns `true` if the device has been commissioned to a Matter fabric ### Smart Home Integration @@ -167,7 +169,7 @@ Use a Matter-compatible hub (like an Apple HomePod, Google Nest Hub, or Amazon E - **`setup()`**: - Initializes hardware (LED) - Reports enabled features using capability query functions - - Connects to WiFi (if needed and enabled) + - Connects to Wi-Fi (if needed and enabled) - Initializes On/Off Light endpoint - Starts Matter stack - Prints commissioning information diff --git a/libraries/Matter/examples/MatterTemperatureControlledCabinet/README.md b/libraries/Matter/examples/MatterTemperatureControlledCabinet/README.md index be60edb6ceb..64135190bcc 100644 --- a/libraries/Matter/examples/MatterTemperatureControlledCabinet/README.md +++ b/libraries/Matter/examples/MatterTemperatureControlledCabinet/README.md @@ -86,7 +86,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterTemperatureControlledCabinet.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterTemperatureControlledCabinetLevels/README.md b/libraries/Matter/examples/MatterTemperatureControlledCabinetLevels/README.md index 626d85aaddb..398548f60d1 100644 --- a/libraries/Matter/examples/MatterTemperatureControlledCabinetLevels/README.md +++ b/libraries/Matter/examples/MatterTemperatureControlledCabinetLevels/README.md @@ -87,7 +87,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterTemperatureControlledCabinetLevels.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterTemperatureLight/README.md b/libraries/Matter/examples/MatterTemperatureLight/README.md index 264f9136b2c..2a4ce7bd2e6 100644 --- a/libraries/Matter/examples/MatterTemperatureLight/README.md +++ b/libraries/Matter/examples/MatterTemperatureLight/README.md @@ -82,7 +82,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterTemperatureLight.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterTemperatureSensor/README.md b/libraries/Matter/examples/MatterTemperatureSensor/README.md index 696b61168ea..c62e656a68e 100644 --- a/libraries/Matter/examples/MatterTemperatureSensor/README.md +++ b/libraries/Matter/examples/MatterTemperatureSensor/README.md @@ -76,7 +76,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterTemperatureSensor.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterThermostat/README.md b/libraries/Matter/examples/MatterThermostat/README.md index 6a567da0690..32a61ce86c8 100644 --- a/libraries/Matter/examples/MatterThermostat/README.md +++ b/libraries/Matter/examples/MatterThermostat/README.md @@ -78,7 +78,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterThermostat.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterWaterFreezeDetector/README.md b/libraries/Matter/examples/MatterWaterFreezeDetector/README.md index f2783df8476..9ec4c71b4fa 100644 --- a/libraries/Matter/examples/MatterWaterFreezeDetector/README.md +++ b/libraries/Matter/examples/MatterWaterFreezeDetector/README.md @@ -78,7 +78,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterWaterFreezeDetector.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterWaterLeakDetector/README.md b/libraries/Matter/examples/MatterWaterLeakDetector/README.md index ae7d44d29df..17342ab4ced 100644 --- a/libraries/Matter/examples/MatterWaterLeakDetector/README.md +++ b/libraries/Matter/examples/MatterWaterLeakDetector/README.md @@ -78,7 +78,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterWaterLeakDetector.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. diff --git a/libraries/Matter/examples/MatterWindowCovering/README.md b/libraries/Matter/examples/MatterWindowCovering/README.md index f802f3d0cc1..278329f9cde 100644 --- a/libraries/Matter/examples/MatterWindowCovering/README.md +++ b/libraries/Matter/examples/MatterWindowCovering/README.md @@ -82,7 +82,9 @@ Before uploading the sketch, configure the following: 1. Open the `MatterWindowCovering.ino` sketch in the Arduino IDE. 2. Select your ESP32 board from the **Tools > Board** menu. + 3. Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + 4. Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. 5. Connect your ESP32 board to your computer via USB. 6. Click the **Upload** button to compile and flash the sketch. From 865eb86357d825f5cedf603c6530c5333550a67e Mon Sep 17 00:00:00 2001 From: SuGlider Date: Wed, 17 Dec 2025 01:00:23 -0300 Subject: [PATCH 22/28] fix(CI): Vale check --- docs/en/matter/matter.rst | 2 ++ libraries/Matter/examples/MatterStatus/README.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index e2a7ce6d266..08ce4e62e91 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -21,12 +21,14 @@ Building and Flashing Matter Examples Before uploading any Matter example sketch, it is necessary to configure the Arduino IDE with the following settings: + 1. **Partition Scheme**: Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. .. figure:: ../../_static/matter_partition_scheme.png :align: center :alt: "Partition Scheme: Huge APP (3MB No OTA/1MB SPIFFS)" Arduino IDE menu option :figclass: align-center + 2. **Erase Flash**: Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. diff --git a/libraries/Matter/examples/MatterStatus/README.md b/libraries/Matter/examples/MatterStatus/README.md index b14f51b37ad..4c482f22792 100644 --- a/libraries/Matter/examples/MatterStatus/README.md +++ b/libraries/Matter/examples/MatterStatus/README.md @@ -139,7 +139,7 @@ Device Commissioned: YES ### Capability Queries -The example demonstrates the use of capability query functions that check both hardware support (SOC capabilities) and Matter configuration: +The example demonstrates the use of capability query functions that check both hardware support (SoC capabilities) and Matter configuration: - **`Matter.isWiFiStationEnabled()`**: Returns `true` if the device supports Wi-Fi Station mode and it's enabled in Matter configuration - **`Matter.isWiFiAccessPointEnabled()`**: Returns `true` if the device supports Wi-Fi AP mode and it's enabled in Matter configuration From b8226b1a947c6097467ac02a05664690e4e4d412 Mon Sep 17 00:00:00 2001 From: SuGlider Date: Wed, 17 Dec 2025 01:02:36 -0300 Subject: [PATCH 23/28] fix(CI): Vale check --- docs/en/matter/matter.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index 08ce4e62e91..f9152efa107 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -39,7 +39,9 @@ Before uploading any Matter example sketch, it is necessary to configure the Ard These settings are required for the following reasons: + * **Partition Scheme**: Matter firmware requires a large application partition (3MB) to accommodate the Matter stack and application code. + * **Erase Flash**: Erasing flash is necessary to remove any leftover Wi-Fi 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. Matter Protocol Overview From 5fc9e47a15030d7c723ae8ad856bb9aa37b53205 Mon Sep 17 00:00:00 2001 From: SuGlider Date: Wed, 17 Dec 2025 01:06:57 -0300 Subject: [PATCH 24/28] fix(CI): docs check --- docs/en/matter/matter.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index f9152efa107..7d41d73ce41 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -30,6 +30,7 @@ Before uploading any Matter example sketch, it is necessary to configure the Ard :figclass: align-center + 2. **Erase Flash**: Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. .. figure:: ../../_static/matter_erase_flash.png From f263623ed8bbd5bb92b2da36ff706a264135c4c4 Mon Sep 17 00:00:00 2001 From: SuGlider Date: Wed, 17 Dec 2025 01:08:55 -0300 Subject: [PATCH 25/28] fix(CI): docs check --- docs/en/matter/matter.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index 7d41d73ce41..aa0632d94f1 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -28,8 +28,8 @@ Before uploading any Matter example sketch, it is necessary to configure the Ard :align: center :alt: "Partition Scheme: Huge APP (3MB No OTA/1MB SPIFFS)" Arduino IDE menu option :figclass: align-center - + 2. **Erase Flash**: Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. From 48225ace53ef025146a043388d345e6f03c98234 Mon Sep 17 00:00:00 2001 From: SuGlider Date: Wed, 17 Dec 2025 01:15:11 -0300 Subject: [PATCH 26/28] fix(CI): docs check --- docs/en/matter/matter.rst | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index aa0632d94f1..c952702c042 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -21,16 +21,13 @@ Building and Flashing Matter Examples Before uploading any Matter example sketch, it is necessary to configure the Arduino IDE with the following settings: - -1. **Partition Scheme**: Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. +1. **Partition Scheme**: Select **``"Huge APP (3MB No OTA/1MB SPIFFS)"``** from **Tools > Partition Scheme** menu. .. figure:: ../../_static/matter_partition_scheme.png :align: center - :alt: "Partition Scheme: Huge APP (3MB No OTA/1MB SPIFFS)" Arduino IDE menu option + :alt: "Partition Scheme: Huge APP (3 MB No OTA / 1 MB SPIFFS)" Arduino IDE menu option :figclass: align-center - - 2. **Erase Flash**: Enable **"Erase All Flash Before Sketch Upload"** option from **Tools** menu. .. figure:: ../../_static/matter_erase_flash.png @@ -40,9 +37,7 @@ Before uploading any Matter example sketch, it is necessary to configure the Ard These settings are required for the following reasons: - -* **Partition Scheme**: Matter firmware requires a large application partition (3MB) to accommodate the Matter stack and application code. - +* **Partition Scheme**: Matter firmware requires a large application partition (3 MB) to accommodate the Matter stack and application code. * **Erase Flash**: Erasing flash is necessary to remove any leftover Wi-Fi 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. Matter Protocol Overview From 9b7690d08fdf2773d83c1544d976dba7060ec8e3 Mon Sep 17 00:00:00 2001 From: SuGlider Date: Wed, 17 Dec 2025 01:20:06 -0300 Subject: [PATCH 27/28] fix(CI): docs check --- docs/en/matter/matter.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index c952702c042..7e421c0e1dd 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -21,7 +21,9 @@ Building and Flashing Matter Examples Before uploading any Matter example sketch, it is necessary to configure the Arduino IDE with the following settings: -1. **Partition Scheme**: Select **``"Huge APP (3MB No OTA/1MB SPIFFS)"``** from **Tools > Partition Scheme** menu. + +1. **Partition Scheme**: Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. + .. figure:: ../../_static/matter_partition_scheme.png :align: center From f376a8df61af7cb24780f326ff9c75c8c7ade3b3 Mon Sep 17 00:00:00 2001 From: SuGlider Date: Wed, 17 Dec 2025 01:29:25 -0300 Subject: [PATCH 28/28] fix(CI): docs check --- docs/en/matter/matter.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/en/matter/matter.rst b/docs/en/matter/matter.rst index 7e421c0e1dd..5ed59076dc4 100644 --- a/docs/en/matter/matter.rst +++ b/docs/en/matter/matter.rst @@ -21,9 +21,7 @@ Building and Flashing Matter Examples Before uploading any Matter example sketch, it is necessary to configure the Arduino IDE with the following settings: - -1. **Partition Scheme**: Select **"Huge APP (3MB No OTA/1MB SPIFFS)"** from **Tools > Partition Scheme** menu. - +1. **Partition Scheme**: Select **"Huge APP (3 MB No OTA / 1 MB SPIFFS)"** from **Tools > Partition Scheme** menu. .. figure:: ../../_static/matter_partition_scheme.png :align: center