@project-chip/matter.js 0.12.4-alpha.0-20250209-00d44975c → 0.12.4-alpha.0-20250210-ad8edf096
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 +52 -30
- package/dist/cjs/CommissioningController.d.ts.map +1 -1
- package/dist/cjs/CommissioningController.js +154 -109
- package/dist/cjs/CommissioningController.js.map +1 -1
- package/dist/cjs/device/PairedNode.d.ts +22 -9
- package/dist/cjs/device/PairedNode.d.ts.map +1 -1
- package/dist/cjs/device/PairedNode.js +43 -31
- package/dist/cjs/device/PairedNode.js.map +1 -1
- package/dist/esm/CommissioningController.d.ts +52 -30
- package/dist/esm/CommissioningController.d.ts.map +1 -1
- package/dist/esm/CommissioningController.js +154 -109
- package/dist/esm/CommissioningController.js.map +1 -1
- package/dist/esm/device/PairedNode.d.ts +22 -9
- package/dist/esm/device/PairedNode.d.ts.map +1 -1
- package/dist/esm/device/PairedNode.js +43 -31
- package/dist/esm/device/PairedNode.js.map +1 -1
- package/package.json +8 -8
- package/src/CommissioningController.ts +155 -108
- package/src/device/PairedNode.ts +48 -35
|
@@ -117,9 +117,6 @@ export declare class NodeNotConnectedError extends MatterError {
|
|
|
117
117
|
export declare class PairedNode {
|
|
118
118
|
#private;
|
|
119
119
|
readonly nodeId: NodeId;
|
|
120
|
-
private readonly commissioningController;
|
|
121
|
-
private options;
|
|
122
|
-
private readonly reconnectFunc;
|
|
123
120
|
readonly events: {
|
|
124
121
|
/**
|
|
125
122
|
* Emitted when the node is initialized from local data. These data usually are stale, but you can still already
|
|
@@ -149,21 +146,28 @@ export declare class PairedNode {
|
|
|
149
146
|
constructor(nodeId: NodeId, commissioningController: CommissioningController, options: CommissioningControllerNodeOptions | undefined, knownNodeDetails: DeviceInformationData, interactionClient: InteractionClient, reconnectFunc: (discoveryType?: NodeDiscoveryType, noForcedConnection?: boolean) => Promise<void>, assignDisconnectedHandler: (handler: () => Promise<void>) => void, sessions: BasicSet<SecureSession, SecureSession>, storedAttributeData?: DecodedAttributeReportValue<any>[]);
|
|
150
147
|
get construction(): Construction<PairedNode>;
|
|
151
148
|
get isConnected(): boolean;
|
|
149
|
+
/** Returns the Node connection state. */
|
|
152
150
|
get state(): NodeStates;
|
|
151
|
+
/** Returns the BasicInformation cluster metadata collected from the device. */
|
|
153
152
|
get basicInformation(): import("./DeviceInformation.js").DeviceBasicInformation | undefined;
|
|
153
|
+
/** Returns the general capability metadata collected from the device. */
|
|
154
154
|
get deviceInformation(): import("./DeviceInformation.js").DeviceMetaInformation | undefined;
|
|
155
|
+
/** Is the Node fully initialized with formerly stored subscription data? False when the node was never connected so far. */
|
|
155
156
|
get localInitializationDone(): boolean;
|
|
157
|
+
/** Is the Node fully initialized with remote subscription or read data? */
|
|
156
158
|
get remoteInitializationDone(): boolean;
|
|
159
|
+
/** Is the Node initialized - locally or remotely? */
|
|
157
160
|
get initialized(): boolean;
|
|
158
161
|
/**
|
|
159
162
|
* Schedule a connection to the device. This method is non-blocking and will return immediately.
|
|
160
|
-
* The connection happens in the background. Please monitor the state of the node to see if the
|
|
163
|
+
* The connection happens in the background. Please monitor the state events of the node to see if the
|
|
161
164
|
* connection was successful.
|
|
165
|
+
* The provided connection options will be set and used internally if the node reconnects successfully.
|
|
162
166
|
*/
|
|
163
167
|
connect(connectOptions?: CommissioningControllerNodeOptions): void;
|
|
164
168
|
/**
|
|
165
169
|
* Trigger a reconnection to the device. This method is non-blocking and will return immediately.
|
|
166
|
-
* The reconnection happens in the background. Please monitor the state of the node to see if the
|
|
170
|
+
* The reconnection happens in the background. Please monitor the state events of the node to see if the
|
|
167
171
|
* reconnection was successful.
|
|
168
172
|
*/
|
|
169
173
|
triggerReconnect(): void;
|
|
@@ -176,8 +180,9 @@ export declare class PairedNode {
|
|
|
176
180
|
*/
|
|
177
181
|
reconnect(connectOptions?: CommissioningControllerNodeOptions): Promise<void>;
|
|
178
182
|
/**
|
|
179
|
-
* Request the current InteractionClient for custom special
|
|
180
|
-
* ClusterClients of the Devices of the node should be used instead.
|
|
183
|
+
* Request the current InteractionClient for custom special interactions with the device. Usually the
|
|
184
|
+
* ClusterClients of the Devices of the node should be used instead. An own InteractionClient is only needed
|
|
185
|
+
* when you want to read or write multiple attributes or events in a single request or send batch invokes.
|
|
181
186
|
*/
|
|
182
187
|
getInteractionClient(): Promise<InteractionClient>;
|
|
183
188
|
/** Method to log the structure of this node with all endpoint and clusters. */
|
|
@@ -194,22 +199,30 @@ export declare class PairedNode {
|
|
|
194
199
|
attributeReports?: DecodedAttributeReportValue<any>[];
|
|
195
200
|
eventReports?: DecodedEventReportValue<any>[];
|
|
196
201
|
}>;
|
|
202
|
+
/** Read all attributes of the devices and return them. If a stored state exists this is used to minimize needed traffic. */
|
|
197
203
|
readAllAttributes(): Promise<DecodedAttributeReportValue<any>[]>;
|
|
198
|
-
/** Returns the functional devices/endpoints (
|
|
204
|
+
/** Returns the functional devices/endpoints (the "childs" of the Root Endpoint) known for this node. */
|
|
199
205
|
getDevices(): EndpointInterface[];
|
|
200
206
|
/** Returns the device/endpoint with the given endpoint ID. */
|
|
201
207
|
getDeviceById(endpointId: number): Endpoint | undefined;
|
|
208
|
+
/** Returns the Root Endpoint of the device. */
|
|
202
209
|
getRootEndpoint(): Endpoint | undefined;
|
|
203
210
|
/** De-Commission (unpair) the device from this controller by removing the fabric from the device. */
|
|
204
211
|
decommission(): Promise<void>;
|
|
205
|
-
/**
|
|
212
|
+
/**
|
|
213
|
+
* Opens a Basic Commissioning Window (uses the original Passcode printed on the device) with the device.
|
|
214
|
+
* This is an optional method, so it might not be supported by all devices and could be rejected with an error in
|
|
215
|
+
* this case! Better use openEnhancedCommissioningWindow() instead.
|
|
216
|
+
*/
|
|
206
217
|
openBasicCommissioningWindow(commissioningTimeout?: number): Promise<void>;
|
|
207
218
|
/** Opens an Enhanced Commissioning Window (uses a generated random Passcode) with the device. */
|
|
208
219
|
openEnhancedCommissioningWindow(commissioningTimeout?: number): Promise<{
|
|
209
220
|
manualPairingCode: string;
|
|
210
221
|
qrPairingCode: string;
|
|
211
222
|
}>;
|
|
223
|
+
/** Closes the current session, ends the subscription and disconnects the device. */
|
|
212
224
|
disconnect(): Promise<void>;
|
|
225
|
+
/** Closes the current subscription and ends all timers for reconnects or such used by this PairedNode instance. */
|
|
213
226
|
close(sendDecommissionedStatus?: boolean): void;
|
|
214
227
|
/**
|
|
215
228
|
* Get a cluster server from the root endpoint. This is mainly used internally and not needed to be called by the user.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PairedNode.d.ts","sourceRoot":"","sources":["../../../src/device/PairedNode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACH,eAAe,EAEf,QAAQ,EACR,YAAY,EAMZ,WAAW,EACX,UAAU,EAGb,MAAM,UAAU,CAAC;AAClB,OAAO,EAIH,gBAAgB,EAChB,2BAA2B,EAC3B,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EAEjB,aAAa,EAIhB,MAAM,WAAW,CAAC;AACnB,OAAO,EAIH,WAAW,EAGX,cAAc,EAGd,MAAM,EAKT,MAAM,QAAQ,CAAC;AAGhB,OAAO,EAA0B,gBAAgB,EAAmB,MAAM,yCAAyC,CAAC;AACpH,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAIxE,OAAO,EAAqB,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAOlF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAuBzC,oBAAY,UAAU;IAClB;;;OAGG;IACH,SAAS,IAAI;IAEb;;;;OAIG;IACH,YAAY,IAAI;IAEhB;;+FAE2F;IAC3F,YAAY,IAAI;IAEhB;;;OAGG;IACH,yBAAyB,IAAI;CAChC;AAED,kBAAkB;AAClB,oBAAY,oBAAoB;IAC5B;;;OAGG;IACH,SAAS,IAAI;IAEb;;;;OAIG;IACH,YAAY,IAAI;IAEhB;;+FAE2F;IAC3F,YAAY,IAAI;IAEhB;;;OAGG;IACH,yBAAyB,IAAI;IAE7B;;;OAGG;IACH,gBAAgB,IAAI;IAEpB;;OAEG;IACH,cAAc,IAAI;CACrB;AAED,MAAM,MAAM,kCAAkC,GAAG;IAC7C;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAE/B;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAEnD;;;;OAIG;IACH,QAAQ,CAAC,kCAAkC,CAAC,EAAE,MAAM,CAAC;IAErD;;;;OAIG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAErG;;;;OAIG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAE/F;;;;;OAKG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;CAC7F,CAAC;AAEF,qBAAa,qBAAsB,SAAQ,WAAW;CAAG;AASzD;;;GAGG;AACH,qBAAa,UAAU;;
|
|
1
|
+
{"version":3,"file":"PairedNode.d.ts","sourceRoot":"","sources":["../../../src/device/PairedNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,9 +69,6 @@ class NodeNotConnectedError extends import_general.MatterError {
|
|
|
69
69
|
class PairedNode {
|
|
70
70
|
constructor(nodeId, commissioningController, options = {}, knownNodeDetails, interactionClient, reconnectFunc, assignDisconnectedHandler, sessions, storedAttributeData) {
|
|
71
71
|
this.nodeId = nodeId;
|
|
72
|
-
this.commissioningController = commissioningController;
|
|
73
|
-
this.options = options;
|
|
74
|
-
this.reconnectFunc = reconnectFunc;
|
|
75
72
|
assignDisconnectedHandler(async () => {
|
|
76
73
|
logger.info(
|
|
77
74
|
`Node ${this.nodeId}: Session disconnected${this.#connectionState !== 1 /* Disconnected */ ? ", trying to reconnect ..." : ""}`
|
|
@@ -80,6 +77,9 @@ class PairedNode {
|
|
|
80
77
|
this.#scheduleReconnect();
|
|
81
78
|
}
|
|
82
79
|
});
|
|
80
|
+
this.#commissioningController = commissioningController;
|
|
81
|
+
this.#options = options;
|
|
82
|
+
this.#reconnectFunc = reconnectFunc;
|
|
83
83
|
this.#interactionClient = interactionClient;
|
|
84
84
|
this.#interactionClient.channelUpdated.on(() => {
|
|
85
85
|
if (this.#reconnectDelayTimer?.isRunning && !this.#clientReconnectInProgress && !this.#reconnectionInProgress && this.#connectionState === 2 /* Reconnecting */) {
|
|
@@ -103,7 +103,7 @@ class PairedNode {
|
|
|
103
103
|
if (storedAttributeData !== void 0) {
|
|
104
104
|
await this.#initializeFromStoredData(storedAttributeData);
|
|
105
105
|
}
|
|
106
|
-
if (this
|
|
106
|
+
if (this.#options.autoConnect !== false) {
|
|
107
107
|
this.#initialize().catch((error) => {
|
|
108
108
|
logger.info(`Node ${nodeId}: Error during remote initialization`, error);
|
|
109
109
|
if (this.state !== 1 /* Disconnected */) {
|
|
@@ -147,6 +147,9 @@ class PairedNode {
|
|
|
147
147
|
#construction;
|
|
148
148
|
#clientReconnectInProgress = false;
|
|
149
149
|
#currentSubscriptionHandler;
|
|
150
|
+
#commissioningController;
|
|
151
|
+
#options;
|
|
152
|
+
#reconnectFunc;
|
|
150
153
|
events = {
|
|
151
154
|
/**
|
|
152
155
|
* Emitted when the node is initialized from local data. These data usually are stale, but you can still already
|
|
@@ -193,21 +196,27 @@ class PairedNode {
|
|
|
193
196
|
get isConnected() {
|
|
194
197
|
return this.#connectionState === 0 /* Connected */;
|
|
195
198
|
}
|
|
199
|
+
/** Returns the Node connection state. */
|
|
196
200
|
get state() {
|
|
197
201
|
return this.#connectionState;
|
|
198
202
|
}
|
|
203
|
+
/** Returns the BasicInformation cluster metadata collected from the device. */
|
|
199
204
|
get basicInformation() {
|
|
200
205
|
return this.#nodeDetails.basicInformation;
|
|
201
206
|
}
|
|
207
|
+
/** Returns the general capability metadata collected from the device. */
|
|
202
208
|
get deviceInformation() {
|
|
203
209
|
return this.#nodeDetails.meta;
|
|
204
210
|
}
|
|
211
|
+
/** Is the Node fully initialized with formerly stored subscription data? False when the node was never connected so far. */
|
|
205
212
|
get localInitializationDone() {
|
|
206
213
|
return this.#localInitializationDone;
|
|
207
214
|
}
|
|
215
|
+
/** Is the Node fully initialized with remote subscription or read data? */
|
|
208
216
|
get remoteInitializationDone() {
|
|
209
217
|
return this.#remoteInitializationDone;
|
|
210
218
|
}
|
|
219
|
+
/** Is the Node initialized - locally or remotely? */
|
|
211
220
|
get initialized() {
|
|
212
221
|
return this.#remoteInitializationDone || this.#localInitializationDone;
|
|
213
222
|
}
|
|
@@ -227,7 +236,7 @@ class PairedNode {
|
|
|
227
236
|
if (this.#connectionState === state || this.#connectionState === 3 /* WaitingForDeviceDiscovery */ && state === 2 /* Reconnecting */)
|
|
228
237
|
return;
|
|
229
238
|
this.#connectionState = state;
|
|
230
|
-
this
|
|
239
|
+
this.#options.stateInformationCallback?.(this.nodeId, state);
|
|
231
240
|
this.events.stateChanged.emit(state);
|
|
232
241
|
if (state === 1 /* Disconnected */) {
|
|
233
242
|
this.#reconnectDelayTimer?.stop();
|
|
@@ -241,25 +250,26 @@ class PairedNode {
|
|
|
241
250
|
}
|
|
242
251
|
this.#clientReconnectInProgress = true;
|
|
243
252
|
try {
|
|
244
|
-
await this
|
|
253
|
+
await this.#reconnectFunc(discoveryType);
|
|
245
254
|
} finally {
|
|
246
255
|
this.#clientReconnectInProgress = false;
|
|
247
256
|
}
|
|
248
257
|
}
|
|
249
258
|
/**
|
|
250
259
|
* Schedule a connection to the device. This method is non-blocking and will return immediately.
|
|
251
|
-
* The connection happens in the background. Please monitor the state of the node to see if the
|
|
260
|
+
* The connection happens in the background. Please monitor the state events of the node to see if the
|
|
252
261
|
* connection was successful.
|
|
262
|
+
* The provided connection options will be set and used internally if the node reconnects successfully.
|
|
253
263
|
*/
|
|
254
264
|
connect(connectOptions) {
|
|
255
265
|
if (connectOptions !== void 0) {
|
|
256
|
-
this
|
|
266
|
+
this.#options = connectOptions;
|
|
257
267
|
}
|
|
258
268
|
this.triggerReconnect();
|
|
259
269
|
}
|
|
260
270
|
/**
|
|
261
271
|
* Trigger a reconnection to the device. This method is non-blocking and will return immediately.
|
|
262
|
-
* The reconnection happens in the background. Please monitor the state of the node to see if the
|
|
272
|
+
* The reconnection happens in the background. Please monitor the state events of the node to see if the
|
|
263
273
|
* reconnection was successful.
|
|
264
274
|
*/
|
|
265
275
|
triggerReconnect() {
|
|
@@ -280,7 +290,7 @@ class PairedNode {
|
|
|
280
290
|
*/
|
|
281
291
|
async reconnect(connectOptions) {
|
|
282
292
|
if (connectOptions !== void 0) {
|
|
283
|
-
this
|
|
293
|
+
this.#options = connectOptions;
|
|
284
294
|
}
|
|
285
295
|
if (this.#reconnectionInProgress || this.#remoteInitializationInProgress) {
|
|
286
296
|
logger.debug(
|
|
@@ -355,7 +365,7 @@ class PairedNode {
|
|
|
355
365
|
return this.#interactionClient;
|
|
356
366
|
}
|
|
357
367
|
async #initializeFromStoredData(storedAttributeData) {
|
|
358
|
-
const { autoSubscribe } = this
|
|
368
|
+
const { autoSubscribe } = this.#options;
|
|
359
369
|
if (this.#remoteInitializationDone || this.#localInitializationDone || autoSubscribe === false) return;
|
|
360
370
|
let rootEndpointIncluded = false;
|
|
361
371
|
let otherEndpointIncluded = false;
|
|
@@ -384,7 +394,7 @@ class PairedNode {
|
|
|
384
394
|
this.#remoteInitializationInProgress = true;
|
|
385
395
|
try {
|
|
386
396
|
await this.#ensureConnection(true);
|
|
387
|
-
const { autoSubscribe, attributeChangedCallback, eventTriggeredCallback } = this
|
|
397
|
+
const { autoSubscribe, attributeChangedCallback, eventTriggeredCallback } = this.#options;
|
|
388
398
|
let deviceDetailsUpdated = false;
|
|
389
399
|
if (!this.#nodeDetails.valid || autoSubscribe === false && !this.#remoteInitializationDone) {
|
|
390
400
|
await this.#nodeDetails.enhanceDeviceDetailsFromRemote(this.#interactionClient);
|
|
@@ -423,7 +433,7 @@ class PairedNode {
|
|
|
423
433
|
}
|
|
424
434
|
if (!this.#remoteInitializationDone) {
|
|
425
435
|
try {
|
|
426
|
-
await this
|
|
436
|
+
await this.#commissioningController.validateAndUpdateFabricLabel(this.nodeId);
|
|
427
437
|
} catch (error) {
|
|
428
438
|
logger.info(`Node ${this.nodeId}: Error updating fabric label`, error);
|
|
429
439
|
}
|
|
@@ -441,8 +451,9 @@ class PairedNode {
|
|
|
441
451
|
}
|
|
442
452
|
}
|
|
443
453
|
/**
|
|
444
|
-
* Request the current InteractionClient for custom special
|
|
445
|
-
* ClusterClients of the Devices of the node should be used instead.
|
|
454
|
+
* Request the current InteractionClient for custom special interactions with the device. Usually the
|
|
455
|
+
* ClusterClients of the Devices of the node should be used instead. An own InteractionClient is only needed
|
|
456
|
+
* when you want to read or write multiple attributes or events in a single request or send batch invokes.
|
|
446
457
|
*/
|
|
447
458
|
getInteractionClient() {
|
|
448
459
|
return this.#ensureConnection();
|
|
@@ -464,7 +475,7 @@ class PairedNode {
|
|
|
464
475
|
options = options ?? {};
|
|
465
476
|
const { attributeChangedCallback, eventTriggeredCallback } = options;
|
|
466
477
|
let { ignoreInitialTriggers = false } = options;
|
|
467
|
-
const { minIntervalFloorSeconds, maxIntervalCeilingSeconds } = this.#nodeDetails.determineSubscriptionParameters(this
|
|
478
|
+
const { minIntervalFloorSeconds, maxIntervalCeilingSeconds } = this.#nodeDetails.determineSubscriptionParameters(this.#options);
|
|
468
479
|
const { threadConnected } = this.#nodeDetails.meta ?? {};
|
|
469
480
|
this.#invalidateSubscriptionHandler();
|
|
470
481
|
const subscriptionHandler = {
|
|
@@ -573,6 +584,7 @@ class PairedNode {
|
|
|
573
584
|
ignoreInitialTriggers = false;
|
|
574
585
|
return initialSubscriptionData;
|
|
575
586
|
}
|
|
587
|
+
/** Read all attributes of the devices and return them. If a stored state exists this is used to minimize needed traffic. */
|
|
576
588
|
async readAllAttributes() {
|
|
577
589
|
return this.#interactionClient.getAllAttributes({
|
|
578
590
|
dataVersionFilters: this.#interactionClient.getCachedClusterDataVersions(),
|
|
@@ -632,7 +644,7 @@ class PairedNode {
|
|
|
632
644
|
async #updateEndpointStructure() {
|
|
633
645
|
const allClusterAttributes = await this.readAllAttributes();
|
|
634
646
|
await this.#initializeEndpointStructure(allClusterAttributes, true);
|
|
635
|
-
this
|
|
647
|
+
this.#options.stateInformationCallback?.(this.nodeId, 4 /* StructureChanged */);
|
|
636
648
|
this.events.structureChanged.emit();
|
|
637
649
|
}
|
|
638
650
|
/** Reads all data from the device and create a device object structure out of it. */
|
|
@@ -726,14 +738,7 @@ class PairedNode {
|
|
|
726
738
|
});
|
|
727
739
|
}
|
|
728
740
|
}
|
|
729
|
-
/**
|
|
730
|
-
* Create a device object from the data read from the device.
|
|
731
|
-
*
|
|
732
|
-
* @param endpointId Endpoint ID
|
|
733
|
-
* @param data Data of all clusters read from the device
|
|
734
|
-
* @param interactionClient InteractionClient to use for the device
|
|
735
|
-
* @private
|
|
736
|
-
*/
|
|
741
|
+
/** Create a device object from the data read from the device. */
|
|
737
742
|
#createDevice(endpointId, data, interactionClient) {
|
|
738
743
|
const descriptorData = data[import_clusters.DescriptorCluster.id];
|
|
739
744
|
const deviceTypes = descriptorData.deviceTypeList.flatMap(({ deviceType, revision }) => {
|
|
@@ -814,7 +819,7 @@ class PairedNode {
|
|
|
814
819
|
}
|
|
815
820
|
}
|
|
816
821
|
}
|
|
817
|
-
/** Returns the functional devices/endpoints (
|
|
822
|
+
/** Returns the functional devices/endpoints (the "childs" of the Root Endpoint) known for this node. */
|
|
818
823
|
getDevices() {
|
|
819
824
|
return this.#endpoints.get((0, import_types.EndpointNumber)(0))?.getChildEndpoints() ?? [];
|
|
820
825
|
}
|
|
@@ -822,12 +827,13 @@ class PairedNode {
|
|
|
822
827
|
getDeviceById(endpointId) {
|
|
823
828
|
return this.#endpoints.get((0, import_types.EndpointNumber)(endpointId));
|
|
824
829
|
}
|
|
830
|
+
/** Returns the Root Endpoint of the device. */
|
|
825
831
|
getRootEndpoint() {
|
|
826
832
|
return this.getDeviceById(0);
|
|
827
833
|
}
|
|
828
834
|
/** De-Commission (unpair) the device from this controller by removing the fabric from the device. */
|
|
829
835
|
async decommission() {
|
|
830
|
-
if (!this
|
|
836
|
+
if (!this.#commissioningController.isNodeCommissioned(this.nodeId)) {
|
|
831
837
|
throw new import_general.ImplementationError(`This Node ${this.nodeId} is not commissioned.`);
|
|
832
838
|
}
|
|
833
839
|
if (this.#connectionState === 2 /* Reconnecting */ || this.#connectionState === 3 /* WaitingForDeviceDiscovery */) {
|
|
@@ -848,9 +854,13 @@ class PairedNode {
|
|
|
848
854
|
);
|
|
849
855
|
}
|
|
850
856
|
this.#setConnectionState(1 /* Disconnected */);
|
|
851
|
-
await this
|
|
857
|
+
await this.#commissioningController.removeNode(this.nodeId, false);
|
|
852
858
|
}
|
|
853
|
-
/**
|
|
859
|
+
/**
|
|
860
|
+
* Opens a Basic Commissioning Window (uses the original Passcode printed on the device) with the device.
|
|
861
|
+
* This is an optional method, so it might not be supported by all devices and could be rejected with an error in
|
|
862
|
+
* this case! Better use openEnhancedCommissioningWindow() instead.
|
|
863
|
+
*/
|
|
854
864
|
async openBasicCommissioningWindow(commissioningTimeout = 900) {
|
|
855
865
|
const adminCommissioningCluster = this.getRootClusterClient(import_clusters.AdministratorCommissioning.Cluster.with("Basic"));
|
|
856
866
|
if (adminCommissioningCluster === void 0) {
|
|
@@ -925,17 +935,19 @@ class PairedNode {
|
|
|
925
935
|
qrPairingCode
|
|
926
936
|
};
|
|
927
937
|
}
|
|
938
|
+
/** Closes the current session, ends the subscription and disconnects the device. */
|
|
928
939
|
async disconnect() {
|
|
929
940
|
this.close();
|
|
930
|
-
await this
|
|
941
|
+
await this.#commissioningController.disconnectNode(this.nodeId);
|
|
931
942
|
}
|
|
943
|
+
/** Closes the current subscription and ends all timers for reconnects or such used by this PairedNode instance. */
|
|
932
944
|
close(sendDecommissionedStatus = false) {
|
|
933
945
|
this.#newChannelReconnectDelayTimer.stop();
|
|
934
946
|
this.#reconnectDelayTimer?.stop();
|
|
935
947
|
this.#reconnectDelayTimer = void 0;
|
|
936
948
|
this.#updateEndpointStructureTimer.stop();
|
|
937
949
|
if (sendDecommissionedStatus) {
|
|
938
|
-
this
|
|
950
|
+
this.#options.stateInformationCallback?.(this.nodeId, 5 /* Decommissioned */);
|
|
939
951
|
this.events.decommissioned.emit();
|
|
940
952
|
}
|
|
941
953
|
this.#setConnectionState(1 /* Disconnected */);
|
|
@@ -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
|
}
|
|
@@ -4,10 +4,9 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Environment, NetInterfaceSet, StorageContext, SyncStorage } from "#general";
|
|
7
|
-
import { CommissionableDevice, CommissionableDeviceIdentifiers,
|
|
7
|
+
import { CommissionableDevice, CommissionableDeviceIdentifiers, DiscoveryAndCommissioningOptions, DiscoveryData, InteractionClient, MdnsBroadcaster, MdnsScanner, NodeDiscoveryType, ScannerSet } from "#protocol";
|
|
8
8
|
import { CaseAuthenticatedTag, DiscoveryCapabilitiesBitmap, FabricId, FabricIndex, NodeId, TypeFromPartialBitSchema, VendorId } from "#types";
|
|
9
9
|
import { CommissioningControllerNodeOptions, PairedNode } from "./device/PairedNode.js";
|
|
10
|
-
import { MatterController } from "./MatterController.js";
|
|
11
10
|
import { MatterNode } from "./MatterNode.js";
|
|
12
11
|
export type ControllerEnvironmentOptions = {
|
|
13
12
|
/**
|
|
@@ -75,19 +74,7 @@ export type NodeCommissioningOptions = CommissioningControllerNodeOptions & {
|
|
|
75
74
|
};
|
|
76
75
|
/** Controller class to commission and connect multiple nodes into one fabric. */
|
|
77
76
|
export declare class CommissioningController extends MatterNode {
|
|
78
|
-
private
|
|
79
|
-
private started;
|
|
80
|
-
private ipv4Disabled?;
|
|
81
|
-
private readonly listeningAddressIpv4?;
|
|
82
|
-
private readonly listeningAddressIpv6?;
|
|
83
|
-
private environment?;
|
|
84
|
-
private storage?;
|
|
85
|
-
private mdnsScanner?;
|
|
86
|
-
private mdnsBroadcaster?;
|
|
87
|
-
private controllerInstance?;
|
|
88
|
-
private initializedNodes;
|
|
89
|
-
private nodeUpdateLabelHandlers;
|
|
90
|
-
private sessionDisconnectedHandler;
|
|
77
|
+
#private;
|
|
91
78
|
/**
|
|
92
79
|
* Creates a new CommissioningController instance
|
|
93
80
|
*
|
|
@@ -95,21 +82,14 @@ export declare class CommissioningController extends MatterNode {
|
|
|
95
82
|
*/
|
|
96
83
|
constructor(options: CommissioningControllerOptions);
|
|
97
84
|
get nodeId(): NodeId | undefined;
|
|
85
|
+
/** Returns the configuration data needed to create a PASE commissioner, e.g. in a mobile app. */
|
|
98
86
|
get paseCommissionerConfig(): {
|
|
99
87
|
caConfig: import("#protocol").CertificateAuthority.Configuration;
|
|
100
88
|
fabricData: import("#protocol").Fabric.Config;
|
|
101
89
|
};
|
|
102
|
-
assertIsAddedToMatterServer(): {
|
|
103
|
-
mdnsScanner: MdnsScanner;
|
|
104
|
-
storage: StorageContext<any> | undefined;
|
|
105
|
-
environment: Environment | undefined;
|
|
106
|
-
};
|
|
107
|
-
assertControllerIsStarted(errorText?: string): MatterController;
|
|
108
|
-
/** Internal method to initialize a MatterController instance. */
|
|
109
|
-
private initializeController;
|
|
110
90
|
/**
|
|
111
91
|
* Commissions/Pairs a new device into the controller fabric. The method returns the NodeId of the commissioned
|
|
112
|
-
* node.
|
|
92
|
+
* node on success.
|
|
113
93
|
*/
|
|
114
94
|
commissionNode(nodeOptions: NodeCommissioningOptions, connectNodeAfterCommissioning?: boolean): Promise<NodeId>;
|
|
115
95
|
/**
|
|
@@ -124,40 +104,53 @@ export declare class CommissioningController extends MatterNode {
|
|
|
124
104
|
* Remove a Node id from the controller. This method should only be used if the decommission method on the
|
|
125
105
|
* PairedNode instance returns an error. By default, it tries to decommission the node from the controller but will
|
|
126
106
|
* remove it also in case of an error during decommissioning. Ideally try to decommission the node before and only
|
|
127
|
-
* use this in case of an error.
|
|
107
|
+
* use this in case of an error as last option.
|
|
108
|
+
* If this method is used the state of the PairedNode instance might be out of sync, so the PairedNode instance
|
|
109
|
+
* should be disconnected first.
|
|
128
110
|
*/
|
|
129
111
|
removeNode(nodeId: NodeId, tryDecommissioning?: boolean): Promise<void>;
|
|
112
|
+
/** @deprecated Use PairedNode.disconnect() instead */
|
|
130
113
|
disconnectNode(nodeId: NodeId): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Returns the PairedNode instance for a given NodeId. The instance is initialized without auto connect if not yet
|
|
116
|
+
* created.
|
|
117
|
+
*/
|
|
131
118
|
getNode(nodeId: NodeId): Promise<PairedNode>;
|
|
132
119
|
/**
|
|
133
120
|
* Connect to an already paired Node.
|
|
134
121
|
* After connection the endpoint data of the device is analyzed and an object structure is created.
|
|
135
122
|
* This call is not blocking and returns an initialized PairedNode instance. The connection or reconnection
|
|
136
123
|
* happens in the background. Please monitor the state of the node to see if the connection was successful.
|
|
124
|
+
*
|
|
125
|
+
* @deprecated Use getNode() instead and call PairedNode.connect() or PairedNode.disconnect() as needed.
|
|
137
126
|
*/
|
|
138
127
|
connectNode(nodeId: NodeId, connectOptions?: CommissioningControllerNodeOptions): Promise<PairedNode>;
|
|
139
|
-
collectStoredAttributeData(nodeId: NodeId): Promise<DecodedAttributeReportValue<any>[]>;
|
|
140
128
|
/**
|
|
141
129
|
* Connects to all paired nodes.
|
|
142
130
|
* After connection the endpoint data of the device is analyzed and an object structure is created.
|
|
131
|
+
*
|
|
132
|
+
* @deprecated Use getCommissionedNodes() to get the list of nodes and getNode(nodeId) instead and call PairedNode.connect() or PairedNode.disconnect() as needed.
|
|
143
133
|
*/
|
|
144
134
|
connect(connectOptions?: CommissioningControllerNodeOptions): Promise<PairedNode[]>;
|
|
145
135
|
/**
|
|
146
136
|
* Set the MDNS Scanner instance. Should be only used internally
|
|
147
137
|
*
|
|
148
138
|
* @param mdnsScanner MdnsScanner instance
|
|
139
|
+
* @private
|
|
149
140
|
*/
|
|
150
141
|
setMdnsScanner(mdnsScanner: MdnsScanner): void;
|
|
151
142
|
/**
|
|
152
143
|
* Set the MDNS Broadcaster instance. Should be only used internally
|
|
153
144
|
*
|
|
154
145
|
* @param mdnsBroadcaster MdnsBroadcaster instance
|
|
146
|
+
* @private
|
|
155
147
|
*/
|
|
156
148
|
setMdnsBroadcaster(mdnsBroadcaster: MdnsBroadcaster): void;
|
|
157
149
|
/**
|
|
158
150
|
* Set the Storage instance. Should be only used internally
|
|
159
151
|
*
|
|
160
152
|
* @param storage storage context to use
|
|
153
|
+
* @private
|
|
161
154
|
*/
|
|
162
155
|
setStorage(storage: StorageContext<SyncStorage>): void;
|
|
163
156
|
/** Returns true if t least one node is commissioned/paired with this controller instance. */
|
|
@@ -167,10 +160,14 @@ export declare class CommissioningController extends MatterNode {
|
|
|
167
160
|
* not be used directly. See the PairedNode class for the public API.
|
|
168
161
|
*/
|
|
169
162
|
createInteractionClient(nodeId: NodeId, discoveryType?: NodeDiscoveryType, forcedConnection?: boolean): Promise<InteractionClient>;
|
|
170
|
-
/**
|
|
163
|
+
/**
|
|
164
|
+
* Returns the PairedNode instance for a given node id, if this node is connected.
|
|
165
|
+
* @deprecated Use getNode() instead
|
|
166
|
+
*/
|
|
171
167
|
getPairedNode(nodeId: NodeId): PairedNode | undefined;
|
|
172
|
-
/** Returns an array with the
|
|
168
|
+
/** Returns an array with the NodeIds of all commissioned nodes. */
|
|
173
169
|
getCommissionedNodes(): NodeId[];
|
|
170
|
+
/** Returns an arra with all commissioned NodeIds and their metadata. */
|
|
174
171
|
getCommissionedNodesDetails(): {
|
|
175
172
|
nodeId: NodeId;
|
|
176
173
|
operationalAddress: string | undefined;
|
|
@@ -178,15 +175,35 @@ export declare class CommissioningController extends MatterNode {
|
|
|
178
175
|
discoveryData: DiscoveryData | undefined;
|
|
179
176
|
deviceData: import("./device/DeviceInformation.js").DeviceInformationData | undefined;
|
|
180
177
|
}[];
|
|
181
|
-
/**
|
|
178
|
+
/**
|
|
179
|
+
* Disconnects all connected nodes and closes the network connections and other resources of the controller.
|
|
180
|
+
* You can use "start()" to restart the controller after closing it.
|
|
181
|
+
*/
|
|
182
182
|
close(): Promise<void>;
|
|
183
|
+
/** Return the port used by the controller for the UDP interface. */
|
|
183
184
|
getPort(): number | undefined;
|
|
185
|
+
/** @private */
|
|
184
186
|
initialize(ipv4Disabled: boolean): void;
|
|
187
|
+
/** @private */
|
|
185
188
|
initializeControllerStore(): Promise<void>;
|
|
186
|
-
/**
|
|
189
|
+
/**
|
|
190
|
+
* Initialize the controller and initialize and connect to all commissioned nodes if autoConnect is not set to false.
|
|
191
|
+
*/
|
|
187
192
|
start(): Promise<void>;
|
|
193
|
+
/**
|
|
194
|
+
* Cancels the discovery process for commissionable devices started with discoverCommissionableDevices().
|
|
195
|
+
*/
|
|
188
196
|
cancelCommissionableDeviceDiscovery(identifierData: CommissionableDeviceIdentifiers, discoveryCapabilities?: TypeFromPartialBitSchema<typeof DiscoveryCapabilitiesBitmap>): void;
|
|
197
|
+
/**
|
|
198
|
+
* Starts to discover commissionable devices.
|
|
199
|
+
* The promise will be fulfilled after the provided timeout or when the discovery is stopped via
|
|
200
|
+
* cancelCommissionableDeviceDiscovery(). The discoveredCallback will be called for each discovered device.
|
|
201
|
+
*/
|
|
189
202
|
discoverCommissionableDevices(identifierData: CommissionableDeviceIdentifiers, discoveryCapabilities?: TypeFromPartialBitSchema<typeof DiscoveryCapabilitiesBitmap>, discoveredCallback?: (device: CommissionableDevice) => void, timeoutSeconds?: number): Promise<CommissionableDevice[]>;
|
|
203
|
+
/**
|
|
204
|
+
* Use this method to reset the Controller storage. The method can only be called if the controller is stopped and
|
|
205
|
+
* will remove all commissioning data and paired nodes from the controller.
|
|
206
|
+
*/
|
|
190
207
|
resetStorage(): Promise<void>;
|
|
191
208
|
/** Returns active session information for all connected nodes. */
|
|
192
209
|
getActiveSessionInformation(): {
|
|
@@ -200,7 +217,12 @@ export declare class CommissioningController extends MatterNode {
|
|
|
200
217
|
lastActiveTimestamp: number | undefined;
|
|
201
218
|
numberOfActiveSubscriptions: number;
|
|
202
219
|
}[];
|
|
220
|
+
/** @private */
|
|
203
221
|
validateAndUpdateFabricLabel(nodeId: NodeId): Promise<void>;
|
|
222
|
+
/**
|
|
223
|
+
* Updates the fabric label for the controller and all connected nodes.
|
|
224
|
+
* The label is used to identify the controller and all connected nodes in the fabric.
|
|
225
|
+
*/
|
|
204
226
|
updateFabricLabel(label: string): Promise<void>;
|
|
205
227
|
}
|
|
206
228
|
export declare function configureNetwork(options: {
|