homebridge-plugin-klares4 2.1.0-rc.8 → 2.1.0

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/platform/index.d.ts.map +1 -1
  3. package/dist/platform/index.js +7 -1
  4. package/dist/platform/index.js.map +1 -1
  5. package/dist/platform/matter-accessory-registry.d.ts +13 -15
  6. package/dist/platform/matter-accessory-registry.d.ts.map +1 -1
  7. package/dist/platform/matter-accessory-registry.js +75 -119
  8. package/dist/platform/matter-accessory-registry.js.map +1 -1
  9. package/dist/platform/matter-device-mapper.d.ts +2 -0
  10. package/dist/platform/matter-device-mapper.d.ts.map +1 -1
  11. package/dist/platform/matter-device-mapper.js +22 -6
  12. package/dist/platform/matter-device-mapper.js.map +1 -1
  13. package/dist/platform/matter-fallback-store.d.ts +21 -0
  14. package/dist/platform/matter-fallback-store.d.ts.map +1 -0
  15. package/dist/platform/matter-fallback-store.js +105 -0
  16. package/dist/platform/matter-fallback-store.js.map +1 -0
  17. package/dist/platform/matter-register-probe.d.ts +10 -0
  18. package/dist/platform/matter-register-probe.d.ts.map +1 -0
  19. package/dist/platform/matter-register-probe.js +49 -0
  20. package/dist/platform/matter-register-probe.js.map +1 -0
  21. package/dist/platform/matter-registration-recovery.d.ts +4 -2
  22. package/dist/platform/matter-registration-recovery.d.ts.map +1 -1
  23. package/dist/platform/matter-registration-recovery.js +3 -1
  24. package/dist/platform/matter-registration-recovery.js.map +1 -1
  25. package/dist/platform/matter-state-update-queue.d.ts +19 -0
  26. package/dist/platform/matter-state-update-queue.d.ts.map +1 -0
  27. package/dist/platform/matter-state-update-queue.js +76 -0
  28. package/dist/platform/matter-state-update-queue.js.map +1 -0
  29. package/dist/platform/matter-state-updates.d.ts.map +1 -1
  30. package/dist/platform/matter-state-updates.js +5 -2
  31. package/dist/platform/matter-state-updates.js.map +1 -1
  32. package/dist/platform/matter-thermostat-mapper.d.ts +5 -12
  33. package/dist/platform/matter-thermostat-mapper.d.ts.map +1 -1
  34. package/dist/platform/matter-thermostat-mapper.js +6 -13
  35. package/dist/platform/matter-thermostat-mapper.js.map +1 -1
  36. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,47 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.1.0] - 2026-05-19
