@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 { NodeStateInformation } from "@project-chip/matter.js/device";
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
- attributeChangedCallback: (peerNodeId, { path: { nodeId: nodeId2, clusterId, endpointId, attributeName }, value }) => console.log(
113
- `attributeChangedCallback ${peerNodeId}: Attribute ${nodeId2}/${endpointId}/${clusterId}/${attributeName} changed to ${Logger.toJSON(
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
- eventTriggeredCallback: (peerNodeId, { path: { nodeId: nodeId2, clusterId, endpointId, eventName }, events }) => console.log(
118
- `eventTriggeredCallback ${peerNodeId}: Event ${nodeId2}/${endpointId}/${clusterId}/${eventName} triggered with ${Logger.toJSON(
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
- stateInformationCallback: (peerNodeId, info2) => {
123
- switch (info2) {
124
- case NodeStateInformation.Connected:
125
- console.log(`stateInformationCallback ${peerNodeId}: Node ${nodeId} connected`);
126
- break;
127
- case NodeStateInformation.Disconnected:
128
- console.log(`stateInformationCallback ${peerNodeId}: Node ${nodeId} disconnected`);
129
- break;
130
- case NodeStateInformation.Reconnecting:
131
- console.log(`stateInformationCallback ${peerNodeId}: Node ${nodeId} reconnecting`);
132
- break;
133
- case NodeStateInformation.WaitingForDeviceDiscovery:
134
- console.log(
135
- `stateInformationCallback ${peerNodeId}: Node ${nodeId} waiting for device discovery`
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": "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",
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.2",
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.2",
56
- "@matter/nodejs": "0.11.2",
57
- "@matter/tools": "0.11.2",
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.2"
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 { NodeStateInformation } from "@project-chip/matter.js/device";
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
- const node = await commissioningController.connectNode(nodeId, {
185
- attributeChangedCallback: (
186
- peerNodeId,
187
- { path: { nodeId, clusterId, endpointId, attributeName }, value },
188
- ) =>
189
- console.log(
190
- `attributeChangedCallback ${peerNodeId}: Attribute ${nodeId}/${endpointId}/${clusterId}/${attributeName} changed to ${Logger.toJSON(
191
- value,
192
- )}`,
193
- ),
194
- eventTriggeredCallback: (peerNodeId, { path: { nodeId, clusterId, endpointId, eventName }, events }) =>
195
- console.log(
196
- `eventTriggeredCallback ${peerNodeId}: Event ${nodeId}/${endpointId}/${clusterId}/${eventName} triggered with ${Logger.toJSON(
197
- events,
198
- )}`,
199
- ),
200
- stateInformationCallback: (peerNodeId, info) => {
201
- switch (info) {
202
- case NodeStateInformation.Connected:
203
- console.log(`stateInformationCallback ${peerNodeId}: Node ${nodeId} connected`);
204
- break;
205
- case NodeStateInformation.Disconnected:
206
- console.log(`stateInformationCallback ${peerNodeId}: Node ${nodeId} disconnected`);
207
- break;
208
- case NodeStateInformation.Reconnecting:
209
- console.log(`stateInformationCallback ${peerNodeId}: Node ${nodeId} reconnecting`);
210
- break;
211
- case NodeStateInformation.WaitingForDeviceDiscovery:
212
- console.log(
213
- `stateInformationCallback ${peerNodeId}: Node ${nodeId} waiting for device discovery`,
214
- );
215
- break;
216
- case NodeStateInformation.StructureChanged:
217
- console.log(`stateInformationCallback ${peerNodeId}: Node ${nodeId} structure changed`);
218
- break;
219
- case NodeStateInformation.Decommissioned:
220
- console.log(`stateInformationCallback ${peerNodeId}: Node ${nodeId} decommissioned`);
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
- // Important: This is a temporary API to proof the methods working and this will change soon and is NOT stable!
227
- // It is provided to proof the concept
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