Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
035fae5
Spec parsing and codegen improvements for Matter 1.5
Apollon77 Mar 27, 2026
b40f1ce
Add missing generated file patterns to .prettierignore
Apollon77 Mar 27, 2026
2ad4cfe
Fix codegen for device types with no cluster requirements
Apollon77 Mar 27, 2026
a5e1838
Adjust tests for Matter 1.5 spec changes
Apollon77 Mar 27, 2026
b8d1244
Regenerate code for Matter 1.5 specification
Apollon77 Mar 27, 2026
b717619
Update changelog for Matter 1.5 specification upgrade
Apollon77 Mar 27, 2026
5199f5d
Remove *Server.ts from prettierignore and drop plan file
Apollon77 Mar 27, 2026
9dc2568
Fix spec parser for renamed "Derived Cluster Namespace" section
Apollon77 Mar 27, 2026
1c46cac
Fix [object Object] in validation error messages
Apollon77 Mar 27, 2026
003549d
formatting
Apollon77 Mar 27, 2026
1177f0e
Emit abstract clusters for shared spec sections without cluster IDs
Apollon77 Mar 27, 2026
92473d2
formatting
Apollon77 Mar 27, 2026
cb76216
Restore files accidentally reverted from main
Apollon77 Mar 27, 2026
ecfc9bb
Parse OccupancySensing cluster from spec HTML instead of override
Apollon77 Mar 27, 2026
bed884a
Merge branch 'main' into spec15gen-v2
Apollon77 Mar 28, 2026
8dfa2d4
Merge branch 'main' into spec15gen-v2
Apollon77 Mar 29, 2026
73992e8
Re-gen after latest codegen changes
Apollon77 Mar 29, 2026
4cd7182
Merge branch 'main' into spec15gen-v2
Apollon77 Mar 31, 2026
2e4cade
Merge branch 'main' into spec15gen-v2
Apollon77 Mar 31, 2026
b808dbb
Matter 1.5.1 Parse and regen
Apollon77 Mar 30, 2026
4ef5dbc
AccessControl: Set capability attribute defaults for 1.5.1 constraints
Apollon77 Mar 30, 2026
4cb37c0
LevelControl: Set minLevel/maxLevel defaults for Rev >= v7 conformance
Apollon77 Mar 30, 2026
7e92ecf
DoorLock: Remove legacy Zigbee commands and vestigial supervision
Apollon77 Mar 30, 2026
189fe2b
UserLabel: Add RESOURCE_EXHAUSTED validation for LabelList writes
Apollon77 Mar 30, 2026
6807ec9
Remove REQUIRED_CAT_MISMATCH secure channel status code
Apollon77 Mar 30, 2026
950d09b
PairingHintBitmap: Add bits 20-22 for spec 1.5.0/1.5.1
Apollon77 Mar 30, 2026
7908634
OpCreds: RevokeCommissioning before and after RemoveFabric
Apollon77 Mar 30, 2026
8f3c9c7
RevokeCommissioning: Run cleanup before window check per spec 1.5.1
Apollon77 Mar 30, 2026
5df1137
Reject WildcardPathFlags in write interactions per spec 1.5
Apollon77 Mar 30, 2026
0971f08
RVC example: Support DirectModeChange feature bypass
Apollon77 Mar 30, 2026
6eca482
Mark spec-fixed overrides with until and regen
Apollon77 Mar 31, 2026
9cef21f
Update spec references from v1.4.2 to v1.5.1 and regen
Apollon77 Mar 31, 2026
c53562e
Disable RevokeCommissioning spec 1.5.1 changes pending test alignment
Apollon77 Mar 31, 2026
70eebc2
Disable RevokeCommissioning around RemoveFabric pending test alignment
Apollon77 Mar 31, 2026
43b8848
Tweak CADMIN 1.10 error expectation
Apollon77 Apr 1, 2026
70290a1
Try2: Tweak CADMIN 1.10 error expectation
Apollon77 Apr 1, 2026
5535dd9
Try3: Tweak CADMIN 1.10 error expectation
Apollon77 Apr 1, 2026
71f41d8
Disable RevokeCommissioning around RemoveFabric pending test alignment
Apollon77 Apr 1, 2026
8c95a5f
Merge branch 'main' into spec15gen-v2
Apollon77 Apr 1, 2026
47aeefc
feat: markdown spec parser for generate-spec (#3528)
Apollon77 Apr 6, 2026
53ac291
refactor: merge NonUserDoorLockServer and UserDoorLockServer into Doo…
Apollon77 Apr 9, 2026
b62bab1
Merge branch 'main' into spec15gen-v2
Apollon77 Apr 14, 2026
56b754d
Regenerate
Apollon77 Apr 14, 2026
ede0ca7
Merge branch 'main' into spec15gen-v2
Apollon77 Apr 15, 2026
200d8fe
Merge branch 'main' into spec15gen-v2
Apollon77 Apr 15, 2026
19b0b36
chore: regenerate forwards after codegen fix
Apollon77 Apr 15, 2026
faeebc2
Merge branch 'main' into spec15gen-v2
Apollon77 Apr 16, 2026
0768a06
Merge branch 'main' into spec15gen-v2
Apollon77 Apr 22, 2026
c46bbd2
Merge branch 'main' into spec15gen-v2
Apollon77 Apr 22, 2026
18cec63
Merge branch 'main' into spec15gen-v2
Apollon77 Apr 22, 2026
14ac89f
Merge branch 'main' into spec15gen-v2
Apollon77 Apr 24, 2026
e794540
Merge branch 'main' into spec15gen-v2
Apollon77 Apr 26, 2026
f7a607f
test(node): replace removed Thermostat.Feature.ScheduleConfiguration …
Apollon77 Apr 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ packages/types/src/globals/*
packages/node/src/tags/*
packages/node/src/endpoints/*
packages/node/src/devices/*
packages/node/src/behaviors/index.ts
packages/node/src/behaviors/*/index.ts
packages/node/src/behaviors/*/*Behavior.ts
packages/node/src/behaviors/*/*Interface.ts
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ The main work (all changes without a GitHub username in brackets in the below li

## __WORK IN PROGRESS__

- Breaking: Matter 1.5 specification introduces some changes, as always with new Matter specification versions. You might need to adjust your code.
- Some Namespaces were renamed and now have a "Common*" prefix
- Several previous "Zigbee only" features, attributes and commands were removed because they were never allowed for Matter

- @matter/\*
- 20%–50% RAM usage reductions and improvements

Expand All @@ -27,6 +31,9 @@ The main work (all changes without a GitHub username in brackets in the below li
- Enhancement: Split out Blob-Storage into its own `dir`-based BlobStorage implementation
- Enhancement: Added Storage Migration logic that can generically migrate between different storage engines

- @matter/\*:
- Upgraded to Matter specification version 1.5
Comment thread
Apollon77 marked this conversation as resolved.

- @matter/node
- Feature: (@adeepn) Added `DclBehavior` for centralized DCL configuration via environment variables (`MATTER_DCL_*`), config files, or programmatic setup
- Feature: `CommissioningClient.BaseCommissioningOptions` now accepts `wifiNetwork`, `threadNetwork`, `regulatoryLocation`, and `regulatoryCountryCode` for passing network credentials and regulatory configuration during commissioning
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

// This demonstrates bringing a "Robotic Vacuum Cleaner" device online with matter.js.

import { AreaNamespaceTag, ServerNode } from "@matter/main";
import { CommonAreaNamespaceTag, ServerNode } from "@matter/main";
import { ServiceAreaServer } from "@matter/main/behaviors/service-area";
import { ModeBase } from "@matter/main/clusters/mode-base";
import { RvcCleanMode } from "@matter/main/clusters/rvc-clean-mode";
Expand Down Expand Up @@ -104,7 +104,7 @@ await node.add(
locationInfo: {
locationName: "Kitchen",
floorNumber: 0,
areaType: AreaNamespaceTag.Kitchen.tag,
areaType: CommonAreaNamespaceTag.Kitchen.tag,
},
landmarkInfo: null,
},
Expand All @@ -116,7 +116,7 @@ await node.add(
locationInfo: {
locationName: "Living Room",
floorNumber: 0,
areaType: AreaNamespaceTag.LivingRoom.tag,
areaType: CommonAreaNamespaceTag.LivingRoom.tag,
},
landmarkInfo: null,
},
Expand All @@ -128,7 +128,7 @@ await node.add(
locationInfo: {
locationName: "Bathroom",
floorNumber: 0,
areaType: AreaNamespaceTag.Bathroom.tag,
areaType: CommonAreaNamespaceTag.Bathroom.tag,
},
landmarkInfo: null,
},
Expand All @@ -140,7 +140,7 @@ await node.add(
locationInfo: {
locationName: "Bedroom",
floorNumber: 0,
areaType: AreaNamespaceTag.Bedroom.tag,
areaType: CommonAreaNamespaceTag.Bedroom.tag,
},
landmarkInfo: null,
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,12 @@ import { RvcDeviceRunModes } from "../RvcDeviceLogic.js";

/**
* This is a custom implementation of {@link RvcRunModeServer} that makes sure that the Run Mode can not be changed
* when the device is not in the Idle mode. SO a change from Mapping to Cleaning or such is not allowed without being
* when the device is not in the Idle mode. So a change from Mapping to Cleaning or such is not allowed without being
* Idle in between which mainly means that the current operation was stopped.
* Additionally, the run mode is set to Idle on start of the device to make sure potentially old states sre reset.
*
* When the DirectModeChange feature is enabled, direct transitions between non-idle modes are allowed.
*
* Additionally, the run mode is set to Idle on start of the device to make sure potentially old states are reset.
*/
export class CustomRvcRunModeServer extends RvcRunModeServer {
override initialize() {
Expand All @@ -27,7 +30,12 @@ export class CustomRvcRunModeServer extends RvcRunModeServer {
if (result.status !== ModeBase.ModeChangeStatus.Success) {
return result;
}
if (newMode !== RvcDeviceRunModes.Idle && this.state.currentMode !== RvcDeviceRunModes.Idle) {
// When DirectModeChange is not enabled, require going through Idle first
if (
!this.features.directModeChange &&
newMode !== RvcDeviceRunModes.Idle &&
this.state.currentMode !== RvcDeviceRunModes.Idle
) {
return {
status: ModeBase.ModeChangeStatus.InvalidInMode,
statusText: `Can not switch operative modes while in a non-idle state (${this.state.currentMode})`,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/camera-av-settings-user-level-management";
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/camera-av-stream-management";
11 changes: 11 additions & 0 deletions packages/main/src/forwards/behaviors/chime.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/chime";
11 changes: 11 additions & 0 deletions packages/main/src/forwards/behaviors/closure-control.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/closure-control";
11 changes: 11 additions & 0 deletions packages/main/src/forwards/behaviors/closure-dimension.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/closure-dimension";
11 changes: 11 additions & 0 deletions packages/main/src/forwards/behaviors/commodity-metering.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/commodity-metering";
11 changes: 11 additions & 0 deletions packages/main/src/forwards/behaviors/commodity-price.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/commodity-price";
11 changes: 11 additions & 0 deletions packages/main/src/forwards/behaviors/commodity-tariff.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/commodity-tariff";
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/electrical-grid-conditions";
11 changes: 11 additions & 0 deletions packages/main/src/forwards/behaviors/meter-identification.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/meter-identification";
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/push-av-stream-transport";
11 changes: 11 additions & 0 deletions packages/main/src/forwards/behaviors/soil-measurement.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/soil-measurement";
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/tls-certificate-management";
11 changes: 11 additions & 0 deletions packages/main/src/forwards/behaviors/tls-client-management.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/tls-client-management";
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/web-rtc-transport-definitions";
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/web-rtc-transport-provider";
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/web-rtc-transport-requestor";
11 changes: 11 additions & 0 deletions packages/main/src/forwards/behaviors/web-rtc-transport.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/web-rtc-transport";
11 changes: 11 additions & 0 deletions packages/main/src/forwards/behaviors/zone-management.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/node/behaviors/zone-management";
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/types/clusters/camera-av-settings-user-level-management";
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/types/clusters/camera-av-stream-management";
11 changes: 11 additions & 0 deletions packages/main/src/forwards/clusters/chime.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/types/clusters/chime";
11 changes: 11 additions & 0 deletions packages/main/src/forwards/clusters/closure-control.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/types/clusters/closure-control";
11 changes: 11 additions & 0 deletions packages/main/src/forwards/clusters/closure-dimension.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/**
* @license
* Copyright 2022-2026 Matter.js Authors
* SPDX-License-Identifier: Apache-2.0
*/

/*** THIS FILE IS GENERATED, DO NOT EDIT ***/

import "@matter/main/platform";

export * from "@matter/types/clusters/closure-dimension";
Loading
Loading