11
+
12
+ Stable release of the Homebridge 2.0 + Matter compatibility track. Aggregates
13
+ the work shipped over the `2.1.0-rc.0` … `2.1.0-rc.12` cycle, verified on a
14
+ production Matter-only child bridge (`hap=false`) with 81 Lares4 accessories
15
+ in Apple Home.
16
+
17
+ Highlights vs `2.0.1`:
18
+
19
+ - Homebridge 2.0 support with native Matter accessory registration via
20
+ `api.matter.registerPlatformAccessories` (Thermostat, OnOffLight,
21
+ DimmableLight, WindowCovering, TemperatureSensor, HumiditySensor,
22
+ LightSensor, MotionSensor, ContactSensor, OnOffSwitch).
23
+ - Probe-based register settle: state updates are only pushed once
24
+ `getAccessoryState` confirms the Matter endpoint is queryable.
25
+ - Cache-resume path: accessories already in the Homebridge cache are
26
+ resumed without re-registering, so controllers (Apple Home, Google
27
+ Home) no longer see `parts list change` notifications at every
28
+ restart.
29
+ - Persistent thermostat fallback set (`klares4-matter-fallback.json`):
30
+ thermostats that fall back to `TemperatureSensor` stay in sync with
31
+ the Matter storage across restarts.
32
+ - Scenarios and gates are momentary `OnOffSwitch` devices with
33
+ configurable auto-off (`scenarioAutoOffDelay`, default 500ms).
34
+ - Thermostat presetTypes workaround: `presetTypeFeatures` is now passed
35
+ as a bitmap object, so matter.js 0.17 accepts the `Thermostat`
36
+ cluster and thermostats register as full Thermostat devices in
37
+ Apple Home (setpoint + mode control restored).
38
+
39
+ ## [2.1.0-rc.12] - 2026-05-19
40
+
41
+ ### Fixed (Matter)
42
+
43
+ - Thermostat registration: `presetTypeFeatures` now passed as a bitmap object `{ automatic: false, supportsNames: false }` instead of the number `0`, which matter.js 0.17 rejected with `Cannot manage number because it is not a bitmap object`. Thermostats now register as proper Matter `Thermostat` devices (not as `TemperatureSensor` fallback), restoring setpoint and mode control from Apple Home.
44
+ - Register/update race condition: replaced the fixed 2-second settle timer with a probe-based loop (`getAccessoryState` with exponential backoff, configurable via `KLARES4_MATTER_REGISTER_TIMEOUT_MS` / `KLARES4_MATTER_REGISTER_POLL_MS` / `KLARES4_MATTER_REGISTER_POLL_MAX_MS`). State updates are no longer pushed before the Matter endpoint is actually ready, eliminating `MatterDeviceError: Accessory ... not registered or missing endpoint` at startup.
45
+ - Scenarios stuck in `ON` state: scenarios now expose `OnOffSwitch` and auto-reset to off after a configurable delay (`scenarioAutoOffDelay`, default 500ms) so subsequent triggers work as expected.
46
+ - Gate handler asymmetry: gates now use `OnOffSwitch` with momentary semantics (single impulse + auto-off) instead of `OnOffOutlet` with dual toggle.
47
+ - Full re-registration on every restart: accessories already present in the Homebridge cache are now resumed via probe instead of re-registered, preventing controllers (Apple Home, Google Home) from seeing 81 spurious `parts list change` notifications.
48
+ - Fallback persistence: thermostats that fall back to `TemperatureSensor` are persisted to `klares4-matter-fallback.json` so the plugin and the Matter storage stay in sync across restarts (no more cluster mismatch between an endpoint stored as `TemperatureSensor` and the plugin still pushing to the `thermostat` cluster).
49
+ - 30-second state-update bootstrap delay reduced to 0 by default (env override still available); combined with probe-based settle, system temperature sensors now appear in Apple Home within seconds of startup.
50
+
10
51
  ## [2.0.1] - 2026-03-13
11
52
 
12
53
  ### Added
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,GAAG,EACH,cAAc,EACd,qBAAqB,EACrB,MAAM,EACN,eAAe,EACf,iBAAiB,EACjB,OAAO,EACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAU5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9D,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3F,qBAAa,cAAe,YAAW,qBAAqB;aAqBpC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,YAAY;aACpB,GAAG,EAAE,GAAG;IAtB5B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxC,SAAgB,cAAc,EAAE,OAAO,cAAc,CAAC;IACtD,SAAgB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAa;IACxE,SAAgB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAa;IAEtE,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,UAAU,CAAC,EAAE,UAAU,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwC;IAC1E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0B;IAChE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;IAC5D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAGhC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,GAAG;IAgErB,wBAAwB,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;YAInD,gBAAgB;IAwE9B,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,wBAAwB;IASzB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAItD,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIxC,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAI3C,eAAe,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;CAG7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,GAAG,EACH,cAAc,EACd,qBAAqB,EACrB,MAAM,EACN,eAAe,EACf,iBAAiB,EACjB,OAAO,EACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAU5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE9D,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3F,qBAAa,cAAe,YAAW,qBAAqB;aAqBpC,GAAG,EAAE,MAAM;aACX,MAAM,EAAE,YAAY;aACpB,GAAG,EAAE,GAAG;IAtB5B,SAAgB,OAAO,EAAE,OAAO,OAAO,CAAC;IACxC,SAAgB,cAAc,EAAE,OAAO,cAAc,CAAC;IACtD,SAAgB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAa;IACxE,SAAgB,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAa;IAEtE,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,UAAU,CAAC,EAAE,UAAU,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwC;IAC1E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0B;IAChE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA2B;IAC5D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA0B;IACzD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAGhC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,GAAG;IAkErB,wBAAwB,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;YAInD,gBAAgB;IAwE9B,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,wBAAwB;IASzB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAItD,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAIxC,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAI3C,eAAe,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;CAG7D"}
@@ -48,7 +48,13 @@ class Lares4Platform {
48
48
  createAccessoryHandler: (accessory, device) => this.handlerService.createAccessoryHandler(accessory, device),
49
49
  updateAccessoryHandler: (handler, device) => this.handlerService.updateAccessoryHandler(handler, device),
50
50
  });
