-
Notifications
You must be signed in to change notification settings - Fork 7.8k
Closed
Labels
Status: Awaiting triageIssue is waiting for triageIssue is waiting for triage
Description
Board
XIAO_ESP32C6
Device Description
directly attached via USB-C to my PC
Hardware Configuration
No, just using the on-board LED and boot-Button
Version
v3.3.3
Type
Question
IDE Name
Arduino IDE
Operating System
Windows 11
Flash frequency
80MHz
PSRAM enabled
no
Upload speed
921600
Description
Hi, I'm currently experimenting around with the Matter examples. I've tried out multiple of them, but I can't get any of them to work. Upon starting any of them, it starts of with an error:
Logs
WiFi connected
IP address:
192.168.188.189
> E (5661) chip[DMG]: Endpoint 0, Cluster 0x0000_0031 not found in IncreaseClusterDataVersion!
E (5662) chip[DMG]: Endpoint 0, Cluster 0x0000_0031 not found in IncreaseClusterDataVersion!
Matter Node is not commissioned yet.
Matter Node is not commissioned yet.
Matter Node is not commissioned yet.
...
Logs
E (469840) chip[SVR]: Failsafe timer expired
E (469841) chip[SVR]: Commissioning failed (attempt 1): 32
E (469852) chip[ZCL]: OpCreds: Got FailSafeTimerExpired
E (469852) chip[ZCL]: OpCreds: Proceeding to FailSafeCleanup on fail-safe expiry!
E (469854) chip[DMG]: Endpoint 2, Cluster 0x0000_0031 not found in IncreaseClusterDataVersion!
E (470806) chip[IN]: Data received on an unknown session (LSID=16656). Dropping it!
Matter Node not commissioned yet. Waiting for commissioning.
E (471833) chip[IN]: Data received on an unknown session (LSID=16656). Dropping it!
E (473472) chip[IN]: Data received on an unknown session (LSID=16656). Dropping it!
E (474138) chip[EM]: <<5 [E:5871r S:0 M:53051891] (U) Msg Retransmission to 0:0000000000000000 failure (max retries:4)
Matter Node not commissioned yet. Waiting for commissioning.
E (476143) chip[IN]: Data received on an unknown session (LSID=16656). Dropping it!
...
At the end, the commissioning just fails and my device waits again to be commissioned. I did disable CONFIG_ENABLE_CHIPOBLE because of my setup but the rest is unchanged. The logs above are taken from the MatterOnOffLight.ino example.
Thank you for any help.
Sketch
// 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 Manager
#include <Matter.h>
#undef CONFIG_ENABLE_CHIPOBLE
#define CONFIG_ENABLE_CHIPOBLE 0
#if !CONFIG_ENABLE_CHIPOBLE
// if the device can be commissioned using BLE, WiFi is not used - save flash space
#include <WiFi.h>
#endif
#include <Preferences.h>
// CONFIG_ENABLE_CHIPOBLE is enabled when BLE is used to commission the Matter Network
#if !CONFIG_ENABLE_CHIPOBLE
// WiFi is manually set and started
const char *ssid = "<my ssid>"; // Change this to your WiFi SSID
const char *password = "<my password>"; // Change this to your WiFi password
#endif
// List of Matter Endpoints for this Node
// On/Off Light Endpoint
MatterOnOffLight OnOffLight;
// it will keep last OnOff state stored, using Preferences
Preferences matterPref;
const char *onOffPrefKey = "OnOff";
// 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
// set your board USER BUTTON pin here
const uint8_t buttonPin = BOOT_PIN; // Set your pin here. Using BOOT Button.
// Button control
uint32_t button_time_stamp = 0; // debouncing control
bool button_state = false; // false = released | true = pressed
const uint32_t debouceTime = 250; // button debouncing time (ms)
const uint32_t decommissioningTimeout = 5000; // keep the button pressed for 5s, or longer, to decommission
// 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);
}
// store last OnOff state for when the Light is restarted / power goes off
matterPref.putBool(onOffPrefKey, state);
// This callback must return the success state to Matter core
return true;
}
void setup() {
// Initialize the USER BUTTON (Boot button) GPIO that will act as a toggle switch
pinMode(buttonPin, INPUT_PULLUP);
// Initialize the LED (light) GPIO and Matter End Point
pinMode(ledPin, OUTPUT);
Serial.begin(115200);
// 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
Serial.print("Connecting to ");
Serial.println(ssid);
// Manually connect to WiFi
WiFi.begin(ssid, password);
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\r\nWiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
delay(500);
#endif
// Initialize Matter EndPoint
matterPref.begin("MatterPrefs", false);
bool lastOnOffState = matterPref.getBool(onOffPrefKey, true);
OnOffLight.begin(lastOnOffState);
OnOffLight.onChange(setLightOnOff);
// Matter beginning - Last step, after all EndPoints are initialized
Matter.begin();
// This may be a restart of a already commissioned Matter accessory
if (Matter.isDeviceCommissioned()) {
Serial.println("Matter Node is commissioned and connected to the network. Ready for use.");
Serial.printf("Initial state: %s\r\n", OnOffLight.getOnOff() ? "ON" : "OFF");
OnOffLight.updateAccessory(); // configure the Light based on initial state
}
}
void loop() {
// Check Matter Light Commissioning state, which may change during execution of loop()
if (!Matter.isDeviceCommissioned()) {
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());
// waits for Matter Light Commissioning.
uint32_t timeCount = 0;
while (!Matter.isDeviceCommissioned()) {
delay(100);
if ((timeCount++ % 50) == 0) { // 50*100ms = 5 sec
Serial.println("Matter Node not commissioned yet. Waiting for commissioning.");
}
}
Serial.printf("Initial state: %s\r\n", OnOffLight.getOnOff() ? "ON" : "OFF");
OnOffLight.updateAccessory(); // configure the Light based on initial state
Serial.println("Matter Node is commissioned and connected to the network. Ready for use.");
}
// A button is also used to control the light
// Check if the button has been pressed
if (digitalRead(buttonPin) == LOW && !button_state) {
// deals with button debouncing
button_time_stamp = millis(); // record the time while the button is pressed.
button_state = true; // pressed.
}
// Onboard User Button is used as a Light toggle switch or to decommission it
uint32_t time_diff = millis() - button_time_stamp;
if (button_state && time_diff > debouceTime && digitalRead(buttonPin) == HIGH) {
button_state = false; // released
// Toggle button is released - toggle the light
Serial.println("User button released. Toggling Light!");
OnOffLight.toggle(); // Matter Controller also can see the change
}
// Onboard User Button is kept pressed for longer than 5 seconds in order to decommission matter node
if (button_state && time_diff > decommissioningTimeout) {
Serial.println("Decommissioning the Light Matter Accessory. It shall be commissioned again.");
OnOffLight.setOnOff(false); // turn the light off
Matter.decommission();
button_time_stamp = millis(); // avoid running decommissining again, reboot takes a second or so
}
}Debug Message
WiFi connected
IP address:
192.168.188.189
> E (5661) chip[DMG]: Endpoint 0, Cluster 0x0000_0031 not found in IncreaseClusterDataVersion!
E (5662) chip[DMG]: Endpoint 0, Cluster 0x0000_0031 not found in IncreaseClusterDataVersion!
Matter Node is not commissioned yet.
Matter Node is not commissioned yet.
Matter Node is not commissioned yet.
...
E (469840) chip[SVR]: Failsafe timer expired
E (469841) chip[SVR]: Commissioning failed (attempt 1): 32
E (469852) chip[ZCL]: OpCreds: Got FailSafeTimerExpired
E (469852) chip[ZCL]: OpCreds: Proceeding to FailSafeCleanup on fail-safe expiry!
E (469854) chip[DMG]: Endpoint 2, Cluster 0x0000_0031 not found in IncreaseClusterDataVersion!
E (470806) chip[IN]: Data received on an unknown session (LSID=16656). Dropping it!
Matter Node not commissioned yet. Waiting for commissioning.
E (471833) chip[IN]: Data received on an unknown session (LSID=16656). Dropping it!
E (473472) chip[IN]: Data received on an unknown session (LSID=16656). Dropping it!
E (474138) chip[EM]: <<5 [E:5871r S:0 M:53051891] (U) Msg Retransmission to 0:0000000000000000 failure (max retries:4)
Matter Node not commissioned yet. Waiting for commissioning.
E (476143) chip[IN]: Data received on an unknown session (LSID=16656). Dropping it!
Other Steps to Reproduce
No response
I have checked existing issues, online documentation and the Troubleshooting Guide
- I confirm I have checked existing issues, online documentation and Troubleshooting guide.
Metadata
Metadata
Assignees
Labels
Status: Awaiting triageIssue is waiting for triageIssue is waiting for triage