homebridge-verano 3.0.4 → 3.0.6
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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +31 -6
package/dist/index.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export declare class VeranoAccessoryPlugin implements AccessoryPlugin {
|
|
|
16
16
|
private readonly credentials;
|
|
17
17
|
private pendingSetTimer?;
|
|
18
18
|
private pendingTargetC?;
|
|
19
|
+
private lastRequestedTargetC?;
|
|
19
20
|
constructor(log: Logging, config: AccessoryConfig, api: API);
|
|
20
21
|
identify?(): void;
|
|
21
22
|
getServices(): Service[];
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAkB,MAAM,YAAY,CAAC;AA4CjH,qBAAa,qBAAsB,YAAW,eAAe;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAkB,MAAM,YAAY,CAAC;AA4CjH,qBAAa,qBAAsB,YAAW,eAAe;IAkCvD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAnCtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IAEvD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAUjB;IAEH,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAIrB;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyC;IACrE,OAAO,CAAC,eAAe,CAAC,CAAiB;IACzC,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,oBAAoB,CAAC,CAAS;gBAGnB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,GAAG;IAqJ3B,QAAQ,CAAC,IAAI,IAAI;IAIjB,WAAW,IAAI,OAAO,EAAE;IAIxB,cAAc,CAAC,IAAI,UAAU,EAAE;YAMjB,iBAAiB;IAc/B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,YAAY;YAKN,aAAa;YAKb,oBAAoB;YA+BpB,cAAc;YAUd,wBAAwB;YAkBxB,sBAAsB;YAiBtB,gBAAgB;IAwC9B,OAAO,CAAC,kBAAkB;YAcZ,qBAAqB;CAoBtC"}
|
package/dist/index.js
CHANGED
|
@@ -113,6 +113,8 @@ class VeranoAccessoryPlugin {
|
|
|
113
113
|
// Update local state & HomeKit immediately for responsive UI
|
|
114
114
|
this.thermostatState.targetTemperature = v;
|
|
115
115
|
this.thermostatState.heating = v > this.cfg.offThresholdC;
|
|
116
|
+
// Track optimistic target to avoid flicker until server confirms
|
|
117
|
+
this.lastRequestedTargetC = v;
|
|
116
118
|
this.pushStateToHomeKit();
|
|
117
119
|
// Debounce network write: wait up to 2s, then send the last value
|
|
118
120
|
if (this.pendingSetTimer) {
|
|
@@ -126,7 +128,7 @@ class VeranoAccessoryPlugin {
|
|
|
126
128
|
if (typeof finalValue === 'number') {
|
|
127
129
|
await this.setTargetTemperatureC(finalValue);
|
|
128
130
|
}
|
|
129
|
-
},
|
|
131
|
+
}, 1000);
|
|
130
132
|
});
|
|
131
133
|
// Celsius only
|
|
132
134
|
this.service.getCharacteristic(this.Characteristic.TemperatureDisplayUnits)
|
|
@@ -266,16 +268,30 @@ class VeranoAccessoryPlugin {
|
|
|
266
268
|
var _a;
|
|
267
269
|
try {
|
|
268
270
|
const fetched = await this.requestThermostatState();
|
|
269
|
-
//
|
|
270
|
-
|
|
271
|
-
const
|
|
271
|
+
// Preserve optimistic target until the server echoes it back (handles slow backends)
|
|
272
|
+
const expected = this.lastRequestedTargetC;
|
|
273
|
+
const fetchedClamped = this.clampAndStep(fetched.targetTemperature, this.cfg.minC, this.cfg.maxC, this.cfg.stepC);
|
|
274
|
+
const expectedClamped = expected !== undefined
|
|
275
|
+
? this.clampAndStep(expected, this.cfg.minC, this.cfg.maxC, this.cfg.stepC)
|
|
276
|
+
: undefined;
|
|
277
|
+
const serverMatches = expectedClamped !== undefined && Math.abs(fetchedClamped - expectedClamped) < this.cfg.stepC / 2;
|
|
278
|
+
const shouldPreserveLocalTarget = Boolean(this.pendingSetTimer ||
|
|
279
|
+
this.writeInFlight ||
|
|
280
|
+
(expected !== undefined && !serverMatches));
|
|
281
|
+
const nextTarget = shouldPreserveLocalTarget
|
|
282
|
+
? this.thermostatState.targetTemperature
|
|
283
|
+
: fetched.targetTemperature;
|
|
272
284
|
const nextState = {
|
|
273
285
|
currentTemperature: fetched.currentTemperature,
|
|
274
|
-
targetTemperature:
|
|
275
|
-
heating:
|
|
286
|
+
targetTemperature: nextTarget,
|
|
287
|
+
heating: nextTarget > this.cfg.offThresholdC,
|
|
276
288
|
};
|
|
277
289
|
this.thermostatState = nextState;
|
|
278
290
|
this.pushStateToHomeKit(nextState);
|
|
291
|
+
// Once server matches, clear optimistic marker
|
|
292
|
+
if (serverMatches) {
|
|
293
|
+
this.lastRequestedTargetC = undefined;
|
|
294
|
+
}
|
|
279
295
|
}
|
|
280
296
|
catch (e) {
|
|
281
297
|
this.log.debug('Refresh failed:', (_a = e === null || e === void 0 ? void 0 : e.message) !== null && _a !== void 0 ? _a : e);
|
|
@@ -297,6 +313,8 @@ class VeranoAccessoryPlugin {
|
|
|
297
313
|
this.writeInFlight = true;
|
|
298
314
|
const bounded = this.clampAndStep(targetC, this.cfg.minC, this.cfg.maxC, this.cfg.stepC);
|
|
299
315
|
this.log.info('Setting target temperature to', `${bounded}°C`);
|
|
316
|
+
// Track optimistic target
|
|
317
|
+
this.lastRequestedTargetC = bounded;
|
|
300
318
|
try {
|
|
301
319
|
await this.ensureSession();
|
|
302
320
|
await this.requestTemperatureChange(bounded);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -73,6 +73,7 @@ export class VeranoAccessoryPlugin implements AccessoryPlugin {
|
|
|
73
73
|
private readonly credentials: { username: string; password: string };
|
|
74
74
|
private pendingSetTimer?: NodeJS.Timeout;
|
|
75
75
|
private pendingTargetC?: number;
|
|
76
|
+
private lastRequestedTargetC?: number;
|
|
76
77
|
|
|
77
78
|
constructor(
|
|
78
79
|
private readonly log: Logging,
|
|
@@ -185,6 +186,8 @@ export class VeranoAccessoryPlugin implements AccessoryPlugin {
|
|
|
185
186
|
// Update local state & HomeKit immediately for responsive UI
|
|
186
187
|
this.thermostatState.targetTemperature = v;
|
|
187
188
|
this.thermostatState.heating = v > this.cfg.offThresholdC;
|
|
189
|
+
// Track optimistic target to avoid flicker until server confirms
|
|
190
|
+
this.lastRequestedTargetC = v;
|
|
188
191
|
this.pushStateToHomeKit();
|
|
189
192
|
|
|
190
193
|
// Debounce network write: wait up to 2s, then send the last value
|
|
@@ -199,7 +202,7 @@ export class VeranoAccessoryPlugin implements AccessoryPlugin {
|
|
|
199
202
|
if (typeof finalValue === 'number') {
|
|
200
203
|
await this.setTargetTemperatureC(finalValue);
|
|
201
204
|
}
|
|
202
|
-
},
|
|
205
|
+
}, 1000);
|
|
203
206
|
});
|
|
204
207
|
|
|
205
208
|
// Celsius only
|
|
@@ -356,17 +359,37 @@ export class VeranoAccessoryPlugin implements AccessoryPlugin {
|
|
|
356
359
|
try {
|
|
357
360
|
const fetched = await this.requestThermostatState();
|
|
358
361
|
|
|
359
|
-
//
|
|
360
|
-
|
|
361
|
-
const
|
|
362
|
+
// Preserve optimistic target until the server echoes it back (handles slow backends)
|
|
363
|
+
const expected = this.lastRequestedTargetC;
|
|
364
|
+
const fetchedClamped = this.clampAndStep(fetched.targetTemperature, this.cfg.minC, this.cfg.maxC, this.cfg.stepC);
|
|
365
|
+
const expectedClamped = expected !== undefined
|
|
366
|
+
? this.clampAndStep(expected, this.cfg.minC, this.cfg.maxC, this.cfg.stepC)
|
|
367
|
+
: undefined;
|
|
368
|
+
const serverMatches = expectedClamped !== undefined && Math.abs(fetchedClamped - expectedClamped) < this.cfg.stepC / 2;
|
|
369
|
+
|
|
370
|
+
const shouldPreserveLocalTarget = Boolean(
|
|
371
|
+
this.pendingSetTimer ||
|
|
372
|
+
this.writeInFlight ||
|
|
373
|
+
(expected !== undefined && !serverMatches),
|
|
374
|
+
);
|
|
375
|
+
|
|
376
|
+
const nextTarget = shouldPreserveLocalTarget
|
|
377
|
+
? this.thermostatState.targetTemperature
|
|
378
|
+
: fetched.targetTemperature;
|
|
379
|
+
|
|
362
380
|
const nextState: ThermostatState = {
|
|
363
381
|
currentTemperature: fetched.currentTemperature,
|
|
364
|
-
targetTemperature:
|
|
365
|
-
heating:
|
|
382
|
+
targetTemperature: nextTarget,
|
|
383
|
+
heating: nextTarget > this.cfg.offThresholdC,
|
|
366
384
|
};
|
|
367
385
|
|
|
368
386
|
this.thermostatState = nextState;
|
|
369
387
|
this.pushStateToHomeKit(nextState);
|
|
388
|
+
|
|
389
|
+
// Once server matches, clear optimistic marker
|
|
390
|
+
if (serverMatches) {
|
|
391
|
+
this.lastRequestedTargetC = undefined;
|
|
392
|
+
}
|
|
370
393
|
} catch (e) {
|
|
371
394
|
this.log.debug('Refresh failed:', (e as Error)?.message ?? e);
|
|
372
395
|
}
|
|
@@ -395,6 +418,8 @@ export class VeranoAccessoryPlugin implements AccessoryPlugin {
|
|
|
395
418
|
this.writeInFlight = true;
|
|
396
419
|
const bounded = this.clampAndStep(targetC, this.cfg.minC, this.cfg.maxC, this.cfg.stepC);
|
|
397
420
|
this.log.info('Setting target temperature to', `${bounded}°C`);
|
|
421
|
+
// Track optimistic target
|
|
422
|
+
this.lastRequestedTargetC = bounded;
|
|
398
423
|
try {
|
|
399
424
|
await this.ensureSession();
|
|
400
425
|
await this.requestTemperatureChange(bounded);
|