51
- this.matterRegistry = new matter_accessory_registry_1.MatterAccessoryRegistry(this.api, this.log, () => this.wsClient);
51
+ this.matterRegistry = new matter_accessory_registry_1.MatterAccessoryRegistry({
52
+ api: this.api,
53
+ log: this.log,
54
+ getWsClient: () => this.wsClient,
55
+ storagePath: this.api.user.storagePath(),
56
+ momentaryAutoOffMs: this.config?.scenarioAutoOffDelay,
57
+ });
52
58
  if (!config) {
53
59
  this.log.error('No configuration found');
54
60
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platform/index.ts"],"names":[],"mappings":"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"}
@@ -3,44 +3,42 @@ import type { MatterAccessory } from 'homebridge';
3
3
  import type { KseniaDevice } from '../types';
4
4
  import type { KseniaWebSocketClient } from '../websocket-client';
5
5
  export type MatterRegistrationStatus = 'pending' | 'registered' | 'failed' | 'skipped';
6
+ export interface MatterRegistryDeps {
7
+ api: API;
8
+ log: Logger;
9
+ getWsClient: () => KseniaWebSocketClient | undefined;
10
+ storagePath: string;
11
+ momentaryAutoOffMs?: number;
12
+ }
6
13
  export declare class MatterAccessoryRegistry {
7
14
  private readonly api;
8
15
  private readonly log;
9
16
  private readonly getWsClient;
10
- /** UUIDs that HB2 reported to us via `configureMatterAccessory` (cache restore). */
17
+ private readonly momentaryAutoOffMs?;
11
18
  private readonly cachedUUIDs;
12
- /** Full registration state, keyed by Lares device id (also the Matter UUID). */
13
19
  private readonly registrations;
14
- /** UUIDs we've seen in the current discovery cycle — used to prune stale ones. */
20
+ private readonly stateUpdateQueue;
15
21
  private activeDiscoveredUUIDs;
16
- /** UUIDs that fell back to TemperatureSensor — drive the alternate state-push path. */
17
22
  private readonly thermostatFallbackUUIDs;
18
- constructor(api: API, log: Logger, getWsClient: () => KseniaWebSocketClient | undefined);
23
+ private readonly fallbackStore;
24
+ constructor(deps: MatterRegistryDeps);
19
25
  get isEnabled(): boolean;
20
26
  configureCachedAccessory(accessory: MatterAccessory): void;
21
27
  startDiscoveryCycle(): void;
22
28
  addOrUpdateAccessory(device: KseniaDevice): Promise<void>;
23
29
  updateAccessoryState(device: KseniaDevice): Promise<void>;
24
30
  pruneStaleAccessories(): Promise<void>;
25
- /** Test-only introspection: registration status for a given device id. */
26
31
  getStatus(uuid: string): MatterRegistrationStatus | undefined;
27
- /** Test-only introspection: queued updates count for a device id. */
28
32
  getPendingCount(uuid: string): number;
33
+ private mapperDeps;
29
34
  private registerAccessory;
30
35
  private completeRegistration;
31
- /**
32
- * Centralised handler for failed initial registration. Currently only used for thermostats —
33
- * other device types are simply marked failed and skipped for the session.
34
- */
36
+ private isFallbackAccessory;
35
37
  private handleRegisterFailure;
36
- private pushStateUpdate;
37
38
  private enqueueStateFor;
38
39
  private refreshAccessoryMetadata;
39
40
  private hasMetadataChanged;
40
- private updateCachedAccessoryMetadata;
41
- private buildUpdatesFor;
42
41
  private fmtErr;
43
- private scheduleComplete;
44
42
  private recoveryDeps;
45
43
  }
46
44
  //# sourceMappingURL=matter-accessory-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"matter-accessory-registry.d.ts","sourceRoot":"","sources":["../../src/platform/matter-accessory-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,UAAU,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAiCjE,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;AAMvF,qBAAa,uBAAuB;IAW5B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAZhC,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,gFAAgF;IAChF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8C;IAC5E,kFAAkF;IAClF,OAAO,CAAC,qBAAqB,CAA0B;IACvD,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;gBAG7C,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,qBAAqB,GAAG,SAAS;IAGzE,IAAW,SAAS,IAAI,OAAO,CAE9B;IAMM,wBAAwB,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAK1D,mBAAmB,IAAI,IAAI;IAIrB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBzD,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBzD,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBnD,0EAA0E;IACnE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAIpE,qEAAqE;IAC9D,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;YAQ9B,iBAAiB;YAmCjB,oBAAoB;IA2BlC;;;OAGG;YACW,qBAAqB;YA4BrB,eAAe;IAY7B,OAAO,CAAC,eAAe;YAeT,wBAAwB;IAetC,OAAO,CAAC,kBAAkB;YAQZ,6BAA6B;IAS3C,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,YAAY;CAYvB"}
1
+ {"version":3,"file":"matter-accessory-registry.d.ts","sourceRoot":"","sources":["../../src/platform/matter-accessory-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,UAAU,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAkBjE,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEvF,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,GAAG,CAAC;IACT,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,qBAAqB,GAAG,SAAS,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,uBAAuB;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0C;IACtE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8C;IAC5E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyB;IAC1D,OAAO,CAAC,qBAAqB,CAA0B;IACvD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAExC,IAAI,EAAE,kBAAkB;IAgBpC,IAAW,SAAS,IAAI,OAAO,CAE9B;IAEM,wBAAwB,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAK1D,mBAAmB,IAAI,IAAI;IAIrB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBzD,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzD,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB5C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS;IAI7D,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI5C,OAAO,CAAC,UAAU;YASJ,iBAAiB;YAoCjB,oBAAoB;IAgClC,OAAO,CAAC,mBAAmB;YAKb,qBAAqB;IAuBnC,OAAO,CAAC,eAAe;YAcT,wBAAwB;IAWtC,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,YAAY;CAavB"}
@@ -5,45 +5,32 @@ const settings_1 = require("../settings");
5
5
  const matter_device_mapper_1 = require("./matter-device-mapper");
6
6
  const matter_state_updates_1 = require("./matter-state-updates");
7
7
  const matter_registration_recovery_1 = require("./matter-registration-recovery");
8
- // ---------------------------------------------------------------------------
9
- // Configuration knobs
10
- // ---------------------------------------------------------------------------
11
- /**
12
- * Time to wait between calling `api.matter.registerPlatformAccessories(...)` and
13
- * trusting that the accessory is queryable via `api.matter.updateAccessoryState(...)`.
14
- * HB2's register API is fire-and-forget (it just emits an internal event); state
15
- * updates received in this window are buffered.
16
- */
17
- const MATTER_REGISTER_SETTLE_MS = 2000;
8
+ const matter_state_update_queue_1 = require("./matter-state-update-queue");
9
+ const matter_fallback_store_1 = require("./matter-fallback-store");
10
+ const matter_register_probe_1 = require("./matter-register-probe");
18
11
  /**
19
12
  * Whether to fall back to a Matter TemperatureSensor when registering a real
20
13
  * Thermostat fails (typically due to matter.js 0.17 `presetTypes` validation).
21
- * HAP continues to expose the full Thermostat regardless.
22
14
  */
23
15
  const MATTER_THERMOSTAT_FALLBACK_TO_TEMPERATURE_SENSOR = true;
24
- // ---------------------------------------------------------------------------
25
- // Registry
26
- // ---------------------------------------------------------------------------
27
16
  class MatterAccessoryRegistry {
28
- constructor(api, log, getWsClient) {
29
- this.api = api;
30
- this.log = log;
31
- this.getWsClient = getWsClient;
32
- /** UUIDs that HB2 reported to us via `configureMatterAccessory` (cache restore). */
17
+ constructor(deps) {
33
18
  this.cachedUUIDs = new Set();
34
- /** Full registration state, keyed by Lares device id (also the Matter UUID). */
35
19
  this.registrations = new Map();
36
- /** UUIDs we've seen in the current discovery cycle — used to prune stale ones. */
37
20
  this.activeDiscoveredUUIDs = new Set();
38
- /** UUIDs that fell back to TemperatureSensor — drive the alternate state-push path. */
39
21
  this.thermostatFallbackUUIDs = new Set();
22
+ this.api = deps.api;
23
+ this.log = deps.log;
24
+ this.getWsClient = deps.getWsClient;
25
+ this.momentaryAutoOffMs = deps.momentaryAutoOffMs;
26
+ this.fallbackStore = new matter_fallback_store_1.MatterFallbackStore(deps.storagePath, deps.log);
27
+ for (const uuid of this.fallbackStore.load())
28
+ this.thermostatFallbackUUIDs.add(uuid);
29
+ this.stateUpdateQueue = new matter_state_update_queue_1.MatterStateUpdateQueue(this.api, this.log, this.registrations, (err) => this.fmtErr(err));
40
30
  }
41
31
  get isEnabled() {
42
32
  return !!this.api.matter;
43
33
  }
44
- // -----------------------------------------------------------------------
45
- // Lifecycle hooks called by Platform
46
- // -----------------------------------------------------------------------
47
34
  configureCachedAccessory(accessory) {
48
35
  this.cachedUUIDs.add(accessory.UUID);
49
36
  this.log.debug(`[Matter] Cached accessory: ${accessory.displayName} (${accessory.UUID})`);
@@ -57,19 +44,18 @@ class MatterAccessoryRegistry {
57
44
  this.activeDiscoveredUUIDs.add(device.id);
58
45
  const existing = this.registrations.get(device.id);
59
46
  if (existing) {
60
- // Already known — either still pending the settle window, registered, failed or skipped.
61
47
  switch (existing.status) {
62
48
  case 'pending':
63
- // Queue the latest state; the settle handler will flush it.
64
49
  this.enqueueStateFor(device);
65
50
  return;
66
51
  case 'registered':
67
52
  await this.refreshAccessoryMetadata(device, existing);
68
- await this.pushStateUpdate(device);
53
+ this.enqueueStateFor(device);
54
+ this.stateUpdateQueue.scheduleFlush(device.id);
69
55
  return;
70
56
  case 'failed':
71
57
  case 'skipped':
72
- return; // silent, we've already logged once
58
+ return;
73
59
  }
74
60
  }
75
61
  await this.registerAccessory(device);
@@ -79,22 +65,13 @@ class MatterAccessoryRegistry {
79
65
  return;
80
66
  const existing = this.registrations.get(device.id);
81
67
  if (!existing) {
82
- // First time we see this device — register it (lazy path for HAP-cached devices
83
- // whose WS "discovered" callback hasn't fired yet).
84
68
  await this.registerAccessory(device);
85
69
  return;
86
70
  }
87
- switch (existing.status) {
88
- case 'pending':
89
- this.enqueueStateFor(device);
90
- return;
91
- case 'registered':
92
- await this.pushStateUpdate(device);
93
- return;
94
- case 'failed':
95
- case 'skipped':
96
- return;
97
- }
71
+ if (existing.status === 'failed' || existing.status === 'skipped')
72
+ return;
73
+ this.enqueueStateFor(device);
74
+ this.stateUpdateQueue.scheduleFlush(device.id);
98
75
  }
99
76
  async pruneStaleAccessories() {
100
77
  if (!this.api.matter)
@@ -112,29 +89,32 @@ class MatterAccessoryRegistry {
112
89
  this.registrations.delete(uuid);
113
90
  this.cachedUUIDs.delete(uuid);
114
91
  this.thermostatFallbackUUIDs.delete(uuid);
92
+ this.fallbackStore.remove(uuid);
115
93
  }
116
94
  catch (err) {
117
95
  this.log.warn(`[Matter] Failed to unregister ${uuid}: ${this.fmtErr(err)}`);
118
96
  }
119
97
  }
120
98
  }
121
- /** Test-only introspection: registration status for a given device id. */
122
99
  getStatus(uuid) {
123
100
  return this.registrations.get(uuid)?.status;
124
101
  }
125
- /** Test-only introspection: queued updates count for a device id. */
126
102
  getPendingCount(uuid) {
127
103
  return this.registrations.get(uuid)?.pendingStateUpdates.length ?? 0;
128
104
  }
129
- // -----------------------------------------------------------------------
130
- // Registration internals
131
- // -----------------------------------------------------------------------
132
- async registerAccessory(device) {
133
- const matterAccessory = (0, matter_device_mapper_1.deviceToMatterAccessory)(device, {
105
+ mapperDeps() {
106
+ return {
134
107
  api: this.api,
135
108
  log: this.log,
136
109
  getWsClient: this.getWsClient,
137
- });
110
+ momentaryAutoOffMs: this.momentaryAutoOffMs,
111
+ };
112
+ }
113
+ async registerAccessory(device) {
114
+ const persistedFallback = device.type === 'thermostat' && this.thermostatFallbackUUIDs.has(device.id);
115
+ const matterAccessory = persistedFallback
116
+ ? (0, matter_device_mapper_1.mapThermostatAsTemperatureSensor)(device, this.mapperDeps())
117
+ : (0, matter_device_mapper_1.deviceToMatterAccessory)(device, this.mapperDeps());
138
118
  if (!matterAccessory)
139
119
  return;
140
120
  const reg = {
@@ -144,11 +124,17 @@ class MatterAccessoryRegistry {
144
124
  matterAccessory,
145
125
  status: 'pending',
146
126
  recoveryAttempts: 0,
147
- pendingStateUpdates: [],
127
+ pendingStateUpdates: (0, matter_state_updates_1.buildStateUpdates)(device, persistedFallback),
148
128
  };
149
129
  this.registrations.set(device.id, reg);
150
130
  const fromCache = this.cachedUUIDs.has(device.id);
151
- this.log.info(`[Matter] register requested: ${device.name} (${device.type})${fromCache ? ' [cache restore]' : ''}`);
131
+ if (fromCache) {
132
+ this.log.info(`[Matter] resumed from cache: ${device.name} (${device.type})${persistedFallback ? ' [fallback]' : ''}`);
133
+ // The Matter storage already holds the endpoint — skip register, just probe.
134
+ void this.completeRegistration(device.id, /*skipRegister=*/ true);
135
+ return;
136
+ }
137
+ this.log.info(`[Matter] register requested: ${device.name} (${device.type})${persistedFallback ? ' [fallback]' : ''}`);
152
138
  try {
153
139
  await this.api.matter.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [matterAccessory]);
154
140
  }
@@ -156,46 +142,49 @@ class MatterAccessoryRegistry {
156
142
  await this.handleRegisterFailure(device, err);
157
143
  return;
158
144
  }
159
- this.log.debug(`[Matter] settle started (${MATTER_REGISTER_SETTLE_MS}ms): ${device.name}`);
160
- // Don't `await` the settle timer — let the WS event loop continue. Queued updates
161
- // are stored on the registration; we flush them when the timer fires.
162
- this.scheduleComplete(device.id);
145
+ void this.completeRegistration(device.id);
163
146
  }
164
- async completeRegistration(uuid) {
147
+ async completeRegistration(uuid, skipRegister = false) {
165
148
  const reg = this.registrations.get(uuid);
166
149
  if (!reg || reg.status !== 'pending')
167
150
  return;
168
- if (!await (0, matter_registration_recovery_1.isMatterAccessoryQueryable)(this.api, this.log, (err) => this.fmtErr(err), reg)) {
151
+ const queryable = await (0, matter_register_probe_1.probeUntilQueryable)(this.api, this.log, (e) => this.fmtErr(e), reg);
152
+ if (!queryable) {
153
+ if (skipRegister) {
154
+ // Cache resume failed — endpoint was lost from storage. Fall back to full register.
155
+ this.log.warn(`[Matter] cache resume probe timed out for ${reg.displayName}; re-registering.`);
156
+ try {
157
+ await this.api.matter.registerPlatformAccessories(settings_1.PLUGIN_NAME, settings_1.PLATFORM_NAME, [reg.matterAccessory]);
158
+ void this.completeRegistration(uuid);
159
+ }
160
+ catch (err) {
161
+ await this.handleRegisterFailure(reg.matterAccessory.context.device, err);
162
+ }
163
+ return;
164
+ }
169
165
  await (0, matter_registration_recovery_1.handleMissingRegisteredAccessory)(reg, this.recoveryDeps());
170
166
  return;
171
167
  }
172
168
  reg.status = 'registered';
173
169
  reg.registeredAt = Date.now();
174
- this.log.info(`[Matter] registered: ${reg.displayName}`);
175
- await this.updateCachedAccessoryMetadata(reg);
176
- if (reg.pendingStateUpdates.length === 0)
177
- return;
178
- const flushed = reg.pendingStateUpdates.splice(0);
179
- this.log.debug(`[Matter] pending updates flushed: ${reg.displayName} (${flushed.length})`);
180
- for (const update of flushed) {
181
- try {
182
- await this.api.matter.updateAccessoryState(uuid, update.clusterName, update.attributes, update.partId);
183
- }
184
- catch (err) {
185
- this.log.debug(`[Matter] post-settle update error for ${reg.displayName}: ${this.fmtErr(err)}`);
186
- }
170
+ // After successful register as real Thermostat, drop any stale fallback marker.
171
+ if (reg.deviceType === 'thermostat' && !this.isFallbackAccessory(reg)) {
172
+ if (this.thermostatFallbackUUIDs.delete(uuid))
173
+ this.fallbackStore.remove(uuid);
187
174
  }
175
+ this.stateUpdateQueue.markReadyAfterBootstrap(reg);
176
+ this.log.info(`[Matter] registered: ${reg.displayName}`);
177
+ this.stateUpdateQueue.scheduleFlush(uuid);
178
+ }
179
+ isFallbackAccessory(reg) {
180
+ const clusters = reg.matterAccessory.clusters ?? {};
181
+ return 'temperatureMeasurement' in clusters && !('thermostat' in clusters);
188
182
  }
189
- /**
190
- * Centralised handler for failed initial registration. Currently only used for thermostats —
191
- * other device types are simply marked failed and skipped for the session.
192
- */
193
183
  async handleRegisterFailure(device, err) {
194
184
  const reg = this.registrations.get(device.id);
195
185
  const msg = this.fmtErr(err);
196
186
  if (device.type === 'thermostat' && MATTER_THERMOSTAT_FALLBACK_TO_TEMPERATURE_SENSOR) {
197
- this.log.warn(`Matter Thermostat registration failed for ${device.name}; falling back to TemperatureSensor `
198
- + `due to matter.js thermostat presetTypes validation issue. Error: ${msg}`);
187
+ this.log.warn(`Matter Thermostat registration failed for ${device.name}; falling back to TemperatureSensor. Error: ${msg}`);
199
188
  try {
200
189
  await (0, matter_registration_recovery_1.registerFallbackAccessory)(device, reg, this.recoveryDeps());
201
190
  return;
@@ -210,49 +199,31 @@ class MatterAccessoryRegistry {
210
199
  reg.pendingStateUpdates = [];
211
200
  this.log.warn(`[Matter] accessory failed: ${device.name} — ${msg}`);
212
201
  }
213
- // -----------------------------------------------------------------------
214
- // State propagation
215
- // -----------------------------------------------------------------------
216
- async pushStateUpdate(device) {
217
- const updates = this.buildUpdatesFor(device);
218
- const matter = this.api.matter;
219
- for (const u of updates) {
220
- try {
221
- await matter.updateAccessoryState(device.id, u.clusterName, u.attributes, u.partId);
222
- }
223
- catch (err) {
224
- this.log.debug(`[Matter] update failed for ${device.name} (${u.clusterName}): ${this.fmtErr(err)}`);
225
- }
226
- }
227
- }
228
202
  enqueueStateFor(device) {
229
203
  const reg = this.registrations.get(device.id);
230
204
  if (!reg)
231
205
  return;
232
206
  reg.matterAccessory.context.device = device;
233
- for (const u of this.buildUpdatesFor(device)) {
234
- // Dedupe by (clusterName, partId) keep only the latest payload per slot.
207
+ const fallback = device.type === 'thermostat' && this.thermostatFallbackUUIDs.has(device.id);
208
+ for (const u of (0, matter_state_updates_1.buildStateUpdates)(device, fallback)) {
235
209
  const idx = reg.pendingStateUpdates.findIndex((p) => p.clusterName === u.clusterName && p.partId === u.partId);
236
210
  if (idx >= 0)
237
211
  reg.pendingStateUpdates[idx] = u;
238
212
  else
239
213
  reg.pendingStateUpdates.push(u);
240
214
  }
241
- this.log.debug(`[Matter] update queued: ${device.name} (pending=${reg.pendingStateUpdates.length})`);
242
215
  }
243
216
  async refreshAccessoryMetadata(device, reg) {
244
- const matterAccessory = (0, matter_device_mapper_1.deviceToMatterAccessory)(device, {
245
- api: this.api,
246
- log: this.log,
247
- getWsClient: this.getWsClient,
248
- });
217
+ const fallback = device.type === 'thermostat' && this.thermostatFallbackUUIDs.has(device.id);
218
+ const matterAccessory = fallback
219
+ ? (0, matter_device_mapper_1.mapThermostatAsTemperatureSensor)(device, this.mapperDeps())
220
+ : (0, matter_device_mapper_1.deviceToMatterAccessory)(device, this.mapperDeps());
249
221
  if (!matterAccessory)
250
222
  return;
251
223
  if (!this.hasMetadataChanged(reg.matterAccessory, matterAccessory))
252
224
  return;
253
225
  reg.matterAccessory = matterAccessory;
254
226
  reg.displayName = matterAccessory.displayName;
255
- await this.updateCachedAccessoryMetadata(reg);
256
227
  }
257
228
  hasMetadataChanged(previous, next) {
258
229
  return previous.displayName !== next.displayName
@@ -261,35 +232,20 @@ class MatterAccessoryRegistry {
261
232
  || previous.serialNumber !== next.serialNumber
262
233
  || previous.firmwareRevision !== next.firmwareRevision;
263
234
  }
264
- async updateCachedAccessoryMetadata(reg) {
265
- try {
266
- await this.api.matter.updatePlatformAccessories([reg.matterAccessory]);
267
- this.log.debug(`[Matter] metadata cache refreshed: ${reg.displayName}`);
268
- }
269
- catch (err) {
270
- this.log.debug(`[Matter] metadata cache refresh failed for ${reg.displayName}: ${this.fmtErr(err)}`);
271
- }
272
- }
273
- buildUpdatesFor(device) {
274
- const isFallback = device.type === 'thermostat' && this.thermostatFallbackUUIDs.has(device.id);
275
- return (0, matter_state_updates_1.buildStateUpdates)(device, isFallback);
276
- }
277
235
  fmtErr(err) {
278
236
  return err instanceof Error ? err.message : String(err);
279
237
  }
280
- scheduleComplete(uuid) {
281
- setTimeout(() => { void this.completeRegistration(uuid); }, MATTER_REGISTER_SETTLE_MS);
282
- }
283
238
  recoveryDeps() {
284
239
  return {
285
240
  api: this.api,
286
241
  log: this.log,
287
242
  thermostatFallbackUUIDs: this.thermostatFallbackUUIDs,
288
243
  getWsClient: this.getWsClient,
289
- scheduleComplete: (uuid) => this.scheduleComplete(uuid),
244
+ scheduleComplete: (uuid) => { void this.completeRegistration(uuid); },
290
245
  fmtErr: (err) => this.fmtErr(err),
291
- settleMs: MATTER_REGISTER_SETTLE_MS,
292
246
  thermostatFallbackEnabled: MATTER_THERMOSTAT_FALLBACK_TO_TEMPERATURE_SENSOR,
247
+ momentaryAutoOffMs: this.momentaryAutoOffMs,
248
+ onFallbackPersist: (uuid) => this.fallbackStore.add(uuid),
293
249
  };
294
250
  }
295
251
  }
@@ -1 +1 @@
1
- {"version":3,"file":"matter-accessory-registry.js","sourceRoot":"","sources":["../../src/platform/matter-accessory-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"matter-accessory-registry.js","sourceRoot":"","sources":["../../src/platform/matter-accessory-registry.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ interface MapperDeps {
12
12
  api: API;
13
13
  log: import('homebridge').Logger;
14
14
  getWsClient: () => KseniaWebSocketClient | undefined;
15
+ /** Auto-off delay (ms) for momentary OnOff devices (scenarios, gates). Default 500ms. */
16
+ momentaryAutoOffMs?: number;
15
17
  }
16
18
  /**
17
19
  * Fallback mapping: register a thermostat as a Matter TemperatureSensor.
@@ -1 +1 @@
1
- {"version":3,"file":"matter-device-mapper.d.ts","sourceRoot":"","sources":["../../src/platform/matter-device-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAER,YAAY,EAKZ,gBAAgB,EAEnB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAkE,MAAM,4BAA4B,CAAC;AAGpK,OAAO,EAAE,0BAA0B,IAAI,cAAc,EAAE,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,CAAC;AACtC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAGD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAOrF;AAID,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED,UAAU,UAAU;IAChB,GAAG,EAAE,GAAG,CAAC;IACT,GAAG,EAAE,OAAO,YAAY,EAAE,MAAM,CAAC;IACjC,WAAW,EAAE,MAAM,qBAAqB,GAAG,SAAS,CAAC;CACxD;AA4GD;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,GAAG,eAAe,CAY5G;AAqGD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,GAAG,eAAe,GAAG,SAAS,CAmB3G"}
1
+ {"version":3,"file":"matter-device-mapper.d.ts","sourceRoot":"","sources":["../../src/platform/matter-device-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAER,YAAY,EAKZ,gBAAgB,EAEnB,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAkE,MAAM,4BAA4B,CAAC;AAGpK,OAAO,EAAE,0BAA0B,IAAI,cAAc,EAAE,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,CAAC;AACtC,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAGD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAOrF;AAID,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED,UAAU,UAAU;IAChB,GAAG,EAAE,GAAG,CAAC;IACT,GAAG,EAAE,OAAO,YAAY,EAAE,MAAM,CAAC;IACjC,WAAW,EAAE,MAAM,qBAAqB,GAAG,SAAS,CAAC;IACrD,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAwHD;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,GAAG,eAAe,CAY5G;AA2GD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,GAAG,eAAe,GAAG,SAAS,CAmB3G"}