@matter-server/ws-controller 0.3.1 → 0.3.2

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.
@@ -19,6 +19,8 @@ export declare class ControllerCommandHandler {
19
19
  eventChanged: Observable<[nodeId: NodeId, data: DecodedEventReportValue<any>], void>;
20
20
  nodeAdded: Observable<[nodeId: NodeId], void>;
21
21
  nodeStateChanged: Observable<[nodeId: NodeId, state: NodeStates], void>;
22
+ /** Emitted when node availability changes (for sending node_updated events) */
23
+ nodeAvailabilityChanged: Observable<[nodeId: NodeId, available: boolean], void>;
22
24
  nodeStructureChanged: Observable<[nodeId: NodeId], void>;
23
25
  nodeDecommissioned: Observable<[nodeId: NodeId], void>;
24
26
  nodeEndpointAdded: Observable<[nodeId: NodeId, endpointId: EndpointNumber], void>;
@@ -1 +1 @@
1
- {"version":3,"file":"ControllerCommandHandler.d.ts","sourceRoot":"","sources":["../../../src/controller/ControllerCommandHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ControllerCommandHandler.d.ts","sourceRoot":"","sources":["../../../src/controller/ControllerCommandHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,eAAe,EAMf,QAAQ,EACR,WAAW,EAIX,MAAM,EACN,UAAU,EAMb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAgD,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC7G,OAAO,EACH,2BAA2B,EAC3B,uBAAuB,EAM1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAOH,cAAc,EAmBjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,uBAAuB,EAA4B,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAS5D,OAAO,EACH,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,8BAA8B,EAC9B,+BAA+B,EAC/B,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACH,kBAAkB,EAElB,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,cAAc,EAGjB,MAAM,mCAAmC,CAAC;AAuC3C,qBAAa,wBAAwB;;IAcjC,MAAM;;;;;;QAMF,+EAA+E;;;;;;MAMjF;gBAEU,kBAAkB,EAAE,uBAAuB,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO;IAgBjG,IAAI,OAAO,YAEV;IAED,IAAI,UAAU,YAEb;IAEK,KAAK;IA2DX,KAAK;IAgFC,OAAO;IA4Bb,UAAU;IAIV,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM;IAInB,aAAa,CAAC,MAAM,EAAE,MAAM;IAsBlC;;;;OAIG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC;IAkCvF;;;OAGG;IACG,oBAAoB,CACtB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EAAE,EACxB,cAAc,UAAQ,GACvB,OAAO,CAAC,cAAc,CAAC;IAgE1B;;;OAGG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM;IAIlC,cAAc,CAAC,MAAM,EAAE,MAAM;IAIvB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkCnE,wBAAwB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IA8C9F,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAgDlF,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAsDnF,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC;IA8CrD,0EAA0E;IACpE,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxD,wBAAwB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsHxE,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAqBhF,qBAAqB;IAIf,yBAAyB,IAAI,OAAO,CAAC;QACvC,QAAQ,EAAE,QAAQ,CAAC;QACnB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;KACvB,CAAC;IASF,sCAAsC;IAChC,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+CzE,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,UAAO;IA0D5D;;;;;OAKG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,OAAO,CAAC,cAAc,CAAC;IAwC/D,gBAAgB,CAAC,MAAM,EAAE,MAAM;IAY/B,uBAAuB,CAAC,IAAI,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAOvG,UAAU,CAAC,MAAM,EAAE,MAAM;;;;;;IAmC/B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;;;;;;;;;;IAIrD;;;;OAIG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,oBAAoB,EAAE,GAAG,IAAI,CAAC;IA8CxG;;;;OAIG;IACG,cAAc,CAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,aAAa,EAAE,GAC1B,OAAO,CAAC,oBAAoB,EAAE,GAAG,IAAI,CAAC;IAyCzC;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;IA+C5E;;;;OAIG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC;CAkFnG"}
@@ -37,6 +37,7 @@ import {
37
37
  GroupId,
38
38
  ManualPairingCodeCodec,
39
39
  QrPairingCodeCodec,
40
+ SpecificationVersion,
40
41
  Status,
41
42
  StatusResponseError,
42
43
  TlvAny,
@@ -68,6 +69,22 @@ import { pingIp } from "../util/network.js";
68
69
  import { CustomClusterPoller } from "./CustomClusterPoller.js";
69
70
  import { Nodes } from "./Nodes.js";
70
71
  const logger = Logger.get("ControllerCommandHandler");
72
+ function determineMatterVersion(attributes) {
73
+ const specificationVersion = attributes["0/40/21"];
74
+ const dataModelRevision = attributes["0/40/0"];
75
+ if (typeof specificationVersion === "number" && specificationVersion > 0) {
76
+ const { major, minor, patch } = SpecificationVersion.decode(specificationVersion);
77
+ return `${major}.${minor}.${patch}`;
78
+ }
79
+ if (typeof dataModelRevision === "number") {
80
+ if (dataModelRevision <= 16) {
81
+ return "<1.2.0";
82
+ } else if (dataModelRevision === 17) {
83
+ return "1.2.0";
84
+ }
85
+ }
86
+ return void 0;
87
+ }
71
88
  class ControllerCommandHandler {
72
89
  #controller;
73
90
  #started = false;
@@ -80,12 +97,16 @@ class ControllerCommandHandler {
80
97
  #availableUpdates = /* @__PURE__ */ new Map();
81
98
  /** Poller for custom cluster attributes (Eve energy, etc.) */
82
99
  #customClusterPoller;
100
+ /** Track the last known availability for each node to detect changes */
101
+ #lastAvailability = /* @__PURE__ */ new Map();
83
102
  events = {
84
103
  started: new AsyncObservable(),
85
104
  attributeChanged: new Observable(),
86
105
  eventChanged: new Observable(),
87
106
  nodeAdded: new Observable(),
88
107
  nodeStateChanged: new Observable(),
108
+ /** Emitted when node availability changes (for sending node_updated events) */
109
+ nodeAvailabilityChanged: new Observable(),
89
110
  nodeStructureChanged: new Observable(),
90
111
  nodeDecommissioned: new Observable(),
91
112
  nodeEndpointAdded: new Observable(),
@@ -166,6 +187,12 @@ class ControllerCommandHandler {
166
187
  });
167
188
  node.events.eventTriggered.on((data) => this.events.eventChanged.emit(nodeId, data));
168
189
  node.events.stateChanged.on((state) => {
190
+ if (state === NodeStates.Disconnected) {
191
+ return;
192
+ }
193
+ const previousState = this.#nodes.getPreviousState(nodeId);
194
+ const wasAvailable = this.#lastAvailability.get(nodeId) ?? false;
195
+ const isAvailable = this.#nodes.isNodeAvailable(state, previousState);
169
196
  if (state === NodeStates.Connected) {
170
197
  attributeCache.update(node);
171
198
  const attributes = attributeCache.get(nodeId);
@@ -173,7 +200,15 @@ class ControllerCommandHandler {
173
200
  this.#customClusterPoller.registerNode(nodeId, attributes);
174
201
  }
175
202
  }
203
+ this.#nodes.setPreviousState(nodeId, state);
204
+ this.#lastAvailability.set(nodeId, isAvailable);
176
205
  this.events.nodeStateChanged.emit(nodeId, state);
206
+ if (wasAvailable !== isAvailable) {
207
+ logger.info(
208
+ `Node ${nodeId} availability changed: ${wasAvailable} -> ${isAvailable} (state: ${NodeStates[previousState ?? -1]} -> ${NodeStates[state]})`
209
+ );
210
+ this.events.nodeAvailabilityChanged.emit(nodeId, isAvailable);
211
+ }
177
212
  });
178
213
  node.events.structureChanged.on(() => {
179
214
  if (node.isConnected) {
@@ -258,17 +293,16 @@ class ControllerCommandHandler {
258
293
  if (Array.isArray(endpoint1DeviceTypes)) {
259
294
  isBridge = endpoint1DeviceTypes.some((entry) => entry["0"] === 14);
260
295
  }
261
- const commissionedAt = node.state.commissioning.commissionedAt;
262
- const dateCommissioned = commissionedAt !== void 0 ? new Date(commissionedAt) : /* @__PURE__ */ new Date();
263
296
  return {
264
297
  node_id: node.nodeId,
265
- date_commissioned: getDateAsString(dateCommissioned),
298
+ date_commissioned: getDateAsString(new Date(node.state.commissioning.commissionedAt ?? Date.now())),
266
299
  last_interview: getDateAsString(lastInterviewDate ?? /* @__PURE__ */ new Date()),
267
300
  interview_version: 6,
268
- available: node.isConnected,
301
+ available: this.#nodes.isAvailable(nodeId),
269
302
  is_bridge: isBridge,
270
303
  attributes,
271
- attribute_subscriptions: []
304
+ attribute_subscriptions: [],
305
+ matter_version: determineMatterVersion(attributes)
272
306
  };
273
307
  }
274
308
  /**
@@ -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": ["endpointId", "clusterId", "eventId", "data", "attributeId"]
6
6
  }
@@ -15,6 +15,8 @@ export interface MatterControllerOptions {
15
15
  disableOtaProvider?: boolean;
16
16
  /** Server ID for storage. Default is "server", but may be "server-<hex(fabricId)>-<hex(vendorId)>" for multi-fabric support */
17
17
  serverId?: string;
18
+ /** Server version string (e.g., "0.2.10" or "0.2.10-alpha.0"). Used for BasicInformation cluster. */
19
+ serverVersion?: string;
18
20
  }
19
21
  export declare class MatterController {
20
22
  #private;
@@ -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,EACN,WAAW,EAKX,yBAAyB,EAEzB,SAAS,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAuB,oBAAoB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIrH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAsB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAI/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;CACrB;AAED,qBAAa,gBAAgB;;WAWZ,MAAM,CACf,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,uBAAuB,EAChC,UAAU,CAAC,EAAE,gBAAgB;gBA0DrB,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM;cAQ/F,UAAU,CACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAC1B,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;IAuBpD,IAAI,cAAc,6BAuBjB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,yBAAyB,CAKxC;IAED;;;OAGG;IACH,IAAI,iBAAiB,IAAI,oBAAoB,CAK5C;IAED;;;OAGG;IACH,IAAI,kBAAkB,0BAKrB;IAED;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAKtE;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAKzD,uBAAuB;IAkBvB,IAAI;IAiBV;;;;OAIG;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB/D;;OAEG;IACG,aAAa;CAGtB"}
1
+ {"version":3,"file":"MatterController.d.ts","sourceRoot":"","sources":["../../../src/controller/MatterController.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,KAAK,EAEL,MAAM,EACN,WAAW,EAKX,yBAAyB,EAEzB,SAAS,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAuB,oBAAoB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIrH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAsB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAI/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;;WAYZ,MAAM,CACf,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,uBAAuB,EAChC,UAAU,CAAC,EAAE,gBAAgB;gBA0DrB,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM;cAS/F,UAAU,CACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAC1B,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;IA+BpD,IAAI,cAAc,6BAuBjB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,yBAAyB,CAKxC;IAED;;;OAGG;IACH,IAAI,iBAAiB,IAAI,oBAAoB,CAK5C;IAED;;;OAGG;IACH,IAAI,kBAAkB,0BAKrB;IAED;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAKtE;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAKzD,uBAAuB;IAkBvB,IAAI;IAiBV;;;;OAIG;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB/D;;OAEG;IACG,aAAa;CAGtB"}
@@ -25,6 +25,14 @@ const logger = Logger.get("MatterController");
25
25
  async function computeCompressedNodeId(crypto, fabricId, caKey) {
26
26
  return (await GlobalFabricId.compute(crypto, FabricId(fabricId), caKey)).toString();
27
27
  }
28
+ function parseVersionToNumber(version) {
29
+ const baseVersion = version.split("-")[0];
30
+ const parts = baseVersion.split(".");
31
+ const major = parseInt(parts[0] ?? "0", 10);
32
+ const minor = parseInt(parts[1] ?? "0", 10);
33
+ const patch = parseInt(parts[2] ?? "0", 10);
34
+ return major * 1e4 + minor * 100 + patch;
35
+ }
28
36
  class MatterController {
29
37
  #env;
30
38
  #services;
@@ -32,6 +40,7 @@ class MatterController {
32
40
  #commandHandler;
33
41
  #config;
34
42
  #serverId;
43
+ #serverVersion;
35
44
  #legacyCommissionedDates;
36
45
  #enableTestNetDcl = false;
37
46
  #disableOtaProvider = true;
@@ -85,6 +94,7 @@ class MatterController {
85
94
  this.#env = environment;
86
95
  this.#config = config;
87
96
  this.#serverId = serverId;
97
+ this.#serverVersion = options.serverVersion ?? "0.0.0";
88
98
  this.#enableTestNetDcl = options.enableTestNetDcl ?? this.#enableTestNetDcl;
89
99
  this.#disableOtaProvider = options.disableOtaProvider ?? this.#disableOtaProvider;
90
100
  }
@@ -102,7 +112,16 @@ class MatterController {
102
112
  adminFabricId: fabricId !== void 0 ? FabricId(fabricId) : void 0,
103
113
  rootNodeId: NodeId(112233),
104
114
  // TODO Remove when we switch to random IDs
105
- enableOtaProvider: !this.#disableOtaProvider
115
+ enableOtaProvider: !this.#disableOtaProvider,
116
+ basicInformation: {
117
+ vendorName: "Open Home Foundation",
118
+ productId: 1,
119
+ hardwareVersion: 1,
120
+ hardwareVersionString: "1.0",
121
+ softwareVersion: parseVersionToNumber(this.#serverVersion),
122
+ softwareVersionString: this.#serverVersion.split("-")[0]
123
+ // Base version without alpha/beta suffix
124
+ }
106
125
  });
107
126
  this.vendorInfoService;
108
127
  this.certificateService;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/controller/MatterController.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -7,7 +7,7 @@ import { NodeId } from "@matter/main";
7
7
  import { ClusterClientObj } from "@matter/main/protocol";
8
8
  import { ClusterId, ClusterType, EndpointNumber } from "@matter/main/types";
9
9
  import { InteractionClient } from "@project-chip/matter.js/cluster";
10
- import { PairedNode } from "@project-chip/matter.js/device";
10
+ import { NodeStates, PairedNode } from "@project-chip/matter.js/device";
11
11
  import { AttributeDataCache } from "./AttributeDataCache.js";
12
12
  /**
13
13
  * Manages node storage and provides access to nodes and their clients.
@@ -17,6 +17,7 @@ import { AttributeDataCache } from "./AttributeDataCache.js";
17
17
  * - Node retrieval and existence checking
18
18
  * - Access to interaction clients and cluster clients
19
19
  * - Attribute data caching
20
+ * - Connection state tracking for availability debouncing
20
21
  */
21
22
  export declare class Nodes {
22
23
  #private;
@@ -42,9 +43,35 @@ export declare class Nodes {
42
43
  */
43
44
  set(nodeId: NodeId, node: PairedNode): void;
44
45
  /**
45
- * Remove a node from storage and clear its attribute cache.
46
+ * Remove a node from storage and clear its attribute cache and state tracking.
46
47
  */
47
48
  delete(nodeId: NodeId): void;
49
+ /**
50
+ * Get the previous connection state for a node.
51
+ */
52
+ getPreviousState(nodeId: NodeId): NodeStates | undefined;
53
+ /**
54
+ * Update the previous connection state for a node.
55
+ * Call this after processing a state change to track state transitions.
56
+ */
57
+ setPreviousState(nodeId: NodeId, state: NodeStates): void;
58
+ /**
59
+ * Determine if a node should be considered available based on its connection state.
60
+ * Uses debouncing logic similar to Python Matter Server:
61
+ * - Connected: available
62
+ * - Reconnecting when previously Connected: still available (debouncing)
63
+ * - WaitingForDeviceDiscovery or Disconnected: unavailable
64
+ *
65
+ * @param currentState Current connection state
66
+ * @param previousState Previous connection state (undefined if first state change)
67
+ * @returns true if node should be considered available
68
+ */
69
+ isNodeAvailable(currentState: NodeStates, previousState?: NodeStates): boolean;
70
+ /**
71
+ * Check if a node is available based on its current and previous connection state.
72
+ * Uses debouncing: Reconnecting from Connected is still considered available.
73
+ */
74
+ isAvailable(nodeId: NodeId): boolean;
48
75
  /**
49
76
  * Get the interaction client for a node.
50
77
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Nodes.d.ts","sourceRoot":"","sources":["../../../src/controller/Nodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;GAQG;AACH,qBAAa,KAAK;;IAId;;OAEG;IACH,IAAI,cAAc,IAAI,kBAAkB,CAEvC;IAED;;OAEG;IACH,MAAM,IAAI,MAAM,EAAE;IAIlB;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAQ/B;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAI3C;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAK5B;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIhE;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC;IAoB7G;;OAEG;IACH,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EACxC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,CAAC,GACX,gBAAgB,CAAC,CAAC,CAAC;CAGzB"}
1
+ {"version":3,"file":"Nodes.d.ts","sourceRoot":"","sources":["../../../src/controller/Nodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;;GASG;AACH,qBAAa,KAAK;;IAMd;;OAEG;IACH,IAAI,cAAc,IAAI,kBAAkB,CAEvC;IAED;;OAEG;IACH,MAAM,IAAI,MAAM,EAAE;IAIlB;;;OAGG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAQ/B;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAI3C;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM5B;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIxD;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAIzD;;;;;;;;;;OAUG;IACH,eAAe,CAAC,YAAY,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,UAAU,GAAG,OAAO;IAY9E;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAUpC;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIhE;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC,GAAG,CAAC;IAoB7G;;OAEG;IACH,gBAAgB,CAAC,KAAK,CAAC,CAAC,SAAS,WAAW,EACxC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,CAAC,GACX,gBAAgB,CAAC,CAAC,CAAC;CAGzB"}
@@ -3,11 +3,14 @@
3
3
  * Copyright 2025-2026 Open Home Foundation
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { NodeStates } from "@project-chip/matter.js/device";
6
7
  import { ServerError } from "../types/WebSocketMessageTypes.js";
7
8
  import { AttributeDataCache } from "./AttributeDataCache.js";
8
9
  class Nodes {
9
10
  #nodes = /* @__PURE__ */ new Map();
10
11
  #attributeCache = new AttributeDataCache();
12
+ /** Track previous connection state for availability debouncing */
13
+ #previousStates = /* @__PURE__ */ new Map();
11
14
  /**
12
15
  * Get the attribute cache instance.
13
16
  */
@@ -44,11 +47,58 @@ class Nodes {
44
47
  this.#nodes.set(nodeId, node);
45
48
  }
46
49
  /**
47
- * Remove a node from storage and clear its attribute cache.
50
+ * Remove a node from storage and clear its attribute cache and state tracking.
48
51
  */
49
52
  delete(nodeId) {
50
53
  this.#nodes.delete(nodeId);
51
54
  this.#attributeCache.delete(nodeId);
55
+ this.#previousStates.delete(nodeId);
56
+ }
57
+ /**
58
+ * Get the previous connection state for a node.
59
+ */
60
+ getPreviousState(nodeId) {
61
+ return this.#previousStates.get(nodeId);
62
+ }
63
+ /**
64
+ * Update the previous connection state for a node.
65
+ * Call this after processing a state change to track state transitions.
66
+ */
67
+ setPreviousState(nodeId, state) {
68
+ this.#previousStates.set(nodeId, state);
69
+ }
70
+ /**
71
+ * Determine if a node should be considered available based on its connection state.
72
+ * Uses debouncing logic similar to Python Matter Server:
73
+ * - Connected: available
74
+ * - Reconnecting when previously Connected: still available (debouncing)
75
+ * - WaitingForDeviceDiscovery or Disconnected: unavailable
76
+ *
77
+ * @param currentState Current connection state
78
+ * @param previousState Previous connection state (undefined if first state change)
79
+ * @returns true if node should be considered available
80
+ */
81
+ isNodeAvailable(currentState, previousState) {
82
+ if (currentState === NodeStates.Connected) {
83
+ return true;
84
+ }
85
+ if (currentState === NodeStates.Reconnecting && previousState === NodeStates.Connected) {
86
+ return true;
87
+ }
88
+ return false;
89
+ }
90
+ /**
91
+ * Check if a node is available based on its current and previous connection state.
92
+ * Uses debouncing: Reconnecting from Connected is still considered available.
93
+ */
94
+ isAvailable(nodeId) {
95
+ const node = this.#nodes.get(nodeId);
96
+ if (node === void 0) {
97
+ return false;
98
+ }
99
+ const currentState = node.connectionState;
100
+ const previousState = this.#previousStates.get(nodeId);
101
+ return this.isNodeAvailable(currentState, previousState);
52
102
  }
53
103
  /**
54
104
  * Get the interaction client for a node.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/controller/Nodes.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,SAAS,mBAAmB;AAC5B,SAAS,0BAA0B;AAW5B,MAAM,MAAM;AAAA,EACf,SAAS,oBAAI,IAAwB;AAAA,EACrC,kBAAkB,IAAI,mBAAmB;AAAA;AAAA;AAAA;AAAA,EAKzC,IAAI,iBAAqC;AACrC,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,SAAmB;AACf,WAAO,MAAM,KAAK,KAAK,OAAO,KAAK,CAAC;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,QAA4B;AAC5B,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,QAAI,SAAS,QAAW;AACpB,YAAM,YAAY,cAAc,MAAM;AAAA,IAC1C;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAyB;AACzB,WAAO,KAAK,OAAO,IAAI,MAAM;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAgB,MAAwB;AACxC,SAAK,OAAO,IAAI,QAAQ,IAAI;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,QAAsB;AACzB,SAAK,OAAO,OAAO,MAAM;AACzB,SAAK,gBAAgB,OAAO,MAAM;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKA,qBAAqB,QAA4C;AAC7D,WAAO,KAAK,IAAI,MAAM,EAAE,qBAAqB;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,qBAAqB,QAAgB,YAA4B,WAA6C;AAC1G,UAAM,OAAO,KAAK,IAAI,MAAM;AAE5B,UAAM,WAAW,eAAe,IAAI,KAAK,gBAAgB,IAAI,KAAK,cAAc,UAAU;AAE1F,QAAI,aAAa,QAAW;AACxB,YAAM,YAAY,iBAAiB,YAAY,UAAU,YAAY,MAAM,YAAY;AAAA,IAC3F;AAEA,UAAM,SAAS,SAAS,qBAAqB,SAAS;AAEtD,QAAI,WAAW,QAAW;AACtB,YAAM,YAAY;AAAA,QACd,WAAW,SAAS,gBAAgB,UAAU,YAAY,MAAM;AAAA,MACpE;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,iBACI,QACA,YACA,SACmB;AACnB,WAAO,KAAK,qBAAqB,QAAQ,YAAY,QAAQ,EAAE;AAAA,EACnE;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,SAAS,kBAA8B;AACvC,SAAS,mBAAmB;AAC5B,SAAS,0BAA0B;AAY5B,MAAM,MAAM;AAAA,EACf,SAAS,oBAAI,IAAwB;AAAA,EACrC,kBAAkB,IAAI,mBAAmB;AAAA;AAAA,EAEzC,kBAAkB,oBAAI,IAAwB;AAAA;AAAA;AAAA;AAAA,EAK9C,IAAI,iBAAqC;AACrC,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,SAAmB;AACf,WAAO,MAAM,KAAK,KAAK,OAAO,KAAK,CAAC;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,QAA4B;AAC5B,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,QAAI,SAAS,QAAW;AACpB,YAAM,YAAY,cAAc,MAAM;AAAA,IAC1C;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAyB;AACzB,WAAO,KAAK,OAAO,IAAI,MAAM;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAgB,MAAwB;AACxC,SAAK,OAAO,IAAI,QAAQ,IAAI;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,QAAsB;AACzB,SAAK,OAAO,OAAO,MAAM;AACzB,SAAK,gBAAgB,OAAO,MAAM;AAClC,SAAK,gBAAgB,OAAO,MAAM;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,QAAwC;AACrD,WAAO,KAAK,gBAAgB,IAAI,MAAM;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iBAAiB,QAAgB,OAAyB;AACtD,SAAK,gBAAgB,IAAI,QAAQ,KAAK;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,gBAAgB,cAA0B,eAAqC;AAC3E,QAAI,iBAAiB,WAAW,WAAW;AACvC,aAAO;AAAA,IACX;AAEA,QAAI,iBAAiB,WAAW,gBAAgB,kBAAkB,WAAW,WAAW;AACpF,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,QAAyB;AACjC,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,QAAI,SAAS,QAAW;AACpB,aAAO;AAAA,IACX;AACA,UAAM,eAAe,KAAK;AAC1B,UAAM,gBAAgB,KAAK,gBAAgB,IAAI,MAAM;AACrD,WAAO,KAAK,gBAAgB,cAAc,aAAa;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA,EAKA,qBAAqB,QAA4C;AAC7D,WAAO,KAAK,IAAI,MAAM,EAAE,qBAAqB;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,qBAAqB,QAAgB,YAA4B,WAA6C;AAC1G,UAAM,OAAO,KAAK,IAAI,MAAM;AAE5B,UAAM,WAAW,eAAe,IAAI,KAAK,gBAAgB,IAAI,KAAK,cAAc,UAAU;AAE1F,QAAI,aAAa,QAAW;AACxB,YAAM,YAAY,iBAAiB,YAAY,UAAU,YAAY,MAAM,YAAY;AAAA,IAC3F;AAEA,UAAM,SAAS,SAAS,qBAAqB,SAAS;AAEtD,QAAI,WAAW,QAAW;AACtB,YAAM,YAAY;AAAA,QACd,WAAW,SAAS,gBAAgB,UAAU,YAAY,MAAM;AAAA,MACpE;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,iBACI,QACA,YACA,SACmB;AACnB,WAAO,KAAK,qBAAqB,QAAQ,YAAY,QAAQ,EAAE;AAAA,EACnE;AACJ;",
5
5
  "names": []
6
6
  }
@@ -49,8 +49,9 @@ ws.on("error", (error) => {
49
49
  console.error("WebSocket error:", error.message);
50
50
  });
51
51
  ws.on("close", (code, reason) => {
52
+ const reasonStr = reason.toString();
52
53
  console.log(`
53
- Disconnected (code: ${code}, reason: ${reason.toString() || "none"})`);
54
+ Disconnected (code: ${code}, reason: ${reasonStr === "" ? "none" : reasonStr})`);
54
55
  process.exit(0);
55
56
  });
56
57
  process.on("SIGINT", () => {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/example/send-command.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,OAAO,eAAe;AAEtB,MAAM,CAAC,EAAE,EAAE,KAAK,SAAS,QAAQ,IAAI,QAAQ;AAE7C,IAAI,CAAC,OAAO,CAAC,SAAS;AAClB,UAAQ,MAAM,iDAAiD;AAC/D,UAAQ,MAAM,EAAE;AAChB,UAAQ,MAAM,WAAW;AACzB,UAAQ,MAAM,kEAAkE;AAChF,UAAQ,MAAM,gFAAkF;AAChG,UAAQ,MAAM,sEAAsE;AACpF,UAAQ,KAAK,CAAC;AAClB;AAEA,IAAI,OAAgB;AACpB,IAAI,UAAU;AACV,MAAI;AACA,WAAO,KAAK,MAAM,QAAQ;AAAA,EAC9B,SAAS,GAAG;AACR,YAAQ,MAAM,4BAA6B,EAAY,OAAO;AAC9D,YAAQ,KAAK,CAAC;AAAA,EAClB;AACJ;AAEA,QAAQ,IAAI,iBAAiB,GAAG,KAAK;AAErC,MAAM,KAAK,IAAI,UAAU,GAAG;AAE5B,GAAG,GAAG,QAAQ,MAAM;AAChB,UAAQ,IAAI,YAAY;AAExB,QAAM,UAAU;AAAA,IACZ,YAAY,OAAO,KAAK,IAAI,CAAC;AAAA,IAC7B;AAAA,IACA,GAAI,SAAS,UAAa,EAAE,KAAK;AAAA,EACrC;AAEA,UAAQ,IAAI,YAAY,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;AACxD,KAAG,KAAK,KAAK,UAAU,OAAO,CAAC;AACnC,CAAC;AAED,GAAG,GAAG,WAAW,CAAC,SAAyB;AACvC,MAAI;AACA,UAAM,SAAS,KAAK,MAAM,KAAK,SAAS,CAAC;AACzC,YAAQ,IAAI,oBAAoB;AAChC,YAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,EAC/C,QAAQ;AACJ,YAAQ,IAAI,0BAA0B;AACtC,YAAQ,IAAI,KAAK,SAAS,CAAC;AAAA,EAC/B;AACJ,CAAC;AAED,GAAG,GAAG,SAAS,CAAC,UAAiB;AAC7B,UAAQ,MAAM,oBAAoB,MAAM,OAAO;AACnD,CAAC;AAED,GAAG,GAAG,SAAS,CAAC,MAAc,WAAmB;AAC7C,UAAQ,IAAI;AAAA,sBAAyB,IAAI,aAAa,OAAO,SAAS,KAAK,MAAM,GAAG;AACpF,UAAQ,KAAK,CAAC;AAClB,CAAC;AAGD,QAAQ,GAAG,UAAU,MAAM;AACvB,UAAQ,IAAI,yBAAyB;AACrC,KAAG,MAAM;AACb,CAAC;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,OAAO,eAAe;AAEtB,MAAM,CAAC,EAAE,EAAE,KAAK,SAAS,QAAQ,IAAI,QAAQ;AAE7C,IAAI,CAAC,OAAO,CAAC,SAAS;AAClB,UAAQ,MAAM,iDAAiD;AAC/D,UAAQ,MAAM,EAAE;AAChB,UAAQ,MAAM,WAAW;AACzB,UAAQ,MAAM,kEAAkE;AAChF,UAAQ,MAAM,gFAAkF;AAChG,UAAQ,MAAM,sEAAsE;AACpF,UAAQ,KAAK,CAAC;AAClB;AAEA,IAAI,OAAgB;AACpB,IAAI,UAAU;AACV,MAAI;AACA,WAAO,KAAK,MAAM,QAAQ;AAAA,EAC9B,SAAS,GAAG;AACR,YAAQ,MAAM,4BAA6B,EAAY,OAAO;AAC9D,YAAQ,KAAK,CAAC;AAAA,EAClB;AACJ;AAEA,QAAQ,IAAI,iBAAiB,GAAG,KAAK;AAErC,MAAM,KAAK,IAAI,UAAU,GAAG;AAE5B,GAAG,GAAG,QAAQ,MAAM;AAChB,UAAQ,IAAI,YAAY;AAExB,QAAM,UAAU;AAAA,IACZ,YAAY,OAAO,KAAK,IAAI,CAAC;AAAA,IAC7B;AAAA,IACA,GAAI,SAAS,UAAa,EAAE,KAAK;AAAA,EACrC;AAEA,UAAQ,IAAI,YAAY,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;AACxD,KAAG,KAAK,KAAK,UAAU,OAAO,CAAC;AACnC,CAAC;AAED,GAAG,GAAG,WAAW,CAAC,SAAyB;AACvC,MAAI;AACA,UAAM,SAAS,KAAK,MAAM,KAAK,SAAS,CAAC;AACzC,YAAQ,IAAI,oBAAoB;AAChC,YAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,EAC/C,QAAQ;AACJ,YAAQ,IAAI,0BAA0B;AACtC,YAAQ,IAAI,KAAK,SAAS,CAAC;AAAA,EAC/B;AACJ,CAAC;AAED,GAAG,GAAG,SAAS,CAAC,UAAiB;AAC7B,UAAQ,MAAM,oBAAoB,MAAM,OAAO;AACnD,CAAC;AAED,GAAG,GAAG,SAAS,CAAC,MAAc,WAAmB;AAC7C,QAAM,YAAY,OAAO,SAAS;AAClC,UAAQ,IAAI;AAAA,sBAAyB,IAAI,aAAa,cAAc,KAAK,SAAS,SAAS,GAAG;AAC9F,UAAQ,KAAK,CAAC;AAClB,CAAC;AAGD,QAAQ,GAAG,UAAU,MAAM;AACvB,UAAQ,IAAI,yBAAyB;AACrC,KAAG,MAAM;AACb,CAAC;",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketControllerHandler.d.ts","sourceRoot":"","sources":["../../../src/server/WebSocketControllerHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,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;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAiBnD,yDAAyD;AACzD,qBAAa,0BAA2B,YAAW,gBAAgB;;gBAanD,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM;IAQtF;;;OAGG;IACH,MAAM;;;;IA2BN;;OAEG;IACH,eAAe,IAAI,eAAe,EAAE;IAI9B,QAAQ,CAAC,MAAM,EAAE,UAAU;IA2KjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAqvB9B"}
1
+ {"version":3,"file":"WebSocketControllerHandler.d.ts","sourceRoot":"","sources":["../../../src/server/WebSocketControllerHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,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;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAiBnD,yDAAyD;AACzD,qBAAa,0BAA2B,YAAW,gBAAgB;;gBAanD,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM;IAQtF;;;OAGG;IACH,MAAM;;;;IA2BN;;OAEG;IACH,eAAe,IAAI,eAAe,EAAE;IAI9B,QAAQ,CAAC,MAAM,EAAE,UAAU;IAiLjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CA0vB9B"}
@@ -155,10 +155,12 @@ class WebSocketControllerHandler {
155
155
  sendNodeDetailsEvent("node_added", nodeId);
156
156
  });
157
157
  observers.on(this.#commandHandler.events.nodeStateChanged, (nodeId, state) => {
158
- if (state === NodeStates.Disconnected) return;
159
158
  if (state === NodeStates.Connected) {
160
159
  this.#lastInterviewDates.set(nodeId, /* @__PURE__ */ new Date());
161
160
  }
161
+ });
162
+ observers.on(this.#commandHandler.events.nodeAvailabilityChanged, (nodeId, available) => {
163
+ logger.info(`Node ${nodeId} availability changed to ${available}`);
162
164
  sendNodeDetailsEvent("node_updated", nodeId);
163
165
  });
164
166
  observers.on(this.#commandHandler.events.nodeStructureChanged, (nodeId) => {
@@ -634,10 +636,12 @@ class WebSocketControllerHandler {
634
636
  throw ServerError.nodeNotExists(nodeId);
635
637
  }
636
638
  logger.debug(`interview_node called for test node ${nodeId}`);
639
+ testNode.last_interview = (/* @__PURE__ */ new Date()).toISOString().replace("Z", "000");
637
640
  this.#broadcastEvent("node_updated", testNode);
638
641
  return null;
639
642
  }
640
643
  await this.#commandHandler.interviewNode(nodeId);
644
+ this.#lastInterviewDates.set(nodeId, /* @__PURE__ */ new Date());
641
645
  return null;
642
646
  }
643
647
  async #handlePingNode(args) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/server/WebSocketControllerHandler.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -15,6 +15,13 @@ export interface MatterNode {
15
15
  is_bridge: boolean;
16
16
  attributes: AttributesData;
17
17
  attribute_subscriptions: [];
18
+ /**
19
+ * Matter specification version of the node (e.g., "1.2.0", "1.3.0", "1.4.0").
20
+ * Determined from the SpecificationVersion attribute (0x15) if available,
21
+ * otherwise estimated from DataModelRevision (0x0) on BasicInformation cluster.
22
+ * Optional - not available in Python Matter Server.
23
+ */
24
+ matter_version?: string;
18
25
  }
19
26
  export interface APICommands {
20
27
  start_listening: {
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketMessageTypes.d.ts","sourceRoot":"","sources":["../../../src/types/WebSocketMessageTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebSocketMessageTypes.d.ts","sourceRoot":"","sources":["../../../src/types/WebSocketMessageTypes.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/types/WebSocketMessageTypes.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAmXO,IAAK,eAAL,kBAAKA,kBAAL;AACH,EAAAA,cAAA,kBAAe;AACf,EAAAA,cAAA,kBAAe;AACf,EAAAA,cAAA,WAAQ;AAHA,SAAAA;AAAA,GAAA;AAsFL,MAAM,kBAAkB;AAMxB,IAAK,kBAAL,kBAAKC,qBAAL;AAEH,EAAAA,kCAAA,kBAAe,KAAf;AAEA,EAAAA,kCAAA,0BAAuB,KAAvB;AAEA,EAAAA,kCAAA,yBAAsB,KAAtB;AAEA,EAAAA,kCAAA,kBAAe,KAAf;AAEA,EAAAA,kCAAA,sBAAmB,KAAnB;AAEA,EAAAA,kCAAA,mBAAgB,KAAhB;AAEA,EAAAA,kCAAA,qBAAkB,KAAlB;AAEA,EAAAA,kCAAA,mBAAgB,KAAhB;AAEA,EAAAA,kCAAA,sBAAmB,KAAnB;AAEA,EAAAA,kCAAA,oBAAiB,KAAjB;AAEA,EAAAA,kCAAA,sBAAmB,MAAnB;AAEA,EAAAA,kCAAA,iBAAc,MAAd;AAxBQ,SAAAA;AAAA,GAAA;AA+BL,MAAM,oBAAoB,MAAM;AAAA,EACnC,YACoB,MAChB,SACA,OACF;AACE,UAAM,SAAS,EAAE,MAAM,CAAC;AAJR;AAKhB,SAAK,OAAO;AAAA,EAChB;AAAA,EAEA,OAAO,aAAa,SAAiB,OAA4B;AAC7D,WAAO,IAAI,YAAY,sBAA8B,SAAS,KAAK;AAAA,EACvE;AAAA,EAEA,OAAO,qBAAqB,SAAiB,OAA4B;AACrE,WAAO,IAAI,YAAY,8BAAsC,SAAS,KAAK;AAAA,EAC/E;AAAA,EAEA,OAAO,oBAAoB,SAAiB,OAA4B;AACpE,WAAO,IAAI,YAAY,6BAAqC,SAAS,KAAK;AAAA,EAC9E;AAAA,EAEA,OAAO,aAAa,QAAyB,OAA4B;AACrE,WAAO,IAAI,YAAY,sBAA8B,QAAQ,MAAM,iBAAiB,KAAK;AAAA,EAC7F;AAAA,EAEA,OAAO,iBAAiB,QAAyB,OAA4B;AACzE,WAAO,IAAI,YAAY,0BAAkC,QAAQ,MAAM,qBAAqB,KAAK;AAAA,EACrG;AAAA,EAEA,OAAO,cAAc,QAAsC;AACvD,WAAO,IAAI,YAAY,uBAA+B,QAAQ,MAAM,iBAAiB;AAAA,EACzF;AAAA,EAEA,OAAO,gBAAgB,SAA8B;AACjD,WAAO,IAAI,YAAY,yBAAiC,OAAO;AAAA,EACnE;AAAA,EAEA,OAAO,cAAc,SAAiB,OAA4B;AAC9D,WAAO,IAAI,YAAY,uBAA+B,SAAS,KAAK;AAAA,EACxE;AAAA,EAEA,OAAO,iBAAiB,SAA8B;AAClD,WAAO,IAAI,YAAY,0BAAkC,OAAO;AAAA,EACpE;AAAA,EAEA,OAAO,eAAe,SAA8B;AAChD,WAAO,IAAI,YAAY,wBAAgC,oBAAoB,OAAO,EAAE;AAAA,EACxF;AAAA,EAEA,OAAO,iBAAiB,SAAiB,OAA4B;AACjE,WAAO,IAAI,YAAY,2BAAkC,SAAS,KAAK;AAAA,EAC3E;AAAA,EAEA,OAAO,YAAY,SAAiB,OAA4B;AAC5D,WAAO,IAAI,YAAY,sBAA6B,SAAS,KAAK;AAAA,EACtE;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AA0XO,IAAK,eAAL,kBAAKA,kBAAL;AACH,EAAAA,cAAA,kBAAe;AACf,EAAAA,cAAA,kBAAe;AACf,EAAAA,cAAA,WAAQ;AAHA,SAAAA;AAAA,GAAA;AAsFL,MAAM,kBAAkB;AAMxB,IAAK,kBAAL,kBAAKC,qBAAL;AAEH,EAAAA,kCAAA,kBAAe,KAAf;AAEA,EAAAA,kCAAA,0BAAuB,KAAvB;AAEA,EAAAA,kCAAA,yBAAsB,KAAtB;AAEA,EAAAA,kCAAA,kBAAe,KAAf;AAEA,EAAAA,kCAAA,sBAAmB,KAAnB;AAEA,EAAAA,kCAAA,mBAAgB,KAAhB;AAEA,EAAAA,kCAAA,qBAAkB,KAAlB;AAEA,EAAAA,kCAAA,mBAAgB,KAAhB;AAEA,EAAAA,kCAAA,sBAAmB,KAAnB;AAEA,EAAAA,kCAAA,oBAAiB,KAAjB;AAEA,EAAAA,kCAAA,sBAAmB,MAAnB;AAEA,EAAAA,kCAAA,iBAAc,MAAd;AAxBQ,SAAAA;AAAA,GAAA;AA+BL,MAAM,oBAAoB,MAAM;AAAA,EACnC,YACoB,MAChB,SACA,OACF;AACE,UAAM,SAAS,EAAE,MAAM,CAAC;AAJR;AAKhB,SAAK,OAAO;AAAA,EAChB;AAAA,EAEA,OAAO,aAAa,SAAiB,OAA4B;AAC7D,WAAO,IAAI,YAAY,sBAA8B,SAAS,KAAK;AAAA,EACvE;AAAA,EAEA,OAAO,qBAAqB,SAAiB,OAA4B;AACrE,WAAO,IAAI,YAAY,8BAAsC,SAAS,KAAK;AAAA,EAC/E;AAAA,EAEA,OAAO,oBAAoB,SAAiB,OAA4B;AACpE,WAAO,IAAI,YAAY,6BAAqC,SAAS,KAAK;AAAA,EAC9E;AAAA,EAEA,OAAO,aAAa,QAAyB,OAA4B;AACrE,WAAO,IAAI,YAAY,sBAA8B,QAAQ,MAAM,iBAAiB,KAAK;AAAA,EAC7F;AAAA,EAEA,OAAO,iBAAiB,QAAyB,OAA4B;AACzE,WAAO,IAAI,YAAY,0BAAkC,QAAQ,MAAM,qBAAqB,KAAK;AAAA,EACrG;AAAA,EAEA,OAAO,cAAc,QAAsC;AACvD,WAAO,IAAI,YAAY,uBAA+B,QAAQ,MAAM,iBAAiB;AAAA,EACzF;AAAA,EAEA,OAAO,gBAAgB,SAA8B;AACjD,WAAO,IAAI,YAAY,yBAAiC,OAAO;AAAA,EACnE;AAAA,EAEA,OAAO,cAAc,SAAiB,OAA4B;AAC9D,WAAO,IAAI,YAAY,uBAA+B,SAAS,KAAK;AAAA,EACxE;AAAA,EAEA,OAAO,iBAAiB,SAA8B;AAClD,WAAO,IAAI,YAAY,0BAAkC,OAAO;AAAA,EACpE;AAAA,EAEA,OAAO,eAAe,SAA8B;AAChD,WAAO,IAAI,YAAY,wBAAgC,oBAAoB,OAAO,EAAE;AAAA,EACxF;AAAA,EAEA,OAAO,iBAAiB,SAAiB,OAA4B;AACjE,WAAO,IAAI,YAAY,2BAAkC,SAAS,KAAK;AAAA,EAC3E;AAAA,EAEA,OAAO,YAAY,SAAiB,OAA4B;AAC5D,WAAO,IAAI,YAAY,sBAA6B,SAAS,KAAK;AAAA,EACtE;AACJ;",
5
5
  "names": ["UpdateSource", "ServerErrorCode"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter-server/ws-controller",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "type": "module",
5
5
  "description": "matter.js based Matter controller library",
6
6
  "bugs": {
@@ -22,11 +22,11 @@
22
22
  "node": ">=20.19.0 <22.0.0 || >=22.13.0"
23
23
  },
24
24
  "optionalDependencies": {
25
- "@matter/nodejs-ble": "0.16.8-alpha.0-20260128-0ff06da17"
25
+ "@matter/nodejs-ble": "0.16.8-alpha.0-20260130-2554cb6e2"
26
26
  },
27
27
  "dependencies": {
28
- "@matter/main": "0.16.8-alpha.0-20260128-0ff06da17",
29
- "@project-chip/matter.js": "0.16.8-alpha.0-20260128-0ff06da17",
28
+ "@matter/main": "0.16.8-alpha.0-20260130-2554cb6e2",
29
+ "@project-chip/matter.js": "0.16.8-alpha.0-20260130-2554cb6e2",
30
30
  "ws": "^8.19.0"
31
31
  },
32
32
  "devDependencies": {
@@ -47,6 +47,7 @@ import {
47
47
  GroupId,
48
48
  ManualPairingCodeCodec,
49
49
  QrPairingCodeCodec,
50
+ SpecificationVersion,
50
51
  Status,
51
52
  StatusResponseError,
52
53
  TlvAny,
@@ -108,6 +109,38 @@ import { Nodes } from "./Nodes.js";
108
109
 
109
110
  const logger = Logger.get("ControllerCommandHandler");
110
111
 
112
+ /**
113
+ * Determine the Matter specification version from cached attributes.
114
+ * Uses SpecificationVersion attribute (0/40/21) if available, otherwise
115
+ * estimates from DataModelRevision attribute (0/40/0).
116
+ *
117
+ * @param attributes Cached attributes for the node
118
+ * @returns Matter version string (e.g., "1.2.0", "1.3.0") or undefined if unknown
119
+ */
120
+ function determineMatterVersion(attributes: AttributesData): string | undefined {
121
+ // BasicInformation cluster is 0x28 (40 decimal)
122
+ // SpecificationVersion is attribute 0x15 (21 decimal) = path "0/40/21"
123
+ // DataModelRevision is attribute 0x0 (0 decimal) = path "0/40/0"
124
+ const specificationVersion = attributes["0/40/21"];
125
+ const dataModelRevision = attributes["0/40/0"];
126
+
127
+ if (typeof specificationVersion === "number" && specificationVersion > 0) {
128
+ const { major, minor, patch } = SpecificationVersion.decode(specificationVersion);
129
+ return `${major}.${minor}.${patch}`;
130
+ }
131
+
132
+ // Fall back to estimating from DataModelRevision
133
+ if (typeof dataModelRevision === "number") {
134
+ if (dataModelRevision <= 16) {
135
+ return "<1.2.0";
136
+ } else if (dataModelRevision === 17) {
137
+ return "1.2.0";
138
+ }
139
+ }
140
+
141
+ return undefined;
142
+ }
143
+
111
144
  export class ControllerCommandHandler {
112
145
  #controller: CommissioningController;
113
146
  #started = false;
@@ -120,12 +153,16 @@ export class ControllerCommandHandler {
120
153
  #availableUpdates = new Map<NodeId, SoftwareUpdateInfo>();
121
154
  /** Poller for custom cluster attributes (Eve energy, etc.) */
122
155
  #customClusterPoller: CustomClusterPoller;
156
+ /** Track the last known availability for each node to detect changes */
157
+ #lastAvailability = new Map<NodeId, boolean>();
123
158
  events = {
124
159
  started: new AsyncObservable(),
125
160
  attributeChanged: new Observable<[nodeId: NodeId, data: DecodedAttributeReportValue<any>]>(),
126
161
  eventChanged: new Observable<[nodeId: NodeId, data: DecodedEventReportValue<any>]>(),
127
162
  nodeAdded: new Observable<[nodeId: NodeId]>(),
128
163
  nodeStateChanged: new Observable<[nodeId: NodeId, state: NodeStates]>(),
164
+ /** Emitted when node availability changes (for sending node_updated events) */
165
+ nodeAvailabilityChanged: new Observable<[nodeId: NodeId, available: boolean]>(),
129
166
  nodeStructureChanged: new Observable<[nodeId: NodeId]>(),
130
167
  nodeDecommissioned: new Observable<[nodeId: NodeId]>(),
131
168
  nodeEndpointAdded: new Observable<[nodeId: NodeId, endpointId: EndpointNumber]>(),
@@ -234,6 +271,15 @@ export class ControllerCommandHandler {
234
271
  });
235
272
  node.events.eventTriggered.on(data => this.events.eventChanged.emit(nodeId, data));
236
273
  node.events.stateChanged.on(state => {
274
+ if (state === NodeStates.Disconnected) {
275
+ return;
276
+ }
277
+
278
+ // Calculate availability before and after state change
279
+ const previousState = this.#nodes.getPreviousState(nodeId);
280
+ const wasAvailable = this.#lastAvailability.get(nodeId) ?? false;
281
+ const isAvailable = this.#nodes.isNodeAvailable(state, previousState);
282
+
237
283
  // Only refresh cache on Connected state (not Reconnecting, WaitingForDiscovery, etc.)
238
284
  if (state === NodeStates.Connected) {
239
285
  attributeCache.update(node);
@@ -243,7 +289,21 @@ export class ControllerCommandHandler {
243
289
  this.#customClusterPoller.registerNode(nodeId, attributes);
244
290
  }
245
291
  }
292
+
293
+ // Update state tracking for the next transition
294
+ this.#nodes.setPreviousState(nodeId, state);
295
+ this.#lastAvailability.set(nodeId, isAvailable);
296
+
297
+ // Emit state changed event
246
298
  this.events.nodeStateChanged.emit(nodeId, state);
299
+
300
+ // Emit availability changed if it actually changed
301
+ if (wasAvailable !== isAvailable) {
302
+ logger.info(
303
+ `Node ${nodeId} availability changed: ${wasAvailable} -> ${isAvailable} (state: ${NodeStates[previousState ?? -1]} -> ${NodeStates[state]})`,
304
+ );
305
+ this.events.nodeAvailabilityChanged.emit(nodeId, isAvailable);
306
+ }
247
307
  });
248
308
  node.events.structureChanged.on(() => {
249
309
  // Structure changed means endpoints may have been added/removed, refresh cache
@@ -363,19 +423,16 @@ export class ControllerCommandHandler {
363
423
  isBridge = endpoint1DeviceTypes.some(entry => entry["0"] === 14);
364
424
  }
365
425
 
366
- // Get commissioned date from node state if available
367
- const commissionedAt = node.state.commissioning.commissionedAt;
368
- const dateCommissioned = commissionedAt !== undefined ? new Date(commissionedAt) : new Date();
369
-
370
426
  return {
371
427
  node_id: node.nodeId,
372
- date_commissioned: getDateAsString(dateCommissioned),
428
+ date_commissioned: getDateAsString(new Date(node.state.commissioning.commissionedAt ?? Date.now())),
373
429
  last_interview: getDateAsString(lastInterviewDate ?? new Date()),
374
430
  interview_version: 6,
375
- available: node.isConnected,
431
+ available: this.#nodes.isAvailable(nodeId),
376
432
  is_bridge: isBridge,
377
433
  attributes,
378
434
  attribute_subscriptions: [],
435
+ matter_version: determineMatterVersion(attributes),
379
436
  };
380
437
  }
381
438
 
@@ -44,6 +44,25 @@ export interface MatterControllerOptions {
44
44
  disableOtaProvider?: boolean;
45
45
  /** Server ID for storage. Default is "server", but may be "server-<hex(fabricId)>-<hex(vendorId)>" for multi-fabric support */
46
46
  serverId?: string;
47
+ /** Server version string (e.g., "0.2.10" or "0.2.10-alpha.0"). Used for BasicInformation cluster. */
48
+ serverVersion?: string;
49
+ }
50
+
51
+ /**
52
+ * Parse a version string into a numeric version in MMmmpp format.
53
+ * For alpha/beta versions, only the base version (major.minor.patch) is used.
54
+ * @param version Version string like "0.2.10" or "0.2.10-alpha.0"
55
+ * @returns Numeric version like 210 for "0.2.10"
56
+ */
57
+ function parseVersionToNumber(version: string): number {
58
+ // Extract base version (before any -alpha, -beta, etc.)
59
+ const baseVersion = version.split("-")[0];
60
+ const parts = baseVersion.split(".");
61
+ const major = parseInt(parts[0] ?? "0", 10);
62
+ const minor = parseInt(parts[1] ?? "0", 10);
63
+ const patch = parseInt(parts[2] ?? "0", 10);
64
+ // Format: MMmmpp (2 digits each)
65
+ return major * 10000 + minor * 100 + patch;
47
66
  }
48
67
 
49
68
  export class MatterController {
@@ -53,6 +72,7 @@ export class MatterController {
53
72
  #commandHandler?: ControllerCommandHandler;
54
73
  #config: ConfigStorage;
55
74
  #serverId: string;
75
+ #serverVersion: string;
56
76
  #legacyCommissionedDates?: Map<string, Timestamp>;
57
77
  #enableTestNetDcl = false;
58
78
  #disableOtaProvider = true;
@@ -123,6 +143,7 @@ export class MatterController {
123
143
  this.#env = environment;
124
144
  this.#config = config;
125
145
  this.#serverId = serverId;
146
+ this.#serverVersion = options.serverVersion ?? "0.0.0";
126
147
  this.#enableTestNetDcl = options.enableTestNetDcl ?? this.#enableTestNetDcl;
127
148
  this.#disableOtaProvider = options.disableOtaProvider ?? this.#disableOtaProvider;
128
149
  }
@@ -144,6 +165,14 @@ export class MatterController {
144
165
  adminFabricId: fabricId !== undefined ? FabricId(fabricId) : undefined,
145
166
  rootNodeId: NodeId(112233), // TODO Remove when we switch to random IDs
146
167
  enableOtaProvider: !this.#disableOtaProvider,
168
+ basicInformation: {
169
+ vendorName: "Open Home Foundation",
170
+ productId: 1,
171
+ hardwareVersion: 1,
172
+ hardwareVersionString: "1.0",
173
+ softwareVersion: parseVersionToNumber(this.#serverVersion),
174
+ softwareVersionString: this.#serverVersion.split("-")[0], // Base version without alpha/beta suffix
175
+ },
147
176
  });
148
177
 
149
178
  // Start loading and initialization of meta data
@@ -8,7 +8,7 @@ import { NodeId } from "@matter/main";
8
8
  import { ClusterClientObj } from "@matter/main/protocol";
9
9
  import { ClusterId, ClusterType, EndpointNumber } from "@matter/main/types";
10
10
  import { InteractionClient } from "@project-chip/matter.js/cluster";
11
- import { PairedNode } from "@project-chip/matter.js/device";
11
+ import { NodeStates, PairedNode } from "@project-chip/matter.js/device";
12
12
  import { ServerError } from "../types/WebSocketMessageTypes.js";
13
13
  import { AttributeDataCache } from "./AttributeDataCache.js";
14
14
 
@@ -20,10 +20,13 @@ import { AttributeDataCache } from "./AttributeDataCache.js";
20
20
  * - Node retrieval and existence checking
21
21
  * - Access to interaction clients and cluster clients
22
22
  * - Attribute data caching
23
+ * - Connection state tracking for availability debouncing
23
24
  */
24
25
  export class Nodes {
25
26
  #nodes = new Map<NodeId, PairedNode>();
26
27
  #attributeCache = new AttributeDataCache();
28
+ /** Track previous connection state for availability debouncing */
29
+ #previousStates = new Map<NodeId, NodeStates>();
27
30
 
28
31
  /**
29
32
  * Get the attribute cache instance.
@@ -66,11 +69,64 @@ export class Nodes {
66
69
  }
67
70
 
68
71
  /**
69
- * Remove a node from storage and clear its attribute cache.
72
+ * Remove a node from storage and clear its attribute cache and state tracking.
70
73
  */
71
74
  delete(nodeId: NodeId): void {
72
75
  this.#nodes.delete(nodeId);
73
76
  this.#attributeCache.delete(nodeId);
77
+ this.#previousStates.delete(nodeId);
78
+ }
79
+
80
+ /**
81
+ * Get the previous connection state for a node.
82
+ */
83
+ getPreviousState(nodeId: NodeId): NodeStates | undefined {
84
+ return this.#previousStates.get(nodeId);
85
+ }
86
+
87
+ /**
88
+ * Update the previous connection state for a node.
89
+ * Call this after processing a state change to track state transitions.
90
+ */
91
+ setPreviousState(nodeId: NodeId, state: NodeStates): void {
92
+ this.#previousStates.set(nodeId, state);
93
+ }
94
+
95
+ /**
96
+ * Determine if a node should be considered available based on its connection state.
97
+ * Uses debouncing logic similar to Python Matter Server:
98
+ * - Connected: available
99
+ * - Reconnecting when previously Connected: still available (debouncing)
100
+ * - WaitingForDeviceDiscovery or Disconnected: unavailable
101
+ *
102
+ * @param currentState Current connection state
103
+ * @param previousState Previous connection state (undefined if first state change)
104
+ * @returns true if node should be considered available
105
+ */
106
+ isNodeAvailable(currentState: NodeStates, previousState?: NodeStates): boolean {
107
+ if (currentState === NodeStates.Connected) {
108
+ return true;
109
+ }
110
+ // Debounce: if transitioning from Connected to Reconnecting, still consider available
111
+ if (currentState === NodeStates.Reconnecting && previousState === NodeStates.Connected) {
112
+ return true;
113
+ }
114
+ // WaitingForDeviceDiscovery, Disconnected, or Reconnecting from non-connected state
115
+ return false;
116
+ }
117
+
118
+ /**
119
+ * Check if a node is available based on its current and previous connection state.
120
+ * Uses debouncing: Reconnecting from Connected is still considered available.
121
+ */
122
+ isAvailable(nodeId: NodeId): boolean {
123
+ const node = this.#nodes.get(nodeId);
124
+ if (node === undefined) {
125
+ return false;
126
+ }
127
+ const currentState = node.connectionState;
128
+ const previousState = this.#previousStates.get(nodeId);
129
+ return this.isNodeAvailable(currentState, previousState);
74
130
  }
75
131
 
76
132
  /**
@@ -71,7 +71,8 @@ ws.on("error", (error: Error) => {
71
71
  });
72
72
 
73
73
  ws.on("close", (code: number, reason: Buffer) => {
74
- console.log(`\nDisconnected (code: ${code}, reason: ${reason.toString() || "none"})`);
74
+ const reasonStr = reason.toString();
75
+ console.log(`\nDisconnected (code: ${code}, reason: ${reasonStr === "" ? "none" : reasonStr})`);
75
76
  process.exit(0);
76
77
  });
77
78
 
@@ -198,11 +198,17 @@ export class WebSocketControllerHandler implements WebServerHandler {
198
198
  });
199
199
 
200
200
  observers.on(this.#commandHandler.events.nodeStateChanged, (nodeId, state) => {
201
- if (state === NodeStates.Disconnected) return;
202
201
  // Track last interview time when node becomes connected
203
202
  if (state === NodeStates.Connected) {
204
203
  this.#lastInterviewDates.set(nodeId, new Date());
205
204
  }
205
+ // Availability changes (and node_updated events) are handled by nodeAvailabilityChanged
206
+ // Individual attribute updates are already sent via attributeChanged events
207
+ });
208
+
209
+ // Send node_updated when availability changes (debounced)
210
+ observers.on(this.#commandHandler.events.nodeAvailabilityChanged, (nodeId, available) => {
211
+ logger.info(`Node ${nodeId} availability changed to ${available}`);
206
212
  sendNodeDetailsEvent("node_updated", nodeId);
207
213
  });
208
214
 
@@ -764,12 +770,17 @@ export class WebSocketControllerHandler implements WebServerHandler {
764
770
  throw ServerError.nodeNotExists(nodeId);
765
771
  }
766
772
  logger.debug(`interview_node called for test node ${nodeId}`);
773
+ // Update last interview date for test node
774
+ testNode.last_interview = new Date().toISOString().replace("Z", "000");
767
775
  this.#broadcastEvent("node_updated", testNode);
768
776
  return null;
769
777
  }
770
778
 
771
779
  await this.#commandHandler.interviewNode(nodeId);
772
780
 
781
+ // Update last interview date
782
+ this.#lastInterviewDates.set(nodeId, new Date());
783
+
773
784
  return null;
774
785
  }
775
786
 
@@ -15,6 +15,13 @@ export interface MatterNode {
15
15
  is_bridge: boolean;
16
16
  attributes: AttributesData;
17
17
  attribute_subscriptions: []; // ???
18
+ /**
19
+ * Matter specification version of the node (e.g., "1.2.0", "1.3.0", "1.4.0").
20
+ * Determined from the SpecificationVersion attribute (0x15) if available,
21
+ * otherwise estimated from DataModelRevision (0x0) on BasicInformation cluster.
22
+ * Optional - not available in Python Matter Server.
23
+ */
24
+ matter_version?: string;
18
25
  }
19
26
 
20
27
  export interface APICommands {