Skip to content

Commit bce0108

Browse files
ci(pre-commit): Apply automatic fixes
1 parent 017f2df commit bce0108

File tree

1 file changed

+164
-164
lines changed

1 file changed

+164
-164
lines changed

Diff for: libraries/Matter/examples/MatterOnIdentify/MatterOnIdentify.ino

+164-164
Original file line numberDiff line numberDiff line change
@@ -164,168 +164,168 @@ void loop() {
164164
delay(500); // works as a debounce for the button and also for the LED blink
165165
}
166166
=======
167-
// Copyright 2024 Espressif Systems (Shanghai) PTE LTD
168-
//
169-
// Licensed under the Apache License, Version 2.0 (the "License");
170-
// you may not use this file except in compliance with the License.
171-
// You may obtain a copy of the License at
172-
173-
// http://www.apache.org/licenses/LICENSE-2.0
174-
//
175-
// Unless required by applicable law or agreed to in writing, software
176-
// distributed under the License is distributed on an "AS IS" BASIS,
177-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
178-
// See the License for the specific language governing permissions and
179-
// limitations under the License.
180-
181-
/*
182-
* This example is the smallest code that will create a Matter Device which can be
183-
* commissioned and controlled from a Matter Environment APP.
184-
* It controls a GPIO that could be attached to a LED for visualization.
185-
* Additionally the ESP32 will send debug messages indicating the Matter activity.
186-
* Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages.
187-
*
188-
* This example is a simple Matter On/Off Light that can be controlled by a Matter Controller.
189-
* It demonstrates how to use On Identify callback when the Identify Cluster is called.
190-
* The Matter user APP can be used to request the device to identify itself by blinking the LED.
191-
*/
192-
193-
// Matter Manager
194-
#include <Matter.h>
195-
#include <WiFi.h>
196-
197-
// List of Matter Endpoints for this Node
198-
// Single On/Off Light Endpoint - at least one per node
199-
MatterOnOffLight OnOffLight;
200-
201-
// WiFi is manually set and started
202-
const char *ssid = "your-ssid"; // Change this to your WiFi SSID
203-
const char *password = "your-password"; // Change this to your WiFi password
204-
205-
// Light GPIO that can be controlled by Matter APP
206-
#ifdef LED_BUILTIN
207-
const uint8_t ledPin = LED_BUILTIN;
208-
#else
209-
const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN
210-
#endif
211-
212-
// set your board USER BUTTON pin here - decommissioning button
213-
const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button.
214-
215-
// Button control - decommision the Matter Node
216-
uint32_t button_time_stamp = 0; // debouncing control
217-
bool button_state = false; // false = released | true = pressed
218-
const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission
219-
220-
// Identify Flag and blink time - Blink the LED
221-
const uint8_t identifyLedPin = ledPin; // uses the same LED as the Light - change if needed
222-
volatile bool identifyFlag = false; // Flag to start the Blink when in Identify state
223-
bool identifyBlink = false; // Blink state when in Identify state
224-
225-
// Matter Protocol Endpoint (On/OFF Light) Callback
226-
bool onOffLightCallback(bool state) {
227-
digitalWrite(ledPin, state ? HIGH : LOW);
228-
// This callback must return the success state to Matter core
229-
return true;
230-
}
231-
232-
// Identification shall be done by Blink in Red or just the GPIO when no LED_BUILTIN is not defined
233-
bool onIdentifyLightCallback(bool identifyIsActive) {
234-
Serial.printf("Identify Cluster is %s\r\n", identifyIsActive ? "Active" : "Inactive");
235-
if (identifyIsActive) {
236-
// Start Blinking the light in loop()
237-
identifyFlag = true;
238-
identifyBlink = !OnOffLight; // Start with the inverted light state
239-
} else {
240-
// Stop Blinking and restore the light to the its last state
241-
identifyFlag = false;
242-
// force returning to the original state by toggling the light twice
243-
OnOffLight.toggle();
244-
OnOffLight.toggle();
245-
}
246-
return true;
247-
}
248-
249-
void setup() {
250-
// Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node
251-
pinMode(buttonPin, INPUT_PULLUP);
252-
// Initialize the LED GPIO
253-
pinMode(ledPin, OUTPUT);
254-
255-
Serial.begin(115200);
256-
257-
// Manually connect to WiFi
258-
WiFi.begin(ssid, password);
259-
// Wait for connection
260-
while (WiFi.status() != WL_CONNECTED) {
261-
delay(500);
262-
Serial.print(".");
263-
}
264-
Serial.println();
265-
266-
// Initialize at least one Matter EndPoint
267-
OnOffLight.begin();
268-
269-
// On Identify Callback - Blink the LED
270-
OnOffLight.onIdentify(onIdentifyLightCallback);
271-
272-
// Associate a callback to the Matter Controller
273-
OnOffLight.onChange(onOffLightCallback);
274-
275-
// Matter beginning - Last step, after all EndPoints are initialized
276-
Matter.begin();
277-
278-
// Check Matter Accessory Commissioning state, which may change during execution of loop()
279-
if (!Matter.isDeviceCommissioned()) {
280-
Serial.println("");
281-
Serial.println("Matter Node is not commissioned yet.");
282-
Serial.println("Initiate the device discovery in your Matter environment.");
283-
Serial.println("Commission it to your Matter hub with the manual pairing code or QR code");
284-
Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str());
285-
Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str());
286-
// waits for Matter Occupancy Sensor Commissioning.
287-
uint32_t timeCount = 0;
288-
while (!Matter.isDeviceCommissioned()) {
289-
delay(100);
290-
if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec
291-
Serial.println("Matter Node not commissioned yet. Waiting for commissioning.");
292-
}
293-
}
294-
Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use.");
295-
}
296-
}
297-
298-
void loop() {
299-
// check if the Light is in identify state and blink it every 500ms (delay loop time)
300-
if (identifyFlag) {
301-
#ifdef LED_BUILTIN
302-
uint8_t brightness = 32 * identifyBlink;
303-
rgbLedWrite(identifyLedPin, brightness, 0, 0);
304-
#else
305-
digitalWrite(identifyLedPin, identifyBlink ? HIGH : LOW);
306-
#endif
307-
identifyBlink = !identifyBlink;
308-
}
309-
310-
// Check if the button has been pressed
311-
if (digitalRead(buttonPin) == LOW && !button_state) {
312-
// deals with button debouncing
313-
button_time_stamp = millis(); // record the time while the button is pressed.
314-
button_state = true; // pressed.
315-
}
316-
317-
if (digitalRead(buttonPin) == HIGH && button_state) {
318-
button_state = false; // released
319-
}
320-
321-
// Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node
322-
uint32_t time_diff = millis() - button_time_stamp;
323-
if (button_state && time_diff > decommissioningTimeout) {
324-
Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again.");
325-
Matter.decommission();
326-
button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so
327-
}
328-
329-
delay(500); // works as a debounce for the button and also for the LED blink
330-
}
167+
// Copyright 2024 Espressif Systems (Shanghai) PTE LTD
168+
//
169+
// Licensed under the Apache License, Version 2.0 (the "License");
170+
// you may not use this file except in compliance with the License.
171+
// You may obtain a copy of the License at
172+
173+
// http://www.apache.org/licenses/LICENSE-2.0
174+
//
175+
// Unless required by applicable law or agreed to in writing, software
176+
// distributed under the License is distributed on an "AS IS" BASIS,
177+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
178+
// See the License for the specific language governing permissions and
179+
// limitations under the License.
180+
181+
/*
182+
* This example is the smallest code that will create a Matter Device which can be
183+
* commissioned and controlled from a Matter Environment APP.
184+
* It controls a GPIO that could be attached to a LED for visualization.
185+
* Additionally the ESP32 will send debug messages indicating the Matter activity.
186+
* Turning DEBUG Level ON may be useful to following Matter Accessory and Controller messages.
187+
*
188+
* This example is a simple Matter On/Off Light that can be controlled by a Matter Controller.
189+
* It demonstrates how to use On Identify callback when the Identify Cluster is called.
190+
* The Matter user APP can be used to request the device to identify itself by blinking the LED.
191+
*/
192+
193+
// Matter Manager
194+
#include <Matter.h>
195+
#include <WiFi.h>
196+
197+
// List of Matter Endpoints for this Node
198+
// Single On/Off Light Endpoint - at least one per node
199+
MatterOnOffLight OnOffLight;
200+
201+
// WiFi is manually set and started
202+
const char *ssid = "your-ssid"; // Change this to your WiFi SSID
203+
const char *password = "your-password"; // Change this to your WiFi password
204+
205+
// Light GPIO that can be controlled by Matter APP
206+
#ifdef LED_BUILTIN
207+
const uint8_t ledPin = LED_BUILTIN;
208+
#else
209+
const uint8_t ledPin = 2; // Set your pin here if your board has not defined LED_BUILTIN
210+
#endif
211+
212+
// set your board USER BUTTON pin here - decommissioning button
213+
const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button.
214+
215+
// Button control - decommision the Matter Node
216+
uint32_t button_time_stamp = 0; // debouncing control
217+
bool button_state = false; // false = released | true = pressed
218+
const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission
219+
220+
// Identify Flag and blink time - Blink the LED
221+
const uint8_t identifyLedPin = ledPin; // uses the same LED as the Light - change if needed
222+
volatile bool identifyFlag = false; // Flag to start the Blink when in Identify state
223+
bool identifyBlink = false; // Blink state when in Identify state
224+
225+
// Matter Protocol Endpoint (On/OFF Light) Callback
226+
bool onOffLightCallback(bool state) {
227+
digitalWrite(ledPin, state ? HIGH : LOW);
228+
// This callback must return the success state to Matter core
229+
return true;
230+
}
231+
232+
// Identification shall be done by Blink in Red or just the GPIO when no LED_BUILTIN is not defined
233+
bool onIdentifyLightCallback(bool identifyIsActive) {
234+
Serial.printf("Identify Cluster is %s\r\n", identifyIsActive ? "Active" : "Inactive");
235+
if (identifyIsActive) {
236+
// Start Blinking the light in loop()
237+
identifyFlag = true;
238+
identifyBlink = !OnOffLight; // Start with the inverted light state
239+
} else {
240+
// Stop Blinking and restore the light to the its last state
241+
identifyFlag = false;
242+
// force returning to the original state by toggling the light twice
243+
OnOffLight.toggle();
244+
OnOffLight.toggle();
245+
}
246+
return true;
247+
}
248+
249+
void setup() {
250+
// Initialize the USER BUTTON (Boot button) that will be used to decommission the Matter Node
251+
pinMode(buttonPin, INPUT_PULLUP);
252+
// Initialize the LED GPIO
253+
pinMode(ledPin, OUTPUT);
254+
255+
Serial.begin(115200);
256+
257+
// Manually connect to WiFi
258+
WiFi.begin(ssid, password);
259+
// Wait for connection
260+
while (WiFi.status() != WL_CONNECTED) {
261+
delay(500);
262+
Serial.print(".");
263+
}
264+
Serial.println();
265+
266+
// Initialize at least one Matter EndPoint
267+
OnOffLight.begin();
268+
269+
// On Identify Callback - Blink the LED
270+
OnOffLight.onIdentify(onIdentifyLightCallback);
271+
272+
// Associate a callback to the Matter Controller
273+
OnOffLight.onChange(onOffLightCallback);
274+
275+
// Matter beginning - Last step, after all EndPoints are initialized
276+
Matter.begin();
277+
278+
// Check Matter Accessory Commissioning state, which may change during execution of loop()
279+
if (!Matter.isDeviceCommissioned()) {
280+
Serial.println("");
281+
Serial.println("Matter Node is not commissioned yet.");
282+
Serial.println("Initiate the device discovery in your Matter environment.");
283+
Serial.println("Commission it to your Matter hub with the manual pairing code or QR code");
284+
Serial.printf("Manual pairing code: %s\r\n", Matter.getManualPairingCode().c_str());
285+
Serial.printf("QR code URL: %s\r\n", Matter.getOnboardingQRCodeUrl().c_str());
286+
// waits for Matter Occupancy Sensor Commissioning.
287+
uint32_t timeCount = 0;
288+
while (!Matter.isDeviceCommissioned()) {
289+
delay(100);
290+
if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec
291+
Serial.println("Matter Node not commissioned yet. Waiting for commissioning.");
292+
}
293+
}
294+
Serial.println("Matter Node is commissioned and connected to Wi-Fi. Ready for use.");
295+
}
296+
}
297+
298+
void loop() {
299+
// check if the Light is in identify state and blink it every 500ms (delay loop time)
300+
if (identifyFlag) {
301+
#ifdef LED_BUILTIN
302+
uint8_t brightness = 32 * identifyBlink;
303+
rgbLedWrite(identifyLedPin, brightness, 0, 0);
304+
#else
305+
digitalWrite(identifyLedPin, identifyBlink ? HIGH : LOW);
306+
#endif
307+
identifyBlink = !identifyBlink;
308+
}
309+
310+
// Check if the button has been pressed
311+
if (digitalRead(buttonPin) == LOW && !button_state) {
312+
// deals with button debouncing
313+
button_time_stamp = millis(); // record the time while the button is pressed.
314+
button_state = true; // pressed.
315+
}
316+
317+
if (digitalRead(buttonPin) == HIGH && button_state) {
318+
button_state = false; // released
319+
}
320+
321+
// Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node
322+
uint32_t time_diff = millis() - button_time_stamp;
323+
if (button_state && time_diff > decommissioningTimeout) {
324+
Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again.");
325+
Matter.decommission();
326+
button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so
327+
}
328+
329+
delay(500); // works as a debounce for the button and also for the LED blink
330+
}
331331
>>>>>>> Stashed changes

0 commit comments

Comments
 (0)