@mp-consulting/homebridge-lg-thinq 1.0.26 → 1.0.28

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.
@@ -3,6 +3,16 @@ import type { Logger, PlatformAccessory, Service, WithUUID } from 'homebridge';
3
3
  import type { Device } from './models/Device.js';
4
4
  import { EventEmitter } from 'events';
5
5
  type ServiceConstructor = WithUUID<typeof Service>;
6
+ /**
7
+ * Recursively merge a partial snapshot into the existing snapshot.
8
+ *
9
+ * ThinQ MQTT publishes `state.reported` as a sparse delta — a once-per-minute
10
+ * `{ washerDryer: { remainTimeMinute: N } }` would otherwise replace the entire
11
+ * `washerDryer` subtree under shallow spread, dropping `doorLock`/`state`/etc.
12
+ * for an instant and triggering spurious HomeKit notifications when the next
13
+ * poll restored them. Deep merge preserves siblings; arrays are replaced.
14
+ */
15
+ export declare function mergeSnapshot(current: Record<string, unknown> | null | undefined, incoming: Record<string, unknown>): Record<string, unknown>;
6
16
  export interface DeviceControlPayload {
7
17
  dataKey: string | null;
8
18
  dataValue: unknown;
@@ -19,7 +29,9 @@ export declare class BaseDevice extends EventEmitter {
19
29
  protected readonly logger: Logger;
20
30
  /** Cached status instance */
21
31
  private _cachedStatus;
22
- /** Hash of last snapshot for cache invalidation */
32
+ /** Snapshot version that produced the cached status (-1 = never cached) */
33
+ private _cachedStatusVersion;
34
+ /** Monotonic counter incremented whenever the underlying snapshot changes */
23
35
  private _lastSnapshotVersion;
24
36
  constructor(platform: LGThinQHomebridgePlatform, accessory: PlatformAccessory<AccessoryContext>, logger: Logger);
25
37
  updateAccessoryCharacteristic(device: Device): void;
@@ -1,12 +1,43 @@
1
1
  import { EventEmitter } from 'events';
2
2
  import { DeviceRegistry } from './models/DeviceRegistry.js';
3
+ function isPlainObject(value) {
4
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
5
+ }
6
+ /**
7
+ * Recursively merge a partial snapshot into the existing snapshot.
8
+ *
9
+ * ThinQ MQTT publishes `state.reported` as a sparse delta — a once-per-minute
10
+ * `{ washerDryer: { remainTimeMinute: N } }` would otherwise replace the entire
11
+ * `washerDryer` subtree under shallow spread, dropping `doorLock`/`state`/etc.
12
+ * for an instant and triggering spurious HomeKit notifications when the next
13
+ * poll restored them. Deep merge preserves siblings; arrays are replaced.
14
+ */
15
+ export function mergeSnapshot(current, incoming) {
16
+ if (!isPlainObject(current)) {
17
+ return { ...incoming };
18
+ }
19
+ const result = { ...current };
20
+ for (const key of Object.keys(incoming)) {
21
+ const next = incoming[key];
22
+ const prev = result[key];
23
+ if (isPlainObject(prev) && isPlainObject(next)) {
24
+ result[key] = mergeSnapshot(prev, next);
25
+ }
26
+ else {
27
+ result[key] = next;
28
+ }
29
+ }
30
+ return result;
31
+ }
3
32
  export class BaseDevice extends EventEmitter {
4
33
  platform;
5
34
  accessory;
6
35
  logger;
7
36
  /** Cached status instance */
8
37
  _cachedStatus = null;
9
- /** Hash of last snapshot for cache invalidation */
38
+ /** Snapshot version that produced the cached status (-1 = never cached) */
39
+ _cachedStatusVersion = -1;
40
+ /** Monotonic counter incremented whenever the underlying snapshot changes */
10
41
  _lastSnapshotVersion = 0;
11
42
  constructor(platform, accessory, logger) {
12
43
  super();
@@ -29,7 +60,7 @@ export class BaseDevice extends EventEmitter {
29
60
  }
30
61
  update(snapshot) {
31
62
  this.platform.log.debug('[' + this.accessory.context.device.name + '] Received snapshot: ', JSON.stringify(snapshot));
32
- this.accessory.context.device.data.snapshot = { ...this.accessory.context.device.snapshot, ...snapshot };
63
+ this.accessory.context.device.data.snapshot = mergeSnapshot(this.accessory.context.device.snapshot, snapshot);
33
64
  this.updateAccessoryCharacteristic(this.accessory.context.device);
34
65
  }
35
66
  /**
@@ -56,16 +87,14 @@ export class BaseDevice extends EventEmitter {
56
87
  getStatus(
57
88
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
58
89
  StatusClass, snapshotKey) {
59
- const device = this.accessory.context.device;
60
- const currentVersion = this._lastSnapshotVersion;
61
- // Return cached status if snapshot hasn't changed
62
- if (this._cachedStatus && this._lastSnapshotVersion === currentVersion) {
90
+ if (this._cachedStatus && this._cachedStatusVersion === this._lastSnapshotVersion) {
63
91
  return this._cachedStatus;
64
92
  }
65
- // Auto-resolve snapshot key from DeviceRegistry if not provided
93
+ const device = this.accessory.context.device;
66
94
  const key = snapshotKey ?? DeviceRegistry.getSnapshotKey(device.type);
67
95
  const snapshotData = key ? device.snapshot?.[key] : device.snapshot;
68
96
  this._cachedStatus = new StatusClass(snapshotData, device.deviceModel);
97
+ this._cachedStatusVersion = this._lastSnapshotVersion;
69
98
  return this._cachedStatus;
70
99
  }
71
100
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"baseDevice.js","sourceRoot":"","sources":["../src/baseDevice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseDevice.js","sourceRoot":"","sources":["../src/baseDevice.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "LG ThinQ",
3
3
  "name": "@mp-consulting/homebridge-lg-thinq",
4
- "version": "1.0.26",
4
+ "version": "1.0.28",
5
5
  "description": "A Homebridge plugin for controlling/monitoring LG ThinQ devices via LG ThinQ platform.",
6
6
  "author": {
7
7
  "name": "Mickael Palma",
@@ -52,25 +52,25 @@
52
52
  "@mp-consulting/homebridge-ui-kit": "^1.0.0",
53
53
  "@types/aws-iot-device-sdk": "^2.2.9",
54
54
  "@types/luxon": "^3.7.1",
55
- "@types/node": "^25.5.0",
55
+ "@types/node": "^25.6.0",
56
56
  "@types/node-forge": "^1.3.14",
57
57
  "@types/node-persist": "^3.1.8",
58
58
  "@types/qs": "^6.15.0",
59
- "@vitest/coverage-v8": "^4.1.2",
60
- "eslint": "^10.1.0",
59
+ "@vitest/coverage-v8": "^4.1.5",
60
+ "eslint": "^10.2.1",
61
61
  "homebridge": "^2.0.0-beta.55",
62
- "homebridge-config-ui-x": "^5.21.0",
62
+ "homebridge-config-ui-x": "^5.22.0",
63
63
  "nodemon": "^3.1.14",
64
64
  "rimraf": "^6.1.3",
65
- "typescript": "^6.0.2",
66
- "typescript-eslint": "^8.58.0",
67
- "vitest": "^4.1.2"
65
+ "typescript": "^6.0.3",
66
+ "typescript-eslint": "^8.59.1",
67
+ "vitest": "^4.1.5"
68
68
  },
69
69
  "homepage": "https://github.com/mp-consulting/homebridge-lg-thinq#readme",
70
70
  "dependencies": {
71
71
  "@homebridge/plugin-ui-utils": "^2.2.3",
72
72
  "aws-iot-device-sdk": "^2.2.16",
73
- "axios": "^1.14.0",
73
+ "axios": "^1.15.2",
74
74
  "axios-retry": "^4.5.0",
75
75
  "class-validator": "^0.15.1",
76
76
  "commander": "^14.0.3",
@@ -78,7 +78,7 @@
78
78
  "luxon": "^3.7.2",
79
79
  "node-forge": "^1.4.0",
80
80
  "node-persist": "^4.0.4",
81
- "qs": "^6.15.0"
81
+ "qs": "^6.15.1"
82
82
  },
83
83
  "overrides": {
84
84
  "glob": "^13.0.0",