@matter/nodejs-shell 0.17.0-alpha.0-20260507-059f7763b → 0.17.0-alpha.0-20260508-29ff5ae9e
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/package.json +9 -9
- package/src/MatterNode.ts +13 -12
- package/src/shell/cmd_cert.ts +34 -0
- package/src/shell/cmd_commission.ts +24 -1
- package/src/shell/cmd_config.ts +140 -0
- package/src/shell/cmd_nodes.ts +1 -3
- package/dist/esm/MatterNode.js +0 -189
- package/dist/esm/MatterNode.js.map +0 -6
- package/dist/esm/app.js +0 -167
- package/dist/esm/app.js.map +0 -6
- package/dist/esm/package.json +0 -3
- package/dist/esm/shell/Shell.js +0 -201
- package/dist/esm/shell/Shell.js.map +0 -6
- package/dist/esm/shell/cmd_cert.js +0 -134
- package/dist/esm/shell/cmd_cert.js.map +0 -6
- package/dist/esm/shell/cmd_cluster-attributes.js +0 -295
- package/dist/esm/shell/cmd_cluster-attributes.js.map +0 -6
- package/dist/esm/shell/cmd_cluster-commands.js +0 -137
- package/dist/esm/shell/cmd_cluster-commands.js.map +0 -6
- package/dist/esm/shell/cmd_cluster-events.js +0 -77
- package/dist/esm/shell/cmd_cluster-events.js.map +0 -6
- package/dist/esm/shell/cmd_commission.js +0 -269
- package/dist/esm/shell/cmd_commission.js.map +0 -6
- package/dist/esm/shell/cmd_config.js +0 -462
- package/dist/esm/shell/cmd_config.js.map +0 -6
- package/dist/esm/shell/cmd_dcl.js +0 -178
- package/dist/esm/shell/cmd_dcl.js.map +0 -6
- package/dist/esm/shell/cmd_discover.js +0 -115
- package/dist/esm/shell/cmd_discover.js.map +0 -6
- package/dist/esm/shell/cmd_identify.js +0 -46
- package/dist/esm/shell/cmd_identify.js.map +0 -6
- package/dist/esm/shell/cmd_nodes.js +0 -688
- package/dist/esm/shell/cmd_nodes.js.map +0 -6
- package/dist/esm/shell/cmd_ota.js +0 -493
- package/dist/esm/shell/cmd_ota.js.map +0 -6
- package/dist/esm/shell/cmd_session.js +0 -23
- package/dist/esm/shell/cmd_session.js.map +0 -6
- package/dist/esm/shell/cmd_subscribe.js +0 -39
- package/dist/esm/shell/cmd_subscribe.js.map +0 -6
- package/dist/esm/shell/cmd_tlv.js +0 -167
- package/dist/esm/shell/cmd_tlv.js.map +0 -6
- package/dist/esm/shell/cmd_vendor.js +0 -135
- package/dist/esm/shell/cmd_vendor.js.map +0 -6
- package/dist/esm/util/CommandlineParser.js +0 -87
- package/dist/esm/util/CommandlineParser.js.map +0 -6
- package/dist/esm/util/Json.js +0 -45
- package/dist/esm/util/Json.js.map +0 -6
- package/dist/esm/web_plumbing.js +0 -140
- package/dist/esm/web_plumbing.js.map +0 -6
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2026 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { Diagnostic, MatterError } from "@matter/general";
|
|
7
|
-
import { DiscoveryCapabilitiesSchema, ManualPairingCodeCodec, NodeId, QrCode, QrPairingCodeCodec } from "@matter/types";
|
|
8
|
-
import { BasicInformationCluster, DescriptorCluster, GeneralCommissioning } from "@matter/types/clusters";
|
|
9
|
-
import { createDiagnosticCallbacks } from "./cmd_nodes.js";
|
|
10
|
-
function commands(theNode) {
|
|
11
|
-
return {
|
|
12
|
-
command: "commission",
|
|
13
|
-
describe: "Handle device commissioning",
|
|
14
|
-
builder: (yargs) => yargs.command("pair", "Pair with a matter device", (yargs2) => {
|
|
15
|
-
return yargs2.command(
|
|
16
|
-
"* [node-id] [ip:[port]]",
|
|
17
|
-
"Commission a matter device",
|
|
18
|
-
(yargs3) => {
|
|
19
|
-
return yargs3.positional("node-id", {
|
|
20
|
-
describe: "node id",
|
|
21
|
-
default: void 0,
|
|
22
|
-
type: "string"
|
|
23
|
-
}).positional("ip", {
|
|
24
|
-
describe: "ip address",
|
|
25
|
-
default: void 0,
|
|
26
|
-
type: "string"
|
|
27
|
-
}).positional("port", {
|
|
28
|
-
describe: "ip port",
|
|
29
|
-
default: void 0,
|
|
30
|
-
type: "number"
|
|
31
|
-
});
|
|
32
|
-
},
|
|
33
|
-
async (argv) => {
|
|
34
|
-
const {
|
|
35
|
-
pairingCode,
|
|
36
|
-
qrCode,
|
|
37
|
-
nodeId: nodeIdStr,
|
|
38
|
-
ipPort,
|
|
39
|
-
ip,
|
|
40
|
-
ble = false,
|
|
41
|
-
instanceId
|
|
42
|
-
} = argv;
|
|
43
|
-
let { setupPinCode, discriminator, shortDiscriminator, qrCodeIndex } = argv;
|
|
44
|
-
if (typeof pairingCode === "string" && pairingCode.length > 0) {
|
|
45
|
-
const { shortDiscriminator: pairingCodeShortDiscriminator, passcode } = ManualPairingCodeCodec.decode(pairingCode);
|
|
46
|
-
shortDiscriminator = pairingCodeShortDiscriminator;
|
|
47
|
-
setupPinCode = passcode;
|
|
48
|
-
discriminator = void 0;
|
|
49
|
-
} else if (typeof qrCode === "string" && qrCode.length > 0) {
|
|
50
|
-
const pairingCodeCodec = QrPairingCodeCodec.decode(qrCode);
|
|
51
|
-
if (typeof qrCodeIndex !== "number") {
|
|
52
|
-
if (!Number.isFinite(qrCodeIndex)) {
|
|
53
|
-
console.log("Invalid QR-Code index provided. Using first.");
|
|
54
|
-
qrCodeIndex = 1;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
let qrIndex = Number(qrCodeIndex);
|
|
58
|
-
if (pairingCodeCodec.length > 1) {
|
|
59
|
-
if (qrIndex < 1 || qrIndex > pairingCodeCodec.length) {
|
|
60
|
-
console.log(
|
|
61
|
-
`Multiple (${pairingCodeCodec.length}) pairing codes found in the provided QR-Code. Using first.`
|
|
62
|
-
);
|
|
63
|
-
qrIndex = 1;
|
|
64
|
-
} else {
|
|
65
|
-
console.log(
|
|
66
|
-
`Multiple (${pairingCodeCodec.length}) pairing codes found in the provided QR-Code. Using index ${qrIndex}`
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
} else {
|
|
70
|
-
qrIndex = 1;
|
|
71
|
-
}
|
|
72
|
-
const qrResult = pairingCodeCodec[qrIndex - 1];
|
|
73
|
-
discriminator = qrResult.discriminator;
|
|
74
|
-
shortDiscriminator = void 0;
|
|
75
|
-
setupPinCode = qrResult.passcode;
|
|
76
|
-
if (DiscoveryCapabilitiesSchema.decode(qrResult.discoveryCapabilities).ble && !ble) {
|
|
77
|
-
console.log(
|
|
78
|
-
"QR-Code contains BLE discovery capabilities, but BLE is disabled. Please enable if device is not already on network."
|
|
79
|
-
);
|
|
80
|
-
}
|
|
81
|
-
} else if (discriminator === void 0 && shortDiscriminator === void 0) {
|
|
82
|
-
discriminator = 3840;
|
|
83
|
-
}
|
|
84
|
-
const nodeId = nodeIdStr !== void 0 ? NodeId(BigInt(nodeIdStr)) : void 0;
|
|
85
|
-
await theNode.start();
|
|
86
|
-
if (theNode.commissioningController === void 0) {
|
|
87
|
-
throw new Error("CommissioningController not initialized");
|
|
88
|
-
}
|
|
89
|
-
const options = {
|
|
90
|
-
discovery: {
|
|
91
|
-
knownAddress: ip !== void 0 && ipPort !== void 0 ? { ip, port: ipPort, type: "udp" } : void 0,
|
|
92
|
-
identifierData: instanceId !== void 0 ? { instanceId } : discriminator !== void 0 ? { longDiscriminator: discriminator } : shortDiscriminator !== void 0 ? { shortDiscriminator } : {},
|
|
93
|
-
discoveryCapabilities: {
|
|
94
|
-
ble,
|
|
95
|
-
onIpNetwork: true
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
passcode: setupPinCode,
|
|
99
|
-
...createDiagnosticCallbacks()
|
|
100
|
-
};
|
|
101
|
-
options.commissioning = {
|
|
102
|
-
nodeId: nodeId !== void 0 ? NodeId(nodeId) : void 0,
|
|
103
|
-
regulatoryLocation: GeneralCommissioning.RegulatoryLocationType.Outdoor,
|
|
104
|
-
// Set to the most restrictive if relevant
|
|
105
|
-
regulatoryCountryCode: "XX"
|
|
106
|
-
};
|
|
107
|
-
console.log(Diagnostic.json(options));
|
|
108
|
-
if (theNode.Store.has("WiFiSsid") && theNode.Store.has("WiFiPassword")) {
|
|
109
|
-
options.commissioning.wifiNetwork = {
|
|
110
|
-
wifiSsid: await theNode.Store.get("WiFiSsid", ""),
|
|
111
|
-
wifiCredentials: await theNode.Store.get("WiFiPassword", "")
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
if (theNode.Store.has("ThreadName") && theNode.Store.has("ThreadOperationalDataset")) {
|
|
115
|
-
options.commissioning.threadNetwork = {
|
|
116
|
-
networkName: await theNode.Store.get("ThreadName", ""),
|
|
117
|
-
operationalDataset: await theNode.Store.get(
|
|
118
|
-
"ThreadOperationalDataset",
|
|
119
|
-
""
|
|
120
|
-
)
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
const commissionedNodeId = await theNode.commissioningController.commissionNode(options);
|
|
124
|
-
console.log("Commissioned Node:", commissionedNodeId);
|
|
125
|
-
const node = theNode.commissioningController.getPairedNode(commissionedNodeId);
|
|
126
|
-
if (node === void 0) {
|
|
127
|
-
throw new MatterError("Node not found after commissioning.");
|
|
128
|
-
}
|
|
129
|
-
const descriptor = node.getRootClusterClient(DescriptorCluster);
|
|
130
|
-
if (descriptor !== void 0) {
|
|
131
|
-
console.log(await descriptor.attributes.deviceTypeList.get());
|
|
132
|
-
console.log(await descriptor.getServerListAttribute());
|
|
133
|
-
} else {
|
|
134
|
-
console.log("No Descriptor Cluster found. This should never happen!");
|
|
135
|
-
}
|
|
136
|
-
const info = node.getRootClusterClient(BasicInformationCluster);
|
|
137
|
-
if (info !== void 0) {
|
|
138
|
-
console.log(await info.getProductNameAttribute());
|
|
139
|
-
} else {
|
|
140
|
-
console.log("No BasicInformation Cluster found. This should never happen!");
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
).options({
|
|
144
|
-
pairingCode: {
|
|
145
|
-
describe: "pairing code",
|
|
146
|
-
default: void 0,
|
|
147
|
-
type: "string"
|
|
148
|
-
},
|
|
149
|
-
qrCode: {
|
|
150
|
-
describe: "QR code string (MT:...)",
|
|
151
|
-
default: void 0,
|
|
152
|
-
type: "string"
|
|
153
|
-
},
|
|
154
|
-
qrCodeIndex: {
|
|
155
|
-
describe: "Index of QR code entry if multiple (1..n)",
|
|
156
|
-
default: 1,
|
|
157
|
-
type: "number"
|
|
158
|
-
},
|
|
159
|
-
setupPinCode: {
|
|
160
|
-
describe: "setup pin code",
|
|
161
|
-
default: 20202021,
|
|
162
|
-
type: "number"
|
|
163
|
-
},
|
|
164
|
-
instanceId: {
|
|
165
|
-
alias: "i",
|
|
166
|
-
describe: "instance id",
|
|
167
|
-
type: "string"
|
|
168
|
-
},
|
|
169
|
-
discriminator: {
|
|
170
|
-
alias: "d",
|
|
171
|
-
description: "Long discriminator",
|
|
172
|
-
type: "number"
|
|
173
|
-
},
|
|
174
|
-
shortDiscriminator: {
|
|
175
|
-
alias: "s",
|
|
176
|
-
description: "Short discriminator",
|
|
177
|
-
type: "number"
|
|
178
|
-
},
|
|
179
|
-
ble: {
|
|
180
|
-
alias: "b",
|
|
181
|
-
description: "Also discover over BLE",
|
|
182
|
-
type: "boolean",
|
|
183
|
-
default: false
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
}).command(
|
|
187
|
-
"open-basic-window <node-id> [timeout]",
|
|
188
|
-
"Open a basic commissioning window",
|
|
189
|
-
(yargs2) => {
|
|
190
|
-
return yargs2.positional("node-id", {
|
|
191
|
-
describe: "node id",
|
|
192
|
-
type: "string",
|
|
193
|
-
demandOption: true
|
|
194
|
-
}).positional("timeout", {
|
|
195
|
-
describe: "timeout in seconds",
|
|
196
|
-
type: "number",
|
|
197
|
-
default: 900
|
|
198
|
-
});
|
|
199
|
-
},
|
|
200
|
-
async (argv) => {
|
|
201
|
-
const { nodeId, timeout } = argv;
|
|
202
|
-
await theNode.start();
|
|
203
|
-
const node = (await theNode.connectAndGetNodes(nodeId, { autoSubscribe: false }))[0];
|
|
204
|
-
await node.openBasicCommissioningWindow(timeout);
|
|
205
|
-
console.log(`Basic Commissioning Window for node ${nodeId} opened`);
|
|
206
|
-
}
|
|
207
|
-
).command(
|
|
208
|
-
"open-enhanced-window <node-id> [timeout]",
|
|
209
|
-
"Open a enhanced commissioning window",
|
|
210
|
-
(yargs2) => {
|
|
211
|
-
return yargs2.positional("node-id", {
|
|
212
|
-
describe: "node id",
|
|
213
|
-
type: "string",
|
|
214
|
-
demandOption: true
|
|
215
|
-
}).positional("timeout", {
|
|
216
|
-
describe: "timeout in seconds",
|
|
217
|
-
type: "number",
|
|
218
|
-
default: 900
|
|
219
|
-
});
|
|
220
|
-
},
|
|
221
|
-
async (argv) => {
|
|
222
|
-
await theNode.start();
|
|
223
|
-
const { nodeId, timeout } = argv;
|
|
224
|
-
const node = (await theNode.connectAndGetNodes(nodeId, { autoSubscribe: false }))[0];
|
|
225
|
-
const data = await node.openEnhancedCommissioningWindow(timeout);
|
|
226
|
-
console.log(`Enhanced Commissioning Window for node ${nodeId} opened`);
|
|
227
|
-
const { qrPairingCode, manualPairingCode } = data;
|
|
228
|
-
console.log(QrCode.get(qrPairingCode));
|
|
229
|
-
console.log(
|
|
230
|
-
`QR Code URL: https://project-chip.github.io/connectedhomeip/qrcode.html?data=${qrPairingCode}`
|
|
231
|
-
);
|
|
232
|
-
console.log(`Manual pairing code: ${manualPairingCode}`);
|
|
233
|
-
}
|
|
234
|
-
).command(
|
|
235
|
-
"unpair <node-id>",
|
|
236
|
-
"Unpair/Decommission a node",
|
|
237
|
-
(yargs2) => {
|
|
238
|
-
return yargs2.positional("node-id", {
|
|
239
|
-
describe: "node id",
|
|
240
|
-
type: "string",
|
|
241
|
-
demandOption: true
|
|
242
|
-
}).options({
|
|
243
|
-
force: {
|
|
244
|
-
describe: "Force unpairing even if node is not online",
|
|
245
|
-
type: "boolean",
|
|
246
|
-
default: false
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
},
|
|
250
|
-
async (argv) => {
|
|
251
|
-
await theNode.start();
|
|
252
|
-
const { nodeId, force } = argv;
|
|
253
|
-
if (force) {
|
|
254
|
-
await theNode.controller.removeNode(NodeId(BigInt(nodeId)), !force);
|
|
255
|
-
} else {
|
|
256
|
-
const node = (await theNode.connectAndGetNodes(nodeId, { autoSubscribe: false }))[0];
|
|
257
|
-
await node.decommission();
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
),
|
|
261
|
-
handler: async (argv) => {
|
|
262
|
-
argv.unhandled = true;
|
|
263
|
-
}
|
|
264
|
-
};
|
|
265
|
-
}
|
|
266
|
-
export {
|
|
267
|
-
commands as default
|
|
268
|
-
};
|
|
269
|
-
//# sourceMappingURL=cmd_commission.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/shell/cmd_commission.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["yargs"]
|
|
6
|
-
}
|