@matter/examples 0.16.0-alpha.0-20250912-0d12bf718 → 0.16.0-alpha.0-20250916-d577beb1d

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,23 +4,16 @@
4
4
  * Copyright 2022-2025 Matter.js Authors
5
5
  * SPDX-License-Identifier: Apache-2.0
6
6
  */
7
- import { Diagnostic, Environment, Logger, singleton, StorageService, Time } from "@matter/main";
8
- import { BasicInformationCluster, DescriptorCluster, GeneralCommissioning, OnOff } from "@matter/main/clusters";
9
- import { Ble } from "@matter/main/protocol";
7
+ import { Diagnostic, Environment, Logger, StorageService, Time } from "@matter/main";
8
+ import { DescriptorClient } from "@matter/main/behaviors/descriptor";
9
+ import { OnOffClient } from "@matter/main/behaviors/on-off";
10
+ import { BasicInformationCluster, Descriptor, GeneralCommissioning } from "@matter/main/clusters";
10
11
  import { ManualPairingCodeCodec, NodeId } from "@matter/main/types";
11
- import { NodeJsBle } from "@matter/nodejs-ble";
12
12
  import { CommissioningController } from "@project-chip/matter.js";
13
13
  import { NodeStates } from "@project-chip/matter.js/device";
14
+ import "@matter/nodejs-ble";
14
15
  const logger = Logger.get("Controller");
15
16
  const environment = Environment.default;
16
- if (environment.vars.get("ble")) {
17
- Ble.get = singleton(
18
- () => new NodeJsBle({
19
- environment,
20
- hciId: environment.vars.number("ble.hci.id")
21
- })
22
- );
23
- }
24
17
  const storageService = environment.get(StorageService);
25
18
  console.log(`Storage location: ${storageService.location} (Directory)`);
