@matter/node 0.17.7-alpha.0-20260723-6f672ac9d → 0.17.7
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/cjs/behavior/system/controller/ControllerBehavior.d.ts +8 -0
- package/dist/cjs/behavior/system/controller/ControllerBehavior.d.ts.map +1 -1
- package/dist/cjs/behavior/system/controller/ControllerBehavior.js +11 -0
- package/dist/cjs/behavior/system/controller/ControllerBehavior.js.map +1 -1
- package/dist/cjs/behavior/system/software-update/SoftwareUpdateManager.d.ts +6 -0
- package/dist/cjs/behavior/system/software-update/SoftwareUpdateManager.d.ts.map +1 -1
- package/dist/cjs/behavior/system/software-update/SoftwareUpdateManager.js +8 -4
- package/dist/cjs/behavior/system/software-update/SoftwareUpdateManager.js.map +1 -1
- package/dist/cjs/node/ClientNode.d.ts.map +1 -1
- package/dist/cjs/node/ClientNode.js +2 -2
- package/dist/cjs/node/ClientNode.js.map +1 -1
- package/dist/cjs/node/Node.d.ts +6 -0
- package/dist/cjs/node/Node.d.ts.map +1 -1
- package/dist/cjs/node/Node.js +8 -0
- package/dist/cjs/node/Node.js.map +1 -1
- package/dist/cjs/node/NodePhysicalProperties.d.ts.map +1 -1
- package/dist/cjs/node/NodePhysicalProperties.js +23 -0
- package/dist/cjs/node/NodePhysicalProperties.js.map +1 -1
- package/dist/cjs/node/client/ClientStructure.d.ts.map +1 -1
- package/dist/cjs/node/client/ClientStructure.js +3 -2
- package/dist/cjs/node/client/ClientStructure.js.map +1 -1
- package/dist/cjs/node/client/PeerBehavior.d.ts +6 -1
- package/dist/cjs/node/client/PeerBehavior.d.ts.map +1 -1
- package/dist/cjs/node/client/PeerBehavior.js +11 -6
- package/dist/cjs/node/client/PeerBehavior.js.map +1 -1
- package/dist/esm/behavior/system/controller/ControllerBehavior.d.ts +8 -0
- package/dist/esm/behavior/system/controller/ControllerBehavior.d.ts.map +1 -1
- package/dist/esm/behavior/system/controller/ControllerBehavior.js +11 -0
- package/dist/esm/behavior/system/controller/ControllerBehavior.js.map +1 -1
- package/dist/esm/behavior/system/software-update/SoftwareUpdateManager.d.ts +6 -0
- package/dist/esm/behavior/system/software-update/SoftwareUpdateManager.d.ts.map +1 -1
- package/dist/esm/behavior/system/software-update/SoftwareUpdateManager.js +8 -4
- package/dist/esm/behavior/system/software-update/SoftwareUpdateManager.js.map +1 -1
- package/dist/esm/node/ClientNode.d.ts.map +1 -1
- package/dist/esm/node/ClientNode.js +3 -3
- package/dist/esm/node/ClientNode.js.map +1 -1
- package/dist/esm/node/Node.d.ts +6 -0
- package/dist/esm/node/Node.d.ts.map +1 -1
- package/dist/esm/node/Node.js +8 -0
- package/dist/esm/node/Node.js.map +1 -1
- package/dist/esm/node/NodePhysicalProperties.d.ts.map +1 -1
- package/dist/esm/node/NodePhysicalProperties.js +23 -0
- package/dist/esm/node/NodePhysicalProperties.js.map +1 -1
- package/dist/esm/node/client/ClientStructure.d.ts.map +1 -1
- package/dist/esm/node/client/ClientStructure.js +4 -4
- package/dist/esm/node/client/ClientStructure.js.map +1 -1
- package/dist/esm/node/client/PeerBehavior.d.ts +6 -1
- package/dist/esm/node/client/PeerBehavior.d.ts.map +1 -1
- package/dist/esm/node/client/PeerBehavior.js +11 -6
- package/dist/esm/node/client/PeerBehavior.js.map +1 -1
- package/package.json +6 -6
- package/src/behavior/system/controller/ControllerBehavior.ts +14 -0
- package/src/behavior/system/software-update/SoftwareUpdateManager.ts +8 -4
- package/src/node/ClientNode.ts +4 -4
- package/src/node/Node.ts +9 -0
- package/src/node/NodePhysicalProperties.ts +49 -0
- package/src/node/client/ClientStructure.ts +3 -3
- package/src/node/client/PeerBehavior.ts +25 -7
|
@@ -26,8 +26,7 @@ import {
|
|
|
26
26
|
ClusterRevision,
|
|
27
27
|
DeviceClassification,
|
|
28
28
|
FeatureMap,
|
|
29
|
-
GeneratedCommandList
|
|
30
|
-
Matter
|
|
29
|
+
GeneratedCommandList
|
|
31
30
|
} from "@matter/model";
|
|
32
31
|
import { ReadScope } from "@matter/protocol";
|
|
33
32
|
import { Status } from "@matter/types";
|
|
@@ -501,6 +500,7 @@ class ClientStructure {
|
|
|
501
500
|
if (this.#commandFactory) {
|
|
502
501
|
shape.commandFactory = this.#commandFactory;
|
|
503
502
|
}
|
|
503
|
+
shape.matter = this.#node.matter;
|
|
504
504
|
const behaviorType = PeerBehavior(shape);
|
|
505
505
|
if (endpoint.lifecycle.isInstalled) {
|
|
506
506
|
cluster.pendingBehavior = behaviorType;
|
|
@@ -535,7 +535,7 @@ class ClientStructure {
|
|
|
535
535
|
continue;
|
|
536
536
|
}
|
|
537
537
|
let isApp = false;
|
|
538
|
-
const model =
|
|
538
|
+
const model = this.#node.matter.deviceTypes(dt.deviceType);
|
|
539
539
|
if (model !== void 0) {
|
|
540
540
|
isApp = DeviceClassification.isApplication(model.classification);
|
|
541
541
|
}
|
|
@@ -673,7 +673,7 @@ class ClientStructure {
|
|
|
673
673
|
if (Number.isFinite(numericId)) {
|
|
674
674
|
return this.#clusterFor(endpoint, numericId);
|
|
675
675
|
}
|
|
676
|
-
const clusterModel =
|
|
676
|
+
const clusterModel = this.#node.matter.clusters(capitalize(behaviorId));
|
|
677
677
|
if (clusterModel) {
|
|
678
678
|
return this.#clusterFor(endpoint, clusterModel.id);
|
|
679
679
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/node/client/ClientStructure.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["id", "endpoint", "cluster"]
|
|
6
6
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { ClusterBehavior } from "#behavior/cluster/ClusterBehavior.js";
|
|
7
7
|
import { ClusterBehaviorType } from "#behavior/cluster/ClusterBehaviorType.js";
|
|
8
|
-
import { FeatureBitmap } from "@matter/model";
|
|
8
|
+
import { FeatureBitmap, MatterModel } from "@matter/model";
|
|
9
9
|
import { AttributeId, ClusterId, CommandId } from "@matter/types";
|
|
10
10
|
/**
|
|
11
11
|
* Obtain a {@link ClusterBehavior.Type} for a remote cluster.
|
|
@@ -26,6 +26,11 @@ export declare namespace PeerBehavior {
|
|
|
26
26
|
commands?: CommandId[];
|
|
27
27
|
generatedCommands?: CommandId[];
|
|
28
28
|
commandFactory?: ClusterBehaviorType.CommandFactory;
|
|
29
|
+
/**
|
|
30
|
+
* Model used to resolve standard element names/shapes. Defaults to the global {@link Matter} model; a client
|
|
31
|
+
* node supplies its own so custom or extended clusters resolve to real names.
|
|
32
|
+
*/
|
|
33
|
+
matter?: MatterModel;
|
|
29
34
|
}
|
|
30
35
|
/**
|
|
31
36
|
* A known cluster shape that we instrument as is.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeerBehavior.d.ts","sourceRoot":"","sources":["../../../../src/node/client/PeerBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,EAOH,aAAa,
|
|
1
|
+
{"version":3,"file":"PeerBehavior.d.ts","sourceRoot":"","sources":["../../../../src/node/client/PeerBehavior.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAE/E,OAAO,EAOH,aAAa,EAGb,WAAW,EAEd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAalE;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,YAAY,GAAG,eAAe,CAAC,IAAI,CAsBnF;AAED,yBAAiB,YAAY,CAAC,CAAC;IAC3B,KAAY,YAAY,GAAG,sBAAsB,GAAG,iBAAiB,CAAC;IAEtE;;;OAGG;IACH,UAAiB,sBAAsB;QACnC,IAAI,EAAE,YAAY,CAAC;QACnB,EAAE,EAAE,SAAS,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;QAClC,UAAU,CAAC,EAAE,WAAW,EAAE,CAAC;QAC3B,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;QACvB,iBAAiB,CAAC,EAAE,SAAS,EAAE,CAAC;QAChC,cAAc,CAAC,EAAE,mBAAmB,CAAC,cAAc,CAAC;QAEpD;;;WAGG;QACH,MAAM,CAAC,EAAE,WAAW,CAAC;KACxB;IAED;;OAEG;IACH,UAAiB,iBAAiB;QAC9B,IAAI,EAAE,OAAO,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC;QAC/B,cAAc,CAAC,EAAE,mBAAmB,CAAC,cAAc,CAAC;KACvD;CACJ"}
|
|
@@ -39,11 +39,16 @@ function PeerBehavior(shape) {
|
|
|
39
39
|
return type;
|
|
40
40
|
}
|
|
41
41
|
function instrumentDiscoveredShape(shape) {
|
|
42
|
-
const
|
|
42
|
+
const matter = shape.matter ?? Matter;
|
|
43
|
+
const analysis = DiscoveredShapeAnalysis(shape, matter);
|
|
43
44
|
const factory = shape.commandFactory ?? ClientCommandMethod;
|
|
44
|
-
let
|
|
45
|
+
let byModel = discoveredCaches.get(factory);
|
|
46
|
+
if (!byModel) {
|
|
47
|
+
discoveredCaches.set(factory, byModel = /* @__PURE__ */ new WeakMap());
|
|
48
|
+
}
|
|
49
|
+
let cache = byModel.get(matter);
|
|
45
50
|
if (!cache) {
|
|
46
|
-
|
|
51
|
+
byModel.set(matter, cache = {});
|
|
47
52
|
}
|
|
48
53
|
const fingerprint = createFingerprint(analysis);
|
|
49
54
|
let type = cache[fingerprint];
|
|
@@ -51,7 +56,7 @@ function instrumentDiscoveredShape(shape) {
|
|
|
51
56
|
return type;
|
|
52
57
|
}
|
|
53
58
|
let baseType;
|
|
54
|
-
const standardSchema =
|
|
59
|
+
const standardSchema = matter.get(ClusterModel, shape.id);
|
|
55
60
|
if (standardSchema) {
|
|
56
61
|
baseType = ClusterBehaviorType({
|
|
57
62
|
base: ClusterBehavior,
|
|
@@ -216,8 +221,8 @@ function createFingerprint(analysis) {
|
|
|
216
221
|
function createUnknownName(prefix, id) {
|
|
217
222
|
return `${prefix}$${id.toString(16)}`;
|
|
218
223
|
}
|
|
219
|
-
function DiscoveredShapeAnalysis(shape) {
|
|
220
|
-
const standardCluster =
|
|
224
|
+
function DiscoveredShapeAnalysis(shape, matter = Matter) {
|
|
225
|
+
const standardCluster = matter.clusters(shape.id);
|
|
221
226
|
const schema = standardCluster ?? new ClusterModel({ id: shape.id, name: createUnknownName("Cluster", shape.id), revision: shape.revision });
|
|
222
227
|
let featureBitmap;
|
|
223
228
|
if (typeof shape.features === "number") {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/node/client/PeerBehavior.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AACpC,SAAS,UAAU,qBAAqB;AACxC;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,
|
|
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/node",
|
|
3
|
-
"version": "0.17.7
|
|
3
|
+
"version": "0.17.7",
|
|
4
4
|
"description": "API for building Matter nodes",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
"#*": "./src/*"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
|
-
"@matter/general": "0.17.7
|
|
40
|
-
"@matter/model": "0.17.7
|
|
41
|
-
"@matter/types": "0.17.7
|
|
42
|
-
"@matter/protocol": "0.17.7
|
|
39
|
+
"@matter/general": "0.17.7",
|
|
40
|
+
"@matter/model": "0.17.7",
|
|
41
|
+
"@matter/types": "0.17.7",
|
|
42
|
+
"@matter/protocol": "0.17.7"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@nacho-iot/js-tools": "^0.1.7",
|
|
46
|
-
"@matter/testing": "0.17.7
|
|
46
|
+
"@matter/testing": "0.17.7"
|
|
47
47
|
},
|
|
48
48
|
"files": [
|
|
49
49
|
"dist/**/*",
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
SharedEnvironmentServices,
|
|
17
17
|
TransportSet,
|
|
18
18
|
} from "@matter/general";
|
|
19
|
+
import { MatterModel } from "@matter/model";
|
|
19
20
|
import {
|
|
20
21
|
Ble,
|
|
21
22
|
ClientSubscriptions,
|
|
@@ -59,6 +60,11 @@ export class ControllerBehavior extends Behavior {
|
|
|
59
60
|
|
|
60
61
|
const node = Node.forEndpoint(this.endpoint);
|
|
61
62
|
|
|
63
|
+
// Publish the controller's model so auto-created peer nodes inherit it via the environment
|
|
64
|
+
if (this.state.matter !== undefined) {
|
|
65
|
+
node.env.set(MatterModel, this.state.matter);
|
|
66
|
+
}
|
|
67
|
+
|
|
62
68
|
// Configure discovery transports
|
|
63
69
|
if (this.state.ip === undefined) {
|
|
64
70
|
this.state.ip = true;
|
|
@@ -297,5 +303,13 @@ export namespace ControllerBehavior {
|
|
|
297
303
|
* Case Authenticated Tags to be used to commission and connect to devices.
|
|
298
304
|
*/
|
|
299
305
|
caseAuthenticatedTags?: CaseAuthenticatedTag[] = undefined;
|
|
306
|
+
|
|
307
|
+
/**
|
|
308
|
+
* Model of Matter semantics used for peers commissioned or discovered by this controller.
|
|
309
|
+
*
|
|
310
|
+
* Supply a model extended with custom or manufacturer-specific clusters (see {@link MatterModel.withClusters}) so
|
|
311
|
+
* their attributes and commands resolve to real names instead of synthetic `attr$…`/`command$…` identifiers.
|
|
312
|
+
*/
|
|
313
|
+
matter?: MatterModel = undefined;
|
|
300
314
|
}
|
|
301
315
|
}
|
|
@@ -221,7 +221,7 @@ export class SoftwareUpdateManager extends Behavior {
|
|
|
221
221
|
*/
|
|
222
222
|
async #initializeUpdateCheck() {
|
|
223
223
|
try {
|
|
224
|
-
await this
|
|
224
|
+
await this.checkForUpdates();
|
|
225
225
|
} catch (error) {
|
|
226
226
|
logger.notice(`Error during initial OTA update check:`, error);
|
|
227
227
|
}
|
|
@@ -230,7 +230,7 @@ export class SoftwareUpdateManager extends Behavior {
|
|
|
230
230
|
this.internal.checkForUpdateTimer = Time.getPeriodicTimer(
|
|
231
231
|
"checkAvailableUpdates",
|
|
232
232
|
this.state.updateCheckInterval,
|
|
233
|
-
this.callback(this
|
|
233
|
+
this.callback(this.checkForUpdates),
|
|
234
234
|
).start();
|
|
235
235
|
}
|
|
236
236
|
|
|
@@ -381,8 +381,12 @@ export class SoftwareUpdateManager extends Behavior {
|
|
|
381
381
|
}
|
|
382
382
|
}
|
|
383
383
|
|
|
384
|
-
/**
|
|
385
|
-
|
|
384
|
+
/**
|
|
385
|
+
* Check all commissioned peers for available updates and purge stored updates that are no longer needed.
|
|
386
|
+
*
|
|
387
|
+
* Runs automatically on a periodic timer but may also be invoked directly to force an immediate check.
|
|
388
|
+
*/
|
|
389
|
+
async checkForUpdates() {
|
|
386
390
|
await this.queryUpdates({ includeStoredUpdates: true });
|
|
387
391
|
await this.#cleanupObsoleteUpdates();
|
|
388
392
|
}
|
package/src/node/ClientNode.ts
CHANGED
|
@@ -45,7 +45,7 @@ const logger = Logger.get("ClientNode");
|
|
|
45
45
|
* you invoke {@link commissioned}.
|
|
46
46
|
*/
|
|
47
47
|
export class ClientNode extends Node<ClientNode.RootEndpoint> {
|
|
48
|
-
#matter
|
|
48
|
+
#matter?: MatterModel;
|
|
49
49
|
#interaction?: ClientNodeInteraction;
|
|
50
50
|
#blockInteractions = false;
|
|
51
51
|
#cachedPeerAddress?: PeerAddress;
|
|
@@ -67,7 +67,7 @@ export class ClientNode extends Node<ClientNode.RootEndpoint> {
|
|
|
67
67
|
this.env.set(Node, this);
|
|
68
68
|
this.env.set(ClientNode, this);
|
|
69
69
|
|
|
70
|
-
this.#matter = options.matter
|
|
70
|
+
this.#matter = options.matter;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
override readonly nodeType: "client" | "group" = "client";
|
|
@@ -77,8 +77,8 @@ export class ClientNode extends Node<ClientNode.RootEndpoint> {
|
|
|
77
77
|
*
|
|
78
78
|
* Matter elements missing from this model will not support all functionality.
|
|
79
79
|
*/
|
|
80
|
-
get matter() {
|
|
81
|
-
return this.#matter;
|
|
80
|
+
override get matter(): MatterModel {
|
|
81
|
+
return this.#matter ?? this.env.maybeGet(MatterModel) ?? Matter;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
override get endpoints(): ClientNodeEndpoints {
|
package/src/node/Node.ts
CHANGED
|
@@ -25,6 +25,7 @@ import {
|
|
|
25
25
|
ImplementationError,
|
|
26
26
|
Logger,
|
|
27
27
|
} from "@matter/general";
|
|
28
|
+
import { Matter, MatterModel } from "@matter/model";
|
|
28
29
|
import { Interactable } from "@matter/protocol";
|
|
29
30
|
import type { EndpointNumber } from "@matter/types";
|
|
30
31
|
import { RootEndpoint } from "../endpoints/root.js";
|
|
@@ -87,6 +88,14 @@ export abstract class Node<T extends Node.CommonRootEndpoint = Node.CommonRootEn
|
|
|
87
88
|
return this.#environment;
|
|
88
89
|
}
|
|
89
90
|
|
|
91
|
+
/**
|
|
92
|
+
* Model of Matter semantics understood by this node. Defaults to the standard model; client nodes may narrow or
|
|
93
|
+
* extend it so remote clusters resolve to real element names.
|
|
94
|
+
*/
|
|
95
|
+
get matter(): MatterModel {
|
|
96
|
+
return Matter;
|
|
97
|
+
}
|
|
98
|
+
|
|
90
99
|
/**
|
|
91
100
|
* The optimized view that supports local Matter protocol implementation.
|
|
92
101
|
*/
|
|
@@ -12,6 +12,7 @@ import { IcdManagementClient } from "#behaviors/icd-management";
|
|
|
12
12
|
import { NetworkCommissioningClient } from "#behaviors/network-commissioning";
|
|
13
13
|
import { PowerSourceClient } from "#behaviors/power-source";
|
|
14
14
|
import { ThreadNetworkDiagnosticsClient } from "#behaviors/thread-network-diagnostics";
|
|
15
|
+
import { WiFiNetworkDiagnosticsClient } from "#behaviors/wi-fi-network-diagnostics";
|
|
15
16
|
import { Endpoint } from "#endpoint/Endpoint.js";
|
|
16
17
|
import { AggregatorEndpoint } from "#endpoints/aggregator";
|
|
17
18
|
import { Node } from "#node/Node.js";
|
|
@@ -50,9 +51,57 @@ export function NodePhysicalProperties(node: Node) {
|
|
|
50
51
|
|
|
51
52
|
inspectEndpoint(node, properties);
|
|
52
53
|
|
|
54
|
+
if (!properties.supportsWifi && !properties.supportsThread && !properties.supportsEthernet) {
|
|
55
|
+
inferNetworkMediumFromDiagnostics(node, properties);
|
|
56
|
+
}
|
|
57
|
+
|
|
53
58
|
return properties;
|
|
54
59
|
}
|
|
55
60
|
|
|
61
|
+
/**
|
|
62
|
+
* Determine the operational medium of a node that reports no network interfaces via Network Commissioning ("commissioned
|
|
63
|
+
* by other means") from the network diagnostics cluster of the medium it operates on.
|
|
64
|
+
*
|
|
65
|
+
* The mandatory diagnostics attributes are all nullable and null while the interface is not associated, so a populated
|
|
66
|
+
* one distinguishes an operational interface from a cluster that merely exists.
|
|
67
|
+
*
|
|
68
|
+
* Diagnostics describe the node itself, so only the root endpoint is considered.
|
|
69
|
+
*/
|
|
70
|
+
function inferNetworkMediumFromDiagnostics(node: Node, properties: PhysicalDeviceProperties) {
|
|
71
|
+
const wifiDiagnosticsType = node.behaviors.typeFor(WiFiNetworkDiagnosticsClient);
|
|
72
|
+
const wifi = wifiDiagnosticsType ? node.maybeStateOf(wifiDiagnosticsType) : undefined;
|
|
73
|
+
if (wifi?.bssid !== undefined && wifi.bssid !== null) {
|
|
74
|
+
properties.supportsWifi = true;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const threadDiagnosticsType = node.behaviors.typeFor(ThreadNetworkDiagnosticsClient);
|
|
78
|
+
const thread = threadDiagnosticsType ? node.maybeStateOf(threadDiagnosticsType) : undefined;
|
|
79
|
+
if (
|
|
80
|
+
thread !== undefined &&
|
|
81
|
+
(isPresent(thread.extendedPanId) ||
|
|
82
|
+
isPresent(thread.panId) ||
|
|
83
|
+
isPresent(thread.channel) ||
|
|
84
|
+
isPresent(thread.networkName))
|
|
85
|
+
) {
|
|
86
|
+
properties.supportsThread = true;
|
|
87
|
+
|
|
88
|
+
// A null extended PAN ID leaves threadActive false. When Thread is the only medium the node reports we trust
|
|
89
|
+
// the remaining details instead, otherwise the node stays unclassified despite being reachable.
|
|
90
|
+
if (
|
|
91
|
+
!properties.supportsWifi &&
|
|
92
|
+
properties.wifiActive === undefined &&
|
|
93
|
+
properties.ethernetActive === undefined
|
|
94
|
+
) {
|
|
95
|
+
properties.threadActive = true;
|
|
96
|
+
properties.threadChannel ??= thread.channel ?? undefined;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function isPresent(value: unknown) {
|
|
102
|
+
return value !== undefined && value !== null;
|
|
103
|
+
}
|
|
104
|
+
|
|
56
105
|
// Device types are collected node-wide (including bridged endpoints behind an aggregator) so consumers such as the
|
|
57
106
|
// subscription-interval policy can react to them. Power/network/thread properties describe the physical node itself,
|
|
58
107
|
// so bridged endpoints (behindAggregator) must not contribute to them.
|
|
@@ -32,7 +32,6 @@ import {
|
|
|
32
32
|
DeviceClassification,
|
|
33
33
|
FeatureMap,
|
|
34
34
|
GeneratedCommandList,
|
|
35
|
-
Matter,
|
|
36
35
|
type FeatureBitmap,
|
|
37
36
|
} from "@matter/model";
|
|
38
37
|
import { ReadScope, Val, type Read, type ReadResult } from "@matter/protocol";
|
|
@@ -689,6 +688,7 @@ export class ClientStructure {
|
|
|
689
688
|
if (this.#commandFactory) {
|
|
690
689
|
shape.commandFactory = this.#commandFactory;
|
|
691
690
|
}
|
|
691
|
+
shape.matter = this.#node.matter;
|
|
692
692
|
const behaviorType = PeerBehavior(shape);
|
|
693
693
|
|
|
694
694
|
if (endpoint.lifecycle.isInstalled) {
|
|
@@ -730,7 +730,7 @@ export class ClientStructure {
|
|
|
730
730
|
}
|
|
731
731
|
|
|
732
732
|
let isApp = false;
|
|
733
|
-
const model =
|
|
733
|
+
const model = this.#node.matter.deviceTypes(dt.deviceType);
|
|
734
734
|
if (model !== undefined) {
|
|
735
735
|
isApp = DeviceClassification.isApplication(model.classification);
|
|
736
736
|
}
|
|
@@ -917,7 +917,7 @@ export class ClientStructure {
|
|
|
917
917
|
}
|
|
918
918
|
|
|
919
919
|
// Try to resolve by looking up the cluster model by capitalized behavior name (e.g. "onOff" → "OnOff")
|
|
920
|
-
const clusterModel =
|
|
920
|
+
const clusterModel = this.#node.matter.clusters(capitalize(behaviorId));
|
|
921
921
|
if (clusterModel) {
|
|
922
922
|
return this.#clusterFor(endpoint, clusterModel.id as ClusterId);
|
|
923
923
|
}
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
FeatureBitmap,
|
|
19
19
|
FeatureSet,
|
|
20
20
|
Matter,
|
|
21
|
+
MatterModel,
|
|
21
22
|
type ValueModel,
|
|
22
23
|
} from "@matter/model";
|
|
23
24
|
import { AttributeId, ClusterId, CommandId } from "@matter/types";
|
|
@@ -25,7 +26,10 @@ import { ClientCommandMethod } from "./ClientCommandMethod.js";
|
|
|
25
26
|
|
|
26
27
|
const BIT_BLOCK_SIZE = Math.log2(Number.MAX_SAFE_INTEGER);
|
|
27
28
|
|
|
28
|
-
const discoveredCaches = new Map<
|
|
29
|
+
const discoveredCaches = new Map<
|
|
30
|
+
ClusterBehaviorType.CommandFactory,
|
|
31
|
+
WeakMap<MatterModel, Record<string, ClusterBehavior.Type>>
|
|
32
|
+
>();
|
|
29
33
|
const knownCaches = new Map<ClusterBehaviorType.CommandFactory, WeakMap<ClusterBehavior.Type, ClusterBehavior.Type>>();
|
|
30
34
|
|
|
31
35
|
const isPeer = Symbol("is-peer");
|
|
@@ -73,6 +77,12 @@ export namespace PeerBehavior {
|
|
|
73
77
|
commands?: CommandId[];
|
|
74
78
|
generatedCommands?: CommandId[];
|
|
75
79
|
commandFactory?: ClusterBehaviorType.CommandFactory;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Model used to resolve standard element names/shapes. Defaults to the global {@link Matter} model; a client
|
|
83
|
+
* node supplies its own so custom or extended clusters resolve to real names.
|
|
84
|
+
*/
|
|
85
|
+
matter?: MatterModel;
|
|
76
86
|
}
|
|
77
87
|
|
|
78
88
|
/**
|
|
@@ -86,12 +96,17 @@ export namespace PeerBehavior {
|
|
|
86
96
|
}
|
|
87
97
|
|
|
88
98
|
function instrumentDiscoveredShape(shape: PeerBehavior.DiscoveredClusterShape) {
|
|
89
|
-
const
|
|
99
|
+
const matter = shape.matter ?? Matter;
|
|
100
|
+
const analysis = DiscoveredShapeAnalysis(shape, matter);
|
|
90
101
|
const factory = shape.commandFactory ?? ClientCommandMethod;
|
|
91
102
|
|
|
92
|
-
let
|
|
103
|
+
let byModel = discoveredCaches.get(factory);
|
|
104
|
+
if (!byModel) {
|
|
105
|
+
discoveredCaches.set(factory, (byModel = new WeakMap()));
|
|
106
|
+
}
|
|
107
|
+
let cache = byModel.get(matter);
|
|
93
108
|
if (!cache) {
|
|
94
|
-
|
|
109
|
+
byModel.set(matter, (cache = {}));
|
|
95
110
|
}
|
|
96
111
|
|
|
97
112
|
const fingerprint = createFingerprint(analysis);
|
|
@@ -102,7 +117,7 @@ function instrumentDiscoveredShape(shape: PeerBehavior.DiscoveredClusterShape) {
|
|
|
102
117
|
|
|
103
118
|
// Find a base behavior for the standard cluster, if available
|
|
104
119
|
let baseType: Behavior.Type | undefined;
|
|
105
|
-
const standardSchema =
|
|
120
|
+
const standardSchema = matter.get(ClusterModel, shape.id);
|
|
106
121
|
if (standardSchema) {
|
|
107
122
|
// Create a base behavior from the standard schema
|
|
108
123
|
baseType = ClusterBehaviorType({
|
|
@@ -360,8 +375,11 @@ interface DiscoveredShapeAnalysis {
|
|
|
360
375
|
/**
|
|
361
376
|
* Analyze a discovered cluster shape to determine how we should override the behavior and schema.
|
|
362
377
|
*/
|
|
363
|
-
function DiscoveredShapeAnalysis(
|
|
364
|
-
|
|
378
|
+
function DiscoveredShapeAnalysis(
|
|
379
|
+
shape: PeerBehavior.DiscoveredClusterShape,
|
|
380
|
+
matter: MatterModel = Matter,
|
|
381
|
+
): DiscoveredShapeAnalysis {
|
|
382
|
+
const standardCluster = matter.clusters(shape.id);
|
|
365
383
|
const schema =
|
|
366
384
|
standardCluster ??
|
|
367
385
|
new ClusterModel({ id: shape.id, name: createUnknownName("Cluster", shape.id), revision: shape.revision });
|