@matter-server/ws-controller 0.6.2 → 0.6.3
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.
- package/dist/esm/controller/BorderRouterDiscovery.d.ts +66 -0
- package/dist/esm/controller/BorderRouterDiscovery.d.ts.map +1 -0
- package/dist/esm/controller/BorderRouterDiscovery.js +450 -0
- package/dist/esm/controller/BorderRouterDiscovery.js.map +6 -0
- package/dist/esm/controller/ControllerCommandHandler.d.ts +0 -1
- package/dist/esm/controller/ControllerCommandHandler.d.ts.map +1 -1
- package/dist/esm/controller/ControllerCommandHandler.js +30 -35
- package/dist/esm/controller/ControllerCommandHandler.js.map +1 -1
- package/dist/esm/controller/CustomClusterPoller.d.ts +5 -10
- package/dist/esm/controller/CustomClusterPoller.d.ts.map +1 -1
- package/dist/esm/controller/CustomClusterPoller.js +19 -17
- package/dist/esm/controller/CustomClusterPoller.js.map +1 -1
- package/dist/esm/controller/MatterController.d.ts +2 -0
- package/dist/esm/controller/MatterController.d.ts.map +1 -1
- package/dist/esm/controller/MatterController.js +8 -0
- package/dist/esm/controller/MatterController.js.map +1 -1
- package/dist/esm/server/WebSocketControllerHandler.d.ts.map +1 -1
- package/dist/esm/server/WebSocketControllerHandler.js +3 -0
- package/dist/esm/server/WebSocketControllerHandler.js.map +1 -1
- package/dist/esm/util/formatNodeId.d.ts +3 -3
- package/dist/esm/util/formatNodeId.d.ts.map +1 -1
- package/dist/esm/util/formatNodeId.js +3 -2
- package/dist/esm/util/formatNodeId.js.map +1 -1
- package/package.json +5 -5
- package/src/controller/BorderRouterDiscovery.ts +613 -0
- package/src/controller/ControllerCommandHandler.ts +32 -37
- package/src/controller/CustomClusterPoller.ts +26 -20
- package/src/controller/MatterController.ts +10 -0
- package/src/server/WebSocketControllerHandler.ts +3 -0
- package/src/util/formatNodeId.ts +7 -5
|
@@ -71,10 +71,7 @@ import { CustomClusterPoller } from "./CustomClusterPoller.js";
|
|
|
71
71
|
import { Nodes } from "./Nodes.js";
|
|
72
72
|
const logger = Logger.get("ControllerCommandHandler");
|
|
73
73
|
const RECONNECT_TIMEOUT = Minutes(3);
|
|
74
|
-
const FULL_UPDATE_CLUSTER_IDS = /* @__PURE__ */ new Set([
|
|
75
|
-
BasicInformation.Cluster.id,
|
|
76
|
-
BridgedDeviceBasicInformation.Cluster.id
|
|
77
|
-
]);
|
|
74
|
+
const FULL_UPDATE_CLUSTER_IDS = /* @__PURE__ */ new Set([BasicInformation.id, BridgedDeviceBasicInformation.id]);
|
|
78
75
|
function determineMatterVersion(attributes) {
|
|
79
76
|
const specificationVersion = attributes["0/40/21"];
|
|
80
77
|
const dataModelRevision = attributes["0/40/0"];
|
|
@@ -95,8 +92,8 @@ class ControllerCommandHandler {
|
|
|
95
92
|
#controller;
|
|
96
93
|
#started = false;
|
|
97
94
|
#connected = false;
|
|
98
|
-
#bleEnabled
|
|
99
|
-
#otaEnabled
|
|
95
|
+
#bleEnabled;
|
|
96
|
+
#otaEnabled;
|
|
100
97
|
/** Node management and attribute cache */
|
|
101
98
|
#nodes = new Nodes();
|
|
102
99
|
/** Cache of available updates keyed by nodeId */
|
|
@@ -127,10 +124,24 @@ class ControllerCommandHandler {
|
|
|
127
124
|
logger.info(`BLE is ${bleEnabled ? "enabled" : "disabled"}`);
|
|
128
125
|
this.#otaEnabled = otaEnabled;
|
|
129
126
|
this.#customClusterPoller = new CustomClusterPoller({
|
|
130
|
-
nodeConnected: (
|
|
131
|
-
handleReadAttributes: (
|
|
127
|
+
nodeConnected: (peer) => !!(this.#nodes.has(peer.nodeId) && this.#nodes.get(peer.nodeId).isConnected),
|
|
128
|
+
handleReadAttributes: (peer, paths, fabricFiltered) => this.handleReadAttributes(peer.nodeId, paths, fabricFiltered)
|
|
132
129
|
});
|
|
133
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Build the canonical PeerAddress for the given node on this controller's fabric.
|
|
133
|
+
*
|
|
134
|
+
* Throws if the controller's fabric is not yet resolved. Callers must run after
|
|
135
|
+
* controller start; a silent fallback would intern PeerAddressMap entries under the
|
|
136
|
+
* wrong fabric index and leak poller registrations.
|
|
137
|
+
*/
|
|
138
|
+
#peerOf(nodeId) {
|
|
139
|
+
const fabric = this.#controller.fabric;
|
|
140
|
+
if (fabric === void 0) {
|
|
141
|
+
throw new Error(`Cannot resolve PeerAddress for node ${nodeId}: controller fabric is not initialized`);
|
|
142
|
+
}
|
|
143
|
+
return PeerAddress({ fabricIndex: fabric.fabricIndex, nodeId });
|
|
144
|
+
}
|
|
134
145
|
/**
|
|
135
146
|
* Format a NodeId as a PeerAddress string for logging.
|
|
136
147
|
* Uses the controller's fabric index when available, otherwise "?" is used.
|
|
@@ -178,12 +189,12 @@ class ControllerCommandHandler {
|
|
|
178
189
|
}
|
|
179
190
|
softwareUpdateManagerEvents.updateAvailable.on(
|
|
180
191
|
(peerAddress, updateDetails) => {
|
|
181
|
-
logger.info(`Update available for node ${peerAddress.nodeId}:`, updateDetails);
|
|
192
|
+
logger.info(`Update available for node ${this.formatNode(peerAddress.nodeId)}:`, updateDetails);
|
|
182
193
|
this.#availableUpdates.set(peerAddress.nodeId, updateDetails);
|
|
183
194
|
}
|
|
184
195
|
);
|
|
185
196
|
softwareUpdateManagerEvents.updateDone.on((peerAddress) => {
|
|
186
|
-
logger.info(`Update done for node ${peerAddress.nodeId}`);
|
|
197
|
+
logger.info(`Update done for node ${this.formatNode(peerAddress.nodeId)}`);
|
|
187
198
|
this.#availableUpdates.delete(peerAddress.nodeId);
|
|
188
199
|
});
|
|
189
200
|
logger.info("OTA event handlers registered");
|
|
@@ -226,7 +237,7 @@ class ControllerCommandHandler {
|
|
|
226
237
|
attributeCache.update(node);
|
|
227
238
|
const attributes = attributeCache.get(nodeId);
|
|
228
239
|
if (attributes) {
|
|
229
|
-
this.#customClusterPoller.registerNode(nodeId, attributes);
|
|
240
|
+
this.#customClusterPoller.registerNode(this.#peerOf(nodeId), attributes);
|
|
230
241
|
}
|
|
231
242
|
}
|
|
232
243
|
if (state === NodeStates.Reconnecting) {
|
|
@@ -276,7 +287,7 @@ class ControllerCommandHandler {
|
|
|
276
287
|
attributeCache.add(node);
|
|
277
288
|
const attributes = attributeCache.get(nodeId);
|
|
278
289
|
if (attributes) {
|
|
279
|
-
this.#customClusterPoller.registerNode(nodeId, attributes);
|
|
290
|
+
this.#customClusterPoller.registerNode(this.#peerOf(nodeId), attributes);
|
|
280
291
|
}
|
|
281
292
|
}
|
|
282
293
|
return node;
|
|
@@ -460,9 +471,6 @@ class ControllerCommandHandler {
|
|
|
460
471
|
async setFabricLabel(label) {
|
|
461
472
|
await this.#controller.updateFabricLabel(label);
|
|
462
473
|
}
|
|
463
|
-
disconnectNode(nodeId) {
|
|
464
|
-
return this.#controller.disconnectNode(nodeId, true);
|
|
465
|
-
}
|
|
466
474
|
async handleWriteAttribute(data) {
|
|
467
475
|
const { nodeId, endpointId, clusterId, attributeId } = data;
|
|
468
476
|
let { value } = data;
|
|
@@ -601,7 +609,7 @@ class ControllerCommandHandler {
|
|
|
601
609
|
throw ServerError.invalidArguments("No passcode provided");
|
|
602
610
|
}
|
|
603
611
|
const { onNetworkOnly, wifiCredentials: wifiNetwork, threadCredentials: threadNetwork } = data;
|
|
604
|
-
|
|
612
|
+
return {
|
|
605
613
|
commissioning: {
|
|
606
614
|
nodeId: data.nodeId,
|
|
607
615
|
regulatoryLocation: GeneralCommissioning.RegulatoryLocationType.IndoorOutdoor,
|
|
@@ -619,7 +627,6 @@ class ControllerCommandHandler {
|
|
|
619
627
|
},
|
|
620
628
|
passcode
|
|
621
629
|
};
|
|
622
|
-
return options;
|
|
623
630
|
}
|
|
624
631
|
async commissionNode(data) {
|
|
625
632
|
let nodeId;
|
|
@@ -802,7 +809,7 @@ class ControllerCommandHandler {
|
|
|
802
809
|
this.#reconnectTimers.get(nodeId)?.stop();
|
|
803
810
|
this.#reconnectTimers.delete(nodeId);
|
|
804
811
|
this.#nodes.delete(nodeId);
|
|
805
|
-
this.#customClusterPoller.unregisterNode(nodeId);
|
|
812
|
+
this.#customClusterPoller.unregisterNode(this.#peerOf(nodeId));
|
|
806
813
|
this.#availableUpdates.delete(nodeId);
|
|
807
814
|
}
|
|
808
815
|
async openCommissioningWindow(data) {
|
|
@@ -820,7 +827,7 @@ class ControllerCommandHandler {
|
|
|
820
827
|
},
|
|
821
828
|
Read.Attribute({
|
|
822
829
|
endpoint: EndpointNumber(0),
|
|
823
|
-
cluster: OperationalCredentials
|
|
830
|
+
cluster: OperationalCredentials,
|
|
824
831
|
attributes: "fabrics"
|
|
825
832
|
})
|
|
826
833
|
),
|
|
@@ -862,16 +869,10 @@ class ControllerCommandHandler {
|
|
|
862
869
|
fabricIndex: FabricIndex.OMIT_FABRIC
|
|
863
870
|
}));
|
|
864
871
|
logger.info("Setting ACL entries", aclEntries);
|
|
865
|
-
const { status } = await this.#writeAttribute(
|
|
866
|
-
nodeId,
|
|
867
|
-
EndpointNumber(0),
|
|
868
|
-
AccessControl.Cluster.id,
|
|
869
|
-
"acl",
|
|
870
|
-
aclEntries
|
|
871
|
-
);
|
|
872
|
+
const { status } = await this.#writeAttribute(nodeId, EndpointNumber(0), AccessControl.id, "acl", aclEntries);
|
|
872
873
|
return [
|
|
873
874
|
{
|
|
874
|
-
path: { endpoint_id: 0, cluster_id: AccessControl.
|
|
875
|
+
path: { endpoint_id: 0, cluster_id: AccessControl.id, attribute_id: 0 },
|
|
875
876
|
status
|
|
876
877
|
}
|
|
877
878
|
];
|
|
@@ -889,16 +890,10 @@ class ControllerCommandHandler {
|
|
|
889
890
|
fabricIndex: FabricIndex.OMIT_FABRIC
|
|
890
891
|
}));
|
|
891
892
|
logger.info("Setting bindings on endpoint", endpointId, bindingEntries);
|
|
892
|
-
const { status } = await this.#writeAttribute(
|
|
893
|
-
nodeId,
|
|
894
|
-
endpointId,
|
|
895
|
-
Binding.Cluster.id,
|
|
896
|
-
"binding",
|
|
897
|
-
bindingEntries
|
|
898
|
-
);
|
|
893
|
+
const { status } = await this.#writeAttribute(nodeId, endpointId, Binding.id, "binding", bindingEntries);
|
|
899
894
|
return [
|
|
900
895
|
{
|
|
901
|
-
path: { endpoint_id: endpointId, cluster_id: Binding.
|
|
896
|
+
path: { endpoint_id: endpointId, cluster_id: Binding.id, attribute_id: 0 },
|
|
902
897
|
status
|
|
903
898
|
}
|
|
904
899
|
];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/controller/ControllerCommandHandler.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,17 +3,12 @@
|
|
|
3
3
|
* Copyright 2025-2026 Open Home Foundation
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
* Handles polling of custom cluster attributes that don't support subscriptions.
|
|
8
|
-
* This is primarily for Eve Energy devices that expose power measurements via
|
|
9
|
-
* a custom cluster without standard Matter subscription support.
|
|
10
|
-
*/
|
|
11
|
-
import { NodeId } from "@matter/main";
|
|
6
|
+
import { PeerAddress } from "@matter/main/protocol";
|
|
12
7
|
import { AttributesData } from "../types/CommandHandler.js";
|
|
13
8
|
type AttributePath = string;
|
|
14
9
|
export interface NodeAttributeReader {
|
|
15
|
-
handleReadAttributes(
|
|
16
|
-
nodeConnected(
|
|
10
|
+
handleReadAttributes(peer: PeerAddress, attributePaths: string[], fabricFiltered?: boolean): Promise<AttributesData>;
|
|
11
|
+
nodeConnected(peer: PeerAddress): boolean;
|
|
17
12
|
}
|
|
18
13
|
/**
|
|
19
14
|
* Check if a node needs custom attribute polling based on its attributes.
|
|
@@ -34,11 +29,11 @@ export declare class CustomClusterPoller {
|
|
|
34
29
|
* Register a node for polling if it has custom attributes that need polling.
|
|
35
30
|
* Call this after a node is connected and its attributes are available.
|
|
36
31
|
*/
|
|
37
|
-
registerNode(
|
|
32
|
+
registerNode(peer: PeerAddress, attributes: AttributesData): void;
|
|
38
33
|
/**
|
|
39
34
|
* Unregister a node from polling (e.g., when decommissioned or disconnected).
|
|
40
35
|
*/
|
|
41
|
-
unregisterNode(
|
|
36
|
+
unregisterNode(peer: PeerAddress): void;
|
|
42
37
|
/**
|
|
43
38
|
* Stop all polling and cleanup. Awaits any in-flight read operation.
|
|
44
39
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomClusterPoller.d.ts","sourceRoot":"","sources":["../../../src/controller/CustomClusterPoller.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"CustomClusterPoller.d.ts","sourceRoot":"","sources":["../../../src/controller/CustomClusterPoller.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,EAAE,WAAW,EAAkB,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AA6B5D,KAAK,aAAa,GAAG,MAAM,CAAC;AAE5B,MAAM,WAAW,mBAAmB;IAChC,oBAAoB,CAChB,IAAI,EAAE,WAAW,EACjB,cAAc,EAAE,MAAM,EAAE,EACxB,cAAc,CAAC,EAAE,OAAO,GACzB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3B,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,cAAc,GAAG,GAAG,CAAC,aAAa,CAAC,CAoDpF;AAED;;GAEG;AACH,qBAAa,mBAAmB;;IAS5B,YAAY,eAAe,EAAE,mBAAmB,EAI/C;IAED;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI,CAgBhE;IAED;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAOtC;IAED;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAS1B;CAoGJ"}
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Duration, Logger, Millis, Time } from "@matter/main";
|
|
7
|
+
import { PeerAddressMap } from "@matter/main/protocol";
|
|
8
|
+
import { formatNodeId } from "../util/formatNodeId.js";
|
|
7
9
|
const logger = Logger.get("CustomClusterPoller");
|
|
8
10
|
const VENDOR_ID_EVE = 4874;
|
|
9
11
|
const EVE_CLUSTER_ID = 319486977;
|
|
@@ -55,7 +57,7 @@ function checkPolledAttributes(attributes) {
|
|
|
55
57
|
return polledAttributes;
|
|
56
58
|
}
|
|
57
59
|
class CustomClusterPoller {
|
|
58
|
-
#polledAttributes =
|
|
60
|
+
#polledAttributes = new PeerAddressMap();
|
|
59
61
|
#pollerTimer;
|
|
60
62
|
#attributeReader;
|
|
61
63
|
#isPolling = false;
|
|
@@ -71,24 +73,24 @@ class CustomClusterPoller {
|
|
|
71
73
|
* Register a node for polling if it has custom attributes that need polling.
|
|
72
74
|
* Call this after a node is connected and its attributes are available.
|
|
73
75
|
*/
|
|
74
|
-
registerNode(
|
|
76
|
+
registerNode(peer, attributes) {
|
|
75
77
|
const attributesToPoll = checkPolledAttributes(attributes);
|
|
76
78
|
if (attributesToPoll.size === 0) {
|
|
77
|
-
this.unregisterNode(
|
|
79
|
+
this.unregisterNode(peer);
|
|
78
80
|
return;
|
|
79
81
|
}
|
|
80
|
-
this.#polledAttributes.set(
|
|
82
|
+
this.#polledAttributes.set(peer, attributesToPoll);
|
|
81
83
|
logger.info(
|
|
82
|
-
`Registered node ${
|
|
84
|
+
`Registered node ${formatNodeId(peer)} for custom attribute polling: ${Array.from(attributesToPoll).join(", ")}`
|
|
83
85
|
);
|
|
84
86
|
this.#schedulePoller();
|
|
85
87
|
}
|
|
86
88
|
/**
|
|
87
89
|
* Unregister a node from polling (e.g., when decommissioned or disconnected).
|
|
88
90
|
*/
|
|
89
|
-
unregisterNode(
|
|
90
|
-
if (this.#polledAttributes.delete(
|
|
91
|
-
logger.info(`Unregistered node ${
|
|
91
|
+
unregisterNode(peer) {
|
|
92
|
+
if (this.#polledAttributes.delete(peer)) {
|
|
93
|
+
logger.info(`Unregistered node ${formatNodeId(peer)} from custom attribute polling`);
|
|
92
94
|
}
|
|
93
95
|
if (this.#polledAttributes.size === 0) {
|
|
94
96
|
this.#pollerTimer.stop();
|
|
@@ -140,12 +142,12 @@ class CustomClusterPoller {
|
|
|
140
142
|
if (this.#closed) {
|
|
141
143
|
break;
|
|
142
144
|
}
|
|
143
|
-
const [
|
|
144
|
-
if (!this.#polledAttributes.has(
|
|
145
|
+
const [peer, attributePaths] = entries[i];
|
|
146
|
+
if (!this.#polledAttributes.has(peer)) {
|
|
145
147
|
continue;
|
|
146
148
|
}
|
|
147
149
|
polledNodes++;
|
|
148
|
-
await this.#pollNode(
|
|
150
|
+
await this.#pollNode(peer, attributePaths);
|
|
149
151
|
if (i < entries.length - 1) {
|
|
150
152
|
this.#currentDelayPromise = Time.sleep("sleep", Millis(2e3)).finally(() => {
|
|
151
153
|
this.#currentDelayPromise = void 0;
|
|
@@ -167,15 +169,15 @@ class CustomClusterPoller {
|
|
|
167
169
|
* Poll a single node for its custom attributes.
|
|
168
170
|
* The read will automatically trigger change events through the normal attribute flow.
|
|
169
171
|
*/
|
|
170
|
-
async #pollNode(
|
|
171
|
-
if (!this.#attributeReader.nodeConnected(
|
|
172
|
-
logger.debug(`Node ${
|
|
172
|
+
async #pollNode(peer, attributePaths) {
|
|
173
|
+
if (!this.#attributeReader.nodeConnected(peer)) {
|
|
174
|
+
logger.debug(`Node ${formatNodeId(peer)} not connected, skipping custom attribute polling`);
|
|
173
175
|
return;
|
|
174
176
|
}
|
|
175
177
|
const paths = Array.from(attributePaths);
|
|
176
|
-
logger.debug(`Polling ${paths.length} custom attributes for node ${
|
|
178
|
+
logger.debug(`Polling ${paths.length} custom attributes for node ${formatNodeId(peer)}`);
|
|
177
179
|
try {
|
|
178
|
-
const readPromise = this.#attributeReader.handleReadAttributes(
|
|
180
|
+
const readPromise = this.#attributeReader.handleReadAttributes(peer, paths, true);
|
|
179
181
|
this.#currentReadPromise = readPromise.then(
|
|
180
182
|
() => {
|
|
181
183
|
},
|
|
@@ -184,7 +186,7 @@ class CustomClusterPoller {
|
|
|
184
186
|
);
|
|
185
187
|
await readPromise;
|
|
186
188
|
} catch (error) {
|
|
187
|
-
logger.warn(`Failed to poll custom attributes for node ${
|
|
189
|
+
logger.warn(`Failed to poll custom attributes for node ${formatNodeId(peer)}: `, error);
|
|
188
190
|
} finally {
|
|
189
191
|
this.#currentReadPromise = void 0;
|
|
190
192
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/controller/CustomClusterPoller.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,SAA4B,UAAU,QAAQ,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { Bytes, Crypto, Environment, Timestamp } from "@matter/main";
|
|
7
7
|
import { VendorInfo } from "@matter/main/protocol";
|
|
8
8
|
import { ConfigStorage } from "../server/ConfigStorage.js";
|
|
9
|
+
import { BorderRouterDiscovery } from "./BorderRouterDiscovery.js";
|
|
9
10
|
import { ControllerCommandHandler } from "./ControllerCommandHandler.js";
|
|
10
11
|
import { LegacyServerData } from "./LegacyDataInjector.js";
|
|
11
12
|
import "@matter/nodejs-ble";
|
|
@@ -24,6 +25,7 @@ export declare class MatterController {
|
|
|
24
25
|
constructor(environment: Environment, config: ConfigStorage, options: MatterControllerOptions, serverId: string);
|
|
25
26
|
protected initialize(vendorId?: number, fabricId?: number | bigint, legacyCommissionedDates?: Map<string, Timestamp>): Promise<void>;
|
|
26
27
|
get commandHandler(): ControllerCommandHandler;
|
|
28
|
+
get borderRouters(): BorderRouterDiscovery;
|
|
27
29
|
/**
|
|
28
30
|
* Get the DCL vendor info service instance.
|
|
29
31
|
* Lazily initializes the service if not already present.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MatterController.d.ts","sourceRoot":"","sources":["../../../src/controller/MatterController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,KAAK,EAEL,MAAM,EAEN,WAAW,EAOX,SAAS,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAsB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG/E,OAAO,oBAAoB,CAAC;AAI5B,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,KAAK,EAAE,KAAK,GACb,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,MAAM,WAAW,uBAAuB;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,+HAA+H;IAC/H,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qGAAqG;IACrG,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAmBD,qBAAa,gBAAgB;;
|
|
1
|
+
{"version":3,"file":"MatterController.d.ts","sourceRoot":"","sources":["../../../src/controller/MatterController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,KAAK,EAEL,MAAM,EAEN,WAAW,EAOX,SAAS,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAsB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG/E,OAAO,oBAAoB,CAAC;AAI5B,wBAAsB,uBAAuB,CACzC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,KAAK,EAAE,KAAK,GACb,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,MAAM,WAAW,uBAAuB;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,+HAA+H;IAC/H,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qGAAqG;IACrG,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAmBD,qBAAa,gBAAgB;;IAYzB,OAAa,MAAM,CACf,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,uBAAuB,EAChC,UAAU,CAAC,EAAE,gBAAgB,6BA4DhC;IAED,YAAY,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,EAQ9G;IAED,UAAgB,UAAU,CACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAC1B,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,iBAwBnD;IAED,IAAI,cAAc,6BAyCjB;IAED,IAAI,aAAa,IAAI,qBAAqB,CAEzC;IAED;;;OAGG;IACG,iBAAiB,kEAOtB;IAED;;;OAGG;IACG,kBAAkB,mEAOvB;IAED;;;OAGG;IACG,gBAAgB,iEAOrB;IAED;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAErE;IAED;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAE9D;IAEK,uBAAuB,kBAgB5B;IAEK,IAAI,kBAGT;IAgBD;;;;OAIG;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAmB9D;CACJ"}
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
import { VendorId } from "@matter/main/types";
|
|
19
19
|
import { CommissioningController } from "@project-chip/matter.js";
|
|
20
20
|
import { Readable } from "node:stream";
|
|
21
|
+
import { BorderRouterDiscovery } from "./BorderRouterDiscovery.js";
|
|
21
22
|
import { ControllerCommandHandler } from "./ControllerCommandHandler.js";
|
|
22
23
|
import { LegacyDataInjector } from "./LegacyDataInjector.js";
|
|
23
24
|
import { resolveServerId } from "./ServerIdResolver.js";
|
|
@@ -44,6 +45,7 @@ class MatterController {
|
|
|
44
45
|
#legacyCommissionedDates;
|
|
45
46
|
#enableTestNetDcl = false;
|
|
46
47
|
#disableOtaProvider = true;
|
|
48
|
+
#borderRouterDiscovery;
|
|
47
49
|
static async create(environment, config, options, legacyData) {
|
|
48
50
|
const serverId = await resolveServerId(
|
|
49
51
|
environment,
|
|
@@ -96,6 +98,7 @@ class MatterController {
|
|
|
96
98
|
}
|
|
97
99
|
constructor(environment, config, options, serverId) {
|
|
98
100
|
this.#env = environment;
|
|
101
|
+
this.#borderRouterDiscovery = new BorderRouterDiscovery(this.#env);
|
|
99
102
|
this.#config = config;
|
|
100
103
|
this.#serverId = serverId;
|
|
101
104
|
this.#serverVersion = options.serverVersion ?? "0.0.0";
|
|
@@ -152,6 +155,7 @@ class MatterController {
|
|
|
152
155
|
if (!this.#disableOtaProvider && this.#enableTestNetDcl) {
|
|
153
156
|
initPromises.push(this.#enableTestOtaImages());
|
|
154
157
|
}
|
|
158
|
+
initPromises.push(this.#borderRouterDiscovery.start());
|
|
155
159
|
try {
|
|
156
160
|
await MatterAggregateError.allSettled(initPromises);
|
|
157
161
|
} catch (error) {
|
|
@@ -161,6 +165,9 @@ class MatterController {
|
|
|
161
165
|
}
|
|
162
166
|
return this.#commandHandler;
|
|
163
167
|
}
|
|
168
|
+
get borderRouters() {
|
|
169
|
+
return this.#borderRouterDiscovery;
|
|
170
|
+
}
|
|
164
171
|
/**
|
|
165
172
|
* Get the DCL vendor info service instance.
|
|
166
173
|
* Lazily initializes the service if not already present.
|
|
@@ -228,6 +235,7 @@ class MatterController {
|
|
|
228
235
|
}
|
|
229
236
|
}
|
|
230
237
|
async stop() {
|
|
238
|
+
await this.#borderRouterDiscovery.stop();
|
|
231
239
|
await this.#commandHandler?.close();
|
|
232
240
|
}
|
|
233
241
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/controller/MatterController.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EAEI;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,SAAS,gBAAgB;AACzB,SAAS,+BAA+B;AACxC,SAAS,gBAAgB;AAEzB,SAAS,gCAAgC;AACzC,SAAS,0BAA4C;AACrD,SAAS,uBAAuB;AAEhC,OAAO;AAEP,MAAM,SAAS,OAAO,IAAI,kBAAkB;AAE5C,eAAsB,wBAClB,QACA,UACA,OACe;AACf,UAAQ,MAAM,eAAe,QAAQ,QAAQ,SAAS,QAAQ,GAAG,KAAK,GAAG,SAAS;AACtF;AAiBA,SAAS,qBAAqB,SAAyB;AAEnD,QAAM,cAAc,QAAQ,MAAM,GAAG,EAAE,CAAC;AACxC,QAAM,QAAQ,YAAY,MAAM,GAAG;AACnC,QAAM,QAAQ,SAAS,MAAM,CAAC,KAAK,KAAK,EAAE;AAC1C,QAAM,QAAQ,SAAS,MAAM,CAAC,KAAK,KAAK,EAAE;AAC1C,QAAM,QAAQ,SAAS,MAAM,CAAC,KAAK,KAAK,EAAE;AAE1C,SAAO,QAAQ,MAAQ,QAAQ,MAAM;AACzC;AAEO,MAAM,iBAAiB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketControllerHandler.d.ts","sourceRoot":"","sources":["../../../src/server/WebSocketControllerHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAKrE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAMH,eAAe,EAMlB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA+BnD,yDAAyD;AACzD,qBAAa,0BAA2B,YAAW,gBAAgB;;IAc/D,YAAY,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAMrF;IAED;;;OAGG;IACH,MAAM;QAIE,OAAO;QACP,UAAU;MAEjB;IAoBD;;OAEG;IACH,eAAe,IAAI,eAAe,EAAE,CAEnC;IAED,gBAAgB,IAAI,IAAI,CAEvB;IAEK,QAAQ,CAAC,MAAM,EAAE,UAAU,iBAiOhC;IAED,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B1B;
|
|
1
|
+
{"version":3,"file":"WebSocketControllerHandler.d.ts","sourceRoot":"","sources":["../../../src/server/WebSocketControllerHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAKrE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAMH,eAAe,EAMlB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA+BnD,yDAAyD;AACzD,qBAAa,0BAA2B,YAAW,gBAAgB;;IAc/D,YAAY,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAMrF;IAED;;;OAGG;IACH,MAAM;QAIE,OAAO;QACP,UAAU;MAEjB;IAoBD;;OAEG;IACH,eAAe,IAAI,eAAe,EAAE,CAEnC;IAED,gBAAgB,IAAI,IAAI,CAEvB;IAEK,QAAQ,CAAC,MAAM,EAAE,UAAU,iBAiOhC;IAED,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA+B1B;CAovBJ"}
|
|
@@ -384,6 +384,9 @@ class WebSocketControllerHandler {
|
|
|
384
384
|
case "set_thread_dataset":
|
|
385
385
|
result = await this.#handleSetThreadDataset(args);
|
|
386
386
|
break;
|
|
387
|
+
case "get_thread_border_routers":
|
|
388
|
+
result = this.#controller.borderRouters.list();
|
|
389
|
+
break;
|
|
387
390
|
case "open_commissioning_window":
|
|
388
391
|
result = await this.#handleOpenCommissioningWindow(args);
|
|
389
392
|
break;
|