@matter/nodejs-shell 0.17.5-alpha.0-20260706-fd4c49e2e → 0.17.5-alpha.0-20260707-54888fc9e

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.
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import {
7
+ Diagnostic,
7
8
  Environment,
8
9
  Filesystem,
9
10
  Logger,
@@ -13,7 +14,48 @@ import {
13
14
  import { DclBehavior, SoftwareUpdateManager } from "@matter/node";
14
15
  import { NodeId } from "@matter/types";
15
16
  import { CommissioningController } from "@project-chip/matter.js";
17
+ import {
18
+ NodeStateInformation
19
+ } from "@project-chip/matter.js/device";
16
20
  import { join } from "node:path";
21
+ function createDiagnosticCallbacks() {
22
+ return {
23
+ attributeChangedCallback: (peerNodeId, { path: { nodeId, clusterId, endpointId, attributeName }, value }) => console.log(
24
+ `attributeChangedCallback ${peerNodeId}: Attribute ${nodeId}/${endpointId}/${clusterId}/${attributeName} changed to ${Diagnostic.json(
25
+ value
26
+ )}`
27
+ ),
28
+ eventTriggeredCallback: (peerNodeId, { path: { nodeId, clusterId, endpointId, eventName }, events }) => console.log(
29
+ `eventTriggeredCallback ${peerNodeId}: Event ${nodeId}/${endpointId}/${clusterId}/${eventName} triggered with ${Diagnostic.json(
30
+ events
31
+ )}`
32
+ ),
33
+ stateInformationCallback: (peerNodeId, info) => {
34
+ switch (info) {
35
+ case NodeStateInformation.Connected:
36
+ console.log(`stateInformationCallback Node ${peerNodeId} connected`);
37
+ break;
38
+ case NodeStateInformation.Disconnected:
39
+ console.log(`stateInformationCallback Node ${peerNodeId} disconnected`);
40
+ break;
41
+ case NodeStateInformation.Reconnecting:
42
+ console.log(`stateInformationCallback Node ${peerNodeId} reconnecting`);
43
+ break;
44
+ case NodeStateInformation.WaitingForDeviceDiscovery:
45
+ console.log(
46
+ `stateInformationCallback Node ${peerNodeId} waiting that device gets discovered again`
47
+ );
48
+ break;
49
+ case NodeStateInformation.StructureChanged:
50
+ console.log(`stateInformationCallback Node ${peerNodeId} structure changed`);
51
+ break;
52
+ case NodeStateInformation.Decommissioned:
53
+ console.log(`stateInformationCallback Node ${peerNodeId} decommissioned`);
54
+ break;
55
+ }
56
+ }
57
+ };
58
+ }
17
59
  const logger = Logger.get("Node");
18
60
  class MatterNode {
19
61
  #storageLocation;
@@ -155,11 +197,12 @@ class MatterNode {
155
197
  if (this.commissioningController === void 0) {
156
198
  throw new Error("CommissioningController not initialized");
157
199
  }
200
+ const options = { ...createDiagnosticCallbacks(), ...connectOptions };
158
201
  if (nodeId === void 0) {
159
- return await this.commissioningController.connect(connectOptions);
202
+ return await this.commissioningController.connect(options);
160
203
  }
161
204
  const node = await this.commissioningController.connectNode(nodeId, {
162
- ...connectOptions
205
+ ...options
163
206
  });
164
207
  if (!node.initialized) {
165
208
  await node.events.initialized;
@@ -188,6 +231,7 @@ class MatterNode {
188
231
  }
189
232
  }
190
233
  export {
191
- MatterNode
234
+ MatterNode,
235
+ createDiagnosticCallbacks
192
236
  };
193
237
  //# sourceMappingURL=MatterNode.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/MatterNode.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -18,6 +18,7 @@ import cmdCommission from "./cmd_commission.js";
18
18
  import cmdConfig from "./cmd_config.js";
19
19
  import cmdDcl from "./cmd_dcl.js";
20
20
  import cmdDiscover from "./cmd_discover.js";
21
+ import cmdIcd from "./cmd_icd.js";
21
22
  import cmdIdentify from "./cmd_identify.js";
22
23
  import cmdNodes from "./cmd_nodes.js";
23
24
  import cmdOta from "./cmd_ota.js";
@@ -160,6 +161,7 @@ class Shell {
160
161
  cmdVendor(this.theNode),
161
162
  cmdTlv(),
162
163
  cmdDcl(),
164
+ cmdIcd(this.theNode),
163
165
  exitCommand()
164
166
  ]).command({
165
167
  command: "*",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/shell/Shell.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -6,7 +6,7 @@
6
6
  import { Diagnostic, Logger, MatterError } from "@matter/general";
7
7
  import { DiscoveryCapabilitiesSchema, ManualPairingCodeCodec, NodeId, QrCode, QrPairingCodeCodec } from "@matter/types";
8
8
  import { BasicInformation, Descriptor, GeneralCommissioning } from "@matter/types/clusters";
9
- import { createDiagnosticCallbacks } from "./cmd_nodes.js";
9
+ import { createDiagnosticCallbacks } from "../MatterNode.js";
10
10
  const logger = Logger.get("Commission");
11
11
  function commands(theNode) {
12
12
  return {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/shell/cmd_commission.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["yargs"]
6
6
  }
@@ -0,0 +1,277 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Duration, Millis, ObserverGroup } from "@matter/general";
7
+ import { IcdClient, IcdMultiAdminError } from "@matter/node";
8
+ import { IcdManagementClient } from "@matter/node/behaviors/icd-management";
9
+ import { NodeId, SubjectId, VendorId } from "@matter/types";
10
+ import { IcdManagement } from "@matter/types/clusters/icd-management";
11
+ import { NodeStates } from "@project-chip/matter.js/device";
12
+ const watchers = /* @__PURE__ */ new Map();
13
+ async function printStatus(paired) {
14
+ const clientNode = paired.node;
15
+ if (!clientNode.behaviors.has(IcdClient)) {
16
+ if (!paired.initialized) {
17
+ console.log(`node ${paired.nodeId}: uninitialized (no cached data yet)`);
18
+ }
19
+ return;
20
+ }
21
+ const icd = clientNode.stateOf(IcdClient);
22
+ const mgmt = clientNode.maybeStateOf(IcdManagementClient);
23
+ const supportsLit = IcdClient.litSupported(clientNode);
24
+ const awake = await clientNode.act((agent) => agent.get(IcdClient).awake);
25
+ const operatingModeLabel = mgmt === void 0 ? "n/a" : IcdManagement.OperatingMode[mgmt.operatingMode ?? -1] ?? mgmt.operatingMode ?? "unknown";
26
+ const marker = paired.initialized ? "" : " [uninitialized]";
27
+ console.log(
28
+ [
29
+ `node ${paired.nodeId}:${marker}`,
30
+ ` registered=${icd.registered}`,
31
+ ` available=${icd.available}`,
32
+ ` awake=${awake}`,
33
+ ` supportsLit=${supportsLit}`,
34
+ ` operatingMode=${operatingModeLabel}`,
35
+ ` activeModeThreshold(ms)=${mgmt?.activeModeThreshold ?? "n/a"}`,
36
+ ` idleModeDuration(s)=${mgmt?.idleModeDuration ?? "n/a"}`,
37
+ ` lastCheckIn=${icd.lastCheckInReceivedAt ?? "never"}`,
38
+ ` counterStart=${icd.counterStart ?? "n/a"} lastOffset=${icd.lastOffset ?? "n/a"}`
39
+ ].join("\n")
40
+ );
41
+ }
42
+ const ALL_NODES = "all";
43
+ function selectsAll(nodeIdStr) {
44
+ return nodeIdStr.toLowerCase() === ALL_NODES;
45
+ }
46
+ async function targetNodeIds(theNode, nodeIdStr) {
47
+ await theNode.start();
48
+ return selectsAll(nodeIdStr) ? theNode.controller.getCommissionedNodes() : [NodeId(BigInt(nodeIdStr))];
49
+ }
50
+ async function eachNode(theNode, nodeIdStr, action) {
51
+ const all = selectsAll(nodeIdStr);
52
+ const nodeIds = await targetNodeIds(theNode, nodeIdStr);
53
+ if (nodeIds.length === 0) {
54
+ console.log("No commissioned nodes.");
55
+ return;
56
+ }
57
+ for (const nodeId of nodeIds) {
58
+ try {
59
+ await action(nodeId);
60
+ } catch (e) {
61
+ if (!all) {
62
+ throw e;
63
+ }
64
+ console.log(`node ${nodeId}: ${e instanceof Error ? e.message : String(e)}`);
65
+ }
66
+ }
67
+ }
68
+ async function pairedNodeFor(theNode, nodeId) {
69
+ const paired = (await theNode.connectAndGetNodes(String(nodeId)))[0];
70
+ if (paired === void 0) {
71
+ throw new Error(`Node ${nodeId} not found / not connected`);
72
+ }
73
+ if (!paired.node.behaviors.has(IcdClient)) {
74
+ throw new Error(`Node ${nodeId} is not an ICD device (no IcdManagement cluster)`);
75
+ }
76
+ return paired;
77
+ }
78
+ async function clientNodeFor(theNode, nodeId) {
79
+ return (await pairedNodeFor(theNode, nodeId)).node;
80
+ }
81
+ function stopWatch(nodeIdStr) {
82
+ if (selectsAll(nodeIdStr)) {
83
+ for (const observers of watchers.values()) {
84
+ observers.close();
85
+ }
86
+ watchers.clear();
87
+ console.log("Stopped watching all nodes");
88
+ return;
89
+ }
90
+ const key = String(NodeId(BigInt(nodeIdStr)));
91
+ watchers.get(key)?.close();
92
+ watchers.delete(key);
93
+ console.log(`Stopped watching node ${nodeIdStr}`);
94
+ }
95
+ async function startWatch(theNode, nodeId) {
96
+ const key = String(nodeId);
97
+ watchers.get(key)?.close();
98
+ watchers.delete(key);
99
+ const paired = await pairedNodeFor(theNode, nodeId);
100
+ const clientNode = paired.node;
101
+ const observers = new ObserverGroup();
102
+ const stamp = (msg) => console.log(`[icd ${nodeId}] ${msg}`);
103
+ const wakefulnessSuffix = async () => {
104
+ try {
105
+ const { nextCheckIn, awake } = await clientNode.act((agent) => {
106
+ const icd = agent.get(IcdClient);
107
+ return { nextCheckIn: icd.nextExpectedCheckin, awake: icd.awake };
108
+ });
109
+ return `nextCheckIn=${nextCheckIn} awake=${awake}`;
110
+ } catch (e) {
111
+ return `wakefulness read failed: ${e instanceof Error ? e.message : String(e)}`;
112
+ }
113
+ };
114
+ const events = clientNode.eventsOf(IcdClient);
115
+ observers.on(events.registered, () => stamp("registered"));
116
+ observers.on(events.unregistered, () => stamp("unregistered"));
117
+ observers.on(
118
+ events.checkedIn,
119
+ async ({ counter, activeModeThreshold }) => stamp(`check-in counter=${counter} SAT(ms)=${activeModeThreshold} ${await wakefulnessSuffix()}`)
120
+ );
121
+ observers.on(events.checkInMissed, async () => stamp(`check-in MISSED ${await wakefulnessSuffix()}`));
122
+ observers.on(events.keyRefreshed, () => stamp("key refreshed"));
123
+ observers.on(events.available$Changed, (value) => stamp(`available=${value}`));
124
+ observers.on(paired.events.stateChanged, (state) => stamp(`connection=${NodeStates[state] ?? state}`));
125
+ watchers.set(key, observers);
126
+ clientNode.lifecycle.destroyed.once(() => {
127
+ watchers.get(key)?.close();
128
+ watchers.delete(key);
129
+ });
130
+ console.log(`Watching node ${nodeId} (run \`icd watch ${nodeId} off\` to stop)`);
131
+ }
132
+ function commands(theNode) {
133
+ return {
134
+ command: "icd",
135
+ describe: "Controller-side ICD (Intermittently Connected Device) operations",
136
+ builder: (yargs) => yargs.command({
137
+ command: "register <node-id>",
138
+ describe: "Register this controller as a Check-In client on the peer ('all' for every node)",
139
+ builder: (y) => y.positional("node-id", {
140
+ describe: "node id, or 'all'",
141
+ type: "string",
142
+ demandOption: true
143
+ }).option("subject", { describe: "monitored subject id", type: "string" }).option("type", {
144
+ describe: "client type",
145
+ choices: ["permanent", "ephemeral"],
146
+ default: "permanent"
147
+ }).option("allow-multi-admin", {
148
+ describe: "allow registering alongside other-vendor admins",
149
+ type: "boolean",
150
+ default: false
151
+ }).option("ignore-vendor", {
152
+ describe: "vendor id(s) to treat as trusted",
153
+ type: "array"
154
+ }),
155
+ handler: async (argv) => {
156
+ const options = {
157
+ monitoredSubject: argv.subject === void 0 ? void 0 : SubjectId(NodeId(BigInt(argv.subject))),
158
+ clientType: argv.type === "ephemeral" ? IcdManagement.ClientType.Ephemeral : IcdManagement.ClientType.Permanent,
159
+ allowMultiAdmin: argv.allowMultiAdmin,
160
+ ignoredVendors: argv.ignoreVendor?.map((v) => VendorId(Number(v)))
161
+ };
162
+ await eachNode(theNode, argv.nodeId, async (nodeId) => {
163
+ const clientNode = await clientNodeFor(theNode, nodeId);
164
+ try {
165
+ await clientNode.act((agent) => agent.get(IcdClient).register(options));
166
+ console.log(`Registered as Check-In client on node ${nodeId}`);
167
+ } catch (e) {
168
+ if (e instanceof IcdMultiAdminError) {
169
+ console.log(
170
+ `node ${nodeId}: refused \u2014 peer has other-vendor admins (${e.adminVendorIds.join(", ")}). Re-run with --allow-multi-admin to proceed.`
171
+ );
172
+ return;
173
+ }
174
+ throw e;
175
+ }
176
+ });
177
+ }
178
+ }).command({
179
+ command: "unregister <node-id>",
180
+ describe: "Remove this controller's Check-In registration from the peer ('all' for every node)",
181
+ builder: (y) => y.positional("node-id", {
182
+ describe: "node id, or 'all'",
183
+ type: "string",
184
+ demandOption: true
185
+ }).option("force", {
186
+ describe: "forget the registration locally without contacting the peer (escape hatch for an unreachable LIT ICD)",
187
+ type: "boolean",
188
+ default: false
189
+ }),
190
+ handler: async (argv) => {
191
+ await eachNode(theNode, argv.nodeId, async (nodeId) => {
192
+ if (argv.force) {
193
+ const clientNode2 = (await theNode.controller.getNode(nodeId)).node;
194
+ if (!clientNode2.behaviors.has(IcdClient)) {
195
+ throw new Error(`Node ${nodeId} is not an ICD device (no IcdManagement cluster)`);
196
+ }
197
+ await clientNode2.act((agent) => agent.get(IcdClient).forget());
198
+ console.log(
199
+ `Forgot Check-In registration for node ${nodeId} locally (peer not contacted)`
200
+ );
201
+ return;
202
+ }
203
+ const clientNode = await clientNodeFor(theNode, nodeId);
204
+ await clientNode.act((agent) => agent.get(IcdClient).unregister());
205
+ console.log(`Unregistered Check-In client on node ${nodeId}`);
206
+ });
207
+ }
208
+ }).command({
209
+ command: "stay-active <node-id> [duration-ms]",
210
+ describe: "Ask the peer to stay in Active mode; prints the promised duration ('all' for every node)",
211
+ builder: (y) => y.positional("node-id", {
212
+ describe: "node id, or 'all'",
213
+ type: "string",
214
+ demandOption: true
215
+ }).positional("duration-ms", {
216
+ describe: "requested active duration (ms)",
217
+ type: "number",
218
+ default: 3e4
219
+ }),
220
+ handler: async (argv) => {
221
+ await eachNode(theNode, argv.nodeId, async (nodeId) => {
222
+ const clientNode = await clientNodeFor(theNode, nodeId);
223
+ const promised = await clientNode.act(
224
+ (agent) => agent.get(IcdClient).stayActive(Millis(argv.durationMs))
225
+ );
226
+ console.log(`Node ${nodeId} promised active for ${Duration.format(promised)}`);
227
+ });
228
+ }
229
+ }).command({
230
+ command: "status <node-id>",
231
+ describe: "Show ICD state for a peer ('all' for every commissioned node)",
232
+ builder: (y) => y.positional("node-id", { describe: "node id, or 'all'", type: "string", demandOption: true }),
233
+ handler: async (argv) => {
234
+ const nodeIds = await targetNodeIds(theNode, argv.nodeId);
235
+ if (nodeIds.length === 0) {
236
+ console.log("No commissioned nodes.");
237
+ return;
238
+ }
239
+ for (const nodeId of nodeIds) {
240
+ try {
241
+ await printStatus(await theNode.controller.getNode(nodeId));
242
+ } catch (e) {
243
+ console.log(
244
+ `node ${nodeId}: unavailable (${e instanceof Error ? e.message : String(e)})`
245
+ );
246
+ }
247
+ }
248
+ }
249
+ }).command({
250
+ command: "watch <node-id> [state]",
251
+ describe: "Stream ICD events for a peer live ('all' for every node; state: on|off, default on), including awake, nextCheckIn and connection state",
252
+ builder: (y) => y.positional("node-id", {
253
+ describe: "node id, or 'all'",
254
+ type: "string",
255
+ demandOption: true
256
+ }).positional("state", {
257
+ describe: "on|off",
258
+ choices: ["on", "off"],
259
+ default: "on"
260
+ }),
261
+ handler: async (argv) => {
262
+ if (argv.state === "off") {
263
+ stopWatch(argv.nodeId);
264
+ return;
265
+ }
266
+ await eachNode(theNode, argv.nodeId, (nodeId) => startWatch(theNode, nodeId));
267
+ }
268
+ }).demandCommand(1, "You must specify an icd subcommand"),
269
+ handler: async (argv) => {
270
+ argv.unhandled = true;
271
+ }
272
+ };
273
+ }
274
+ export {
275
+ commands as default
276
+ };
277
+ //# sourceMappingURL=cmd_icd.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/shell/cmd_icd.ts"],
4
+ "mappings": "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",
5
+ "names": ["clientNode"]
6
+ }
@@ -8,44 +8,7 @@ import { CommissioningClient, NetworkClient, SoftwareUpdateManager } from "@matt
8
8
  import { PeerAddress, PeerSet } from "@matter/protocol";
9
9
  import { FabricIndex, NodeId } from "@matter/types";
10
10
  import { NodeStateInformation } from "@project-chip/matter.js/device";
11
- function createDiagnosticCallbacks() {
12
- return {
13
- attributeChangedCallback: (peerNodeId, { path: { nodeId, clusterId, endpointId, attributeName }, value }) => console.log(
14
- `attributeChangedCallback ${peerNodeId}: Attribute ${nodeId}/${endpointId}/${clusterId}/${attributeName} changed to ${Diagnostic.json(
15
- value
16
- )}`
17
- ),
18
- eventTriggeredCallback: (peerNodeId, { path: { nodeId, clusterId, endpointId, eventName }, events }) => console.log(
19
- `eventTriggeredCallback ${peerNodeId}: Event ${nodeId}/${endpointId}/${clusterId}/${eventName} triggered with ${Diagnostic.json(
20
- events
21
- )}`
22
- ),
23
- stateInformationCallback: (peerNodeId, info) => {
24
- switch (info) {
25
- case NodeStateInformation.Connected:
26
- console.log(`stateInformationCallback Node ${peerNodeId} connected`);
27
- break;
28
- case NodeStateInformation.Disconnected:
29
- console.log(`stateInformationCallback Node ${peerNodeId} disconnected`);
30
- break;
31
- case NodeStateInformation.Reconnecting:
32
- console.log(`stateInformationCallback Node ${peerNodeId} reconnecting`);
33
- break;
34
- case NodeStateInformation.WaitingForDeviceDiscovery:
35
- console.log(
36
- `stateInformationCallback Node ${peerNodeId} waiting that device gets discovered again`
37
- );
38
- break;
39
- case NodeStateInformation.StructureChanged:
40
- console.log(`stateInformationCallback Node ${peerNodeId} structure changed`);
41
- break;
42
- case NodeStateInformation.Decommissioned:
43
- console.log(`stateInformationCallback Node ${peerNodeId} decommissioned`);
44
- break;
45
- }
46
- }
47
- };
48
- }
11
+ import { createDiagnosticCallbacks } from "../MatterNode.js";
49
12
  function parseFallbackAddress(input) {
50
13
  const match = /^(udp|tcp):\/\/(.+)$/i.exec(input);
51
14
  if (!match) {
@@ -778,7 +741,6 @@ You can now apply this update to the device using your device's OTA mechanism.`
778
741
  };
779
742
  }
780
743
  export {
781
- createDiagnosticCallbacks,
782
744
  commands as default
783
745
  };
784
746
  //# sourceMappingURL=cmd_nodes.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/shell/cmd_nodes.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["yargs"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/nodejs-shell",
3
- "version": "0.17.5-alpha.0-20260706-fd4c49e2e",
3
+ "version": "0.17.5-alpha.0-20260707-54888fc9e",
4
4
  "description": "Shell app for Matter controller",
5
5
  "keywords": [
6
6
  "iot",
@@ -34,14 +34,14 @@
34
34
  "matter-shell": "dist/cjs/app.js"
35
35
  },
36
36
  "dependencies": {
37
- "@matter/general": "0.17.5-alpha.0-20260706-fd4c49e2e",
38
- "@matter/model": "0.17.5-alpha.0-20260706-fd4c49e2e",
39
- "@matter/node": "0.17.5-alpha.0-20260706-fd4c49e2e",
40
- "@matter/nodejs": "0.17.5-alpha.0-20260706-fd4c49e2e",
41
- "@matter/nodejs-ble": "0.17.5-alpha.0-20260706-fd4c49e2e",
42
- "@matter/protocol": "0.17.5-alpha.0-20260706-fd4c49e2e",
43
- "@matter/types": "0.17.5-alpha.0-20260706-fd4c49e2e",
44
- "@project-chip/matter.js": "0.17.5-alpha.0-20260706-fd4c49e2e",
37
+ "@matter/general": "0.17.5-alpha.0-20260707-54888fc9e",
38
+ "@matter/model": "0.17.5-alpha.0-20260707-54888fc9e",
39
+ "@matter/node": "0.17.5-alpha.0-20260707-54888fc9e",
40
+ "@matter/nodejs": "0.17.5-alpha.0-20260707-54888fc9e",
41
+ "@matter/nodejs-ble": "0.17.5-alpha.0-20260707-54888fc9e",
42
+ "@matter/protocol": "0.17.5-alpha.0-20260707-54888fc9e",
43
+ "@matter/types": "0.17.5-alpha.0-20260707-54888fc9e",
44
+ "@project-chip/matter.js": "0.17.5-alpha.0-20260707-54888fc9e",
45
45
  "ws": "^8.21.0",
46
46
  "yargs": "^18.0.0"
47
47
  },
package/src/MatterNode.ts CHANGED
@@ -6,6 +6,7 @@
6
6
 
7
7
  // Include this first to auto-register Crypto, Network and Time Node.js implementations
8
8
  import {
9
+ Diagnostic,
9
10
  Environment,
10
11
  Filesystem,
11
12
  Logger,
@@ -17,9 +18,60 @@ import {
17
18
  import { DclBehavior, ServerNode, SoftwareUpdateManager } from "@matter/node";
18
19
  import { NodeId } from "@matter/types";
19
20
  import { CommissioningController } from "@project-chip/matter.js";
20
- import { CommissioningControllerNodeOptions, Endpoint, PairedNode } from "@project-chip/matter.js/device";
21
+ import {
22
+ CommissioningControllerNodeOptions,
23
+ Endpoint,
24
+ NodeStateInformation,
25
+ PairedNode,
26
+ } from "@project-chip/matter.js/device";
21
27
  import { join } from "node:path";
22
28
 
29
+ /**
30
+ * The shell's default per-node diagnostic callbacks — state-information, attribute-change and event logging. Applied by
31
+ * default to every {@link MatterNode.connectAndGetNodes} connection so any command that reaches a node (not just
32
+ * `nodes connect`) gets the same logging regardless of which command touched the node first.
33
+ */
34
+ export function createDiagnosticCallbacks(): Partial<CommissioningControllerNodeOptions> {
35
+ return {
36
+ attributeChangedCallback: (peerNodeId, { path: { nodeId, clusterId, endpointId, attributeName }, value }) =>
37
+ console.log(
38
+ `attributeChangedCallback ${peerNodeId}: Attribute ${nodeId}/${endpointId}/${clusterId}/${attributeName} changed to ${Diagnostic.json(
39
+ value,
40
+ )}`,
41
+ ),
42
+ eventTriggeredCallback: (peerNodeId, { path: { nodeId, clusterId, endpointId, eventName }, events }) =>
43
+ console.log(
44
+ `eventTriggeredCallback ${peerNodeId}: Event ${nodeId}/${endpointId}/${clusterId}/${eventName} triggered with ${Diagnostic.json(
45
+ events,
46
+ )}`,
47
+ ),
48
+ stateInformationCallback: (peerNodeId, info) => {
49
+ switch (info) {
50
+ case NodeStateInformation.Connected:
51
+ console.log(`stateInformationCallback Node ${peerNodeId} connected`);
52
+ break;
53
+ case NodeStateInformation.Disconnected:
54
+ console.log(`stateInformationCallback Node ${peerNodeId} disconnected`);
55
+ break;
56
+ case NodeStateInformation.Reconnecting:
57
+ console.log(`stateInformationCallback Node ${peerNodeId} reconnecting`);
58
+ break;
59
+ case NodeStateInformation.WaitingForDeviceDiscovery:
60
+ console.log(
61
+ `stateInformationCallback Node ${peerNodeId} waiting that device gets discovered again`,
62
+ );
63
+ break;
64
+ case NodeStateInformation.StructureChanged:
65
+ console.log(`stateInformationCallback Node ${peerNodeId} structure changed`);
66
+ break;
67
+ case NodeStateInformation.Decommissioned:
68
+ console.log(`stateInformationCallback Node ${peerNodeId} decommissioned`);
69
+ break;
70
+ }
71
+ },
72
+ };
73
+ }
74
+
23
75
  const logger = Logger.get("Node");
24
76
 
25
77
  export class MatterNode {
@@ -197,12 +249,16 @@ export class MatterNode {
197
249
  throw new Error("CommissioningController not initialized");
198
250
  }
199
251
 
252
+ // Default the shell's diagnostic callbacks so a node reached via any command (icd, cluster-*, subscribe, …),
253
+ // not just `nodes connect`, gets the same logging. A caller-supplied option still wins.
254
+ const options = { ...createDiagnosticCallbacks(), ...connectOptions };
255
+
200
256
  if (nodeId === undefined) {
201
- return await this.commissioningController.connect(connectOptions);
257
+ return await this.commissioningController.connect(options);
202
258
  }
203
259
 
204
260
  const node = await this.commissioningController.connectNode(nodeId, {
205
- ...connectOptions /*autoConnect: false*/,
261
+ ...options /*autoConnect: false*/,
206
262
  });
207
263
  if (!node.initialized) {
208
264
  await node.events.initialized;
@@ -21,6 +21,7 @@ import cmdCommission from "./cmd_commission.js";
21
21
  import cmdConfig from "./cmd_config.js";
22
22
  import cmdDcl from "./cmd_dcl.js";
23
23
  import cmdDiscover from "./cmd_discover.js";
24
+ import cmdIcd from "./cmd_icd.js";
24
25
  import cmdIdentify from "./cmd_identify.js";
25
26
  import cmdNodes from "./cmd_nodes.js";
26
27
  import cmdOta from "./cmd_ota.js";
@@ -171,6 +172,7 @@ export class Shell {
171
172
  cmdVendor(this.theNode),
172
173
  cmdTlv(),
173
174
  cmdDcl(),
175
+ cmdIcd(this.theNode),
174
176
  exitCommand(),
175
177
  ])
176
178
  .command({
@@ -9,8 +9,7 @@ import { DiscoveryCapabilitiesSchema, ManualPairingCodeCodec, NodeId, QrCode, Qr
9
9
  import { BasicInformation, Descriptor, GeneralCommissioning } from "@matter/types/clusters";
10
10
  import { NodeCommissioningOptions } from "@project-chip/matter.js";
11
11
  import type { Argv } from "yargs";
12
- import { MatterNode } from "../MatterNode.js";
13
- import { createDiagnosticCallbacks } from "./cmd_nodes.js";
12
+ import { createDiagnosticCallbacks, MatterNode } from "../MatterNode.js";
14
13
 
15
14
  const logger = Logger.get("Commission");
16
15
 
@@ -0,0 +1,333 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2026 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { Duration, Millis, ObserverGroup } from "@matter/general";
8
+ import { IcdClient, IcdMultiAdminError } from "@matter/node";
9
+ import { IcdManagementClient } from "@matter/node/behaviors/icd-management";
10
+ import { NodeId, SubjectId, VendorId } from "@matter/types";
11
+ import { IcdManagement } from "@matter/types/clusters/icd-management";
12
+ import { NodeStates, PairedNode } from "@project-chip/matter.js/device";
13
+ import type { Argv } from "yargs";
14
+ import { MatterNode } from "../MatterNode.js";
15
+
16
+ const watchers = new Map<string, ObserverGroup>();
17
+
18
+ async function printStatus(paired: PairedNode) {
19
+ const clientNode = paired.node;
20
+ if (!clientNode.behaviors.has(IcdClient)) {
21
+ if (!paired.initialized) {
22
+ console.log(`node ${paired.nodeId}: uninitialized (no cached data yet)`);
23
+ }
24
+ return;
25
+ }
26
+ const icd = clientNode.stateOf(IcdClient);
27
+ const mgmt = clientNode.maybeStateOf(IcdManagementClient);
28
+ const supportsLit = IcdClient.litSupported(clientNode);
29
+ const awake = await clientNode.act(agent => agent.get(IcdClient).awake);
30
+ const operatingModeLabel =
31
+ mgmt === undefined
32
+ ? "n/a"
33
+ : (IcdManagement.OperatingMode[mgmt.operatingMode ?? -1] ?? mgmt.operatingMode ?? "unknown");
34
+ const marker = paired.initialized ? "" : " [uninitialized]";
35
+ console.log(
36
+ [
37
+ `node ${paired.nodeId}:${marker}`,
38
+ ` registered=${icd.registered}`,
39
+ ` available=${icd.available}`,
40
+ ` awake=${awake}`,
41
+ ` supportsLit=${supportsLit}`,
42
+ ` operatingMode=${operatingModeLabel}`,
43
+ ` activeModeThreshold(ms)=${mgmt?.activeModeThreshold ?? "n/a"}`,
44
+ ` idleModeDuration(s)=${mgmt?.idleModeDuration ?? "n/a"}`,
45
+ ` lastCheckIn=${icd.lastCheckInReceivedAt ?? "never"}`,
46
+ ` counterStart=${icd.counterStart ?? "n/a"} lastOffset=${icd.lastOffset ?? "n/a"}`,
47
+ ].join("\n"),
48
+ );
49
+ }
50
+
51
+ /** The reserved node-id token that targets every commissioned node. */
52
+ const ALL_NODES = "all";
53
+
54
+ function selectsAll(nodeIdStr: string) {
55
+ return nodeIdStr.toLowerCase() === ALL_NODES;
56
+ }
57
+
58
+ /** Resolve a node-id argument to concrete ids: `all` expands to every commissioned node, otherwise a single id. */
59
+ async function targetNodeIds(theNode: MatterNode, nodeIdStr: string): Promise<NodeId[]> {
60
+ await theNode.start();
61
+ return selectsAll(nodeIdStr) ? theNode.controller.getCommissionedNodes() : [NodeId(BigInt(nodeIdStr))];
62
+ }
63
+
64
+ /**
65
+ * Run `action` for each targeted node. A single explicit id surfaces its error to the caller; `all` is best-effort,
66
+ * reporting per-node failures and continuing so one unreachable peer does not abort the rest.
67
+ */
68
+ async function eachNode(theNode: MatterNode, nodeIdStr: string, action: (nodeId: NodeId) => Promise<void>) {
69
+ const all = selectsAll(nodeIdStr);
70
+ const nodeIds = await targetNodeIds(theNode, nodeIdStr);
71
+ if (nodeIds.length === 0) {
72
+ console.log("No commissioned nodes.");
73
+ return;
74
+ }
75
+ for (const nodeId of nodeIds) {
76
+ try {
77
+ await action(nodeId);
78
+ } catch (e) {
79
+ if (!all) {
80
+ throw e;
81
+ }
82
+ console.log(`node ${nodeId}: ${e instanceof Error ? e.message : String(e)}`);
83
+ }
84
+ }
85
+ }
86
+
87
+ async function pairedNodeFor(theNode: MatterNode, nodeId: NodeId) {
88
+ const paired = (await theNode.connectAndGetNodes(String(nodeId)))[0];
89
+ if (paired === undefined) {
90
+ throw new Error(`Node ${nodeId} not found / not connected`);
91
+ }
92
+ if (!paired.node.behaviors.has(IcdClient)) {
93
+ throw new Error(`Node ${nodeId} is not an ICD device (no IcdManagement cluster)`);
94
+ }
95
+ return paired;
96
+ }
97
+
98
+ async function clientNodeFor(theNode: MatterNode, nodeId: NodeId) {
99
+ return (await pairedNodeFor(theNode, nodeId)).node;
100
+ }
101
+
102
+ function stopWatch(nodeIdStr: string) {
103
+ if (selectsAll(nodeIdStr)) {
104
+ for (const observers of watchers.values()) {
105
+ observers.close();
106
+ }
107
+ watchers.clear();
108
+ console.log("Stopped watching all nodes");
109
+ return;
110
+ }
111
+ // Normalize through NodeId so the key matches startWatch's regardless of the id's textual form (e.g. 0x2f vs 47).
112
+ const key = String(NodeId(BigInt(nodeIdStr)));
113
+ watchers.get(key)?.close();
114
+ watchers.delete(key);
115
+ console.log(`Stopped watching node ${nodeIdStr}`);
116
+ }
117
+
118
+ async function startWatch(theNode: MatterNode, nodeId: NodeId) {
119
+ const key = String(nodeId);
120
+ watchers.get(key)?.close();
121
+ watchers.delete(key);
122
+
123
+ const paired = await pairedNodeFor(theNode, nodeId);
124
+ const clientNode = paired.node;
125
+ const observers = new ObserverGroup();
126
+ const stamp = (msg: string) => console.log(`[icd ${nodeId}] ${msg}`);
127
+ // Event emitters discard emit()'s promise, so a rejection from this async read must not escape.
128
+ const wakefulnessSuffix = async () => {
129
+ try {
130
+ const { nextCheckIn, awake } = await clientNode.act(agent => {
131
+ const icd = agent.get(IcdClient);
132
+ return { nextCheckIn: icd.nextExpectedCheckin, awake: icd.awake };
133
+ });
134
+ return `nextCheckIn=${nextCheckIn} awake=${awake}`;
135
+ } catch (e) {
136
+ return `wakefulness read failed: ${e instanceof Error ? e.message : String(e)}`;
137
+ }
138
+ };
139
+ const events = clientNode.eventsOf(IcdClient);
140
+ observers.on(events.registered, () => stamp("registered"));
141
+ observers.on(events.unregistered, () => stamp("unregistered"));
142
+ observers.on(events.checkedIn, async ({ counter, activeModeThreshold }) =>
143
+ stamp(`check-in counter=${counter} SAT(ms)=${activeModeThreshold} ${await wakefulnessSuffix()}`),
144
+ );
145
+ observers.on(events.checkInMissed, async () => stamp(`check-in MISSED ${await wakefulnessSuffix()}`));
146
+ observers.on(events.keyRefreshed, () => stamp("key refreshed"));
147
+ observers.on(events.available$Changed, (value: boolean) => stamp(`available=${value}`));
148
+ observers.on(paired.events.stateChanged, state => stamp(`connection=${NodeStates[state] ?? state}`));
149
+ watchers.set(key, observers);
150
+ // Drop the watcher when the node goes away so it doesn't leak in the map.
151
+ clientNode.lifecycle.destroyed.once(() => {
152
+ watchers.get(key)?.close();
153
+ watchers.delete(key);
154
+ });
155
+ console.log(`Watching node ${nodeId} (run \`icd watch ${nodeId} off\` to stop)`);
156
+ }
157
+
158
+ export default function commands(theNode: MatterNode) {
159
+ return {
160
+ command: "icd",
161
+ describe: "Controller-side ICD (Intermittently Connected Device) operations",
162
+ builder: (yargs: Argv) =>
163
+ yargs
164
+ .command({
165
+ command: "register <node-id>",
166
+ describe: "Register this controller as a Check-In client on the peer ('all' for every node)",
167
+ builder: (y: Argv) =>
168
+ y
169
+ .positional("node-id", {
170
+ describe: "node id, or 'all'",
171
+ type: "string",
172
+ demandOption: true,
173
+ })
174
+ .option("subject", { describe: "monitored subject id", type: "string" })
175
+ .option("type", {
176
+ describe: "client type",
177
+ choices: ["permanent", "ephemeral"] as const,
178
+ default: "permanent" as const,
179
+ })
180
+ .option("allow-multi-admin", {
181
+ describe: "allow registering alongside other-vendor admins",
182
+ type: "boolean",
183
+ default: false,
184
+ })
185
+ .option("ignore-vendor", {
186
+ describe: "vendor id(s) to treat as trusted",
187
+ type: "array",
188
+ }),
189
+ handler: async (argv: any) => {
190
+ const options = {
191
+ monitoredSubject:
192
+ argv.subject === undefined ? undefined : SubjectId(NodeId(BigInt(argv.subject))),
193
+ clientType:
194
+ argv.type === "ephemeral"
195
+ ? IcdManagement.ClientType.Ephemeral
196
+ : IcdManagement.ClientType.Permanent,
197
+ allowMultiAdmin: argv.allowMultiAdmin,
198
+ ignoredVendors: argv.ignoreVendor?.map((v: string | number) => VendorId(Number(v))),
199
+ };
200
+ await eachNode(theNode, argv.nodeId, async nodeId => {
201
+ const clientNode = await clientNodeFor(theNode, nodeId);
202
+ try {
203
+ await clientNode.act(agent => agent.get(IcdClient).register(options));
204
+ console.log(`Registered as Check-In client on node ${nodeId}`);
205
+ } catch (e) {
206
+ if (e instanceof IcdMultiAdminError) {
207
+ console.log(
208
+ `node ${nodeId}: refused — peer has other-vendor admins (${e.adminVendorIds.join(", ")}). Re-run with --allow-multi-admin to proceed.`,
209
+ );
210
+ return;
211
+ }
212
+ throw e;
213
+ }
214
+ });
215
+ },
216
+ })
217
+ .command({
218
+ command: "unregister <node-id>",
219
+ describe: "Remove this controller's Check-In registration from the peer ('all' for every node)",
220
+ builder: (y: Argv) =>
221
+ y
222
+ .positional("node-id", {
223
+ describe: "node id, or 'all'",
224
+ type: "string",
225
+ demandOption: true,
226
+ })
227
+ .option("force", {
228
+ describe:
229
+ "forget the registration locally without contacting the peer (escape hatch for an unreachable LIT ICD)",
230
+ type: "boolean",
231
+ default: false,
232
+ }),
233
+ handler: async (argv: any) => {
234
+ await eachNode(theNode, argv.nodeId, async nodeId => {
235
+ if (argv.force) {
236
+ // A registered-but-unreachable LIT peer parks every connecting/peer-I/O path on its
237
+ // never-coming Check-In; reach it via the non-connecting accessor and forget() locally.
238
+ const clientNode = (await theNode.controller.getNode(nodeId)).node;
239
+ if (!clientNode.behaviors.has(IcdClient)) {
240
+ throw new Error(`Node ${nodeId} is not an ICD device (no IcdManagement cluster)`);
241
+ }
242
+ await clientNode.act(agent => agent.get(IcdClient).forget());
243
+ console.log(
244
+ `Forgot Check-In registration for node ${nodeId} locally (peer not contacted)`,
245
+ );
246
+ return;
247
+ }
248
+ const clientNode = await clientNodeFor(theNode, nodeId);
249
+ await clientNode.act(agent => agent.get(IcdClient).unregister());
250
+ console.log(`Unregistered Check-In client on node ${nodeId}`);
251
+ });
252
+ },
253
+ })
254
+ .command({
255
+ command: "stay-active <node-id> [duration-ms]",
256
+ describe:
257
+ "Ask the peer to stay in Active mode; prints the promised duration ('all' for every node)",
258
+ builder: (y: Argv) =>
259
+ y
260
+ .positional("node-id", {
261
+ describe: "node id, or 'all'",
262
+ type: "string",
263
+ demandOption: true,
264
+ })
265
+ .positional("duration-ms", {
266
+ describe: "requested active duration (ms)",
267
+ type: "number",
268
+ default: 30000,
269
+ }),
270
+ handler: async (argv: any) => {
271
+ await eachNode(theNode, argv.nodeId, async nodeId => {
272
+ const clientNode = await clientNodeFor(theNode, nodeId);
273
+ const promised = await clientNode.act(agent =>
274
+ agent.get(IcdClient).stayActive(Millis(argv.durationMs)),
275
+ );
276
+ console.log(`Node ${nodeId} promised active for ${Duration.format(promised)}`);
277
+ });
278
+ },
279
+ })
280
+ .command({
281
+ command: "status <node-id>",
282
+ describe: "Show ICD state for a peer ('all' for every commissioned node)",
283
+ builder: (y: Argv) =>
284
+ y.positional("node-id", { describe: "node id, or 'all'", type: "string", demandOption: true }),
285
+ handler: async (argv: any) => {
286
+ // getNode() never awaits remote init, unlike connectAndGetNodes(), so a peer stuck mid-read can't hang this command.
287
+ const nodeIds = await targetNodeIds(theNode, argv.nodeId);
288
+ if (nodeIds.length === 0) {
289
+ console.log("No commissioned nodes.");
290
+ return;
291
+ }
292
+ // Diagnostic command: report an unreachable node inline rather than aborting, even for a single id.
293
+ for (const nodeId of nodeIds) {
294
+ try {
295
+ await printStatus(await theNode.controller.getNode(nodeId));
296
+ } catch (e) {
297
+ console.log(
298
+ `node ${nodeId}: unavailable (${e instanceof Error ? e.message : String(e)})`,
299
+ );
300
+ }
301
+ }
302
+ },
303
+ })
304
+ .command({
305
+ command: "watch <node-id> [state]",
306
+ describe:
307
+ "Stream ICD events for a peer live ('all' for every node; state: on|off, default on), including awake, nextCheckIn and connection state",
308
+ builder: (y: Argv) =>
309
+ y
310
+ .positional("node-id", {
311
+ describe: "node id, or 'all'",
312
+ type: "string",
313
+ demandOption: true,
314
+ })
315
+ .positional("state", {
316
+ describe: "on|off",
317
+ choices: ["on", "off"] as const,
318
+ default: "on" as const,
319
+ }),
320
+ handler: async (argv: any) => {
321
+ if (argv.state === "off") {
322
+ stopWatch(argv.nodeId);
323
+ return;
324
+ }
325
+ await eachNode(theNode, argv.nodeId, nodeId => startWatch(theNode, nodeId));
326
+ },
327
+ })
328
+ .demandCommand(1, "You must specify an icd subcommand"),
329
+ handler: async (argv: any) => {
330
+ argv.unhandled = true;
331
+ },
332
+ };
333
+ }
@@ -8,50 +8,9 @@ import { capitalize, ChannelType, decamelize, Diagnostic, ServerAddress } from "
8
8
  import { ClientNode, CommissioningClient, NetworkClient, SoftwareUpdateManager } from "@matter/node";
9
9
  import { PeerAddress, PeerSet } from "@matter/protocol";
10
10
  import { FabricIndex, NodeId, VendorId } from "@matter/types";
11
- import { CommissioningControllerNodeOptions, NodeStateInformation } from "@project-chip/matter.js/device";
11
+ import { NodeStateInformation } from "@project-chip/matter.js/device";
12
12
  import type { Argv } from "yargs";
13
- import { MatterNode } from "../MatterNode.js";
14
-
15
- export function createDiagnosticCallbacks(): Partial<CommissioningControllerNodeOptions> {
16
- return {
17
- attributeChangedCallback: (peerNodeId, { path: { nodeId, clusterId, endpointId, attributeName }, value }) =>
18
- console.log(
19
- `attributeChangedCallback ${peerNodeId}: Attribute ${nodeId}/${endpointId}/${clusterId}/${attributeName} changed to ${Diagnostic.json(
20
- value,
21
- )}`,
22
- ),
23
- eventTriggeredCallback: (peerNodeId, { path: { nodeId, clusterId, endpointId, eventName }, events }) =>
24
- console.log(
25
- `eventTriggeredCallback ${peerNodeId}: Event ${nodeId}/${endpointId}/${clusterId}/${eventName} triggered with ${Diagnostic.json(
26
- events,
27
- )}`,
28
- ),
29
- stateInformationCallback: (peerNodeId, info) => {
30
- switch (info) {
31
- case NodeStateInformation.Connected:
32
- console.log(`stateInformationCallback Node ${peerNodeId} connected`);
33
- break;
34
- case NodeStateInformation.Disconnected:
35
- console.log(`stateInformationCallback Node ${peerNodeId} disconnected`);
36
- break;
37
- case NodeStateInformation.Reconnecting:
38
- console.log(`stateInformationCallback Node ${peerNodeId} reconnecting`);
39
- break;
40
- case NodeStateInformation.WaitingForDeviceDiscovery:
41
- console.log(
42
- `stateInformationCallback Node ${peerNodeId} waiting that device gets discovered again`,
43
- );
44
- break;
45
- case NodeStateInformation.StructureChanged:
46
- console.log(`stateInformationCallback Node ${peerNodeId} structure changed`);
47
- break;
48
- case NodeStateInformation.Decommissioned:
49
- console.log(`stateInformationCallback Node ${peerNodeId} decommissioned`);
50
- break;
51
- }
52
- },
53
- };
54
- }
13
+ import { createDiagnosticCallbacks, MatterNode } from "../MatterNode.js";
55
14
 
56
15
  /** Parse a `udp://host:port` / `tcp://host:port` URL (IPv6 host in brackets) into a {@link ServerAddress}. */
57
16
  function parseFallbackAddress(input: string): ServerAddress {
@@ -94,7 +53,6 @@ export default function commands(theNode: MatterNode) {
94
53
  describe: "Manage nodes",
95
54
  builder: (yargs: Argv) =>
96
55
  yargs
97
- // Pair
98
56
  .command(
99
57
  ["*", "list [status]"],
100
58
  "List all commissioned nodes",