1- // Matter Manager
2- #include < Matter.h>
3- #include < WiFi.h>
4-
5- // List of Matter Endpoints for this Node
6- // There will be 3 On/Off Light Endpoints in the same Node
7- #include < MatterOnOffLight.h>
8- MatterOnOffLight OnOffLight1;
9- MatterOnOffLight OnOffLight2;
10- MatterOnOffLight OnOffLight3;
11-
12- // Matter Protocol Endpoint Callback for each Light Accessory
13- bool setLightOnOff1 (bool state) {
14- Serial.printf (" CB-Light1 changed state to: %s\r\n " , state ? " ON" : " OFF" );
15- return true ;
16- }
17-
18- bool setLightOnOff2 (bool state) {
19- Serial.printf (" CB-Light2 changed state to: %s\r\n " , state ? " ON" : " OFF" );
20- return true ;
21- }
22-
23- bool setLightOnOff3 (bool state) {
24- Serial.printf (" CB-Light3 changed state to: %s\r\n " , state ? " ON" : " OFF" );
25- return true ;
26- }
27-
28- // WiFi is manually set and started
29-
30- const char *ssid = " your-ssid" ; // Change this to your WiFi SSID
31- const char *password = " your-password" ; // Change this to your WiFi password
32-
33- void setup () {
34- Serial.begin (115200 );
35- while (!Serial) {
36- delay (100 );
37- }
38-
39- // We start by connecting to a WiFi network
40- Serial.print (" Connecting to " );
41- Serial.println (ssid);
42- // enable IPv6
43- WiFi.enableIPv6 (true );
44- // Manually connect to WiFi
45- WiFi.begin (ssid, password);
46- // Wait for connection
47- while (WiFi.status () != WL_CONNECTED) {
48- delay (500 );
49- Serial.print (" ." );
50- }
51- Serial.println (" \r\n WiFi connected" );
52- Serial.println (" IP address: " );
53- Serial.println (WiFi.localIP ());
54- delay (500 );
55-
56- // Initialize all 3 Matter EndPoints
57- OnOffLight1.begin ();
58- OnOffLight2.begin ();
59- OnOffLight3.begin ();
60- OnOffLight1.onChangeOnOff (setLightOnOff1);
61- OnOffLight2.onChangeOnOff (setLightOnOff2);
62- OnOffLight3.onChangeOnOff (setLightOnOff3);
63-
64- // Matter begining - Last step, after all EndPoints are initialized
65- Matter.begin ();
66- }
67-
68- void loop () {
69- // Check Matter Light Commissioning state
70- if (!Matter.isDeviceCommissioned ()) {
71- Serial.println (" " );
72- Serial.println (" Matter Node is not commissioned yet." );
73- Serial.println (" Initiate the device discovery in your Matter environment." );
74- Serial.println (" Commission it to your Matter hub with the manual pairing code or QR code" );
75- Serial.printf (" Manual pairing code: %s\r\n " , Matter.getManualPairingCode ().c_str ());
76- Serial.printf (" QR code URL: %s\r\n " , Matter.getOnboardingQRCodeUrl ().c_str ());
77- // waits for Matter Light Commissioning.
78- uint32_t timeCount = 0 ;
79- while (!Matter.isDeviceCommissioned ()) {
80- delay (100 );
81- if ((timeCount++ % 50 ) == 0 ) { // 50*100ms = 5 sec
82- Serial.println (" Matter Node not commissioned yet. Waiting for commissioning." );
83- }
84- }
85- Serial.println (" Matter Node is commissioned and connected to Wi-Fi. Ready for use." );
86- }
87-
88- // displays the Light state every 3 seconds
89- Serial.println (" ======================" );
90- Serial.printf (" Matter Light #1 is %s\r\n " , OnOffLight1.getOnOff () ? " ON" : " OFF" );
91- Serial.printf (" Matter Light #2 is %s\r\n " , OnOffLight2.getOnOff () ? " ON" : " OFF" );
92- Serial.printf (" Matter Light #3 is %s\r\n " , OnOffLight3.getOnOff () ? " ON" : " OFF" );
93- delay (3000 );
94- }
1+ // Matter Manager
2+ #include < Matter.h>
3+ #include < WiFi.h>
4+
5+ // List of Matter Endpoints for this Node
6+ // There will be 3 On/Off Light Endpoints in the same Node
7+ #include < MatterOnOffLight.h>
8+ MatterOnOffLight OnOffLight1;
9+ MatterOnOffLight OnOffLight2;
10+ MatterOnOffLight OnOffLight3;
11+
12+ // Matter Protocol Endpoint Callback for each Light Accessory
13+ bool setLightOnOff1 (bool state) {
14+ Serial.printf (" CB-Light1 changed state to: %s\r\n " , state ? " ON" : " OFF" );
15+ return true ;
16+ }
17+
18+ bool setLightOnOff2 (bool state) {
19+ Serial.printf (" CB-Light2 changed state to: %s\r\n " , state ? " ON" : " OFF" );
20+ return true ;
21+ }
22+
23+ bool setLightOnOff3 (bool state) {
24+ Serial.printf (" CB-Light3 changed state to: %s\r\n " , state ? " ON" : " OFF" );
25+ return true ;
26+ }
27+
28+ // WiFi is manually set and started
29+
30+ const char *ssid = " your-ssid" ; // Change this to your WiFi SSID
31+ const char *password = " your-password" ; // Change this to your WiFi password
32+
33+ void setup () {
34+ Serial.begin (115200 );
35+ while (!Serial) {
36+ delay (100 );
37+ }
38+
39+ // We start by connecting to a WiFi network
40+ Serial.print (" Connecting to " );
41+ Serial.println (ssid);
42+ // enable IPv6
43+ WiFi.enableIPv6 (true );
44+ // Manually connect to WiFi
45+ WiFi.begin (ssid, password);
46+ // Wait for connection
47+ while (WiFi.status () != WL_CONNECTED) {
48+ delay (500 );
49+ Serial.print (" ." );
50+ }
51+ Serial.println (" \r\n WiFi connected" );
52+ Serial.println (" IP address: " );
53+ Serial.println (WiFi.localIP ());
54+ delay (500 );
55+
56+ // Initialize all 3 Matter EndPoints
57+ OnOffLight1.begin ();
58+ OnOffLight2.begin ();
59+ OnOffLight3.begin ();
60+ OnOffLight1.onChangeOnOff (setLightOnOff1);
61+ OnOffLight2.onChangeOnOff (setLightOnOff2);
62+ OnOffLight3.onChangeOnOff (setLightOnOff3);
63+
64+ // Matter beginning - Last step, after all EndPoints are initialized
65+ Matter.begin ();
66+ }
67+
68+ void loop () {
69+ // Check Matter Light Commissioning state
70+ if (!Matter.isDeviceCommissioned ()) {
71+ Serial.println (" " );
72+ Serial.println (" Matter Node is not commissioned yet." );
73+ Serial.println (" Initiate the device discovery in your Matter environment." );
74+ Serial.println (" Commission it to your Matter hub with the manual pairing code or QR code" );
75+ Serial.printf (" Manual pairing code: %s\r\n " , Matter.getManualPairingCode ().c_str ());
76+ Serial.printf (" QR code URL: %s\r\n " , Matter.getOnboardingQRCodeUrl ().c_str ());
77+ // waits for Matter Light Commissioning.
78+ uint32_t timeCount = 0 ;
79+ while (!Matter.isDeviceCommissioned ()) {
80+ delay (100 );
81+ if ((timeCount++ % 50 ) == 0 ) { // 50*100ms = 5 sec
82+ Serial.println (" Matter Node not commissioned yet. Waiting for commissioning." );
83+ }
84+ }
85+ Serial.println (" Matter Node is commissioned and connected to Wi-Fi. Ready for use." );
86+ }
87+
88+ // displays the Light state every 3 seconds
89+ Serial.println (" ======================" );
90+ Serial.printf (" Matter Light #1 is %s\r\n " , OnOffLight1.getOnOff () ? " ON" : " OFF" );
91+ Serial.printf (" Matter Light #2 is %s\r\n " , OnOffLight2.getOnOff () ? " ON" : " OFF" );
92+ Serial.printf (" Matter Light #3 is %s\r\n " , OnOffLight3.getOnOff () ? " ON" : " OFF" );
93+ delay (3000 );
94+ }
0 commit comments