26
19
  logger.info(
@@ -159,10 +152,17 @@ class ControllerNode {
159
152
  await node.events.initialized;
160
153
  }
161
154
  node.logStructure();
162
- const descriptor = node.getRootClusterClient(DescriptorCluster);
155
+ const descriptorState = node.stateOf(DescriptorClient);
156
+ if (descriptorState !== void 0) {
157
+ console.log("deviceTypeList", descriptorState.deviceTypeList);
158
+ } else {
159
+ console.log("No Descriptor Cluster found. This should never happen!");
160
+ }
161
+ const descriptor = node.getRootClusterClient(Descriptor.Complete);
163
162
  if (descriptor !== void 0) {
164
- console.log(await descriptor.attributes.deviceTypeList.get());
163
+ console.log(descriptor.getTagListAttributeFromCache());
165
164
  console.log(await descriptor.getServerListAttribute());
165
+ console.log(await descriptor.attributes.clientList.get());
166
166
  } else {
167
167
  console.log("No Descriptor Cluster found. This should never happen!");
168
168
  }
@@ -172,18 +172,15 @@ class ControllerNode {
172
172
  } else {
173
173
  console.log("No BasicInformation Cluster found. This should never happen!");
174
174
  }
175
- const devices = node.getDevices();
176
- if (devices[0] && devices[0].number === 1) {
177
- const onOff = devices[0].getClusterClient(OnOff.Complete);
178
- if (onOff !== void 0) {
179
- let onOffStatus = await onOff.getOnOffAttribute();
175
+ const endpointOne = node.parts.get(1);
176
+ if (endpointOne) {
177
+ const onOffState = endpointOne.stateOf(OnOffClient);
178
+ if (onOffState !== void 0) {
179
+ let onOffStatus = onOffState.onOff;
180
180
  console.log("initial onOffStatus", onOffStatus);
181
- onOff.addOnOffAttributeListener((value) => {
182
- console.log("subscription onOffStatus", value);
183
- onOffStatus = value;
184
- });
181
+ const onOffCommands = endpointOne.commandsOf(OnOffClient);
185
182
  setInterval(() => {
186
- onOff.toggle().then(() => {
183
+ onOffCommands.toggle().then(() => {
187
184
  onOffStatus = !onOffStatus;
188
185
  console.log("onOffStatus", onOffStatus);
189
186
  }).catch((error) => logger.error(error));
@@ -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": ["node", "nodeId", "info"]
6
6
  }
@@ -15,8 +15,7 @@ import {
15
15
  ServerNode,
16
16
  StorageService,
17
17
  Time,
18
- VendorId,
19
- singleton
18
+ VendorId
20
19
  } from "@matter/main";
21
20
  import { OnOffServer } from "@matter/main/behaviors";
22
21
  import { NetworkCommissioning, OnOff } from "@matter/main/clusters";
@@ -25,23 +24,15 @@ import { RootRequirements } from "@matter/main/endpoints";
25
24
  import { Ble, FabricAction } from "@matter/main/protocol";
26
25
  import { QrCode } from "@matter/main/types";
27
26
  import { createFileLogger } from "@matter/nodejs";
28
- import { NodeJsBle } from "@matter/nodejs-ble";
29
27
  import { execSync } from "node:child_process";
30
28
  import { DummyThreadNetworkCommissioningServer } from "./cluster/DummyThreadNetworkCommissioningServer.js";
31
29
  import { DummyWifiNetworkCommissioningServer } from "./cluster/DummyWifiNetworkCommissioningServer.js";
32
30
  import {
33
31
  MyFancyOwnFunctionalityBehavior
34
32
  } from "./cluster/MyFancyOwnFunctionality.js";
33
+ import "@matter/nodejs-ble";
35
34
  const logger = Logger.get("DeviceNodeFull");
36
35
  const environment = Environment.default;
37
- if (environment.vars.get("ble.enable")) {
38
- Ble.get = singleton(
39
- () => new NodeJsBle({
40
- environment,
41
- hciId: environment.vars.number("ble.hciId")
42
- })
43
- );
44
- }
45
36
  function executeCommand(scriptParamName) {
46
37
  const script = environment.vars.string(scriptParamName);
47
38
  if (script === void 0) return void 0;
@@ -157,7 +148,7 @@ const server = await ServerNode.create(RootEndpoint, {
157
148
  }
158
149
  });
159
150
  const networkId = new Uint8Array(32);
160
- if (Ble.enabled) {
151
+ if (environment.has(Ble)) {
161
152
  if (environment.vars.has("ble.wifi.fake")) {
162
153
  server.behaviors.require(DummyWifiNetworkCommissioningServer, {
163
154
  maxNetworks: 1,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/device-onoff-advanced/DeviceNodeFull.ts"],
4
- "mappings": ";AACA;AAAA;AAAA;AAAA;AAAA;AAqBA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,mBAAmB;AAC5B,SAA6B,sBAAsB,aAAa;AAChE,SAAS,kBAAkB,6BAA6B;AACxD,SAAS,wBAAwB;AACjC,SAAS,KAAK,oBAAoB;AAClC,SAAS,cAAc;AACvB,SAAS,wBAAwB;AACjC,SAAS,iBAAiB;AAC1B,SAAS,gBAAgB;AACzB,SAAS,6CAA6C;AACtD,SAAS,2CAA2C;AACpD;AAAA,EAGI;AAAA,OACG;AAEP,MAAM,SAAS,OAAO,IAAI,gBAAgB;AAe1C,MAAM,cAAc,YAAY;AAIhC,IAAI,YAAY,KAAK,IAAI,YAAY,GAAG;AAEpC,MAAI,MAAM;AAAA,IACN,MACI,IAAI,UAAU;AAAA,MACV;AAAA,MACA,OAAO,YAAY,KAAK,OAAO,WAAW;AAAA,IAC9C,CAAC;AAAA,EACT;AACJ;AAEA,SAAS,eAAe,iBAAyB;AAC7C,QAAM,SAAS,YAAY,KAAK,OAAO,eAAe;AACtD,MAAI,WAAW,OAAW,QAAO;AACjC,UAAQ,IAAI,GAAG,eAAe,KAAK,SAAS,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC,EAAE;AACjF;AAYA,MAAM,UAAU,YAAY,KAAK,OAAO,kBAAkB;AAC1D,IAAI,YAAY,QAAW;AACvB,SAAO,aAAa,aAAa,eAAe;AAAA,IAC5C,OAAO,MAAM,iBAAiB,OAAO;AAAA,IACrC,OAAO,SAAS,YAAY,KAAK,IAAI,oBAAoB,OAAO,CAAC;AAAA,EACrE,CAAC;AACL;AAEA,MAAM,iBAAiB,YAAY,IAAI,cAAc;AACrD,QAAQ,IAAI,qBAAqB,eAAe,QAAQ,cAAc;AACtE,QAAQ;AAAA,EACJ;AACJ;AAEA,MAAM,iBAAiB,MAAM,eAAe,KAAK,QAAQ,GAAG,cAAc,MAAM;AAEhF,IAAI,MAAM,cAAc,IAAI,UAAU,GAAG;AACrC,UAAQ,IAAI,4DAA4D;AAC5E;AACA,MAAM,WAAW,MAAM,cAAc,IAAI,YAAY,YAAY,KAAK,OAAO,MAAM,MAAM,QAAQ;AACjG,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,WAAW,YAAY,KAAK,OAAO,UAAU,KAAM,MAAM,cAAc,IAAI,YAAY,QAAQ;AACrG,MAAM,gBAAgB,YAAY,KAAK,OAAO,eAAe,KAAM,MAAM,cAAc,IAAI,iBAAiB,IAAI;AAEhH,MAAM,WAAW,YAAY,KAAK,OAAO,UAAU,KAAM,MAAM,cAAc,IAAI,YAAY,KAAM;AACnG,MAAM,cAAc,qBAAqB,WAAW,WAAW,OAAO;AACtE,MAAM,YAAY,YAAY,KAAK,OAAO,WAAW,KAAM,MAAM,cAAc,IAAI,aAAa,KAAM;AAEtG,MAAM,OAAO,YAAY,KAAK,OAAO,MAAM,KAAK;AAEhD,MAAM,WAAW,YAAY,KAAK,OAAO,UAAU,KAAM,MAAM,cAAc,IAAI,YAAY,KAAK,MAAM,SAAS,CAAC;AAElH,MAAM,cAAc,IAAI;AAAA,EACpB;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,WAAW;AAAA,EACX;AAAA,EACA,UAAU;AACd,CAAC;AAID,MAAM,6BAA6B,YAAY,KAAK,MAAM,QAAQ,QAAQ,EAAE;AAAA;AAAA,EAExE,MAAe,KAAK;AAChB,mBAAe,IAAI;AACnB,UAAM,MAAM,GAAG;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAe,MAAM;AACjB,mBAAe,KAAK;AACpB,SAAK,MAAM,QAAQ;AAAA,EACvB;AAAA;AAAA,EAGS,aAAa;AAClB,SAAK,OAAO,cAAc,GAAG,WAAS;AAClC,cAAQ,IAAI,gBAAgB,QAAQ,OAAO,KAAK,EAAE;AAAA,IACtD,CAAC;AAAA,EACL;AACJ;AAEA,MAAM,qCAAqC,iBAAiB,yBAAyB;AAAA,EACxE,aAAa;AAClB,SAAK,MAAM,2BAA2B;AACtC,SAAK,MAAM,sBAAsB,MAAM,QAAQ,kCAAkC;AACjF,UAAM,WAAW;AAAA,EACrB;AAAA,EAES,iBAAiB,EAAE,WAAW,aAAa,GAA+C;AAC/F,YAAQ,IAAI,yDAAyD,SAAS,IAAI,YAAY,EAAE;AAAA,EACpG;AACJ;AAEA,MAAM,sCAAsC,gCAAgC;AAAA;AAAA,EAE/D,eAAe,SAAwD;AAC5E,UAAM,EAAE,MAAM,IAAI;AAClB,SAAK,MAAM,eAAe,MAAM;AAEhC,SAAK,OAAO,aAAa,KAAK,EAAE,YAAY,MAAM,GAAG,KAAK,OAAO;AAEjE,WAAO,EAAE,UAAU,MAAM;AAAA,EAC7B;AAAA,EAES,aAAa;AAClB,SAAK,MAAM,eAAe;AAAA,EAC9B;AACJ;AAkBA,MAAM,cAAc,WACd,sBAAsB,KAAK,oBAAoB,IAC/C,iBAAiB,KAAK,oBAAoB;AAYhD,MAAM,eAAe,WAAW,aAAa,KAAK,4BAA4B;AAO9E,MAAM,SAAS,MAAM,WAAW,OAAO,cAAc;AAAA,EACjD,IAAI;AAAA,EACJ,SAAS;AAAA,IACL;AAAA,IACA,uBAAuB;AAAA,MACnB,aAAa,CAAC,YAAY,KAAK,IAAI,YAAY;AAAA,MAC/C,KAAK,YAAY,KAAK,IAAI,YAAY;AAAA,IAC1C;AAAA,IACA,KAAK,YAAY,KAAK,IAAI,YAAY;AAAA;AAAA,EAC1C;AAAA,EACA,eAAe;AAAA,IACX;AAAA,IACA;AAAA,EACJ;AAAA,EACA,oBAAoB;AAAA,IAChB,MAAM;AAAA,IACN,YAAY,aAAa,YAAY,UAAU;AAAA,EACnD;AAAA,EACA,kBAAkB;AAAA,IACd;AAAA,IACA,UAAU,SAAS,QAAQ;AAAA,IAC3B,WAAW;AAAA,IACX;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA,cAAc,eAAe,QAAQ;AAAA,IACrC;AAAA,EACJ;AACJ,CAAC;AAED,MAAM,YAAY,IAAI,WAAW,EAAE;AACnC,IAAI,IAAI,SAAS;AAOb,MAAI,YAAY,KAAK,IAAI,eAAe,GAAG;AACvC,WAAO,UAAU,QAAQ,qCAAqC;AAAA,MAC1D,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,uBAAuB;AAAA,MACvB,eAAe;AAAA,MACf,sBAAsB;AAAA,MACtB,UAAU,CAAC,EAAE,WAAsB,WAAW,MAAM,CAAC;AAAA,MACrD,oBAAoB;AAAA,MACpB,uBAAuB;AAAA,MACvB,oBAAoB,CAAC,qBAAqB,SAAS,KAAK,CAAC;AAAA,IAC7D,CAAC;AAAA,EACL,WAAW,YAAY,KAAK,IAAI,iBAAiB,GAAG;AAChD,WAAO,UAAU,QAAQ,uCAAuC;AAAA,MAC5D,aAAa;AAAA,MACb,kBAAkB;AAAA,MAClB,uBAAuB;AAAA,MACvB,eAAe;AAAA,MACf,sBAAsB;AAAA,MACtB,UAAU,CAAC,EAAE,WAAsB,WAAW,MAAM,CAAC;AAAA,MACrD,oBAAoB;AAAA,MACpB,uBAAuB;AAAA,MACvB,yBAAyB,EAAE,oBAAoB,KAAK;AAAA,MACpD,eAAe;AAAA;AAAA,IACnB,CAAC;AAAA,EACL;AACJ;AAGA,IAAI,aAAa,OAAQ;AACrB,SAAO,UAAU,QAAQ,+BAA+B;AAAA,IACpD,cAAc;AAAA,EAClB,CAAC;AACL;AAGA,MAAM,WAAW,IAAI,SAAS,aAAa,EAAE,IAAI,QAAQ,CAAC;AAE1D,MAAM,OAAO,IAAI,QAAQ;AAMzB,OAAO,UAAU,aAAa,GAAG,MAAM,QAAQ,IAAI,iDAAiD,CAAC;AAGrG,OAAO,UAAU,eAAe,GAAG,MAAM,QAAQ,IAAI,+CAA+C,CAAC;AAGrG,OAAO,UAAU,OAAO,GAAG,MAAM;AAC7B,UAAQ,IAAI,kBAAkB;AAC9B,UAAQ,IAAI,sCAAsC,OAAO,MAAM,cAAc,OAAO;AACxF,CAAC;AAGD,OAAO,UAAU,QAAQ,GAAG,MAAM,QAAQ,IAAI,mBAAmB,CAAC;AAMlE,OAAO,OAAO,cAAc,eAAe,GAAG,CAAC,aAAa,iBAAiB;AACzE,MAAI,SAAS;AACb,UAAQ,cAAc;AAAA,IAClB,KAAK,aAAa;AACd,eAAS;AACT;AAAA,IACJ,KAAK,aAAa;AACd,eAAS;AACT;AAAA,IACJ,KAAK,aAAa;AACd,eAAS;AACT;AAAA,EACR;AACA,UAAQ,IAAI,uCAAuC,MAAM,SAAS,WAAW,YAAY;AACzF,UAAQ,IAAI,OAAO,MAAM,cAAc,QAAQ,WAAW,CAAC;AAC/D,CAAC;AAMD,OAAO,OAAO,SAAS,OAAO,GAAG,aAAW,QAAQ,IAAI,kBAAkB,OAAO,CAAC;AAKlF,OAAO,OAAO,SAAS,OAAO,GAAG,aAAW,QAAQ,IAAI,kBAAkB,OAAO,CAAC;AAGlF,OAAO,OAAO,SAAS,qBAAqB,GAAG,aAAW;AACtD,UAAQ,IAAI,iCAAiC,OAAO;AACpD,UAAQ,IAAI,0BAA0B,OAAO,MAAM,SAAS,QAAQ;AACxE,CAAC;AAGD,SAAS,OAAO,SAAS,iBAAiB,GAAG,MAAM;AAC/C,UAAQ,IAAI,0DAA0D;AAC1E,CAAC;AAED,SAAS,OAAO,SAAS,gBAAgB,GAAG,MAAM;AAC9C,UAAQ,IAAI,yBAAyB;AACzC,CAAC;AAOD,OAAO,KAAK,MAAM;AAOlB,MAAM,OAAO,MAAM;AAKnB,IAAI,CAAC,OAAO,UAAU,gBAAgB;AAClC,QAAM,EAAE,eAAe,kBAAkB,IAAI,OAAO,MAAM,cAAc;AAExE,UAAQ,IAAI,OAAO,IAAI,aAAa,CAAC;AACrC,UAAQ,IAAI,gFAAgF,aAAa,EAAE;AAC3G,UAAQ,IAAI,wBAAwB,iBAAiB,EAAE;AAC3D,OAAO;AACH,UAAQ,IAAI,wEAAwE;AASpF,QAAM,aAAa,SAAS,MAAM,MAAM;AACxC,UAAQ,IAAI,4BAA4B,UAAU,EAAE;AAEpD,MAAI,aAAa,OAAQ;AAErB,UAAM,SAAS,IAAI;AAAA,MACf,OAAO;AAAA,QACH,OAAO,CAAC;AAAA,MACZ;AAAA;AAAA,MAEA,yBAAyB;AAAA,QACrB,cAAc;AAAA,MAClB;AAAA,IACJ,CAAC;AAAA,EACL,OAAO;AAEH,UAAM,SAAS,IAAI;AAAA,MACf,OAAO;AAAA,QACH,OAAO,CAAC;AAAA,MACZ;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AAKA,QAAQ,GAAG,UAAU,MAAM;AAEvB,SACK,MAAM,EACN,KAAK,MAAM,QAAQ,KAAK,CAAC,CAAC,EAC1B,MAAM,SAAO,QAAQ,MAAM,GAAG,CAAC;AACxC,CAAC;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/examples",
3
- "version": "0.16.0-alpha.0-20250912-0d12bf718",
3
+ "version": "0.16.0-alpha.0-20250916-d577beb1d",
4
4
  "description": "Matter.js examples and reference implementations",
5
5
  "keywords": [
6
6
  "iot",
@@ -55,14 +55,14 @@
55
55
  "matter-controller": "dist/esm/controller/ControllerNode.js"
56
56
  },
57
57
  "dependencies": {
58
- "@matter/main": "0.16.0-alpha.0-20250912-0d12bf718",
59
- "@matter/nodejs": "0.16.0-alpha.0-20250912-0d12bf718",
60
- "@matter/tools": "0.16.0-alpha.0-20250912-0d12bf718",
61
- "@project-chip/matter.js": "0.16.0-alpha.0-20250912-0d12bf718",
58
+ "@matter/main": "0.16.0-alpha.0-20250916-d577beb1d",
59
+ "@matter/nodejs": "0.16.0-alpha.0-20250916-d577beb1d",
60
+ "@matter/tools": "0.16.0-alpha.0-20250916-d577beb1d",
61
+ "@project-chip/matter.js": "0.16.0-alpha.0-20250916-d577beb1d",
62
62
  "esbuild": "^0.25.9"
63
63
  },
64
64
  "optionalDependencies": {
65
- "@matter/nodejs-ble": "0.16.0-alpha.0-20250912-0d12bf718"
65
+ "@matter/nodejs-ble": "0.16.0-alpha.0-20250916-d577beb1d"
66
66
  },
67
67
  "engines": {
68
68
  "node": ">=20.19.0 <22.0.0 || >=22.13.0"
@@ -11,29 +11,21 @@
11
11
  * because you need to adjust the code in any way depending on your use case.
12
12
  */
13
13
 
14
- import { Diagnostic, Environment, Logger, singleton, StorageService, Time } from "@matter/main";
15
- import { BasicInformationCluster, DescriptorCluster, GeneralCommissioning, OnOff } from "@matter/main/clusters";
16
- import { Ble, ClusterClientObj } from "@matter/main/protocol";
14
+ import { Diagnostic, Environment, Logger, StorageService, Time } from "@matter/main";
15
+ import { DescriptorClient } from "@matter/main/behaviors/descriptor";
16
+ import { OnOffClient } from "@matter/main/behaviors/on-off";
17
+ import { BasicInformationCluster, Descriptor, GeneralCommissioning } from "@matter/main/clusters";
17
18
  import { ManualPairingCodeCodec, NodeId } from "@matter/main/types";
18
- import { NodeJsBle } from "@matter/nodejs-ble";
19
19
  import { CommissioningController, NodeCommissioningOptions } from "@project-chip/matter.js";
20
20
  import { NodeStates } from "@project-chip/matter.js/device";
21
21
 
22
+ // This installs BLE support if configuration variable "ble.enable" is true
23
+ import "@matter/nodejs-ble";
24
+
22
25
  const logger = Logger.get("Controller");
23
26
 
24
27
  const environment = Environment.default;
25
28
 
26
- if (environment.vars.get("ble")) {
27
- // Initialize Ble
28
- Ble.get = singleton(
29
- () =>
30
- new NodeJsBle({
31
- environment,
32
- hciId: environment.vars.number("ble.hci.id"),
33
- }),
34
- );
35
- }
36
-
37
29
  const storageService = environment.get(StorageService);
38
30
 
39
31
  console.log(`Storage location: ${storageService.location} (Directory)`);
@@ -229,16 +221,28 @@ class ControllerNode {
229
221
 
230
222
  node.logStructure();
231
223
 
232
- // Example to initialize a ClusterClient and access concrete fields as API methods
233
- const descriptor = node.getRootClusterClient(DescriptorCluster);
224
+ // Example to conveniently access cluster states in a typed manner and read the data from the local cache
225
+ // This is the new preferred way to access the latest known cluster data
226
+ const descriptorState = node.stateOf(DescriptorClient);
227
+ if (descriptorState !== undefined) {
228
+ console.log("deviceTypeList", descriptorState.deviceTypeList); // you can access the state that way
229
+ } else {
230
+ console.log("No Descriptor Cluster found. This should never happen!");
231
+ }
232
+
233
+ // Alternatively you can access concrete fields as API methods by creating a ClusterClient and
234
+ // reading the data from the device or local cache
235
+ const descriptor = node.getRootClusterClient(Descriptor.Complete);
234
236
  if (descriptor !== undefined) {
235
- console.log(await descriptor.attributes.deviceTypeList.get()); // you can call that way
236
- console.log(await descriptor.getServerListAttribute()); // or more convenient that way
237
+ console.log(descriptor.getTagListAttributeFromCache()); // Convenient that way from local cache
238
+ console.log(await descriptor.getServerListAttribute()); // Convenient that way (async!)
239
+ console.log(await descriptor.attributes.clientList.get()); // or more low level that way (async!)
237
240
  } else {
238
241
  console.log("No Descriptor Cluster found. This should never happen!");
239
242
  }
240
243
 
241
- // Example to subscribe to a field and get the value
244
+ // Example to subscribe to a field and get the value, normally this is not needed because by default
245
+ // all attributes are subscribed automatically!
242
246
  const info = node.getRootClusterClient(BasicInformationCluster);
243
247
  if (info !== undefined) {
244
248
  console.log(await info.getProductNameAttribute()); // This call is executed remotely
@@ -260,25 +264,23 @@ class ControllerNode {
260
264
  //const attributesBasicInformation = await interactionClient.getMultipleAttributes([{ endpointId: 0, clusterId: BasicInformationCluster.id} ]);
261
265
  //console.log("Attributes-BasicInformation:", JSON.stringify(attributesBasicInformation, null, 2));
262
266
 
263
- const devices = node.getDevices();
264
- if (devices[0] && devices[0].number === 1) {
267
+ const endpointOne = node.parts.get(1);
268
+ if (endpointOne) {
265
269
  // Example to subscribe to all Attributes of endpoint 1 of the commissioned node: */*/*
266
270
  //await interactionClient.subscribeMultipleAttributes([{ endpointId: 1, /* subscribe anything from endpoint 1 */ }], 0, 180, data => {
267
271
  // console.log("Subscribe-All Data:", Diagnostic.json(data));
268
272
  //});
269
273
 
270
- const onOff: ClusterClientObj<OnOff.Complete> | undefined = devices[0].getClusterClient(OnOff.Complete);
271
- if (onOff !== undefined) {
272
- let onOffStatus = await onOff.getOnOffAttribute();
274
+ // Example using the new convenient typed access to state and commands of the OnOff cluster
275
+ const onOffState = endpointOne.stateOf(OnOffClient);
276
+ if (onOffState !== undefined) {
277
+ let onOffStatus = onOffState.onOff;
273
278
  console.log("initial onOffStatus", onOffStatus);
274
279
 
275
- onOff.addOnOffAttributeListener(value => {
276
- console.log("subscription onOffStatus", value);
277
- onOffStatus = value;
278
- });
280
+ const onOffCommands = endpointOne.commandsOf(OnOffClient);
279
281
  // read data every minute to keep up the connection to show the subscription is working
280
282
  setInterval(() => {
281
- onOff
283
+ onOffCommands
282
284
  .toggle()
283
285
  .then(() => {
284
286
  onOffStatus = !onOffStatus;
@@ -35,7 +35,7 @@ The following parameters are available and used to initially commission a device
35
35
  * --longDiscriminator: the discriminator to use for pairing (default: 3840, value between 0 and 4095)
36
36
  * --passcode: the passcode to use for pairing (default: 20202021)
37
37
  * When the device to commission is not already in the IP network and also not an Ethernet device commission can be done via ble. In this case the following parameters are used:
38
- * --ble: enable BLE support (default: false) If this is enabled the controller will try to connect via BLE first (15s timeout) and then via IP if not commissioned yet!
38
+ * --ble-enable: enable BLE support (default: false) If this is enabled the controller will try to connect via BLE first (15s timeout) and then via IP if not commissioned yet!
39
39
  * --ble-hci-id: Optionally, HCI ID to use (Linux only, default 0)
40
40
  * --ble-wifi-ssid: SSID/Name of the Wifi network to connect to - The device will scan especially for this network and commissioning will fail if not found
41
41
  * --ble-wifi-credentials: Credentials for the Wifi network to connect to
@@ -32,7 +32,6 @@ import {
32
32
  StorageService,
33
33
  Time,
34
34
  VendorId,
35
- singleton,
36
35
  } from "@matter/main";
37
36
  import { OnOffServer } from "@matter/main/behaviors";
38
37
  import { GeneralDiagnostics, NetworkCommissioning, OnOff } from "@matter/main/clusters";
@@ -41,7 +40,6 @@ import { RootRequirements } from "@matter/main/endpoints";
41
40
  import { Ble, FabricAction } from "@matter/main/protocol";
42
41
  import { QrCode } from "@matter/main/types";
43
42
  import { createFileLogger } from "@matter/nodejs";
44
- import { NodeJsBle } from "@matter/nodejs-ble";
45
43
  import { execSync } from "node:child_process";
46
44
  import { DummyThreadNetworkCommissioningServer } from "./cluster/DummyThreadNetworkCommissioningServer.js";
47
45
  import { DummyWifiNetworkCommissioningServer } from "./cluster/DummyWifiNetworkCommissioningServer.js";
@@ -51,6 +49,13 @@ import {
51
49
  MyFancyOwnFunctionalityBehavior,
52
50
  } from "./cluster/MyFancyOwnFunctionality.js";
53
51
 
52
+ // This installs BLE support if:
53
+ //
54
+ // - The environment.vars value "ble.enable" is true
55
+ // - The command line flag "--ble-enable" is set
56
+ // - The system environment variable "BLE_ENABLE" is set
57
+ import "@matter/nodejs-ble";
58
+
54
59
  const logger = Logger.get("DeviceNodeFull");
55
60
 
56
61
  /**
@@ -68,19 +73,6 @@ const logger = Logger.get("DeviceNodeFull");
68
73
 
69
74
  const environment = Environment.default;
70
75
 
71
- // Alternatively "--ble-enable" or environment variable "BLE_ENABLED"
72
- // Alternatively "--ble-hciId" or environment variable "BLE_HCIID"
73
- if (environment.vars.get("ble.enable")) {
74
- // Initialize Ble
75
- Ble.get = singleton(
76
- () =>
77
- new NodeJsBle({
78
- environment,
79
- hciId: environment.vars.number("ble.hciId"),
80
- }),
81
- );
82
- }
83
-
84
76
  function executeCommand(scriptParamName: string) {
85
77
  const script = environment.vars.string(scriptParamName);
86
78
  if (script === undefined) return undefined;
@@ -261,7 +253,7 @@ const server = await ServerNode.create(RootEndpoint, {
261
253
  });
262
254
 
263
255
  const networkId = new Uint8Array(32);
264
- if (Ble.enabled) {
256
+ if (environment.has(Ble)) {
265
257
  // matter.js will create an Ethernet-only device by default when it comes to Network Commissioning Features.
266
258
  // To offer e.g. a "Wi-Fi only device" (or any other combination) we need to override the Network Commissioning
267
259
  // cluster and implement all the need handling here. This is a "static implementation" for pure demonstration