Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
8969633
ZoneMgmtCluster Migration PR#3 move structs (#43590)
marybadalyan Mar 16, 2026
aecf35a
Bump third_party/amazon-kinesis-video-streams-webrtc-sdk-c/repo (#43597)
dependabot[bot] Mar 16, 2026
c4fd4d3
Bump third_party/ot-br-posix/repo from `ccb0e14` to `43f2a88` (#43598)
dependabot[bot] Mar 16, 2026
fb952bf
Bump rojopolis/spellcheck-github-actions from 0.59.0 to 0.60.0 (#43599)
dependabot[bot] Mar 16, 2026
31fa814
Bump third_party/openthread/repo from `3fec404` to `0d4a43a` (#43601)
dependabot[bot] Mar 16, 2026
bbc6f15
Bump dorny/paths-filter from 3 to 4 (#43602)
dependabot[bot] Mar 16, 2026
436f9b3
Do not exclude build directory from ruff check (#43572)
arkq Mar 16, 2026
542fa06
Update .xml and generated source code of ambient context sensing clus…
crlonxp Mar 16, 2026
d875fde
Bump third_party/pigweed/repo from `3cd31cb` to `c119d20` (#43600)
dependabot[bot] Mar 16, 2026
c78351e
Bump third_party/libwebsockets/repo from `6e09203` to `4926031` (#43596)
dependabot[bot] Mar 16, 2026
1362a32
Move Wi-Fi AP Introspection and Observation Methods from Interface He…
gerickson Mar 16, 2026
4c44d30
Rename closure-dimension cluster files for conversion to code driven …
pimpalemahesh Mar 16, 2026
4e4e714
Groupcast: Structure and methods made private. (#43576)
rcasallas-silabs Mar 16, 2026
6d31890
[Chef] Enable Pw access for more attributes (#43561)
sxb427 Mar 16, 2026
3683f59
add the DeviceLocation attribute to the Basic Information cluster XML…
plauric Mar 16, 2026
2c0071b
Merge remote-tracking branch 'origin/main' into automation/update_main
github-actions[bot] Mar 17, 2026
bbdcd51
[SL-ONLY] Regenerate ZAP files for Silabs apps
github-actions[bot] Mar 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/examples-esp32.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ jobs:
run: rm -rf out/esp32-m5stack-all-clusters-minimal examples/all-clusters-minimal-app/esp32/managed_components

- name: Check for changed paths
uses: dorny/paths-filter@v3
uses: dorny/paths-filter@v4
id: changed_paths
with:
filters: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/examples-nrfconnect.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
with:
platform: nrfconnect
- name: Detect changed paths
uses: dorny/paths-filter@v3
uses: dorny/paths-filter@v4
id: changed_paths
with:
filters: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/examples-nxp.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
extra-submodule-parameters: --recursive

- name: Detect changed paths
uses: dorny/paths-filter@v3
uses: dorny/paths-filter@v4
id: changed_paths
with:
filters: |
Expand Down Expand Up @@ -163,7 +163,7 @@ jobs:
with:
platform: nxp
- name: Detect changed paths
uses: dorny/paths-filter@v3
uses: dorny/paths-filter@v4
id: changed_paths
with:
filters: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/examples-realtek.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
extra-submodule-parameters: --recursive

- name: Detect changed paths
uses: dorny/paths-filter@v3
uses: dorny/paths-filter@v4
id: changed_paths
with:
filters: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/spell.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v6
- uses: rojopolis/spellcheck-github-actions@0.59.0
- uses: rojopolis/spellcheck-github-actions@0.60.0
5 changes: 1 addition & 4 deletions build/config/linux/pkg-config.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,7 @@ def GetPkgConfigPrefixToStrip(options, args):
def MatchesAnyRegexp(flag, list_of_regexps):
"""Returns true if the first argument matches any regular expression in the
given list."""
for regexp in list_of_regexps:
if regexp.search(flag) is not None:
return True
return False
return any(regexp.search(flag) is not None for regexp in list_of_regexps)


def RewritePath(path, strip_prefix, sysroot):
Expand Down
4 changes: 2 additions & 2 deletions credentials/generate_revocation_set.py
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,7 @@ def fetch_crl_from_url(url: str, timeout: int) -> x509.CertificateRevocationList
log.debug(f"Fetched CRL: {r.content}")
return x509.load_der_x509_crl(r.content)
except Exception as e:
log.error('Failed to fetch a valid CRL', e)
log.error("Failed to fetch a valid CRL: %s", e)


class DclClientInterface:
Expand Down Expand Up @@ -439,7 +439,7 @@ def get_paa_cert(self, initial_cert: x509.Certificate) -> Optional[x509.Certific
break

except Exception as e:
log.error('Failed to get PAA certificate', e)
log.error("Failed to get PAA certificate: %s", e)
return None
log.debug(f"issuer_name: {issuer_certificate.subject.rfc4514_string()}")
issuer_name = issuer_certificate.issuer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -738,6 +738,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -667,6 +667,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -667,6 +667,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1204,6 +1204,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1204,6 +1204,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1133,6 +1133,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -694,6 +694,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -694,6 +694,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -694,6 +694,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -694,6 +694,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
1 change: 1 addition & 0 deletions examples/bridge-app/bridge-common/bridge-app.matter
Original file line number Diff line number Diff line change
Expand Up @@ -1037,6 +1037,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
1 change: 1 addition & 0 deletions examples/camera-app/camera-common/camera-app.matter
Original file line number Diff line number Diff line change
Expand Up @@ -763,6 +763,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
148 changes: 147 additions & 1 deletion examples/chef/common/FakeAttributeAccess.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@
#include <app/clusters/valve-configuration-and-control-server/CodegenIntegration.h>
#endif

#if MATTER_DM_ILLUMINANCE_MEASUREMENT_CLUSTER_SERVER_ENDPOINT_COUNT > 0
#include <app/clusters/illuminance-measurement-server/CodegenIntegration.h>
#endif

#if MATTER_DM_OCCUPANCY_SENSING_CLUSTER_SERVER_ENDPOINT_COUNT > 0
#include <app/clusters/occupancy-sensor-server/CodegenIntegration.h>
#endif

namespace chip {
namespace app {
namespace Clusters {
Expand Down Expand Up @@ -83,7 +91,46 @@ class AttributeAccessor : public chip::rpc::PigweedDebugAccessInterceptor
}
return ::pw::OkStatus();
}
case TemperatureMeasurement::Attributes::MinMeasuredValue::Id:
case TemperatureMeasurement::Attributes::MaxMeasuredValue::Id: {
auto temperatureMeasurement = TemperatureMeasurement::FindClusterOnEndpoint(path.mEndpointId);
if (temperatureMeasurement == nullptr)
{
return ::pw::Status::Internal();
}

DataModel::Nullable<int16_t> value;
CHIP_ERROR err = decoder.Decode(value);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "[Pw] Failed to decode measured value: %" CHIP_ERROR_FORMAT, err.Format());
return ::pw::Status::Internal();
}

DataModel::Nullable<int16_t> min;
DataModel::Nullable<int16_t> max;

if (path.mAttributeId == TemperatureMeasurement::Attributes::MinMeasuredValue::Id)
{
min = value;
max = temperatureMeasurement->GetMaxMeasuredValue();
}
else
{
min = temperatureMeasurement->GetMinMeasuredValue();
max = value;
}

err = TemperatureMeasurement::SetMeasuredValueRange(path.mEndpointId, min, max);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "[Pw] Failed to set measured value range: %" CHIP_ERROR_FORMAT, err.Format());
return ::pw::Status::Internal();
}
return ::pw::OkStatus();
}
}
break;
#endif // MATTER_DM_TEMPERATURE_MEASUREMENT_CLUSTER_SERVER_ENDPOINT_COUNT > 0
#if MATTER_DM_VALVE_CONFIGURATION_AND_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT > 0
case ValveConfigurationAndControl::Id:
Expand All @@ -106,7 +153,106 @@ class AttributeAccessor : public chip::rpc::PigweedDebugAccessInterceptor
ChipLogProgress(Zcl, "[Pw] Successfully set current level to " ChipLogFormatMEI ".", ChipLogValueMEI(level));
return ::pw::OkStatus();
}
#endif
break;
#endif // MATTER_DM_VALVE_CONFIGURATION_AND_CONTROL_CLUSTER_SERVER_ENDPOINT_COUNT > 0
#if MATTER_DM_ILLUMINANCE_MEASUREMENT_CLUSTER_SERVER_ENDPOINT_COUNT > 0
case IlluminanceMeasurement::Id:
switch (path.mAttributeId)
{
case IlluminanceMeasurement::Attributes::MeasuredValue::Id: {
DataModel::Nullable<uint16_t> measuredValue;
CHIP_ERROR err = decoder.Decode(measuredValue);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "[Pw] Failed to decode measuredValue: %" CHIP_ERROR_FORMAT, err.Format());
return ::pw::Status::Internal();
}

err = IlluminanceMeasurement::SetMeasuredValue(path.mEndpointId, measuredValue);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "[Pw] Failed to set measuredValue: %" CHIP_ERROR_FORMAT, err.Format());
return ::pw::Status::Internal();
}

if (measuredValue.IsNull())
{
ChipLogProgress(Zcl, "[Pw] Successfully set measuredValue to null.");
}
else
{
ChipLogProgress(Zcl, "[Pw] Successfully set measuredValue to %u.", measuredValue.Value());
}
return ::pw::OkStatus();
}
case IlluminanceMeasurement::Attributes::MinMeasuredValue::Id:
case IlluminanceMeasurement::Attributes::MaxMeasuredValue::Id: {
auto illuminanceMeasurement = IlluminanceMeasurement::FindClusterOnEndpoint(path.mEndpointId);
if (illuminanceMeasurement == nullptr)
{
return ::pw::Status::Internal();
}

DataModel::Nullable<uint16_t> value;
CHIP_ERROR err = decoder.Decode(value);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "[Pw] Failed to decode measured value: %" CHIP_ERROR_FORMAT, err.Format());
return ::pw::Status::Internal();
}

DataModel::Nullable<uint16_t> min;
DataModel::Nullable<uint16_t> max;

if (path.mAttributeId == IlluminanceMeasurement::Attributes::MinMeasuredValue::Id)
{
min = value;
max = illuminanceMeasurement->GetMaxMeasuredValue();
}
else
{
min = illuminanceMeasurement->GetMinMeasuredValue();
max = value;
}

err = IlluminanceMeasurement::SetMeasuredValueRange(path.mEndpointId, min, max);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "[Pw] Failed to set measured value range: %" CHIP_ERROR_FORMAT, err.Format());
return ::pw::Status::Internal();
}
return ::pw::OkStatus();
}
}
break;
#endif // MATTER_DM_ILLUMINANCE_MEASUREMENT_CLUSTER_SERVER_ENDPOINT_COUNT > 0
#if MATTER_DM_OCCUPANCY_SENSING_CLUSTER_SERVER_ENDPOINT_COUNT > 0
case OccupancySensing::Id:
switch (path.mAttributeId)
{
case OccupancySensing::Attributes::Occupancy::Id: {
BitMask<OccupancySensing::OccupancyBitmap> occupancy;
CHIP_ERROR err = decoder.Decode(occupancy);
if (err != CHIP_NO_ERROR)
{
ChipLogError(Zcl, "[Pw] Failed to decode occupancy: %" CHIP_ERROR_FORMAT, err.Format());
return ::pw::Status::Internal();
}

auto occupancySensing = OccupancySensing::FindClusterOnEndpoint(path.mEndpointId);
if (occupancySensing == nullptr)
{
return ::pw::Status::Internal();
}

occupancySensing->SetOccupancy(occupancy.Has(OccupancySensing::OccupancyBitmap::kOccupied));
ChipLogProgress(Zcl, "[Pw] Successfully set occupancy to %d.",
occupancy.Has(OccupancySensing::OccupancyBitmap::kOccupied));
return ::pw::OkStatus();
}
}
break;
#endif // MATTER_DM_OCCUPANCY_SENSING_CLUSTER_SERVER_ENDPOINT_COUNT > 0
}
return std::nullopt;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -687,6 +687,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -957,6 +957,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -738,6 +738,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -743,6 +743,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -667,6 +667,7 @@ cluster BasicInformation = 40 {
readonly attribute optional ProductAppearanceStruct productAppearance = 20;
readonly attribute optional int32u specificationVersion = 21;
readonly attribute optional int16u maxPathsPerInvoke = 22;
attribute access(write: administer) optional nullable LocationDescriptorStruct deviceLocation = 23;
readonly attribute optional int32u configurationVersion = 24;
readonly attribute command_id generatedCommandList[] = 65528;
readonly attribute command_id acceptedCommandList[] = 65529;
Expand Down
Loading
Loading