@matter/examples 0.11.2 → 0.11.3-alpha.0-20241106-39bacbc00
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.
|
@@ -10,7 +10,7 @@ import { Ble } from "@matter/main/protocol";
|
|
|
10
10
|
import { ManualPairingCodeCodec, NodeId } from "@matter/main/types";
|
|
11
11
|
import { NodeJsBle } from "@matter/nodejs-ble";
|
|
12
12
|
import { CommissioningController } from "@project-chip/matter.js";
|
|
13
|
-
import {
|
|
13
|
+
import { NodeStates } from "@project-chip/matter.js/device";
|
|
14
14
|
const logger = Logger.get("Controller");
|
|
15
15
|
const environment = Environment.default;
|
|
16
16
|
if (environment.vars.get("ble")) {
|
|
@@ -108,42 +108,41 @@ class ControllerNode {
|
|
|
108
108
|
if (!nodes.includes(nodeId)) {
|
|
109
109
|
throw new Error(`Node ${nodeId} not found in commissioned nodes`);
|
|
110
110
|
}
|
|
111
|
-
const node = await commissioningController.connectNode(nodeId
|
|
112
|
-
|
|
113
|
-
|
|
111
|
+
const node = await commissioningController.connectNode(nodeId);
|
|
112
|
+
node.events.attributeChanged.on(
|
|
113
|
+
({ path: { nodeId: nodeId2, clusterId, endpointId, attributeName }, value }) => console.log(
|
|
114
|
+
`attributeChangedCallback ${nodeId2}: Attribute ${endpointId}/${clusterId}/${attributeName} changed to ${Logger.toJSON(
|
|
114
115
|
value
|
|
115
116
|
)}`
|
|
116
|
-
)
|
|
117
|
-
|
|
118
|
-
|
|
117
|
+
)
|
|
118
|
+
);
|
|
119
|
+
node.events.eventTriggered.on(
|
|
120
|
+
({ path: { nodeId: nodeId2, clusterId, endpointId, eventName }, events }) => console.log(
|
|
121
|
+
`eventTriggeredCallback ${nodeId2}: Event ${endpointId}/${clusterId}/${eventName} triggered with ${Logger.toJSON(
|
|
119
122
|
events
|
|
120
123
|
)}`
|
|
121
|
-
)
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
break;
|
|
138
|
-
case NodeStateInformation.StructureChanged:
|
|
139
|
-
console.log(`stateInformationCallback ${peerNodeId}: Node ${nodeId} structure changed`);
|
|
140
|
-
break;
|
|
141
|
-
case NodeStateInformation.Decommissioned:
|
|
142
|
-
console.log(`stateInformationCallback ${peerNodeId}: Node ${nodeId} decommissioned`);
|
|
143
|
-
break;
|
|
144
|
-
}
|
|
124
|
+
)
|
|
125
|
+
);
|
|
126
|
+
node.events.stateChanged.on((info2) => {
|
|
127
|
+
switch (info2) {
|
|
128
|
+
case NodeStates.Connected:
|
|
129
|
+
console.log(`state changed: Node ${nodeId} connected`);
|
|
130
|
+
break;
|
|
131
|
+
case NodeStates.Disconnected:
|
|
132
|
+
console.log(`state changed: Node ${nodeId} disconnected`);
|
|
133
|
+
break;
|
|
134
|
+
case NodeStates.Reconnecting:
|
|
135
|
+
console.log(`state changed: Node ${nodeId} reconnecting`);
|
|
136
|
+
break;
|
|
137
|
+
case NodeStates.WaitingForDeviceDiscovery:
|
|
138
|
+
console.log(`state changed: Node ${nodeId} waiting for device discovery`);
|
|
139
|
+
break;
|
|
145
140
|
}
|
|
146
141
|
});
|
|
142
|
+
node.events.structureChanged.on(() => {
|
|
143
|
+
console.log(`Node ${nodeId} structure changed`);
|
|
144
|
+
});
|
|
145
|
+
await node.events.initialized;
|
|
147
146
|
node.logStructure();
|
|
148
147
|
const descriptor = node.getRootClusterClient(DescriptorCluster);
|
|
149
148
|
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,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["nodeId", "info"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/examples",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.3-alpha.0-20241106-39bacbc00",
|
|
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.11.
|
|
56
|
-
"@matter/nodejs": "0.11.
|
|
57
|
-
"@matter/tools": "0.11.
|
|
55
|
+
"@matter/main": "0.11.3-alpha.0-20241106-39bacbc00",
|
|
56
|
+
"@matter/nodejs": "0.11.3-alpha.0-20241106-39bacbc00",
|
|
57
|
+
"@matter/tools": "0.11.3-alpha.0-20241106-39bacbc00",
|
|
58
58
|
"esbuild": "^0.24.0"
|
|
59
59
|
},
|
|
60
60
|
"optionalDependencies": {
|
|
61
|
-
"@matter/nodejs-ble": "0.11.
|
|
61
|
+
"@matter/nodejs-ble": "0.11.3-alpha.0-20241106-39bacbc00"
|
|
62
62
|
},
|
|
63
63
|
"engines": {
|
|
64
64
|
"node": ">=18.0.0"
|
|
@@ -17,7 +17,7 @@ import { Ble, ClusterClientObj, ControllerCommissioningFlowOptions } from "@matt
|
|
|
17
17
|
import { ManualPairingCodeCodec, NodeId } from "@matter/main/types";
|
|
18
18
|
import { NodeJsBle } from "@matter/nodejs-ble";
|
|
19
19
|
import { CommissioningController, NodeCommissioningOptions } from "@project-chip/matter.js";
|
|
20
|
-
import {
|
|
20
|
+
import { NodeStates } from "@project-chip/matter.js/device";
|
|
21
21
|
|
|
22
22
|
const logger = Logger.get("Controller");
|
|
23
23
|
|
|
@@ -181,50 +181,51 @@ class ControllerNode {
|
|
|
181
181
|
throw new Error(`Node ${nodeId} not found in commissioned nodes`);
|
|
182
182
|
}
|
|
183
183
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
)
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
break;
|
|
222
|
-
}
|
|
223
|
-
},
|
|
184
|
+
// Trigger node connection. Returns once process started, events are there to wait for completion
|
|
185
|
+
// By default will subscript to all attributes and events
|
|
186
|
+
const node = await commissioningController.connectNode(nodeId);
|
|
187
|
+
|
|
188
|
+
// React on generic events
|
|
189
|
+
node.events.attributeChanged.on(({ path: { nodeId, clusterId, endpointId, attributeName }, value }) =>
|
|
190
|
+
console.log(
|
|
191
|
+
`attributeChangedCallback ${nodeId}: Attribute ${endpointId}/${clusterId}/${attributeName} changed to ${Logger.toJSON(
|
|
192
|
+
value,
|
|
193
|
+
)}`,
|
|
194
|
+
),
|
|
195
|
+
);
|
|
196
|
+
node.events.eventTriggered.on(({ path: { nodeId, clusterId, endpointId, eventName }, events }) =>
|
|
197
|
+
console.log(
|
|
198
|
+
`eventTriggeredCallback ${nodeId}: Event ${endpointId}/${clusterId}/${eventName} triggered with ${Logger.toJSON(
|
|
199
|
+
events,
|
|
200
|
+
)}`,
|
|
201
|
+
),
|
|
202
|
+
);
|
|
203
|
+
node.events.stateChanged.on(info => {
|
|
204
|
+
switch (info) {
|
|
205
|
+
case NodeStates.Connected:
|
|
206
|
+
console.log(`state changed: Node ${nodeId} connected`);
|
|
207
|
+
break;
|
|
208
|
+
case NodeStates.Disconnected:
|
|
209
|
+
console.log(`state changed: Node ${nodeId} disconnected`);
|
|
210
|
+
break;
|
|
211
|
+
case NodeStates.Reconnecting:
|
|
212
|
+
console.log(`state changed: Node ${nodeId} reconnecting`);
|
|
213
|
+
break;
|
|
214
|
+
case NodeStates.WaitingForDeviceDiscovery:
|
|
215
|
+
console.log(`state changed: Node ${nodeId} waiting for device discovery`);
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
node.events.structureChanged.on(() => {
|
|
220
|
+
console.log(`Node ${nodeId} structure changed`);
|
|
224
221
|
});
|
|
225
222
|
|
|
226
|
-
//
|
|
227
|
-
|
|
223
|
+
// Now wait till the structure of the node gor initialized (potentially with persisted data)
|
|
224
|
+
await node.events.initialized;
|
|
225
|
+
|
|
226
|
+
// Or use this to wait for full remote initialization and reconnection.
|
|
227
|
+
// Will only return when node is connected!
|
|
228
|
+
// await node.events.initializedFromRemote;
|
|
228
229
|
|
|
229
230
|
node.logStructure();
|
|
230
231
|
|