@project-chip/matter.js 0.12.0-alpha.0-20241226-0f5b0fe87 → 0.12.0-alpha.0-20241228-9f74a0273
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/CommissioningController.d.ts +9 -0
- package/dist/cjs/CommissioningController.d.ts.map +1 -1
- package/dist/cjs/CommissioningController.js +67 -2
- package/dist/cjs/CommissioningController.js.map +1 -1
- package/dist/cjs/MatterController.d.ts +4 -0
- package/dist/cjs/MatterController.d.ts.map +1 -1
- package/dist/cjs/MatterController.js +34 -6
- package/dist/cjs/MatterController.js.map +1 -1
- package/dist/cjs/PaseCommissioner.d.ts.map +1 -1
- package/dist/cjs/PaseCommissioner.js +2 -1
- package/dist/cjs/PaseCommissioner.js.map +1 -1
- package/dist/cjs/device/PairedNode.d.ts.map +1 -1
- package/dist/cjs/device/PairedNode.js +27 -8
- package/dist/cjs/device/PairedNode.js.map +1 -1
- package/dist/esm/CommissioningController.d.ts +9 -0
- package/dist/esm/CommissioningController.d.ts.map +1 -1
- package/dist/esm/CommissioningController.js +70 -4
- package/dist/esm/CommissioningController.js.map +1 -1
- package/dist/esm/MatterController.d.ts +4 -0
- package/dist/esm/MatterController.d.ts.map +1 -1
- package/dist/esm/MatterController.js +34 -6
- package/dist/esm/MatterController.js.map +1 -1
- package/dist/esm/PaseCommissioner.d.ts.map +1 -1
- package/dist/esm/PaseCommissioner.js +2 -1
- package/dist/esm/PaseCommissioner.js.map +1 -1
- package/dist/esm/device/PairedNode.d.ts.map +1 -1
- package/dist/esm/device/PairedNode.js +27 -8
- package/dist/esm/device/PairedNode.js.map +1 -1
- package/package.json +8 -8
- package/src/CommissioningController.ts +87 -2
- package/src/MatterController.ts +39 -5
- package/src/PaseCommissioner.ts +1 -0
- package/src/device/PairedNode.ts +34 -10
|
@@ -53,7 +53,7 @@ const STRUCTURE_UPDATE_TIMEOUT_MS = 5e3;
|
|
|
53
53
|
const RECONNECT_DELAY_MS = 15e3;
|
|
54
54
|
const RECONNECT_DELAY_AFTER_SHUTDOWN_MS = 3e4;
|
|
55
55
|
const RECONNECT_MAX_DELAY_MS = 6e5;
|
|
56
|
-
const
|
|
56
|
+
const NEW_SESSION_WHILE_DISCOVERY_RECONNECT_DELAY_MS = 5e3;
|
|
57
57
|
var NodeStates = /* @__PURE__ */ ((NodeStates2) => {
|
|
58
58
|
NodeStates2[NodeStates2["Connected"] = 0] = "Connected";
|
|
59
59
|
NodeStates2[NodeStates2["Disconnected"] = 1] = "Disconnected";
|
|
@@ -98,14 +98,12 @@ class PairedNode {
|
|
|
98
98
|
this.#nodeDetails = new DeviceInformation(nodeId, knownNodeDetails);
|
|
99
99
|
logger.info(`Node ${this.nodeId}: Created paired node with device data`, this.#nodeDetails.meta);
|
|
100
100
|
sessions.added.on((session) => {
|
|
101
|
-
if (session.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
);
|
|
106
|
-
this.#setConnectionState(2 /* Reconnecting */);
|
|
107
|
-
this.#scheduleReconnect(NEW_SESSION_WHILE_DISCOVERY_RECONNECT_DELAY);
|
|
101
|
+
if (session.isInitiator || // If we initiated the session we do not need to react on it
|
|
102
|
+
session.peerNodeId !== this.nodeId || // no session for this node
|
|
103
|
+
this.state !== 3 /* WaitingForDeviceDiscovery */) {
|
|
104
|
+
return;
|
|
108
105
|
}
|
|
106
|
+
this.#newChannelReconnectDelayTimer.stop().start();
|
|
109
107
|
});
|
|
110
108
|
this.#construction = Construction(this, async () => {
|
|
111
109
|
if (storedAttributeData !== void 0) {
|
|
@@ -123,6 +121,19 @@ class PairedNode {
|
|
|
123
121
|
#endpoints = /* @__PURE__ */ new Map();
|
|
124
122
|
#interactionClient;
|
|
125
123
|
#reconnectDelayTimer;
|
|
124
|
+
#newChannelReconnectDelayTimer = Time.getTimer(
|
|
125
|
+
"New Channel Reconnect Delay",
|
|
126
|
+
NEW_SESSION_WHILE_DISCOVERY_RECONNECT_DELAY_MS,
|
|
127
|
+
() => {
|
|
128
|
+
if (this.#connectionState === 3 /* WaitingForDeviceDiscovery */ || this.#connectionState === 2 /* Reconnecting */) {
|
|
129
|
+
logger.info(
|
|
130
|
+
`Node ${this.nodeId}: Still not connected after new session establishment, trying to reconnect ...`
|
|
131
|
+
);
|
|
132
|
+
this.#setConnectionState(2 /* Reconnecting */);
|
|
133
|
+
this.#scheduleReconnect(0);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
);
|
|
126
137
|
#reconnectErrorCount = 0;
|
|
127
138
|
#updateEndpointStructureTimer = Time.getTimer(
|
|
128
139
|
"Endpoint structure update",
|
|
@@ -389,6 +400,13 @@ class PairedNode {
|
|
|
389
400
|
const allClusterAttributes = await this.readAllAttributes();
|
|
390
401
|
await this.#initializeEndpointStructure(allClusterAttributes, anyInitializationDone);
|
|
391
402
|
}
|
|
403
|
+
if (!this.#remoteInitializationDone) {
|
|
404
|
+
try {
|
|
405
|
+
await this.commissioningController.validateAndUpdateFabricLabel(this.nodeId);
|
|
406
|
+
} catch (error) {
|
|
407
|
+
logger.info(`Node ${this.nodeId}: Error updating fabric label`, error);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
392
410
|
this.#reconnectErrorCount = 0;
|
|
393
411
|
this.#setConnectionState(0 /* Connected */);
|
|
394
412
|
await this.events.initializedFromRemote.emit(this.#nodeDetails.toStorageData());
|
|
@@ -899,6 +917,7 @@ class PairedNode {
|
|
|
899
917
|
await this.commissioningController.disconnectNode(this.nodeId);
|
|
900
918
|
}
|
|
901
919
|
close(sendDecommissionedStatus = false) {
|
|
920
|
+
this.#newChannelReconnectDelayTimer.stop();
|
|
902
921
|
this.#reconnectDelayTimer?.stop();
|
|
903
922
|
this.#reconnectDelayTimer = void 0;
|
|
904
923
|
this.#updateEndpointStructureTimer.stop();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/device/PairedNode.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["NodeStates", "NodeStateInformation"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@project-chip/matter.js",
|
|
3
|
-
"version": "0.12.0-alpha.0-
|
|
3
|
+
"version": "0.12.0-alpha.0-20241228-9f74a0273",
|
|
4
4
|
"description": "Matter protocol in pure js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -44,16 +44,16 @@
|
|
|
44
44
|
"#*": "./src/*"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@matter/general": "0.12.0-alpha.0-
|
|
48
|
-
"@matter/model": "0.12.0-alpha.0-
|
|
49
|
-
"@matter/node": "0.12.0-alpha.0-
|
|
50
|
-
"@matter/protocol": "0.12.0-alpha.0-
|
|
51
|
-
"@matter/types": "0.12.0-alpha.0-
|
|
47
|
+
"@matter/general": "0.12.0-alpha.0-20241228-9f74a0273",
|
|
48
|
+
"@matter/model": "0.12.0-alpha.0-20241228-9f74a0273",
|
|
49
|
+
"@matter/node": "0.12.0-alpha.0-20241228-9f74a0273",
|
|
50
|
+
"@matter/protocol": "0.12.0-alpha.0-20241228-9f74a0273",
|
|
51
|
+
"@matter/types": "0.12.0-alpha.0-20241228-9f74a0273",
|
|
52
52
|
"@noble/curves": "^1.7.0"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
|
-
"@matter/tools": "0.12.0-alpha.0-
|
|
56
|
-
"@matter/testing": "0.12.0-alpha.0-
|
|
55
|
+
"@matter/tools": "0.12.0-alpha.0-20241228-9f74a0273",
|
|
56
|
+
"@matter/testing": "0.12.0-alpha.0-20241228-9f74a0273"
|
|
57
57
|
},
|
|
58
58
|
"files": [
|
|
59
59
|
"dist/**/*",
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { OperationalCredentials } from "#clusters";
|
|
7
8
|
import {
|
|
8
9
|
Environment,
|
|
9
10
|
ImplementationError,
|
|
@@ -15,6 +16,7 @@ import {
|
|
|
15
16
|
StorageContext,
|
|
16
17
|
SyncStorage,
|
|
17
18
|
UdpInterface,
|
|
19
|
+
UnexpectedDataError,
|
|
18
20
|
} from "#general";
|
|
19
21
|
import { LegacyControllerStore } from "#LegacyControllerStore.js";
|
|
20
22
|
import { ControllerStore } from "#node";
|
|
@@ -42,7 +44,7 @@ import {
|
|
|
42
44
|
TypeFromPartialBitSchema,
|
|
43
45
|
VendorId,
|
|
44
46
|
} from "#types";
|
|
45
|
-
import { CommissioningControllerNodeOptions, PairedNode } from "./device/PairedNode.js";
|
|
47
|
+
import { CommissioningControllerNodeOptions, NodeStates, PairedNode } from "./device/PairedNode.js";
|
|
46
48
|
import { MatterController } from "./MatterController.js";
|
|
47
49
|
import { MatterNode } from "./MatterNode.js";
|
|
48
50
|
|
|
@@ -108,6 +110,13 @@ export type CommissioningControllerOptions = CommissioningControllerNodeOptions
|
|
|
108
110
|
*/
|
|
109
111
|
readonly caseAuthenticatedTags?: CaseAuthenticatedTag[];
|
|
110
112
|
|
|
113
|
+
/**
|
|
114
|
+
* The Fabric Label to set for the commissioned devices. The #label is used for users to identify the admin.
|
|
115
|
+
* The maximum length are 32 characters!
|
|
116
|
+
* The value will automatically be checked on connection to a node and updated if necessary.
|
|
117
|
+
*/
|
|
118
|
+
readonly adminFabricLabel: string;
|
|
119
|
+
|
|
111
120
|
/**
|
|
112
121
|
* When used with the new API Environment set the environment here and the CommissioningServer will self-register
|
|
113
122
|
* on the environment when you call start().
|
|
@@ -137,6 +146,7 @@ export class CommissioningController extends MatterNode {
|
|
|
137
146
|
|
|
138
147
|
private controllerInstance?: MatterController;
|
|
139
148
|
private initializedNodes = new Map<NodeId, PairedNode>();
|
|
149
|
+
private nodeUpdateLabelHandlers = new Map<NodeId, (nodeState: NodeStates) => Promise<void>>();
|
|
140
150
|
private sessionDisconnectedHandler = new Map<NodeId, () => Promise<void>>();
|
|
141
151
|
|
|
142
152
|
/**
|
|
@@ -188,7 +198,8 @@ export class CommissioningController extends MatterNode {
|
|
|
188
198
|
if (this.controllerInstance !== undefined) {
|
|
189
199
|
return this.controllerInstance;
|
|
190
200
|
}
|
|
191
|
-
const { localPort, adminFabricId, adminVendorId, adminFabricIndex, caseAuthenticatedTags } =
|
|
201
|
+
const { localPort, adminFabricId, adminVendorId, adminFabricIndex, caseAuthenticatedTags, adminFabricLabel } =
|
|
202
|
+
this.options;
|
|
192
203
|
|
|
193
204
|
if (environment === undefined && storage === undefined) {
|
|
194
205
|
throw new ImplementationError("Storage not initialized correctly.");
|
|
@@ -222,6 +233,7 @@ export class CommissioningController extends MatterNode {
|
|
|
222
233
|
adminFabricId,
|
|
223
234
|
adminFabricIndex,
|
|
224
235
|
caseAuthenticatedTags,
|
|
236
|
+
adminFabricLabel,
|
|
225
237
|
});
|
|
226
238
|
if (this.mdnsBroadcaster) {
|
|
227
239
|
controller.addBroadcaster(this.mdnsBroadcaster.createInstanceBroadcaster(port));
|
|
@@ -563,6 +575,79 @@ export class CommissioningController extends MatterNode {
|
|
|
563
575
|
getActiveSessionInformation() {
|
|
564
576
|
return this.controllerInstance?.getActiveSessionInformation() ?? [];
|
|
565
577
|
}
|
|
578
|
+
|
|
579
|
+
async validateAndUpdateFabricLabel(nodeId: NodeId) {
|
|
580
|
+
const controller = this.assertControllerIsStarted();
|
|
581
|
+
const node = this.initializedNodes.get(nodeId);
|
|
582
|
+
if (node === undefined) {
|
|
583
|
+
throw new ImplementationError(`Node ${nodeId} is not connected!`);
|
|
584
|
+
}
|
|
585
|
+
const operationalCredentialsCluster = node.getRootClusterClient(OperationalCredentials.Cluster);
|
|
586
|
+
if (operationalCredentialsCluster === undefined) {
|
|
587
|
+
throw new UnexpectedDataError(`Node ${nodeId}: Operational Credentials Cluster not available!`);
|
|
588
|
+
}
|
|
589
|
+
const fabrics = await operationalCredentialsCluster.getFabricsAttribute(false, true);
|
|
590
|
+
if (fabrics.length !== 1) {
|
|
591
|
+
logger.info(`Invalid fabrics returned from node ${nodeId}.`, fabrics);
|
|
592
|
+
return;
|
|
593
|
+
}
|
|
594
|
+
const label = controller.fabricConfig.label;
|
|
595
|
+
const fabric = fabrics[0];
|
|
596
|
+
if (fabric.label !== label) {
|
|
597
|
+
logger.info(
|
|
598
|
+
`Node ${nodeId}: Fabric label "${fabric.label}" does not match requested admin fabric Label "${label}". Updating...`,
|
|
599
|
+
);
|
|
600
|
+
await operationalCredentialsCluster.updateFabricLabel({
|
|
601
|
+
label,
|
|
602
|
+
fabricIndex: fabric.fabricIndex,
|
|
603
|
+
});
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
async updateFabricLabel(label: string) {
|
|
608
|
+
const controller = this.assertControllerIsStarted();
|
|
609
|
+
if (controller.fabricConfig.label === label) {
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
612
|
+
await controller.updateFabricLabel(label);
|
|
613
|
+
|
|
614
|
+
for (const node of this.initializedNodes.values()) {
|
|
615
|
+
if (node.isConnected) {
|
|
616
|
+
// When Node is connected, update the fabric label on the node directly
|
|
617
|
+
try {
|
|
618
|
+
await this.validateAndUpdateFabricLabel(node.nodeId);
|
|
619
|
+
return;
|
|
620
|
+
} catch (error) {
|
|
621
|
+
logger.warn(`Error updating fabric label on node ${node.nodeId}:`, error);
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
if (!node.remoteInitializationDone) {
|
|
625
|
+
// Node not online and was also not yet initialized, means update happens
|
|
626
|
+
// automatically when node connects
|
|
627
|
+
logger.info(`Node ${node.nodeId} is offline. Fabric label will be updated on next connection.`);
|
|
628
|
+
return;
|
|
629
|
+
}
|
|
630
|
+
logger.info(
|
|
631
|
+
`Node ${node.nodeId} is reconnecting. Delaying fabric label update to when node is back online.`,
|
|
632
|
+
);
|
|
633
|
+
|
|
634
|
+
// If no update handler is registered, register one
|
|
635
|
+
// TODO: Convert this next to a task system for node tasks and also better handle error cases
|
|
636
|
+
if (!this.nodeUpdateLabelHandlers.has(node.nodeId)) {
|
|
637
|
+
const updateOnReconnect = (nodeState: NodeStates) => {
|
|
638
|
+
if (nodeState === NodeStates.Connected) {
|
|
639
|
+
this.validateAndUpdateFabricLabel(node.nodeId)
|
|
640
|
+
.catch(error => logger.warn(`Error updating fabric label on node ${node.nodeId}:`, error))
|
|
641
|
+
.finally(() => {
|
|
642
|
+
node.events.stateChanged.off(updateOnReconnect);
|
|
643
|
+
this.nodeUpdateLabelHandlers.delete(node.nodeId);
|
|
644
|
+
});
|
|
645
|
+
}
|
|
646
|
+
};
|
|
647
|
+
node.events.stateChanged.on(updateOnReconnect);
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
}
|
|
566
651
|
}
|
|
567
652
|
|
|
568
653
|
export async function configureNetwork(options: {
|
package/src/MatterController.ts
CHANGED
|
@@ -102,6 +102,7 @@ export class MatterController {
|
|
|
102
102
|
adminFabricId?: FabricId;
|
|
103
103
|
adminFabricIndex?: FabricIndex;
|
|
104
104
|
caseAuthenticatedTags?: CaseAuthenticatedTag[];
|
|
105
|
+
adminFabricLabel: string;
|
|
105
106
|
}): Promise<MatterController> {
|
|
106
107
|
const {
|
|
107
108
|
controllerStore,
|
|
@@ -112,6 +113,7 @@ export class MatterController {
|
|
|
112
113
|
adminFabricId = FabricId(DEFAULT_FABRIC_ID),
|
|
113
114
|
adminFabricIndex = FabricIndex(DEFAULT_FABRIC_INDEX),
|
|
114
115
|
caseAuthenticatedTags,
|
|
116
|
+
adminFabricLabel,
|
|
115
117
|
} = options;
|
|
116
118
|
|
|
117
119
|
const ca = await CertificateAuthority.create(controllerStore.caStorage);
|
|
@@ -129,6 +131,7 @@ export class MatterController {
|
|
|
129
131
|
netInterfaces,
|
|
130
132
|
certificateManager: ca,
|
|
131
133
|
fabric,
|
|
134
|
+
adminFabricLabel,
|
|
132
135
|
sessionClosedCallback,
|
|
133
136
|
});
|
|
134
137
|
} else {
|
|
@@ -148,7 +151,8 @@ export class MatterController {
|
|
|
148
151
|
.setRootCert(ca.rootCert)
|
|
149
152
|
.setRootNodeId(rootNodeId)
|
|
150
153
|
.setIdentityProtectionKey(ipkValue)
|
|
151
|
-
.setRootVendorId(adminVendorId ?? DEFAULT_ADMIN_VENDOR_ID)
|
|
154
|
+
.setRootVendorId(adminVendorId ?? DEFAULT_ADMIN_VENDOR_ID)
|
|
155
|
+
.setLabel(adminFabricLabel);
|
|
152
156
|
fabricBuilder.setOperationalCert(
|
|
153
157
|
ca.generateNoc(fabricBuilder.publicKey, adminFabricId, rootNodeId, caseAuthenticatedTags),
|
|
154
158
|
);
|
|
@@ -160,6 +164,7 @@ export class MatterController {
|
|
|
160
164
|
netInterfaces,
|
|
161
165
|
certificateManager: ca,
|
|
162
166
|
fabric,
|
|
167
|
+
adminFabricLabel,
|
|
163
168
|
sessionClosedCallback,
|
|
164
169
|
});
|
|
165
170
|
}
|
|
@@ -172,9 +177,17 @@ export class MatterController {
|
|
|
172
177
|
fabricConfig: Fabric.Config;
|
|
173
178
|
scanners: ScannerSet;
|
|
174
179
|
netInterfaces: NetInterfaceSet;
|
|
180
|
+
adminFabricLabel: string;
|
|
175
181
|
sessionClosedCallback?: (peerNodeId: NodeId) => void;
|
|
176
182
|
}): Promise<MatterController> {
|
|
177
|
-
const {
|
|
183
|
+
const {
|
|
184
|
+
certificateAuthorityConfig,
|
|
185
|
+
fabricConfig,
|
|
186
|
+
adminFabricLabel,
|
|
187
|
+
scanners,
|
|
188
|
+
netInterfaces,
|
|
189
|
+
sessionClosedCallback,
|
|
190
|
+
} = options;
|
|
178
191
|
|
|
179
192
|
// Verify an appropriate network interface is available
|
|
180
193
|
if (!netInterfaces.hasInterfaceFor(ChannelType.BLE)) {
|
|
@@ -200,6 +213,7 @@ export class MatterController {
|
|
|
200
213
|
netInterfaces,
|
|
201
214
|
certificateManager,
|
|
202
215
|
fabric,
|
|
216
|
+
adminFabricLabel,
|
|
203
217
|
sessionClosedCallback,
|
|
204
218
|
});
|
|
205
219
|
await controller.construction;
|
|
@@ -232,9 +246,18 @@ export class MatterController {
|
|
|
232
246
|
netInterfaces: NetInterfaceSet;
|
|
233
247
|
certificateManager: CertificateAuthority;
|
|
234
248
|
fabric: Fabric;
|
|
249
|
+
adminFabricLabel: string;
|
|
235
250
|
sessionClosedCallback?: (peerNodeId: NodeId) => void;
|
|
236
251
|
}) {
|
|
237
|
-
const {
|
|
252
|
+
const {
|
|
253
|
+
controllerStore,
|
|
254
|
+
scanners,
|
|
255
|
+
netInterfaces,
|
|
256
|
+
certificateManager,
|
|
257
|
+
fabric,
|
|
258
|
+
sessionClosedCallback,
|
|
259
|
+
adminFabricLabel,
|
|
260
|
+
} = options;
|
|
238
261
|
this.#store = controllerStore;
|
|
239
262
|
this.scanners = scanners;
|
|
240
263
|
this.netInterfaces = netInterfaces;
|
|
@@ -244,6 +267,10 @@ export class MatterController {
|
|
|
244
267
|
|
|
245
268
|
const fabricManager = new FabricManager();
|
|
246
269
|
fabricManager.addFabric(fabric);
|
|
270
|
+
// Overwrite the persist callback and store fabric when needed
|
|
271
|
+
fabric.persistCallback = async () => {
|
|
272
|
+
await this.#store.fabricStorage.set("fabric", this.fabric.config);
|
|
273
|
+
};
|
|
247
274
|
|
|
248
275
|
this.sessionManager = new SessionManager({
|
|
249
276
|
fabrics: fabricManager,
|
|
@@ -293,6 +320,9 @@ export class MatterController {
|
|
|
293
320
|
this.#construction = Construction(this, async () => {
|
|
294
321
|
await this.peers.construction.ready;
|
|
295
322
|
await this.sessionManager.construction.ready;
|
|
323
|
+
if (this.fabric.label !== adminFabricLabel) {
|
|
324
|
+
await fabric.setLabel(adminFabricLabel);
|
|
325
|
+
}
|
|
296
326
|
});
|
|
297
327
|
}
|
|
298
328
|
|
|
@@ -371,7 +401,7 @@ export class MatterController {
|
|
|
371
401
|
|
|
372
402
|
const address = await this.commissioner.commissionWithDiscovery(commissioningOptions);
|
|
373
403
|
|
|
374
|
-
await this
|
|
404
|
+
await this.fabric.persist();
|
|
375
405
|
|
|
376
406
|
return address.nodeId;
|
|
377
407
|
}
|
|
@@ -411,7 +441,7 @@ export class MatterController {
|
|
|
411
441
|
await this.peers.delete(this.fabric.addressOf(peerNodeId));
|
|
412
442
|
throw new CommissioningError(`Commission error on commissioningComplete: ${errorCode}, ${debugText}`);
|
|
413
443
|
}
|
|
414
|
-
await this
|
|
444
|
+
await this.fabric.persist();
|
|
415
445
|
}
|
|
416
446
|
|
|
417
447
|
isCommissioned() {
|
|
@@ -536,6 +566,10 @@ export class MatterController {
|
|
|
536
566
|
await peer.dataStore.construction;
|
|
537
567
|
return peer.dataStore.retrieveAttributes(endpointId, clusterId);
|
|
538
568
|
}
|
|
569
|
+
|
|
570
|
+
async updateFabricLabel(label: string) {
|
|
571
|
+
await this.fabric.setLabel(label);
|
|
572
|
+
}
|
|
539
573
|
}
|
|
540
574
|
|
|
541
575
|
class CommissionedNodeStore extends PeerAddressStore {
|
package/src/PaseCommissioner.ts
CHANGED
package/src/device/PairedNode.ts
CHANGED
|
@@ -73,7 +73,7 @@ import { asClusterClientInternal, isClusterClient } from "./TypeHelpers.js";
|
|
|
73
73
|
const logger = Logger.get("PairedNode");
|
|
74
74
|
|
|
75
75
|
/** Delay after receiving a changed partList from a device to update the device structure */
|
|
76
|
-
const STRUCTURE_UPDATE_TIMEOUT_MS = 5_000; // 5 seconds
|
|
76
|
+
const STRUCTURE_UPDATE_TIMEOUT_MS = 5_000; // 5 seconds
|
|
77
77
|
|
|
78
78
|
/** Delay after a disconnect to try to reconnect to the device */
|
|
79
79
|
const RECONNECT_DELAY_MS = 15_000; // 15 seconds
|
|
@@ -88,7 +88,7 @@ const RECONNECT_MAX_DELAY_MS = 600_000; // 10 minutes
|
|
|
88
88
|
* Delay after a new session was opened by the device while in discovery state.
|
|
89
89
|
* This usually happens for devices that support persisted subscriptions.
|
|
90
90
|
*/
|
|
91
|
-
const
|
|
91
|
+
const NEW_SESSION_WHILE_DISCOVERY_RECONNECT_DELAY_MS = 5_000;
|
|
92
92
|
|
|
93
93
|
export enum NodeStates {
|
|
94
94
|
/**
|
|
@@ -216,6 +216,23 @@ export class PairedNode {
|
|
|
216
216
|
readonly #endpoints = new Map<EndpointNumber, Endpoint>();
|
|
217
217
|
#interactionClient: InteractionClient;
|
|
218
218
|
#reconnectDelayTimer?: Timer;
|
|
219
|
+
#newChannelReconnectDelayTimer = Time.getTimer(
|
|
220
|
+
"New Channel Reconnect Delay",
|
|
221
|
+
NEW_SESSION_WHILE_DISCOVERY_RECONNECT_DELAY_MS,
|
|
222
|
+
() => {
|
|
223
|
+
if (
|
|
224
|
+
this.#connectionState === NodeStates.WaitingForDeviceDiscovery ||
|
|
225
|
+
this.#connectionState === NodeStates.Reconnecting
|
|
226
|
+
) {
|
|
227
|
+
logger.info(
|
|
228
|
+
`Node ${this.nodeId}: Still not connected after new session establishment, trying to reconnect ...`,
|
|
229
|
+
);
|
|
230
|
+
// Try last known address first to speed up reconnection
|
|
231
|
+
this.#setConnectionState(NodeStates.Reconnecting);
|
|
232
|
+
this.#scheduleReconnect(0);
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
);
|
|
219
236
|
#reconnectErrorCount = 0;
|
|
220
237
|
readonly #updateEndpointStructureTimer = Time.getTimer(
|
|
221
238
|
"Endpoint structure update",
|
|
@@ -334,15 +351,14 @@ export class PairedNode {
|
|
|
334
351
|
logger.info(`Node ${this.nodeId}: Created paired node with device data`, this.#nodeDetails.meta);
|
|
335
352
|
|
|
336
353
|
sessions.added.on(session => {
|
|
337
|
-
if (
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
this.#setConnectionState(NodeStates.Reconnecting);
|
|
344
|
-
this.#scheduleReconnect(NEW_SESSION_WHILE_DISCOVERY_RECONNECT_DELAY);
|
|
354
|
+
if (
|
|
355
|
+
session.isInitiator || // If we initiated the session we do not need to react on it
|
|
356
|
+
session.peerNodeId !== this.nodeId || // no session for this node
|
|
357
|
+
this.state !== NodeStates.WaitingForDeviceDiscovery
|
|
358
|
+
) {
|
|
359
|
+
return;
|
|
345
360
|
}
|
|
361
|
+
this.#newChannelReconnectDelayTimer.stop().start();
|
|
346
362
|
});
|
|
347
363
|
|
|
348
364
|
this.#construction = Construction(this, async () => {
|
|
@@ -613,6 +629,13 @@ export class PairedNode {
|
|
|
613
629
|
const allClusterAttributes = await this.readAllAttributes();
|
|
614
630
|
await this.#initializeEndpointStructure(allClusterAttributes, anyInitializationDone);
|
|
615
631
|
}
|
|
632
|
+
if (!this.#remoteInitializationDone) {
|
|
633
|
+
try {
|
|
634
|
+
await this.commissioningController.validateAndUpdateFabricLabel(this.nodeId);
|
|
635
|
+
} catch (error) {
|
|
636
|
+
logger.info(`Node ${this.nodeId}: Error updating fabric label`, error);
|
|
637
|
+
}
|
|
638
|
+
}
|
|
616
639
|
this.#reconnectErrorCount = 0;
|
|
617
640
|
this.#setConnectionState(NodeStates.Connected);
|
|
618
641
|
await this.events.initializedFromRemote.emit(this.#nodeDetails.toStorageData());
|
|
@@ -1233,6 +1256,7 @@ export class PairedNode {
|
|
|
1233
1256
|
}
|
|
1234
1257
|
|
|
1235
1258
|
close(sendDecommissionedStatus = false) {
|
|
1259
|
+
this.#newChannelReconnectDelayTimer.stop();
|
|
1236
1260
|
this.#reconnectDelayTimer?.stop();
|
|
1237
1261
|
this.#reconnectDelayTimer = undefined;
|
|
1238
1262
|
this.#updateEndpointStructureTimer.stop();
|