@project-chip/matter-node.js-examples 0.11.0-alpha.0-20240909-b3b29745 → 0.11.0-alpha.0-20240911-db8f7c80
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/esm/examples/BridgedDevicesNode.js +2 -3
- package/dist/esm/examples/BridgedDevicesNode.js.map +2 -2
- package/dist/esm/examples/BridgedDevicesNodeLegacy.js +14 -15
- package/dist/esm/examples/BridgedDevicesNodeLegacy.js.map +2 -2
- package/dist/esm/examples/ComposedDeviceNode.js +2 -3
- package/dist/esm/examples/ComposedDeviceNode.js.map +2 -2
- package/dist/esm/examples/ComposedDeviceNodeLegacy.js +15 -16
- package/dist/esm/examples/ComposedDeviceNodeLegacy.js.map +2 -2
- package/dist/esm/examples/ControllerNode.js +2 -5
- package/dist/esm/examples/ControllerNode.js.map +2 -2
- package/dist/esm/examples/ControllerNodeLegacy.js +21 -22
- package/dist/esm/examples/ControllerNodeLegacy.js.map +2 -2
- package/dist/esm/examples/DeviceNode.js +2 -3
- package/dist/esm/examples/DeviceNode.js.map +2 -2
- package/dist/esm/examples/DeviceNodeFull.js +4 -8
- package/dist/esm/examples/DeviceNodeFull.js.map +2 -2
- package/dist/esm/examples/DeviceNodeFullLegacy.js +16 -18
- package/dist/esm/examples/DeviceNodeFullLegacy.js.map +2 -2
- package/dist/esm/examples/IlluminatedRollerShade.js +1 -1
- package/dist/esm/examples/IlluminatedRollerShade.js.map +1 -1
- package/dist/esm/examples/LegacyStorageConverter.js +2 -3
- package/dist/esm/examples/LegacyStorageConverter.js.map +2 -2
- package/dist/esm/examples/LightDevice.js +1 -1
- package/dist/esm/examples/LightDevice.js.map +1 -1
- package/dist/esm/examples/MultiDeviceNode.js +2 -3
- package/dist/esm/examples/MultiDeviceNode.js.map +2 -2
- package/dist/esm/examples/MultiDeviceNodeLegacy.js +13 -14
- package/dist/esm/examples/MultiDeviceNodeLegacy.js.map +2 -2
- package/dist/esm/examples/SensorDeviceNode.js +2 -3
- package/dist/esm/examples/SensorDeviceNode.js.map +2 -2
- package/dist/esm/examples/cluster/DummyThreadNetworkCommissioningServer.js +11 -8
- package/dist/esm/examples/cluster/DummyThreadNetworkCommissioningServer.js.map +2 -2
- package/dist/esm/examples/cluster/DummyWifiNetworkCommissioningServer.js +15 -11
- package/dist/esm/examples/cluster/DummyWifiNetworkCommissioningServer.js.map +2 -2
- package/dist/esm/examples/cluster/DummyWifiNetworkCommissioningServerLegacy.js +12 -10
- package/dist/esm/examples/cluster/DummyWifiNetworkCommissioningServerLegacy.js.map +2 -2
- package/dist/esm/examples/cluster/MyFancyOwnFunctionality.js +8 -8
- package/dist/esm/examples/cluster/MyFancyOwnFunctionality.js.map +2 -2
- package/dist/esm/tutorial/example01.js +1 -1
- package/dist/esm/tutorial/example01.js.map +1 -1
- package/dist/esm/tutorial/example02.js +1 -1
- package/dist/esm/tutorial/example02.js.map +1 -1
- package/dist/esm/tutorial/example03.js +1 -1
- package/dist/esm/tutorial/example03.js.map +1 -1
- package/dist/esm/tutorial/example04.js +1 -1
- package/dist/esm/tutorial/example04.js.map +1 -1
- package/dist/esm/tutorial/example05.js +1 -1
- package/dist/esm/tutorial/example05.js.map +1 -1
- package/package.json +6 -5
- package/src/examples/BridgedDevicesNode.ts +2 -3
- package/src/examples/BridgedDevicesNodeLegacy.ts +15 -16
- package/src/examples/ComposedDeviceNode.ts +2 -3
- package/src/examples/ComposedDeviceNodeLegacy.ts +15 -16
- package/src/examples/ControllerNode.ts +2 -6
- package/src/examples/ControllerNodeLegacy.ts +22 -23
- package/src/examples/DeviceNode.ts +2 -3
- package/src/examples/DeviceNodeFull.ts +5 -10
- package/src/examples/DeviceNodeFullLegacy.ts +16 -18
- package/src/examples/IlluminatedRollerShade.ts +1 -1
- package/src/examples/LegacyStorageConverter.ts +3 -3
- package/src/examples/LightDevice.ts +1 -1
- package/src/examples/MultiDeviceNode.ts +2 -3
- package/src/examples/MultiDeviceNodeLegacy.ts +15 -15
- package/src/examples/SensorDeviceNode.ts +2 -3
- package/src/examples/cluster/DummyThreadNetworkCommissioningServer.ts +11 -8
- package/src/examples/cluster/DummyWifiNetworkCommissioningServer.ts +15 -11
- package/src/examples/cluster/DummyWifiNetworkCommissioningServerLegacy.ts +12 -10
- package/src/examples/cluster/MyFancyOwnFunctionality.ts +9 -9
- package/src/tsconfig.json +1 -1
- package/src/tutorial/example01.ts +1 -1
- package/src/tutorial/example02.ts +1 -1
- package/src/tutorial/example03.ts +1 -1
- package/src/tutorial/example04.ts +1 -1
- package/src/tutorial/example05.ts +1 -1
@@ -3,12 +3,11 @@
|
|
3
3
|
* Copyright 2022-2024 Matter.js Authors
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
5
5
|
*/
|
6
|
+
import { Bytes, Logger } from "@project-chip/matter.js-general";
|
6
7
|
import { GeneralCommissioningBehavior } from "@project-chip/matter.js/behavior/definitions/general-commissioning";
|
7
8
|
import { NetworkCommissioningBehavior } from "@project-chip/matter.js/behavior/definitions/network-commissioning";
|
8
9
|
import { NetworkCommissioning } from "@project-chip/matter.js/cluster";
|
9
|
-
|
10
|
-
import { ByteArray } from "@project-chip/matter.js/util";
|
11
|
-
const firstNetworkId = new ByteArray(32);
|
10
|
+
const firstNetworkId = new Uint8Array(32);
|
12
11
|
class DummyThreadNetworkCommissioningServer extends NetworkCommissioningBehavior.with(
|
13
12
|
NetworkCommissioning.Feature.ThreadNetworkInterface
|
14
13
|
) {
|
@@ -29,7 +28,7 @@ class DummyThreadNetworkCommissioningServer extends NetworkCommissioningBehavior
|
|
29
28
|
networkName: this.endpoint.env.vars.string("ble.thread.networkName"),
|
30
29
|
channel: this.endpoint.env.vars.number("ble.thread.channel"),
|
31
30
|
version: 130,
|
32
|
-
extendedAddress:
|
31
|
+
extendedAddress: Bytes.fromString(
|
33
32
|
(this.endpoint.env.vars.string("ble.thread.address") ?? "000000000000").toLowerCase()
|
34
33
|
),
|
35
34
|
rssi: -50,
|
@@ -47,7 +46,7 @@ class DummyThreadNetworkCommissioningServer extends NetworkCommissioningBehavior
|
|
47
46
|
breadcrumb
|
48
47
|
}) {
|
49
48
|
console.log(
|
50
|
-
`---> addOrUpdateThreadNetwork called on NetworkCommissioning cluster: ${
|
49
|
+
`---> addOrUpdateThreadNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(operationalDataset)} ${breadcrumb}`
|
51
50
|
);
|
52
51
|
this.session.context.assertFailSafeArmed("Failsafe timer needs to be armed to add or update networks.");
|
53
52
|
if (breadcrumb !== void 0) {
|
@@ -63,7 +62,9 @@ class DummyThreadNetworkCommissioningServer extends NetworkCommissioningBehavior
|
|
63
62
|
};
|
64
63
|
}
|
65
64
|
removeNetwork({ networkId, breadcrumb }) {
|
66
|
-
console.log(
|
65
|
+
console.log(
|
66
|
+
`---> removeNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${breadcrumb}`
|
67
|
+
);
|
67
68
|
this.session.context.assertFailSafeArmed("Failsafe timer needs to be armed to add or update networks.");
|
68
69
|
if (breadcrumb !== void 0) {
|
69
70
|
const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);
|
@@ -78,7 +79,9 @@ class DummyThreadNetworkCommissioningServer extends NetworkCommissioningBehavior
|
|
78
79
|
};
|
79
80
|
}
|
80
81
|
async connectNetwork({ networkId, breadcrumb }) {
|
81
|
-
console.log(
|
82
|
+
console.log(
|
83
|
+
`---> connectNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${breadcrumb}`
|
84
|
+
);
|
82
85
|
this.session.context.assertFailSafeArmed("Failsafe timer needs to be armed to add or update networks.");
|
83
86
|
if (breadcrumb !== void 0) {
|
84
87
|
const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);
|
@@ -98,7 +101,7 @@ class DummyThreadNetworkCommissioningServer extends NetworkCommissioningBehavior
|
|
98
101
|
}
|
99
102
|
reorderNetwork({ networkId, networkIndex, breadcrumb }) {
|
100
103
|
console.log(
|
101
|
-
`---> reorderNetwork called on NetworkCommissioning cluster: ${
|
104
|
+
`---> reorderNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${networkIndex} ${breadcrumb}`
|
102
105
|
);
|
103
106
|
if (breadcrumb !== void 0) {
|
104
107
|
const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../src/examples/cluster/DummyThreadNetworkCommissioningServer.ts"],
|
4
|
-
"sourcesContent": ["/**\n * @license\n * Copyright 2022-2024 Matter.js Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {
|
5
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,
|
4
|
+
"sourcesContent": ["/**\n * @license\n * Copyright 2022-2024 Matter.js Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Bytes, Logger } from \"@project-chip/matter.js-general\";\nimport { GeneralCommissioningBehavior } from \"@project-chip/matter.js/behavior/definitions/general-commissioning\";\nimport { NetworkCommissioningBehavior } from \"@project-chip/matter.js/behavior/definitions/network-commissioning\";\nimport { NetworkCommissioning } from \"@project-chip/matter.js/cluster\";\n\nconst firstNetworkId = new Uint8Array(32);\n\n/**\n * This represents a Dummy version of a Thread Network Commissioning Cluster Server without real thread related logic, beside\n * returning some values provided as CLI parameters. This dummy implementation is only there for tests/as showcase for BLE\n * commissioning of a device.\n */\nexport class DummyThreadNetworkCommissioningServer extends NetworkCommissioningBehavior.with(\n NetworkCommissioning.Feature.ThreadNetworkInterface,\n) {\n override scanNetworks({\n breadcrumb,\n }: NetworkCommissioning.ScanNetworksRequest): NetworkCommissioning.ScanNetworksResponse {\n console.log(`---> scanNetworks called on NetworkCommissioning cluster: ${breadcrumb}`);\n\n // Simulate successful scan\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);\n generalCommissioningCluster.state.breadcrumb = breadcrumb;\n }\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n this.state.lastNetworkingStatus = networkingStatus;\n\n const threadScanResults = [\n {\n panId: this.endpoint.env.vars.number(\"ble.thread.panId\"),\n extendedPanId: BigInt(this.endpoint.env.vars.string(\"ble.thread.extendedPanId\")),\n networkName: this.endpoint.env.vars.string(\"ble.thread.networkName\"),\n channel: this.endpoint.env.vars.number(\"ble.thread.channel\"),\n version: 130,\n extendedAddress: Bytes.fromString(\n (this.endpoint.env.vars.string(\"ble.thread.address\") ?? \"000000000000\").toLowerCase(),\n ),\n rssi: -50,\n lqi: 50,\n },\n ];\n console.log(Logger.toJSON(threadScanResults));\n\n return {\n networkingStatus,\n threadScanResults,\n };\n }\n\n override addOrUpdateThreadNetwork({\n operationalDataset,\n breadcrumb,\n }: NetworkCommissioning.AddOrUpdateThreadNetworkRequest) {\n console.log(\n `---> addOrUpdateThreadNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(operationalDataset)} ${breadcrumb}`,\n );\n\n this.session.context.assertFailSafeArmed(\"Failsafe timer needs to be armed to add or update networks.\");\n\n // Simulate successful add or update\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);\n generalCommissioningCluster.state.breadcrumb = breadcrumb;\n }\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n this.state.lastNetworkingStatus = networkingStatus;\n this.state.lastNetworkId = firstNetworkId;\n\n return {\n networkingStatus,\n networkIndex: 0,\n };\n }\n\n override removeNetwork({ networkId, breadcrumb }: NetworkCommissioning.RemoveNetworkRequest) {\n console.log(\n `---> removeNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${breadcrumb}`,\n );\n\n this.session.context.assertFailSafeArmed(\"Failsafe timer needs to be armed to add or update networks.\");\n\n // Simulate successful add or update\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);\n generalCommissioningCluster.state.breadcrumb = breadcrumb;\n }\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n this.state.lastNetworkingStatus = networkingStatus;\n this.state.lastNetworkId = firstNetworkId;\n\n return {\n networkingStatus,\n networkIndex: 0,\n };\n }\n\n override async connectNetwork({ networkId, breadcrumb }: NetworkCommissioning.ConnectNetworkRequest) {\n console.log(\n `---> connectNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${breadcrumb}`,\n );\n\n this.session.context.assertFailSafeArmed(\"Failsafe timer needs to be armed to add or update networks.\");\n\n // Simulate successful connection\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);\n generalCommissioningCluster.state.breadcrumb = breadcrumb;\n }\n\n this.state.networks[0].connected = true;\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n this.state.lastNetworkingStatus = networkingStatus;\n this.state.lastNetworkId = firstNetworkId;\n this.state.lastConnectErrorValue = null;\n\n // Announce operational in IP network\n const device = this.session.context;\n await device.startAnnouncement();\n\n return {\n networkingStatus,\n errorValue: null,\n };\n }\n\n override reorderNetwork({ networkId, networkIndex, breadcrumb }: NetworkCommissioning.ReorderNetworkRequest) {\n console.log(\n `---> reorderNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${networkIndex} ${breadcrumb}`,\n );\n\n // Simulate successful connection\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);\n generalCommissioningCluster.state.breadcrumb = breadcrumb;\n }\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n this.state.lastNetworkingStatus = networkingStatus;\n\n return {\n networkingStatus,\n networkIndex: 0,\n };\n }\n}\n"],
|
5
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,cAAc;AAC9B,SAAS,oCAAoC;AAC7C,SAAS,oCAAoC;AAC7C,SAAS,4BAA4B;AAErC,MAAM,iBAAiB,IAAI,WAAW,EAAE;AAOjC,MAAM,8CAA8C,6BAA6B;AAAA,EACpF,qBAAqB,QAAQ;AACjC,EAAE;AAAA,EACW,aAAa;AAAA,IAClB;AAAA,EACJ,GAAwF;AACpF,YAAQ,IAAI,6DAA6D,UAAU,EAAE;AAGrF,QAAI,eAAe,QAAW;AAC1B,YAAM,8BAA8B,KAAK,MAAM,IAAI,4BAA4B;AAC/E,kCAA4B,MAAM,aAAa;AAAA,IACnD;AAEA,UAAM,mBAAmB,qBAAqB,2BAA2B;AACzE,SAAK,MAAM,uBAAuB;AAElC,UAAM,oBAAoB;AAAA,MACtB;AAAA,QACI,OAAO,KAAK,SAAS,IAAI,KAAK,OAAO,kBAAkB;AAAA,QACvD,eAAe,OAAO,KAAK,SAAS,IAAI,KAAK,OAAO,0BAA0B,CAAC;AAAA,QAC/E,aAAa,KAAK,SAAS,IAAI,KAAK,OAAO,wBAAwB;AAAA,QACnE,SAAS,KAAK,SAAS,IAAI,KAAK,OAAO,oBAAoB;AAAA,QAC3D,SAAS;AAAA,QACT,iBAAiB,MAAM;AAAA,WAClB,KAAK,SAAS,IAAI,KAAK,OAAO,oBAAoB,KAAK,gBAAgB,YAAY;AAAA,QACxF;AAAA,QACA,MAAM;AAAA,QACN,KAAK;AAAA,MACT;AAAA,IACJ;AACA,YAAQ,IAAI,OAAO,OAAO,iBAAiB,CAAC;AAE5C,WAAO;AAAA,MACH;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AAAA,EAES,yBAAyB;AAAA,IAC9B;AAAA,IACA;AAAA,EACJ,GAAyD;AACrD,YAAQ;AAAA,MACJ,yEAAyE,MAAM,MAAM,kBAAkB,CAAC,IAAI,UAAU;AAAA,IAC1H;AAEA,SAAK,QAAQ,QAAQ,oBAAoB,6DAA6D;AAGtG,QAAI,eAAe,QAAW;AAC1B,YAAM,8BAA8B,KAAK,MAAM,IAAI,4BAA4B;AAC/E,kCAA4B,MAAM,aAAa;AAAA,IACnD;AAEA,UAAM,mBAAmB,qBAAqB,2BAA2B;AACzE,SAAK,MAAM,uBAAuB;AAClC,SAAK,MAAM,gBAAgB;AAE3B,WAAO;AAAA,MACH;AAAA,MACA,cAAc;AAAA,IAClB;AAAA,EACJ;AAAA,EAES,cAAc,EAAE,WAAW,WAAW,GAA8C;AACzF,YAAQ;AAAA,MACJ,8DAA8D,MAAM,MAAM,SAAS,CAAC,IAAI,UAAU;AAAA,IACtG;AAEA,SAAK,QAAQ,QAAQ,oBAAoB,6DAA6D;AAGtG,QAAI,eAAe,QAAW;AAC1B,YAAM,8BAA8B,KAAK,MAAM,IAAI,4BAA4B;AAC/E,kCAA4B,MAAM,aAAa;AAAA,IACnD;AAEA,UAAM,mBAAmB,qBAAqB,2BAA2B;AACzE,SAAK,MAAM,uBAAuB;AAClC,SAAK,MAAM,gBAAgB;AAE3B,WAAO;AAAA,MACH;AAAA,MACA,cAAc;AAAA,IAClB;AAAA,EACJ;AAAA,EAEA,MAAe,eAAe,EAAE,WAAW,WAAW,GAA+C;AACjG,YAAQ;AAAA,MACJ,+DAA+D,MAAM,MAAM,SAAS,CAAC,IAAI,UAAU;AAAA,IACvG;AAEA,SAAK,QAAQ,QAAQ,oBAAoB,6DAA6D;AAGtG,QAAI,eAAe,QAAW;AAC1B,YAAM,8BAA8B,KAAK,MAAM,IAAI,4BAA4B;AAC/E,kCAA4B,MAAM,aAAa;AAAA,IACnD;AAEA,SAAK,MAAM,SAAS,CAAC,EAAE,YAAY;AAEnC,UAAM,mBAAmB,qBAAqB,2BAA2B;AACzE,SAAK,MAAM,uBAAuB;AAClC,SAAK,MAAM,gBAAgB;AAC3B,SAAK,MAAM,wBAAwB;AAGnC,UAAM,SAAS,KAAK,QAAQ;AAC5B,UAAM,OAAO,kBAAkB;AAE/B,WAAO;AAAA,MACH;AAAA,MACA,YAAY;AAAA,IAChB;AAAA,EACJ;AAAA,EAES,eAAe,EAAE,WAAW,cAAc,WAAW,GAA+C;AACzG,YAAQ;AAAA,MACJ,+DAA+D,MAAM,MAAM,SAAS,CAAC,IAAI,YAAY,IAAI,UAAU;AAAA,IACvH;AAGA,QAAI,eAAe,QAAW;AAC1B,YAAM,8BAA8B,KAAK,MAAM,IAAI,4BAA4B;AAC/E,kCAA4B,MAAM,aAAa;AAAA,IACnD;AAEA,UAAM,mBAAmB,qBAAqB,2BAA2B;AACzE,SAAK,MAAM,uBAAuB;AAElC,WAAO;AAAA,MACH;AAAA,MACA,cAAc;AAAA,IAClB;AAAA,EACJ;AACJ;",
|
6
6
|
"names": []
|
7
7
|
}
|
@@ -3,16 +3,18 @@
|
|
3
3
|
* Copyright 2022-2024 Matter.js Authors
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
5
5
|
*/
|
6
|
+
import { Bytes } from "@project-chip/matter.js-general";
|
6
7
|
import { GeneralCommissioningBehavior } from "@project-chip/matter.js/behavior/definitions/general-commissioning";
|
7
8
|
import { NetworkCommissioningBehavior } from "@project-chip/matter.js/behavior/definitions/network-commissioning";
|
8
9
|
import { NetworkCommissioning } from "@project-chip/matter.js/cluster";
|
9
|
-
|
10
|
-
const firstNetworkId = new ByteArray(32);
|
10
|
+
const firstNetworkId = new Uint8Array(32);
|
11
11
|
class DummyWifiNetworkCommissioningServer extends NetworkCommissioningBehavior.with(
|
12
12
|
NetworkCommissioning.Feature.WiFiNetworkInterface
|
13
13
|
) {
|
14
14
|
scanNetworks({ ssid, breadcrumb }) {
|
15
|
-
console.log(
|
15
|
+
console.log(
|
16
|
+
`---> scanNetworks called on NetworkCommissioning cluster: ${ssid ? Bytes.toHex(ssid) : void 0} ${breadcrumb}`
|
17
|
+
);
|
16
18
|
if (breadcrumb !== void 0) {
|
17
19
|
const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);
|
18
20
|
generalCommissioningCluster.state.breadcrumb = breadcrumb;
|
@@ -30,11 +32,9 @@ class DummyWifiNetworkCommissioningServer extends NetworkCommissioningBehavior.w
|
|
30
32
|
wpa2Personal: true,
|
31
33
|
wpa3Personal: true
|
32
34
|
},
|
33
|
-
ssid: ssid ||
|
35
|
+
ssid: ssid || Bytes.fromString(this.endpoint.env.vars.get("ble.wifi.scanSsid") ?? "TestSSID"),
|
34
36
|
// Set a valid existing local Wi-Fi SSID here
|
35
|
-
bssid:
|
36
|
-
this.endpoint.env.vars.get("ble.wifi.scanBssid") ?? "00:00:00:00:00:00"
|
37
|
-
),
|
37
|
+
bssid: Bytes.fromString(this.endpoint.env.vars.get("ble.wifi.scanBssid") ?? "00:00:00:00:00:00"),
|
38
38
|
channel: 1
|
39
39
|
}
|
40
40
|
]
|
@@ -46,7 +46,7 @@ class DummyWifiNetworkCommissioningServer extends NetworkCommissioningBehavior.w
|
|
46
46
|
breadcrumb
|
47
47
|
}) {
|
48
48
|
console.log(
|
49
|
-
`---> addOrUpdateWiFiNetwork called on NetworkCommissioning cluster: ${
|
49
|
+
`---> addOrUpdateWiFiNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(ssid)} ${Bytes.toHex(credentials)} ${breadcrumb}`
|
50
50
|
);
|
51
51
|
this.session.context.assertFailSafeArmed("Failsafe timer needs to be armed to add or update networks.");
|
52
52
|
if (breadcrumb !== void 0) {
|
@@ -62,7 +62,9 @@ class DummyWifiNetworkCommissioningServer extends NetworkCommissioningBehavior.w
|
|
62
62
|
};
|
63
63
|
}
|
64
64
|
removeNetwork({ networkId, breadcrumb }) {
|
65
|
-
console.log(
|
65
|
+
console.log(
|
66
|
+
`---> removeNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${breadcrumb}`
|
67
|
+
);
|
66
68
|
this.session.context.assertFailSafeArmed("Failsafe timer needs to be armed to add or update networks.");
|
67
69
|
if (breadcrumb !== void 0) {
|
68
70
|
const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);
|
@@ -77,7 +79,9 @@ class DummyWifiNetworkCommissioningServer extends NetworkCommissioningBehavior.w
|
|
77
79
|
};
|
78
80
|
}
|
79
81
|
async connectNetwork({ networkId, breadcrumb }) {
|
80
|
-
console.log(
|
82
|
+
console.log(
|
83
|
+
`---> connectNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${breadcrumb}`
|
84
|
+
);
|
81
85
|
this.session.context.assertFailSafeArmed("Failsafe timer needs to be armed to add or update networks.");
|
82
86
|
if (breadcrumb !== void 0) {
|
83
87
|
const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);
|
@@ -97,7 +101,7 @@ class DummyWifiNetworkCommissioningServer extends NetworkCommissioningBehavior.w
|
|
97
101
|
}
|
98
102
|
reorderNetwork({ networkId, networkIndex, breadcrumb }) {
|
99
103
|
console.log(
|
100
|
-
`---> reorderNetwork called on NetworkCommissioning cluster: ${
|
104
|
+
`---> reorderNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${networkIndex} ${breadcrumb}`
|
101
105
|
);
|
102
106
|
if (breadcrumb !== void 0) {
|
103
107
|
const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../src/examples/cluster/DummyWifiNetworkCommissioningServer.ts"],
|
4
|
-
"sourcesContent": ["/**\n * @license\n * Copyright 2022-2024 Matter.js Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {
|
5
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,
|
4
|
+
"sourcesContent": ["/**\n * @license\n * Copyright 2022-2024 Matter.js Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Bytes } from \"@project-chip/matter.js-general\";\nimport { GeneralCommissioningBehavior } from \"@project-chip/matter.js/behavior/definitions/general-commissioning\";\nimport { NetworkCommissioningBehavior } from \"@project-chip/matter.js/behavior/definitions/network-commissioning\";\nimport { NetworkCommissioning } from \"@project-chip/matter.js/cluster\";\n\nconst firstNetworkId = new Uint8Array(32);\n\n/**\n * This represents a Dummy version of a Wifi Network Commissioning Cluster Server without real Wifi related logic, beside\n * returning some values provided as CLI parameters. This dummy implementation is only there for tests/as showcase for BLE\n * commissioning of a device.\n */\nexport class DummyWifiNetworkCommissioningServer extends NetworkCommissioningBehavior.with(\n NetworkCommissioning.Feature.WiFiNetworkInterface,\n) {\n override scanNetworks({ ssid, breadcrumb }: NetworkCommissioning.ScanNetworksRequest) {\n console.log(\n `---> scanNetworks called on NetworkCommissioning cluster: ${ssid ? Bytes.toHex(ssid) : undefined} ${breadcrumb}`,\n );\n\n // Simulate successful scan\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);\n generalCommissioningCluster.state.breadcrumb = breadcrumb;\n }\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n this.state.lastNetworkingStatus = networkingStatus;\n\n return {\n networkingStatus,\n wiFiScanResults: [\n {\n security: {\n unencrypted: false,\n wep: false,\n wpaPersonal: false,\n wpa2Personal: true,\n wpa3Personal: true,\n },\n ssid: ssid || Bytes.fromString(this.endpoint.env.vars.get(\"ble.wifi.scanSsid\") ?? \"TestSSID\"), // Set a valid existing local Wi-Fi SSID here\n bssid: Bytes.fromString(this.endpoint.env.vars.get(\"ble.wifi.scanBssid\") ?? \"00:00:00:00:00:00\"),\n channel: 1,\n },\n ],\n };\n }\n\n override addOrUpdateWiFiNetwork({\n ssid,\n credentials,\n breadcrumb,\n }: NetworkCommissioning.AddOrUpdateWiFiNetworkRequest) {\n console.log(\n `---> addOrUpdateWiFiNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(ssid)} ${Bytes.toHex(credentials)} ${breadcrumb}`,\n );\n\n this.session.context.assertFailSafeArmed(\"Failsafe timer needs to be armed to add or update networks.\");\n\n // Simulate successful add or update\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);\n generalCommissioningCluster.state.breadcrumb = breadcrumb;\n }\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n this.state.lastNetworkingStatus = networkingStatus;\n this.state.lastNetworkId = firstNetworkId;\n\n return {\n networkingStatus,\n networkIndex: 0,\n };\n }\n\n override removeNetwork({ networkId, breadcrumb }: NetworkCommissioning.RemoveNetworkRequest) {\n console.log(\n `---> removeNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${breadcrumb}`,\n );\n\n this.session.context.assertFailSafeArmed(\"Failsafe timer needs to be armed to add or update networks.\");\n\n // Simulate successful add or update\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);\n generalCommissioningCluster.state.breadcrumb = breadcrumb;\n }\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n this.state.lastNetworkingStatus = networkingStatus;\n this.state.lastNetworkId = firstNetworkId;\n\n return {\n networkingStatus,\n networkIndex: 0,\n };\n }\n\n override async connectNetwork({ networkId, breadcrumb }: NetworkCommissioning.ConnectNetworkRequest) {\n console.log(\n `---> connectNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${breadcrumb}`,\n );\n\n this.session.context.assertFailSafeArmed(\"Failsafe timer needs to be armed to add or update networks.\");\n\n // Simulate successful connection\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);\n generalCommissioningCluster.state.breadcrumb = breadcrumb;\n }\n\n this.state.networks[0].connected = true;\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n this.state.lastNetworkingStatus = networkingStatus;\n this.state.lastNetworkId = firstNetworkId;\n this.state.lastConnectErrorValue = null;\n\n // Announce operational in IP network\n const device = this.session.context;\n await device.startAnnouncement();\n\n return {\n networkingStatus,\n errorValue: null,\n };\n }\n\n override reorderNetwork({ networkId, networkIndex, breadcrumb }: NetworkCommissioning.ReorderNetworkRequest) {\n console.log(\n `---> reorderNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${networkIndex} ${breadcrumb}`,\n );\n\n // Simulate successful connection\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = this.agent.get(GeneralCommissioningBehavior);\n generalCommissioningCluster.state.breadcrumb = breadcrumb;\n }\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n this.state.lastNetworkingStatus = networkingStatus;\n\n return {\n networkingStatus,\n networkIndex: 0,\n };\n }\n}\n"],
|
5
|
+
"mappings": "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",
|
6
6
|
"names": []
|
7
7
|
}
|
@@ -3,14 +3,14 @@
|
|
3
3
|
* Copyright 2022-2024 Matter.js Authors
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
5
5
|
*/
|
6
|
-
import { getParameter } from "@project-chip/matter
|
6
|
+
import { getParameter } from "@project-chip/matter.js-nodejs";
|
7
7
|
import {
|
8
8
|
ClusterServer,
|
9
9
|
GeneralCommissioningCluster,
|
10
10
|
NetworkCommissioning
|
11
11
|
} from "@project-chip/matter.js/cluster";
|
12
|
-
import {
|
13
|
-
const firstNetworkId = new
|
12
|
+
import { Bytes } from "../../../../general/dist/cjs/index.js";
|
13
|
+
const firstNetworkId = new Uint8Array(32);
|
14
14
|
const WifiNetworkCluster = NetworkCommissioning.Cluster.with(NetworkCommissioning.Feature.WiFiNetworkInterface);
|
15
15
|
const Server = ClusterServer(
|
16
16
|
NetworkCommissioning.Cluster.with(NetworkCommissioning.Feature.WiFiNetworkInterface),
|
@@ -27,7 +27,9 @@ const Server = ClusterServer(
|
|
27
27
|
},
|
28
28
|
{
|
29
29
|
scanNetworks: async ({ request: { ssid, breadcrumb }, attributes: { lastNetworkingStatus }, endpoint }) => {
|
30
|
-
console.log(
|
30
|
+
console.log(
|
31
|
+
`---> scanNetworks called on NetworkCommissioning cluster: ${ssid ? Bytes.toHex(ssid) : void 0} ${breadcrumb}`
|
32
|
+
);
|
31
33
|
if (breadcrumb !== void 0) {
|
32
34
|
const generalCommissioningCluster = endpoint.getClusterServer(GeneralCommissioningCluster);
|
33
35
|
generalCommissioningCluster?.setBreadcrumbAttribute(breadcrumb);
|
@@ -45,9 +47,9 @@ const Server = ClusterServer(
|
|
45
47
|
wpa2Personal: true,
|
46
48
|
wpa3Personal: true
|
47
49
|
},
|
48
|
-
ssid: ssid ||
|
50
|
+
ssid: ssid || Bytes.fromString(getParameter("ble-wifi-scan-ssid") ?? "TestSSID"),
|
49
51
|
// Set a valid existing local Wi-Fi SSID here
|
50
|
-
bssid:
|
52
|
+
bssid: Bytes.fromString(getParameter("ble-wifi-scan-bssid") ?? "00:00:00:00:00:00"),
|
51
53
|
channel: 1
|
52
54
|
}
|
53
55
|
]
|
@@ -60,7 +62,7 @@ const Server = ClusterServer(
|
|
60
62
|
session
|
61
63
|
}) => {
|
62
64
|
console.log(
|
63
|
-
`---> addOrUpdateWiFiNetwork called on NetworkCommissioning cluster: ${
|
65
|
+
`---> addOrUpdateWiFiNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(ssid)} ${Bytes.toHex(credentials)} ${breadcrumb}`
|
64
66
|
);
|
65
67
|
session.context.assertFailSafeArmed("Failsafe timer needs to be armed to add or update networks.");
|
66
68
|
if (breadcrumb !== void 0) {
|
@@ -82,7 +84,7 @@ const Server = ClusterServer(
|
|
82
84
|
session
|
83
85
|
}) => {
|
84
86
|
console.log(
|
85
|
-
`---> removeNetwork called on NetworkCommissioning cluster: ${
|
87
|
+
`---> removeNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${breadcrumb}`
|
86
88
|
);
|
87
89
|
session.context.assertFailSafeArmed("Failsafe timer needs to be armed to add or update networks.");
|
88
90
|
if (breadcrumb !== void 0) {
|
@@ -104,7 +106,7 @@ const Server = ClusterServer(
|
|
104
106
|
session
|
105
107
|
}) => {
|
106
108
|
console.log(
|
107
|
-
`---> connectNetwork called on NetworkCommissioning cluster: ${
|
109
|
+
`---> connectNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${breadcrumb}`
|
108
110
|
);
|
109
111
|
session.context.assertFailSafeArmed("Failsafe timer needs to be armed to add or update networks.");
|
110
112
|
if (breadcrumb !== void 0) {
|
@@ -131,7 +133,7 @@ const Server = ClusterServer(
|
|
131
133
|
endpoint
|
132
134
|
}) => {
|
133
135
|
console.log(
|
134
|
-
`---> reorderNetwork called on NetworkCommissioning cluster: ${
|
136
|
+
`---> reorderNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${networkIndex} ${breadcrumb}`
|
135
137
|
);
|
136
138
|
if (breadcrumb !== void 0) {
|
137
139
|
const generalCommissioningCluster = endpoint.getClusterServer(GeneralCommissioningCluster);
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../src/examples/cluster/DummyWifiNetworkCommissioningServerLegacy.ts"],
|
4
|
-
"sourcesContent": ["/**\n * @license\n * Copyright 2022-2024 Matter.js Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getParameter } from \"@project-chip/matter
|
5
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,oBAAoB;AAC7B;AAAA,EACI;AAAA,EAEA;AAAA,EACA;AAAA,OACG;AACP,SAAS,
|
4
|
+
"sourcesContent": ["/**\n * @license\n * Copyright 2022-2024 Matter.js Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getParameter } from \"@project-chip/matter.js-nodejs\";\nimport {\n ClusterServer,\n ClusterServerObj,\n GeneralCommissioningCluster,\n NetworkCommissioning,\n} from \"@project-chip/matter.js/cluster\";\nimport { Bytes } from \"../../../../general/dist/cjs/index.js\";\n\nconst firstNetworkId = new Uint8Array(32);\n\nconst WifiNetworkCluster = NetworkCommissioning.Cluster.with(NetworkCommissioning.Feature.WiFiNetworkInterface);\n\n/**\n * This represents a Dummy version of a Wifi Network Commissioning Cluster Server without real Wifi related logic, beside\n * returning some values provided as CLI parameters. This dummy implementation is only there for tests/as showcase for BLE\n * commissioning of a device.\n */\nconst Server: ClusterServerObj<typeof WifiNetworkCluster> = ClusterServer(\n NetworkCommissioning.Cluster.with(NetworkCommissioning.Feature.WiFiNetworkInterface),\n {\n maxNetworks: 1,\n interfaceEnabled: true,\n lastConnectErrorValue: 0,\n lastNetworkId: null,\n lastNetworkingStatus: null,\n networks: [{ networkId: firstNetworkId, connected: false }],\n scanMaxTimeSeconds: 3,\n connectMaxTimeSeconds: 3,\n supportedWiFiBands: [NetworkCommissioning.WiFiBand[\"2G4\"]],\n },\n {\n scanNetworks: async ({ request: { ssid, breadcrumb }, attributes: { lastNetworkingStatus }, endpoint }) => {\n console.log(\n `---> scanNetworks called on NetworkCommissioning cluster: ${ssid ? Bytes.toHex(ssid) : undefined} ${breadcrumb}`,\n );\n\n // Simulate successful scan\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = endpoint.getClusterServer(GeneralCommissioningCluster);\n generalCommissioningCluster?.setBreadcrumbAttribute(breadcrumb);\n }\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n lastNetworkingStatus?.setLocal(networkingStatus);\n\n return {\n networkingStatus,\n wiFiScanResults: [\n {\n security: {\n unencrypted: false,\n wep: false,\n wpaPersonal: false,\n wpa2Personal: true,\n wpa3Personal: true,\n },\n ssid: ssid || Bytes.fromString(getParameter(\"ble-wifi-scan-ssid\") ?? \"TestSSID\"), // Set a valid existing local Wi-Fi SSID here\n bssid: Bytes.fromString(getParameter(\"ble-wifi-scan-bssid\") ?? \"00:00:00:00:00:00\"),\n channel: 1,\n },\n ],\n };\n },\n addOrUpdateWiFiNetwork: async ({\n request: { ssid, credentials, breadcrumb },\n attributes: { lastNetworkingStatus, lastNetworkId },\n endpoint,\n session,\n }) => {\n console.log(\n `---> addOrUpdateWiFiNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(ssid)} ${Bytes.toHex(credentials)} ${breadcrumb}`,\n );\n\n session.context.assertFailSafeArmed(\"Failsafe timer needs to be armed to add or update networks.\");\n\n // Simulate successful add or update\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = endpoint.getClusterServer(GeneralCommissioningCluster);\n generalCommissioningCluster?.setBreadcrumbAttribute(breadcrumb);\n }\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n lastNetworkingStatus?.setLocal(networkingStatus);\n lastNetworkId?.setLocal(firstNetworkId);\n\n return {\n networkingStatus,\n networkIndex: 0,\n };\n },\n removeNetwork: async ({\n request: { networkId, breadcrumb },\n attributes: { lastNetworkingStatus, lastNetworkId },\n endpoint,\n session,\n }) => {\n console.log(\n `---> removeNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${breadcrumb}`,\n );\n\n session.context.assertFailSafeArmed(\"Failsafe timer needs to be armed to add or update networks.\");\n\n // Simulate successful add or update\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = endpoint.getClusterServer(GeneralCommissioningCluster);\n generalCommissioningCluster?.setBreadcrumbAttribute(breadcrumb);\n }\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n lastNetworkingStatus?.setLocal(networkingStatus);\n lastNetworkId?.setLocal(firstNetworkId);\n\n return {\n networkingStatus,\n networkIndex: 0,\n };\n },\n connectNetwork: async ({\n request: { networkId, breadcrumb },\n attributes: { lastNetworkingStatus, lastNetworkId, lastConnectErrorValue, networks },\n endpoint,\n session,\n }) => {\n console.log(\n `---> connectNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${breadcrumb}`,\n );\n\n session.context.assertFailSafeArmed(\"Failsafe timer needs to be armed to add or update networks.\");\n\n // Simulate successful connection\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = endpoint.getClusterServer(GeneralCommissioningCluster);\n generalCommissioningCluster?.setBreadcrumbAttribute(breadcrumb);\n }\n\n const networkList = networks.getLocal();\n networkList[0].connected = true;\n networks.setLocal(networkList);\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n lastNetworkingStatus?.setLocal(networkingStatus);\n lastNetworkId?.setLocal(firstNetworkId);\n lastConnectErrorValue?.setLocal(null);\n\n // Announce operational in IP network\n const device = session.context;\n await device.startAnnouncement();\n\n return {\n networkingStatus,\n errorValue: null,\n };\n },\n reorderNetwork: async ({\n request: { networkId, networkIndex, breadcrumb },\n attributes: { lastNetworkingStatus },\n endpoint,\n }) => {\n console.log(\n `---> reorderNetwork called on NetworkCommissioning cluster: ${Bytes.toHex(networkId)} ${networkIndex} ${breadcrumb}`,\n );\n\n // Simulate successful connection\n if (breadcrumb !== undefined) {\n const generalCommissioningCluster = endpoint.getClusterServer(GeneralCommissioningCluster);\n generalCommissioningCluster?.setBreadcrumbAttribute(breadcrumb);\n }\n\n const networkingStatus = NetworkCommissioning.NetworkCommissioningStatus.Success;\n lastNetworkingStatus?.setLocal(networkingStatus);\n\n return {\n networkingStatus,\n networkIndex: 0,\n };\n },\n },\n);\n\nexport default Server;\n"],
|
5
|
+
"mappings": "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",
|
6
6
|
"names": []
|
7
7
|
}
|
@@ -3,6 +3,14 @@
|
|
3
3
|
* Copyright 2022-2024 Matter.js Authors
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
5
5
|
*/
|
6
|
+
import {
|
7
|
+
AttributeElement,
|
8
|
+
ClusterElement,
|
9
|
+
ClusterModel,
|
10
|
+
CommandElement,
|
11
|
+
EventElement,
|
12
|
+
FieldElement
|
13
|
+
} from "@project-chip/matter.js-model";
|
6
14
|
import { ClusterBehavior } from "@project-chip/matter.js/behavior/cluster";
|
7
15
|
import {
|
8
16
|
Attribute,
|
@@ -13,14 +21,6 @@ import {
|
|
13
21
|
MutableCluster
|
14
22
|
} from "@project-chip/matter.js/cluster";
|
15
23
|
import { ClusterId, VendorId } from "@project-chip/matter.js/datatype";
|
16
|
-
import {
|
17
|
-
AttributeElement,
|
18
|
-
ClusterElement,
|
19
|
-
ClusterModel,
|
20
|
-
CommandElement,
|
21
|
-
EventElement,
|
22
|
-
FieldElement
|
23
|
-
} from "@project-chip/matter.js/model";
|
24
24
|
import { TlvField, TlvInt16, TlvNullable, TlvObject, TlvString } from "@project-chip/matter.js/tlv";
|
25
25
|
const myFancyClusterId = ClusterId.buildVendorSpecific(VendorId(65524), 64512);
|
26
26
|
var MyFancyOwnFunctionality;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../../src/examples/cluster/MyFancyOwnFunctionality.ts"],
|
4
|
-
"sourcesContent": ["/**\n * @license\n * Copyright 2022-2024 Matter.js Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {
|
5
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;
|
4
|
+
"sourcesContent": ["/**\n * @license\n * Copyright 2022-2024 Matter.js Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Identity, MaybePromise } from \"@project-chip/matter.js-general\";\nimport {\n AttributeElement,\n ClusterElement,\n ClusterModel,\n CommandElement,\n EventElement,\n FieldElement,\n} from \"@project-chip/matter.js-model\";\nimport { ClusterBehavior } from \"@project-chip/matter.js/behavior/cluster\";\nimport {\n Attribute,\n ClusterRegistry,\n Command,\n Event,\n EventPriority,\n MutableCluster,\n} from \"@project-chip/matter.js/cluster\";\nimport { ClusterId, VendorId } from \"@project-chip/matter.js/datatype\";\nimport { TlvField, TlvInt16, TlvNullable, TlvObject, TlvString, TypeFromSchema } from \"@project-chip/matter.js/tlv\";\n\n/** Define the Cluster ID, custom clusters use a special extended formt that also contains the Vendor Id */\nconst myFancyClusterId = ClusterId.buildVendorSpecific(VendorId(0xfff4), 0xfc00);\n\n/**\n * Defines the Cluster on Tlv Schema level in a special namespace structure to match the official cluster\n * structures of matter.js.\n * All places that contains \"MyFancy...\" belong to the custom cluster details, all rest can be left statically like the\n * given names.\n * For more examples and usages of features in such clusters and how the code should look then check the standard\n * cluster Tlv definitions in packages/matter.js/cluster/definitions/*\n */\nexport namespace MyFancyOwnFunctionality {\n /**\n * Input to the MyFancyOwnFunctionality myFancyCommand command\n */\n export const TlvMyFancyCommandRequest = TlvObject({ value: TlvField(0, TlvString) });\n\n /**\n * Response of the MyFancyOwnFunctionality myFancyCommand command\n */\n export const TlvMyFancyCommandResponse = TlvObject({ response: TlvField(0, TlvString) });\n\n /**\n * Event for the MyFancyOwnFunctionality myFancyEvent event\n */\n export const TlvMyFancyEvent = TlvObject({ eventValue: TlvField(0, TlvString) });\n\n /**\n * @see {@link Cluster}\n */\n export const ClusterInstance = MutableCluster({\n id: myFancyClusterId,\n name: \"MyFancyOwnFunctionality\",\n revision: 1,\n\n attributes: {\n /** My fancy attribute */\n myFancyValue: Attribute(0x0, TlvNullable(TlvInt16)),\n },\n\n commands: {\n /** My fancy command */\n myFancyCommand: Command(0x1, TlvMyFancyCommandRequest, 0x2, TlvMyFancyCommandResponse),\n },\n\n events: {\n /** My fancy event */\n myFancyEvent: Event(0x5, EventPriority.Info, TlvMyFancyEvent),\n },\n });\n\n /**\n * My Fancy Cluster\n *\n * This cluster provides an interface to some fancy custom functions.\n */\n export interface Cluster extends Identity<typeof ClusterInstance> {}\n\n export const Cluster: Cluster = ClusterInstance;\n\n export const Complete = Cluster;\n}\n\nexport type MyFancyOwnFunctionalityCluster = MyFancyOwnFunctionality.Cluster;\nexport const MyFancyOwnFunctionalityCluster = MyFancyOwnFunctionality.Cluster;\nClusterRegistry.register(MyFancyOwnFunctionality.Complete);\n\n/**\n * matter.js Model Schema for the cluster, need to match with the Tlv Schema above.\n * See more details in packages/matter.js/behavior/definitions/*\n */\nconst MyFancySchema = ClusterElement({\n name: \"MyFancyOwnFunctionality\",\n id: myFancyClusterId,\n classification: \"application\",\n description: \"My Fancy Functionality\",\n\n children: [\n AttributeElement({ name: \"ClusterRevision\", id: 0xfffd, type: \"ClusterRevision\", default: 1 }),\n\n AttributeElement({\n name: \"MyFancyValue\",\n id: 0x0,\n type: \"int16\",\n access: \"R V\",\n conformance: \"M\",\n quality: \"X\",\n }),\n\n CommandElement({\n name: \"MyFancyCommand\",\n id: 0x1,\n access: \"O\",\n conformance: \"M\",\n direction: \"request\",\n response: \"MyFancyCommandResponse\",\n\n children: [FieldElement({ name: \"value\", id: 0x0, type: \"string\", conformance: \"M\" })],\n }),\n CommandElement({\n name: \"MyFancyCommandResponse\",\n id: 0x2,\n conformance: \"M\",\n direction: \"request\",\n\n children: [FieldElement({ name: \"response\", id: 0x0, type: \"string\", conformance: \"M\" })],\n }),\n\n EventElement({\n name: \"MyFancyEvent\",\n id: 0x5,\n access: \"V\",\n conformance: \"O\",\n priority: \"info\",\n children: [\n FieldElement({\n name: \"EventValue\",\n id: 0x0,\n type: \"string\",\n conformance: \"M\",\n }),\n ],\n }),\n ],\n});\n\n/**\n * Interface definitions - exposes the Implementation interface for the cluster and some types to be used in the\n * cluster implementations.\n */\nexport type MyFancyCommandRequest = TypeFromSchema<typeof MyFancyOwnFunctionality.TlvMyFancyCommandRequest>;\nexport type MyFancyCommandResponse = TypeFromSchema<typeof MyFancyOwnFunctionality.TlvMyFancyCommandResponse>;\nexport type MyFancyEvent = TypeFromSchema<typeof MyFancyOwnFunctionality.TlvMyFancyEvent>;\n\nexport namespace MyFancyOwnFunctionalityInterface {\n export interface Base {\n myFancyCommand(request: MyFancyCommandRequest): MaybePromise<MyFancyCommandResponse>;\n }\n}\n\nexport type MyFancyOwnFunctionalityInterface = {\n components: [{ flags: {}; methods: MyFancyOwnFunctionalityInterface.Base }];\n};\n\n/**\n * Behavior definition for the cluster command handler implementation\n */\nexport const MyFancyOwnFunctionalityBehavior = ClusterBehavior.withInterface<MyFancyOwnFunctionalityInterface>().for(\n MyFancyOwnFunctionality.Cluster,\n new ClusterModel(MyFancySchema),\n);\n\ntype MyFancyOwnFunctionalityBehaviorType = InstanceType<typeof MyFancyOwnFunctionalityBehavior>;\nexport interface MyFancyOwnFunctionalityBehavior extends MyFancyOwnFunctionalityBehaviorType {}\ntype StateType = InstanceType<typeof MyFancyOwnFunctionalityBehavior.State>;\nexport namespace MyFancyOwnFunctionalityBehavior {\n export interface State extends StateType {}\n}\n"],
|
5
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,uBAAuB;AAChC;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,WAAW,gBAAgB;AACpC,SAAS,UAAU,UAAU,aAAa,WAAW,iBAAiC;AAGtF,MAAM,mBAAmB,UAAU,oBAAoB,SAAS,KAAM,GAAG,KAAM;AAUxE,IAAU;AAAA,CAAV,CAAUA,6BAAV;AAII,EAAMA,yBAAA,2BAA2B,UAAU,EAAE,OAAO,SAAS,GAAG,SAAS,EAAE,CAAC;AAK5E,EAAMA,yBAAA,4BAA4B,UAAU,EAAE,UAAU,SAAS,GAAG,SAAS,EAAE,CAAC;AAKhF,EAAMA,yBAAA,kBAAkB,UAAU,EAAE,YAAY,SAAS,GAAG,SAAS,EAAE,CAAC;AAKxE,EAAMA,yBAAA,kBAAkB,eAAe;AAAA,IAC1C,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,UAAU;AAAA,IAEV,YAAY;AAAA;AAAA,MAER,cAAc,UAAU,GAAK,YAAY,QAAQ,CAAC;AAAA,IACtD;AAAA,IAEA,UAAU;AAAA;AAAA,MAEN,gBAAgB,QAAQ,GAAKA,yBAAA,0BAA0B,GAAKA,yBAAA,yBAAyB;AAAA,IACzF;AAAA,IAEA,QAAQ;AAAA;AAAA,MAEJ,cAAc,MAAM,GAAK,cAAc,MAAMA,yBAAA,eAAe;AAAA,IAChE;AAAA,EACJ,CAAC;AASM,EAAMA,yBAAA,UAAmBA,yBAAA;AAEzB,EAAMA,yBAAA,WAAWA,yBAAA;AAAA,GAjDX;AAqDV,MAAM,iCAAiC,wBAAwB;AACtE,gBAAgB,SAAS,wBAAwB,QAAQ;AAMzD,MAAM,gBAAgB,eAAe;AAAA,EACjC,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,gBAAgB;AAAA,EAChB,aAAa;AAAA,EAEb,UAAU;AAAA,IACN,iBAAiB,EAAE,MAAM,mBAAmB,IAAI,OAAQ,MAAM,mBAAmB,SAAS,EAAE,CAAC;AAAA,IAE7F,iBAAiB;AAAA,MACb,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,SAAS;AAAA,IACb,CAAC;AAAA,IAED,eAAe;AAAA,MACX,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,WAAW;AAAA,MACX,UAAU;AAAA,MAEV,UAAU,CAAC,aAAa,EAAE,MAAM,SAAS,IAAI,GAAK,MAAM,UAAU,aAAa,IAAI,CAAC,CAAC;AAAA,IACzF,CAAC;AAAA,IACD,eAAe;AAAA,MACX,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,aAAa;AAAA,MACb,WAAW;AAAA,MAEX,UAAU,CAAC,aAAa,EAAE,MAAM,YAAY,IAAI,GAAK,MAAM,UAAU,aAAa,IAAI,CAAC,CAAC;AAAA,IAC5F,CAAC;AAAA,IAED,aAAa;AAAA,MACT,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,UAAU;AAAA,MACV,UAAU;AAAA,QACN,aAAa;AAAA,UACT,MAAM;AAAA,UACN,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,aAAa;AAAA,QACjB,CAAC;AAAA,MACL;AAAA,IACJ,CAAC;AAAA,EACL;AACJ,CAAC;AAuBM,MAAM,kCAAkC,gBAAgB,cAAgD,EAAE;AAAA,EAC7G,wBAAwB;AAAA,EACxB,IAAI,aAAa,aAAa;AAClC;",
|
6
6
|
"names": ["MyFancyOwnFunctionality"]
|
7
7
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../src/tutorial/example01.ts"],
|
4
|
-
"sourcesContent": ["import \"@project-chip/matter
|
4
|
+
"sourcesContent": ["import \"@project-chip/matter.js-nodejs\";\nimport { ServerNode } from \"@project-chip/matter.js/node\";\n\nconst node = await ServerNode.create();\n\nawait node.run();\n"],
|
5
5
|
"mappings": "AAAA,OAAO;AACP,SAAS,kBAAkB;AAE3B,MAAM,OAAO,MAAM,WAAW,OAAO;AAErC,MAAM,KAAK,IAAI;",
|
6
6
|
"names": []
|
7
7
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../src/tutorial/example02.ts"],
|
4
|
-
"sourcesContent": ["import \"@project-chip/matter
|
4
|
+
"sourcesContent": ["import \"@project-chip/matter.js-nodejs\";\nimport { OnOffLightDevice } from \"@project-chip/matter.js/devices/OnOffLightDevice\";\nimport { ServerNode } from \"@project-chip/matter.js/node\";\n\nconst node = await ServerNode.create();\n\nawait node.add(OnOffLightDevice);\n\nawait node.run();\n"],
|
5
5
|
"mappings": "AAAA,OAAO;AACP,SAAS,wBAAwB;AACjC,SAAS,kBAAkB;AAE3B,MAAM,OAAO,MAAM,WAAW,OAAO;AAErC,MAAM,KAAK,IAAI,gBAAgB;AAE/B,MAAM,KAAK,IAAI;",
|
6
6
|
"names": []
|
7
7
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import "@project-chip/matter
|
1
|
+
import "@project-chip/matter.js-nodejs";
|
2
2
|
import { OnOffLightDevice, OnOffLightRequirements } from "@project-chip/matter.js/devices/OnOffLightDevice";
|
3
3
|
import { ServerNode } from "@project-chip/matter.js/node";
|
4
4
|
class MyOnOffServer extends OnOffLightRequirements.OnOffServer {
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../src/tutorial/example03.ts"],
|
4
|
-
"sourcesContent": ["import \"@project-chip/matter
|
4
|
+
"sourcesContent": ["import \"@project-chip/matter.js-nodejs\";\nimport { OnOffLightDevice, OnOffLightRequirements } from \"@project-chip/matter.js/devices/OnOffLightDevice\";\nimport { ServerNode } from \"@project-chip/matter.js/node\";\n\nclass MyOnOffServer extends OnOffLightRequirements.OnOffServer {\n override on() {\n console.log(\"Turning on\");\n }\n\n override off() {\n console.log(\"Turning off\");\n }\n}\n\nconst node = await ServerNode.create();\n\nawait node.add(OnOffLightDevice.with(MyOnOffServer));\n\nawait node.run();\n"],
|
5
5
|
"mappings": "AAAA,OAAO;AACP,SAAS,kBAAkB,8BAA8B;AACzD,SAAS,kBAAkB;AAE3B,MAAM,sBAAsB,uBAAuB,YAAY;AAAA,EAClD,KAAK;AACV,YAAQ,IAAI,YAAY;AAAA,EAC5B;AAAA,EAES,MAAM;AACX,YAAQ,IAAI,aAAa;AAAA,EAC7B;AACJ;AAEA,MAAM,OAAO,MAAM,WAAW,OAAO;AAErC,MAAM,KAAK,IAAI,iBAAiB,KAAK,aAAa,CAAC;AAEnD,MAAM,KAAK,IAAI;",
|
6
6
|
"names": []
|
7
7
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../src/tutorial/example04.ts"],
|
4
|
-
"sourcesContent": ["import \"@project-chip/matter
|
4
|
+
"sourcesContent": ["import \"@project-chip/matter.js-nodejs\";\nimport { OnOffLightDevice } from \"@project-chip/matter.js/devices/OnOffLightDevice\";\nimport { ServerNode } from \"@project-chip/matter.js/node\";\n\nconst node = await ServerNode.create();\n\nconst light = await node.add(OnOffLightDevice);\n\nlight.events.onOff.onOff$Changed.on(newValue => {\n console.log(`Light is ${newValue ? \"on\" : \"off\"}`);\n});\n\nawait node.run();\n"],
|
5
5
|
"mappings": "AAAA,OAAO;AACP,SAAS,wBAAwB;AACjC,SAAS,kBAAkB;AAE3B,MAAM,OAAO,MAAM,WAAW,OAAO;AAErC,MAAM,QAAQ,MAAM,KAAK,IAAI,gBAAgB;AAE7C,MAAM,OAAO,MAAM,cAAc,GAAG,cAAY;AAC5C,UAAQ,IAAI,YAAY,WAAW,OAAO,KAAK,EAAE;AACrD,CAAC;AAED,MAAM,KAAK,IAAI;",
|
6
6
|
"names": []
|
7
7
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"version": 3,
|
3
3
|
"sources": ["../../../src/tutorial/example05.ts"],
|
4
|
-
"sourcesContent": ["import \"@project-chip/matter
|
4
|
+
"sourcesContent": ["import \"@project-chip/matter.js-nodejs\";\nimport { OnOffLightDevice } from \"@project-chip/matter.js/devices/OnOffLightDevice\";\nimport { ServerNode } from \"@project-chip/matter.js/node\";\n\nconst node = await ServerNode.create();\n\nconst light = await node.add(OnOffLightDevice);\n\nawait node.start();\n\nawait light.act(async agent => {\n await agent.onOff.toggle();\n console.log(\"On/off state after first toggle\", agent.onOff.state);\n\n await agent.onOff.toggle();\n console.log(\"On/off state after second toggle\", agent.onOff.state);\n});\n\nawait node.close();\n"],
|
5
5
|
"mappings": "AAAA,OAAO;AACP,SAAS,wBAAwB;AACjC,SAAS,kBAAkB;AAE3B,MAAM,OAAO,MAAM,WAAW,OAAO;AAErC,MAAM,QAAQ,MAAM,KAAK,IAAI,gBAAgB;AAE7C,MAAM,KAAK,MAAM;AAEjB,MAAM,MAAM,IAAI,OAAM,UAAS;AAC3B,QAAM,MAAM,MAAM,OAAO;AACzB,UAAQ,IAAI,mCAAmC,MAAM,MAAM,KAAK;AAEhE,QAAM,MAAM,MAAM,OAAO;AACzB,UAAQ,IAAI,oCAAoC,MAAM,MAAM,KAAK;AACrE,CAAC;AAED,MAAM,KAAK,MAAM;",
|
6
6
|
"names": []
|
7
7
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@project-chip/matter-node.js-examples",
|
3
|
-
"version": "0.11.0-alpha.0-
|
3
|
+
"version": "0.11.0-alpha.0-20240911-db8f7c80",
|
4
4
|
"description": "CLI/Reference implementation scripts for Matter protocol for node.js",
|
5
5
|
"keywords": [
|
6
6
|
"iot",
|
@@ -64,10 +64,11 @@
|
|
64
64
|
"typescript": "~5.5.3"
|
65
65
|
},
|
66
66
|
"dependencies": {
|
67
|
-
"@project-chip/matter-node-ble.js": "0.11.0-alpha.0-
|
68
|
-
"@project-chip/matter
|
69
|
-
"@project-chip/matter.js": "0.11.0-alpha.0-
|
70
|
-
"@project-chip/matter.js-
|
67
|
+
"@project-chip/matter-node-ble.js": "0.11.0-alpha.0-20240911-db8f7c80",
|
68
|
+
"@project-chip/matter.js-nodejs": "0.11.0-alpha.0-20240911-db8f7c80",
|
69
|
+
"@project-chip/matter.js": "0.11.0-alpha.0-20240911-db8f7c80",
|
70
|
+
"@project-chip/matter.js-general": "0.11.0-alpha.0-20240911-db8f7c80",
|
71
|
+
"@project-chip/matter.js-tools": "0.11.0-alpha.0-20240911-db8f7c80"
|
71
72
|
},
|
72
73
|
"engines": {
|
73
74
|
"node": ">=18.0.0"
|
@@ -16,9 +16,9 @@
|
|
16
16
|
* Import needed modules from @project-chip/matter-node.js
|
17
17
|
*/
|
18
18
|
// Include this first to auto-register Crypto, Network and Time Node.js implementations
|
19
|
-
import "@project-chip/matter
|
19
|
+
import { requireMinNodeVersion } from "@project-chip/matter.js-nodejs";
|
20
20
|
|
21
|
-
import {
|
21
|
+
import { Time } from "@project-chip/matter.js-general";
|
22
22
|
import { BridgedDeviceBasicInformationServer } from "@project-chip/matter.js/behavior/definitions/bridged-device-basic-information";
|
23
23
|
import { VendorId } from "@project-chip/matter.js/datatype";
|
24
24
|
import { logEndpoint } from "@project-chip/matter.js/device";
|
@@ -28,7 +28,6 @@ import { Endpoint, EndpointServer } from "@project-chip/matter.js/endpoint";
|
|
28
28
|
import { AggregatorEndpoint } from "@project-chip/matter.js/endpoints/AggregatorEndpoint";
|
29
29
|
import { Environment, StorageService } from "@project-chip/matter.js/environment";
|
30
30
|
import { ServerNode } from "@project-chip/matter.js/node";
|
31
|
-
import { Time } from "@project-chip/matter.js/time";
|
32
31
|
import { execSync } from "child_process";
|
33
32
|
|
34
33
|
requireMinNodeVersion(16);
|