@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.
- package/dist/baseDevice.d.ts +13 -1
- package/dist/baseDevice.js +36 -7
- package/dist/baseDevice.js.map +1 -1
- package/package.json +10 -10
package/dist/baseDevice.d.ts
CHANGED
|
@@ -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
|
-
/**
|
|
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;
|
package/dist/baseDevice.js
CHANGED
|
@@ -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
|
-
/**
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
/**
|
package/dist/baseDevice.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseDevice.js","sourceRoot":"","sources":["../src/baseDevice.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
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.
|
|
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.
|
|
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.
|
|
60
|
-
"eslint": "^10.1
|
|
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.
|
|
62
|
+
"homebridge-config-ui-x": "^5.22.0",
|
|
63
63
|
"nodemon": "^3.1.14",
|
|
64
64
|
"rimraf": "^6.1.3",
|
|
65
|
-
"typescript": "^6.0.
|
|
66
|
-
"typescript-eslint": "^8.
|
|
67
|
-
"vitest": "^4.1.
|
|
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.
|
|
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.
|
|
81
|
+
"qs": "^6.15.1"
|
|
82
82
|
},
|
|
83
83
|
"overrides": {
|
|
84
84
|
"glob": "^13.0.0",
|