@matter/examples 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.
|
@@ -85,6 +85,7 @@ class ControllerNode {
|
|
|
85
85
|
id: uniqueId
|
|
86
86
|
},
|
|
87
87
|
autoConnect: false,
|
|
88
|
+
// Do not auto connect to the commissioned nodes
|
|
88
89
|
adminFabricLabel
|
|
89
90
|
});
|
|
90
91
|
await commissioningController.start();
|
|
@@ -111,7 +112,9 @@ class ControllerNode {
|
|
|
111
112
|
if (!nodes.includes(nodeId)) {
|
|
112
113
|
throw new Error(`Node ${nodeId} not found in commissioned nodes`);
|
|
113
114
|
}
|
|
114
|
-
const
|
|
115
|
+
const nodeDetails = commissioningController.getCommissionedNodesDetails();
|
|
116
|
+
console.log("Commissioned nodes details:", Logger.toJSON(nodeDetails.find((node2) => node2.nodeId === nodeId)));
|
|
117
|
+
const node = await commissioningController.getNode(nodeId);
|
|
115
118
|
node.events.attributeChanged.on(
|
|
116
119
|
({ path: { nodeId: nodeId2, clusterId, endpointId, attributeName }, value }) => console.log(
|
|
117
120
|
`attributeChangedCallback ${nodeId2}: Attribute ${endpointId}/${clusterId}/${attributeName} changed to ${Logger.toJSON(
|
|
@@ -145,7 +148,12 @@ class ControllerNode {
|
|
|
145
148
|
node.events.structureChanged.on(() => {
|
|
146
149
|
console.log(`Node ${nodeId} structure changed`);
|
|
147
150
|
});
|
|
148
|
-
|
|
151
|
+
if (!node.isConnected) {
|
|
152
|
+
node.connect();
|
|
153
|
+
}
|
|
154
|
+
if (!node.initialized) {
|
|
155
|
+
await node.events.initialized;
|
|
156
|
+
}
|
|
149
157
|
node.logStructure();
|
|
150
158
|
const descriptor = node.getRootClusterClient(DescriptorCluster);
|
|
151
159
|
if (descriptor !== void 0) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/controller/ControllerNode.ts"],
|
|
4
|
-
"mappings": ";AACA;AAAA;AAAA;AAAA;AAAA;AAYA,SAAS,aAAa,QAAQ,WAAW,gBAAgB,YAAY;AACrE,SAAS,yBAAyB,mBAAmB,sBAAsB,aAAa;AACxF,SAAS,WAAiE;AAC1E,SAAS,wBAAwB,cAAc;AAC/C,SAAS,iBAAiB;AAC1B,SAAS,+BAAyD;AAClE,SAAS,kBAAkB;AAE3B,MAAM,SAAS,OAAO,IAAI,YAAY;AAEtC,MAAM,cAAc,YAAY;AAEhC,IAAI,YAAY,KAAK,IAAI,KAAK,GAAG;AAE7B,MAAI,MAAM;AAAA,IACN,MACI,IAAI,UAAU;AAAA,MACV,OAAO,YAAY,KAAK,OAAO,YAAY;AAAA,IAC/C,CAAC;AAAA,EACT;AACJ;AAEA,MAAM,iBAAiB,YAAY,IAAI,cAAc;AAErD,QAAQ,IAAI,qBAAqB,eAAe,QAAQ,cAAc;AACtE,OAAO;AAAA,EACH;AACJ;AAEA,MAAM,eAAe;AAAA,EACjB,MAAM,QAAQ;AACV,WAAO,KAAK,gCAAgC;AAa5C,UAAM,qBAAqB,MAAM,eAAe,KAAK,YAAY,GAAG,cAAc,MAAM;AACxF,UAAM,KAAM,MAAM,kBAAkB,IAAI,IAAI,IACtC,MAAM,kBAAkB,IAAY,IAAI,IACxC,YAAY,KAAK,OAAO,IAAI;AAClC,UAAM,OAAQ,MAAM,kBAAkB,IAAI,MAAM,IAC1C,MAAM,kBAAkB,IAAY,MAAM,IAC1C,YAAY,KAAK,OAAO,MAAM;AACpC,UAAM,WAAY,MAAM,kBAAkB,IAAI,UAAU,IAClD,MAAM,kBAAkB,IAAY,UAAU,IAC7C,YAAY,KAAK,OAAO,UAAU,KAAK,KAAK,MAAM,EAAE,SAAS;AACpE,UAAM,kBAAkB,IAAI,YAAY,QAAQ;AAChD,UAAM,mBAAoB,MAAM,kBAAkB,IAAI,aAAa,IAC7D,MAAM,kBAAkB,IAAY,aAAa,IAChD,YAAY,KAAK,OAAO,aAAa,KAAK;AACjD,UAAM,kBAAkB,IAAI,eAAe,gBAAgB;AAE3D,UAAM,cAAc,YAAY,KAAK,OAAO,aAAa;AACzD,QAAI,mBAAmB,UAAU;AACjC,QAAI,gBAAgB,QAAW;AAC3B,YAAM,mBAAmB,uBAAuB,OAAO,WAAW;AAClE,2BAAqB,iBAAiB;AACtC,0BAAoB;AACpB,iBAAW,iBAAiB;AAC5B,aAAO,MAAM,qCAAqC,OAAO,OAAO,gBAAgB,CAAC,EAAE;AAAA,IACvF,OAAO;AACH,0BACI,YAAY,KAAK,OAAO,mBAAmB,KAC1C,MAAM,kBAAkB,IAAI,qBAAqB,IAAI;AAC1D,UAAI,oBAAoB,KAAM,OAAM,IAAI,MAAM,4CAA4C;AAC1F,iBAAW,YAAY,KAAK,OAAO,KAAK,KAAM,MAAM,kBAAkB,IAAI,OAAO,QAAQ;AAAA,IAC7F;AACA,QAAK,uBAAuB,UAAa,sBAAsB,UAAc,aAAa,QAAW;AACjG,YAAM,IAAI;AAAA,QACN;AAAA,MACJ;AAAA,IACJ;AAGA,UAAM,uBAA2D;AAAA,MAC7D,oBAAoB,qBAAqB,uBAAuB;AAAA,MAChE,uBAAuB;AAAA,IAC3B;AAEA,QAAI,MAAM;AACV,QAAI,YAAY,KAAK,IAAI,KAAK,GAAG;AAC7B,YAAM;AACN,YAAM,WAAW,YAAY,KAAK,OAAO,eAAe;AACxD,YAAM,kBAAkB,YAAY,KAAK,OAAO,sBAAsB;AACtE,YAAM,oBAAoB,YAAY,KAAK,OAAO,wBAAwB;AAC1E,YAAM,2BAA2B,YAAY,KAAK,OAAO,+BAA+B;AACxF,UAAI,aAAa,UAAa,oBAAoB,QAAW;AACzD,eAAO,KAAK,iDAAiD,QAAQ,EAAE;AACvE,6BAAqB,cAAc;AAAA,UAC/B;AAAA,UACA;AAAA,QACJ;AAAA,MACJ;AACA,UAAI,sBAAsB,UAAa,6BAA6B,QAAW;AAC3E,eAAO,KAAK,mDAAmD,iBAAiB,EAAE;AAClF,6BAAqB,gBAAgB;AAAA,UACjC,aAAa;AAAA,UACb,oBAAoB;AAAA,QACxB;AAAA,MACJ;AAAA,IACJ;
|
|
5
|
-
"names": ["nodeId", "info"]
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["node", "nodeId", "info"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/examples",
|
|
3
|
-
"version": "0.12.4-alpha.0-
|
|
3
|
+
"version": "0.12.4-alpha.0-20250210-ad8edf096",
|
|
4
4
|
"description": "Matter.js examples and reference implementations",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -52,13 +52,13 @@
|
|
|
52
52
|
"matter-controller": "dist/esm/controller/ControllerNode.js"
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
|
-
"@matter/main": "0.12.4-alpha.0-
|
|
56
|
-
"@matter/nodejs": "0.12.4-alpha.0-
|
|
57
|
-
"@matter/tools": "0.12.4-alpha.0-
|
|
55
|
+
"@matter/main": "0.12.4-alpha.0-20250210-ad8edf096",
|
|
56
|
+
"@matter/nodejs": "0.12.4-alpha.0-20250210-ad8edf096",
|
|
57
|
+
"@matter/tools": "0.12.4-alpha.0-20250210-ad8edf096",
|
|
58
58
|
"esbuild": "^0.24.2"
|
|
59
59
|
},
|
|
60
60
|
"optionalDependencies": {
|
|
61
|
-
"@matter/nodejs-ble": "0.12.4-alpha.0-
|
|
61
|
+
"@matter/nodejs-ble": "0.12.4-alpha.0-20250210-ad8edf096"
|
|
62
62
|
},
|
|
63
63
|
"engines": {
|
|
64
64
|
"node": ">=18.0.0"
|
|
@@ -121,38 +121,22 @@ class ControllerNode {
|
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
/**
|
|
125
|
-
* Create Matter Server and Controller Node
|
|
126
|
-
*
|
|
127
|
-
* To allow the device to be announced, found, paired and operated we need a MatterServer instance and add a
|
|
128
|
-
* CommissioningController to it and add the just created device instance to it.
|
|
129
|
-
* The Controller node defines the port where the server listens for the UDP packages of the Matter protocol
|
|
130
|
-
* and initializes deice specific certificates and such.
|
|
131
|
-
*
|
|
132
|
-
* The below logic also adds command handlers for commands of clusters that normally are handled internally
|
|
133
|
-
* like testEventTrigger (General Diagnostic Cluster) that can be implemented with the logic when these commands
|
|
134
|
-
* are called.
|
|
135
|
-
*/
|
|
136
|
-
|
|
124
|
+
/** Create Matter Controller Node and bind it to the Environment. */
|
|
137
125
|
const commissioningController = new CommissioningController({
|
|
138
126
|
environment: {
|
|
139
127
|
environment,
|
|
140
128
|
id: uniqueId,
|
|
141
129
|
},
|
|
142
|
-
autoConnect: false,
|
|
130
|
+
autoConnect: false, // Do not auto connect to the commissioned nodes
|
|
143
131
|
adminFabricLabel,
|
|
144
132
|
});
|
|
145
133
|
|
|
146
|
-
/**
|
|
147
|
-
* Start the Matter Server
|
|
148
|
-
*
|
|
149
|
-
* After everything was plugged together we can start the server. When not delayed announcement is set for the
|
|
150
|
-
* CommissioningServer node then this command also starts the announcement of the device into the network.
|
|
151
|
-
*/
|
|
134
|
+
/** Start the Matter Controller Node */
|
|
152
135
|
await commissioningController.start();
|
|
153
136
|
|
|
137
|
+
// When we do not have a commissioned node we need to commission the device provided by CLI parameters
|
|
154
138
|
if (!commissioningController.isCommissioned()) {
|
|
155
|
-
const options = {
|
|
139
|
+
const options: NodeCommissioningOptions = {
|
|
156
140
|
commissioning: commissioningOptions,
|
|
157
141
|
discovery: {
|
|
158
142
|
knownAddress: ip !== undefined && port !== undefined ? { ip, port, type: "udp" } : undefined,
|
|
@@ -167,16 +151,14 @@ class ControllerNode {
|
|
|
167
151
|
},
|
|
168
152
|
},
|
|
169
153
|
passcode: setupPin,
|
|
170
|
-
}
|
|
154
|
+
};
|
|
171
155
|
logger.info(`Commissioning ... ${Logger.toJSON(options)}`);
|
|
172
156
|
const nodeId = await commissioningController.commissionNode(options);
|
|
173
157
|
|
|
174
158
|
console.log(`Commissioning successfully done with nodeId ${nodeId}`);
|
|
175
159
|
}
|
|
176
160
|
|
|
177
|
-
|
|
178
|
-
* TBD
|
|
179
|
-
*/
|
|
161
|
+
// After commissioning or if we have a commissioned node we can connect to it
|
|
180
162
|
try {
|
|
181
163
|
const nodes = commissioningController.getCommissionedNodes();
|
|
182
164
|
console.log("Found commissioned nodes:", Logger.toJSON(nodes));
|
|
@@ -186,11 +168,13 @@ class ControllerNode {
|
|
|
186
168
|
throw new Error(`Node ${nodeId} not found in commissioned nodes`);
|
|
187
169
|
}
|
|
188
170
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
171
|
+
const nodeDetails = commissioningController.getCommissionedNodesDetails();
|
|
172
|
+
console.log("Commissioned nodes details:", Logger.toJSON(nodeDetails.find(node => node.nodeId === nodeId)));
|
|
173
|
+
|
|
174
|
+
// Get the node instance
|
|
175
|
+
const node = await commissioningController.getNode(nodeId);
|
|
192
176
|
|
|
193
|
-
//
|
|
177
|
+
// Subscribe to events of the node
|
|
194
178
|
node.events.attributeChanged.on(({ path: { nodeId, clusterId, endpointId, attributeName }, value }) =>
|
|
195
179
|
console.log(
|
|
196
180
|
`attributeChangedCallback ${nodeId}: Attribute ${endpointId}/${clusterId}/${attributeName} changed to ${Logger.toJSON(
|
|
@@ -225,8 +209,15 @@ class ControllerNode {
|
|
|
225
209
|
console.log(`Node ${nodeId} structure changed`);
|
|
226
210
|
});
|
|
227
211
|
|
|
228
|
-
//
|
|
229
|
-
|
|
212
|
+
// Connect to the node if not already connected, this will automatically subscribe to all attributes and events
|
|
213
|
+
if (!node.isConnected) {
|
|
214
|
+
node.connect();
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
// Wait for initialization oif not yet initialized - this should only happen if we just commissioned it
|
|
218
|
+
if (!node.initialized) {
|
|
219
|
+
await node.events.initialized;
|
|
220
|
+
}
|
|
230
221
|
|
|
231
222
|
// Or use this to wait for full remote initialization and reconnection.
|
|
232
223
|
// Will only return when node is connected!
|