homebridge-eliot-smart-control 1.6.3 → 1.7.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.
- package/CHANGELOG.md +40 -1
- package/README.md +31 -0
- package/config.schema.json +40 -0
- package/dist/accessory.js +194 -2
- package/dist/accessory.js.map +1 -1
- package/dist/auto-move.d.ts +49 -4
- package/dist/auto-move.js +85 -12
- package/dist/auto-move.js.map +1 -1
- package/dist/config.d.ts +19 -0
- package/dist/config.js +8 -0
- package/dist/config.js.map +1 -1
- package/dist/eliot/desk.d.ts +10 -0
- package/dist/eliot/desk.js +85 -0
- package/dist/eliot/desk.js.map +1 -1
- package/dist/eliot/link.js +11 -6
- package/dist/eliot/link.js.map +1 -1
- package/docs/PROTOCOL.md +101 -5
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,44 @@ adheres to [semantic versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [1.7.0] — 2026-09-23
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **The desk's own anti-collision sensitivity is settable**, as
|
|
14
|
+
`collisionSensitivity`: `high`, `medium`, `low` or `leave`. This is the
|
|
15
|
+
control box's brake, not the plugin's stall check — on a sensitive setting,
|
|
16
|
+
arms resting on the desk are enough to end a move nine millimetres in and
|
|
17
|
+
have it reported as stalled. Written only when it differs from what the box
|
|
18
|
+
is holding. Like eco mode, it takes effect when the desk is next reset, and
|
|
19
|
+
the log says so.
|
|
20
|
+
- **The auto-movement countdown is visible, and adjustable, as a `Timer`
|
|
21
|
+
slider.** A light whose brightness is how much of the interval is left before
|
|
22
|
+
the next move. Dragging it changes the wait and nothing else: all the way up
|
|
23
|
+
is a fresh interval, all the way down runs the timer out, which moves the desk
|
|
24
|
+
at once and without the warning — nobody needs telling about a move they just
|
|
25
|
+
asked for. Off it reads 0, because a timer that is not running has no
|
|
26
|
+
remainder to show. Outside the working hours it reads full and does
|
|
27
|
+
not run: switching on at 07:00 starts the countdown at 08:00, not at 07:00,
|
|
28
|
+
and a drag there is ignored rather than scheduling a move for later. `timerSlider: false` leaves it out.
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- **The desk is put into one-touch mode when it is found in hold mode.** In
|
|
33
|
+
hold mode the control box treats `GOTO_HEIGHT` as a nudge and waits to be
|
|
34
|
+
asked again, so a single command moves the desk a centimetre and stops —
|
|
35
|
+
which is to say the plugin cannot drive the desk at all. There is nothing to
|
|
36
|
+
configure, because the alternative is a plugin that does not work. `0` is one
|
|
37
|
+
touch and `1` is hold, now confirmed against a control box rather than read
|
|
38
|
+
out of the app: written to a desk found in hold mode, the handset changed
|
|
39
|
+
behaviour immediately and without a reset. It changes the handset as well as
|
|
40
|
+
the commands, so it is a write somebody standing at the desk will notice.
|
|
41
|
+
- **Reconnect attempts stop thinning out at thirty seconds** rather than a
|
|
42
|
+
minute. The ceiling is what somebody waits after the thing blocking the
|
|
43
|
+
dongle goes away — usually the Eliot app, which holds the dongle's one
|
|
44
|
+
connection until it is closed — and a minute of that is a minute of a desk
|
|
45
|
+
showing as unreachable when it is not.
|
|
46
|
+
|
|
9
47
|
## [1.6.3] — 2026-09-21
|
|
10
48
|
|
|
11
49
|
### Changed
|
|
@@ -430,7 +468,8 @@ First release.
|
|
|
430
468
|
verified against hardware, including the measured travel speed and stopping
|
|
431
469
|
distance.
|
|
432
470
|
|
|
433
|
-
[Unreleased]: https://github.com/rummeyer/homebridge-eliot-smart-control/compare/v1.
|
|
471
|
+
[Unreleased]: https://github.com/rummeyer/homebridge-eliot-smart-control/compare/v1.7.0...HEAD
|
|
472
|
+
[1.7.0]: https://github.com/rummeyer/homebridge-eliot-smart-control/compare/v1.6.3...v1.7.0
|
|
434
473
|
[1.6.3]: https://github.com/rummeyer/homebridge-eliot-smart-control/compare/v1.6.2...v1.6.3
|
|
435
474
|
[1.6.2]: https://github.com/rummeyer/homebridge-eliot-smart-control/compare/v1.6.1...v1.6.2
|
|
436
475
|
[1.6.1]: https://github.com/rummeyer/homebridge-eliot-smart-control/compare/v1.6.0...v1.6.1
|
package/README.md
CHANGED
|
@@ -130,6 +130,18 @@ handset and you have bought another interval. It is also simply true — the
|
|
|
130
130
|
timer measures time spent at a height, and that clock restarts when the height
|
|
131
131
|
does.
|
|
132
132
|
|
|
133
|
+
**The countdown is on show, as a slider.** Auto movement brings a **Timer**
|
|
134
|
+
with it — a light whose brightness is how much of the interval is left before
|
|
135
|
+
the next move. It fills to 100% when you switch auto movement on and runs down
|
|
136
|
+
from there; a handset nudge or a move fills it again.
|
|
137
|
+
|
|
138
|
+
Dragging it is how you change the wait, and nothing else about it: halfway
|
|
139
|
+
means half an interval left, all the way up buys a fresh one. **All the way
|
|
140
|
+
down moves the desk now**, and skips the warning — you just asked for the move,
|
|
141
|
+
so being told it is coming would be late. With auto movement off the slider
|
|
142
|
+
sits at 0 and stays there, because there is no countdown to show. Set
|
|
143
|
+
`timerSlider` to `false` if you would rather not have it.
|
|
144
|
+
|
|
133
145
|
**Getting told about it takes one step you have to do yourself.** HomeKit gives
|
|
134
146
|
a plugin no way to send a notification, so the warning is a motion sensor
|
|
135
147
|
called **Desk Move Soon**. Open it in the Home app, and under *Status and
|
|
@@ -146,6 +158,25 @@ wrong for one that is not: a week away, and it has been cycling an empty room
|
|
|
146
158
|
for five days. The day is remembered rather than timed, so a restart at 23:59
|
|
147
159
|
does not hand it a fresh one.
|
|
148
160
|
|
|
161
|
+
## When the desk stops by itself
|
|
162
|
+
|
|
163
|
+
The control box has its own anti-collision detection, and on a sensitive
|
|
164
|
+
setting it does not take much: arms resting on the desk can be enough to end a
|
|
165
|
+
move a centimetre in. The plugin then reports the move as `stalled`, which is
|
|
166
|
+
accurate — the desk did stop — but says nothing about why, because from the
|
|
167
|
+
outside a desk stopped by an obstruction and a desk stopped for any other
|
|
168
|
+
reason look identical.
|
|
169
|
+
|
|
170
|
+
`collisionSensitivity` sets that threshold: `high`, `medium`, `low`, or `leave`
|
|
171
|
+
to keep whatever the desk came with, which is the default. It is written to the
|
|
172
|
+
control box when it differs from what the box is holding, once per connection.
|
|
173
|
+
|
|
174
|
+
**It takes effect after the desk is reset by hand** — run it to the bottom and
|
|
175
|
+
hold the down key until it re-homes. Until then the desk keeps its old setting,
|
|
176
|
+
the same way travel speed and eco mode do. And the setting belongs to the desk
|
|
177
|
+
rather than to this plugin, so it stays changed until something changes it
|
|
178
|
+
back.
|
|
179
|
+
|
|
149
180
|
## Things worth knowing
|
|
150
181
|
|
|
151
182
|
**Positions land exactly.** The desk is handed a height and drives there on its
|
package/config.schema.json
CHANGED
|
@@ -79,6 +79,38 @@
|
|
|
79
79
|
],
|
|
80
80
|
"description": "Eco mode and travel speed, set as a pair: about 22 mm/s against 42 mm/s.<br><br><b>Takes effect only after the desk is reset by hand</b> — run it to the bottom and hold the down key until it re-homes. Until then it keeps its old speed, whatever this says."
|
|
81
81
|
},
|
|
82
|
+
"collisionSensitivity": {
|
|
83
|
+
"title": "Anti-collision sensitivity",
|
|
84
|
+
"type": "string",
|
|
85
|
+
"default": "leave",
|
|
86
|
+
"oneOf": [
|
|
87
|
+
{
|
|
88
|
+
"title": "Leave the desk alone",
|
|
89
|
+
"enum": [
|
|
90
|
+
"leave"
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"title": "High — stops at the slightest resistance",
|
|
95
|
+
"enum": [
|
|
96
|
+
"high"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"title": "Medium",
|
|
101
|
+
"enum": [
|
|
102
|
+
"medium"
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"title": "Low — needs a firm obstruction",
|
|
107
|
+
"enum": [
|
|
108
|
+
"low"
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"description": "The control box's own obstruction detection, not this plugin's. On <b>high</b>, resting your arms on the desk can be enough to stop a move.<br><br><b>Takes effect only after the desk is reset by hand</b> — run it to the bottom and hold the down key until it re-homes. Until then it keeps its old setting, whatever this says."
|
|
113
|
+
},
|
|
82
114
|
"autoMove": {
|
|
83
115
|
"type": "object",
|
|
84
116
|
"description": "Move the desk between two heights on a timer. Adds an <b>Auto Movement</b> switch to the Home app, and nothing moves until you turn it on.",
|
|
@@ -157,6 +189,12 @@
|
|
|
157
189
|
"type": "boolean",
|
|
158
190
|
"default": false,
|
|
159
191
|
"description": "Switches <b>Auto Movement</b> off again at the end of each day, so it only runs on days you turn it on. Off means the switch stays on until you turn it off."
|
|
192
|
+
},
|
|
193
|
+
"timerSlider": {
|
|
194
|
+
"title": "Timer slider",
|
|
195
|
+
"type": "boolean",
|
|
196
|
+
"default": true,
|
|
197
|
+
"description": "Adds a <b>Timer</b> slider showing how much of the interval is left before the next move. Drag it to put the move off or bring it forward; all the way down moves the desk now, without the warning. Off removes the slider."
|
|
160
198
|
}
|
|
161
199
|
}
|
|
162
200
|
}
|
|
@@ -179,6 +217,7 @@
|
|
|
179
217
|
"desks[].mac",
|
|
180
218
|
"desks[].idlePollSeconds",
|
|
181
219
|
"desks[].ecoMode",
|
|
220
|
+
"desks[].collisionSensitivity",
|
|
182
221
|
"desks[].childLockSwitch",
|
|
183
222
|
"desks[].memorySwitches",
|
|
184
223
|
{
|
|
@@ -192,6 +231,7 @@
|
|
|
192
231
|
"desks[].autoMove.standingMm",
|
|
193
232
|
"desks[].autoMove.intervalMinutes",
|
|
194
233
|
"desks[].autoMove.warnMinutes",
|
|
234
|
+
"desks[].autoMove.timerSlider",
|
|
195
235
|
"desks[].autoMove.switchOffDaily",
|
|
196
236
|
{
|
|
197
237
|
"key": "desks[].autoMove.windows",
|
package/dist/accessory.js
CHANGED
|
@@ -58,6 +58,26 @@ function wantsEco(setting) {
|
|
|
58
58
|
}
|
|
59
59
|
return undefined;
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* The configured anti-collision sensitivity as the box numbers it, or
|
|
63
|
+
* undefined for "leave it alone".
|
|
64
|
+
*
|
|
65
|
+
* `1` high, `2` medium, `3` low — the box's own scale, which runs the opposite
|
|
66
|
+
* way to how the words read, so it is spelled out here once rather than
|
|
67
|
+
* remembered at the call site.
|
|
68
|
+
*/
|
|
69
|
+
function wantsSensitivity(setting) {
|
|
70
|
+
switch (setting) {
|
|
71
|
+
case 'high':
|
|
72
|
+
return 1;
|
|
73
|
+
case 'medium':
|
|
74
|
+
return 2;
|
|
75
|
+
case 'low':
|
|
76
|
+
return 3;
|
|
77
|
+
default:
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
61
81
|
export class EliotAccessory {
|
|
62
82
|
#platform;
|
|
63
83
|
#accessory;
|
|
@@ -74,6 +94,13 @@ export class EliotAccessory {
|
|
|
74
94
|
/** Auto-movement, when it is configured at all. */
|
|
75
95
|
#autoService;
|
|
76
96
|
#warnService;
|
|
97
|
+
/** The countdown as a slider, when it is wanted. */
|
|
98
|
+
#timerService;
|
|
99
|
+
/** The writes one slider gesture produces, and the timer waiting for the rest. */
|
|
100
|
+
#timerGesture = {};
|
|
101
|
+
#timerSettle;
|
|
102
|
+
/** The percentage last shown, so a tick that changes nothing stays quiet. */
|
|
103
|
+
#timerShown = null;
|
|
77
104
|
#mover;
|
|
78
105
|
#autoTimer;
|
|
79
106
|
/** Heights already complained about, so the log says it once and not hourly. */
|
|
@@ -96,6 +123,7 @@ export class EliotAccessory {
|
|
|
96
123
|
this.#desk = new Desk(link, platform.log, {
|
|
97
124
|
idlePollMs: (config.idlePollSeconds ?? 30) * 1000,
|
|
98
125
|
eco: wantsEco(config.ecoMode),
|
|
126
|
+
sensitivity: wantsSensitivity(config.collisionSensitivity),
|
|
99
127
|
});
|
|
100
128
|
accessory
|
|
101
129
|
.getService(HapService.AccessoryInformation)
|
|
@@ -205,6 +233,35 @@ export class EliotAccessory {
|
|
|
205
233
|
this.#mover.restore(this.#accessory.context.autoMove === true, typeof this.#accessory.context.autoMoveDay === 'string'
|
|
206
234
|
? this.#accessory.context.autoMoveDay
|
|
207
235
|
: null);
|
|
236
|
+
// Built before the switch and the sensor, because services are created in
|
|
237
|
+
// the order they should be read: the desk, its lock, how long until it
|
|
238
|
+
// moves, whether it moves at all, and the warning that goes with that.
|
|
239
|
+
// HomeKit has no field for ordering and the Home app decides its own
|
|
240
|
+
// layout, so this is a preference expressed rather than one enforced — and
|
|
241
|
+
// it reaches an accessory restored from Homebridge's cache not at all,
|
|
242
|
+
// since those services come back in the order they were first written.
|
|
243
|
+
const timerSubtype = 'automove-timer';
|
|
244
|
+
const restoredTimer = this.#accessory.getServiceById(HapService.Lightbulb, timerSubtype);
|
|
245
|
+
if (!auto.timerSlider) {
|
|
246
|
+
if (restoredTimer) {
|
|
247
|
+
this.#accessory.removeService(restoredTimer);
|
|
248
|
+
}
|
|
249
|
+
this.#timerService = undefined;
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
this.#timerService =
|
|
253
|
+
restoredTimer ?? this.#accessory.addService(HapService.Lightbulb, 'Timer', timerSubtype);
|
|
254
|
+
this.#name(this.#timerService, 'Timer');
|
|
255
|
+
this.#timerService
|
|
256
|
+
.getCharacteristic(Characteristic.On)
|
|
257
|
+
.onGet(() => this.#mover?.enabled ?? false)
|
|
258
|
+
.onSet((value) => this.#takeTimerWrite({ on: Boolean(value) }));
|
|
259
|
+
this.#timerService
|
|
260
|
+
.getCharacteristic(Characteristic.Brightness)
|
|
261
|
+
.onGet(() => this.#mover?.remainingPercent() ?? 0)
|
|
262
|
+
.onSet((value) => this.#takeTimerWrite({ brightness: Math.round(Number(value)) }));
|
|
263
|
+
this.#publishTimer(true);
|
|
264
|
+
}
|
|
208
265
|
const switchSubtype = 'automove';
|
|
209
266
|
this.#autoService =
|
|
210
267
|
this.#accessory.getServiceById(HapService.Switch, switchSubtype) ??
|
|
@@ -240,6 +297,7 @@ export class EliotAccessory {
|
|
|
240
297
|
}
|
|
241
298
|
this.#mover.noteManualMove(Date.now());
|
|
242
299
|
this.#warn(false);
|
|
300
|
+
this.#publishTimer();
|
|
243
301
|
this.#platform.log.debug(`${this.#config.name}: moved by hand, auto-move timer restarted`);
|
|
244
302
|
});
|
|
245
303
|
this.#autoTimer = setInterval(() => void this.#autoTick(), AUTO_TICK_MS);
|
|
@@ -251,6 +309,10 @@ export class EliotAccessory {
|
|
|
251
309
|
if (!on) {
|
|
252
310
|
this.#warn(false);
|
|
253
311
|
}
|
|
312
|
+
// On is a full interval to run down, off is a timer that is not running.
|
|
313
|
+
// Either way the slider has to follow, or it shows a countdown for an
|
|
314
|
+
// automation that is not happening.
|
|
315
|
+
this.#publishTimer(true);
|
|
254
316
|
this.#platform.log.info(`${this.#config.name}: auto movement ${on ? 'on' : 'off'}`);
|
|
255
317
|
}
|
|
256
318
|
/**
|
|
@@ -270,12 +332,138 @@ export class EliotAccessory {
|
|
|
270
332
|
const { Characteristic } = this.#platform.api.hap;
|
|
271
333
|
this.#warnService?.setCharacteristic(Characteristic.MotionDetected, active);
|
|
272
334
|
}
|
|
273
|
-
/**
|
|
274
|
-
|
|
335
|
+
/** Show where the countdown stands, without waking HomeKit for no change. */
|
|
336
|
+
#publishTimer(force = false) {
|
|
337
|
+
const service = this.#timerService;
|
|
338
|
+
const mover = this.#mover;
|
|
339
|
+
if (!service || !mover) {
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
const percent = mover.remainingPercent();
|
|
343
|
+
if (!force && percent === this.#timerShown) {
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
this.#timerShown = percent;
|
|
347
|
+
const { Characteristic } = this.#platform.api.hap;
|
|
348
|
+
service.updateCharacteristic(Characteristic.On, mover.enabled);
|
|
349
|
+
service.updateCharacteristic(Characteristic.Brightness, percent);
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Collect the writes one gesture produces, and decide once.
|
|
353
|
+
*
|
|
354
|
+
* A Lightbulb has to have an `On`, and the Home app spends it: dragging the
|
|
355
|
+
* slider to the bottom writes `Brightness` 0 *and* `On` false, because that is
|
|
356
|
+
* what a light does at zero. Read separately those are two different
|
|
357
|
+
* instructions — "run the timer out" and "switch auto movement off" — and
|
|
358
|
+
* whichever landed last would win, which would make dragging to zero a coin
|
|
359
|
+
* toss between moving the desk and stopping the automation. Read together, as
|
|
360
|
+
* the one gesture they came from, they are the one thing somebody did.
|
|
361
|
+
*
|
|
362
|
+
* The same settle the position slider uses, for the same reason: a drag is
|
|
363
|
+
* dozens of these and only the end of it was ever meant.
|
|
364
|
+
*/
|
|
365
|
+
#takeTimerWrite(part) {
|
|
366
|
+
Object.assign(this.#timerGesture, part);
|
|
367
|
+
if (this.#timerSettle) {
|
|
368
|
+
clearTimeout(this.#timerSettle);
|
|
369
|
+
}
|
|
370
|
+
this.#timerSettle = setTimeout(() => {
|
|
371
|
+
this.#timerSettle = undefined;
|
|
372
|
+
const gesture = this.#timerGesture;
|
|
373
|
+
this.#timerGesture = {};
|
|
374
|
+
this.#applyTimerWrite(gesture);
|
|
375
|
+
}, TARGET_SETTLE_MS);
|
|
376
|
+
this.#timerSettle.unref();
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* What that gesture meant.
|
|
380
|
+
*
|
|
381
|
+
* A brightness is about the countdown, so it settles the question of whether
|
|
382
|
+
* auto movement is on: it is, or there would be no countdown to drag. Only a
|
|
383
|
+
* gesture that is nothing *but* `On` is the switch being used as a switch.
|
|
384
|
+
*/
|
|
385
|
+
#applyTimerWrite({ on, brightness }) {
|
|
275
386
|
const mover = this.#mover;
|
|
276
387
|
if (!mover) {
|
|
277
388
|
return;
|
|
278
389
|
}
|
|
390
|
+
if (brightness === undefined) {
|
|
391
|
+
if (on !== undefined && on !== mover.enabled) {
|
|
392
|
+
this.#setAutoMove(on);
|
|
393
|
+
}
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
396
|
+
const wasEnabled = mover.enabled;
|
|
397
|
+
if (!wasEnabled) {
|
|
398
|
+
// Dragged up from a standstill. That is a switch-on, and is remembered as
|
|
399
|
+
// one — #setAutoMove also puts a full interval on the clock.
|
|
400
|
+
this.#setAutoMove(true);
|
|
401
|
+
}
|
|
402
|
+
if (!mover.inWorkingTime()) {
|
|
403
|
+
// Outside the hours there is no countdown to drag: the timer waits full
|
|
404
|
+
// for the next window, and a drag to zero there is not a move either.
|
|
405
|
+
// The slider goes back to where it was.
|
|
406
|
+
if (wasEnabled) {
|
|
407
|
+
this.#platform.log.info(`${this.#config.name}: outside the working hours the timer does not run; ` +
|
|
408
|
+
'it starts when the next window opens');
|
|
409
|
+
}
|
|
410
|
+
this.#publishTimer(true);
|
|
411
|
+
return;
|
|
412
|
+
}
|
|
413
|
+
if (brightness === 0) {
|
|
414
|
+
if (!wasEnabled) {
|
|
415
|
+
// Switched on while the slider sat at zero, because zero is what off
|
|
416
|
+
// looks like. It is where this came from, not something asked for, and
|
|
417
|
+
// reading it as "move now" would turn switching the automation on into
|
|
418
|
+
// a desk that moves under somebody's coffee.
|
|
419
|
+
this.#publishTimer(true);
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
const state = this.#desk.state;
|
|
423
|
+
if (!state.connected || !state.ready) {
|
|
424
|
+
// There is nothing to run the timer out into. Expiring anyway would
|
|
425
|
+
// leave the countdown sitting at zero with auto movement still on, and
|
|
426
|
+
// zero is what the slider shows when it is off — the one reading it
|
|
427
|
+
// must never give while it is running. So the drag is refused and the
|
|
428
|
+
// slider goes back to where the countdown actually is.
|
|
429
|
+
this.#platform.log.warn(`${this.#config.name}: the timer was run out by hand, but the desk is not reachable`);
|
|
430
|
+
this.#publishTimer(true);
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
433
|
+
// Run out by hand. The warning is withdrawn rather than raised: it
|
|
434
|
+
// announces a move that is coming, and this one is already here.
|
|
435
|
+
this.#platform.log.info(`${this.#config.name}: timer run out by hand`);
|
|
436
|
+
mover.expire();
|
|
437
|
+
this.#warn(false);
|
|
438
|
+
void this.#autoTick();
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
mover.setRemainingPercent(brightness);
|
|
442
|
+
this.#platform.log.debug(`${this.#config.name}: timer set to ${brightness}% of the interval`);
|
|
443
|
+
this.#publishTimer(true);
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
446
|
+
* The half-minute tick: decide, then show where the countdown stands.
|
|
447
|
+
*
|
|
448
|
+
* The redraw is in a `finally` because {@link #decide} leaves by a dozen
|
|
449
|
+
* doors — nothing due, outside the hours, a new day, a move — and the slider
|
|
450
|
+
* has to be right after all of them. It is also the ordinary redraw, which is
|
|
451
|
+
* what makes the timer visibly run down rather than jump when something
|
|
452
|
+
* happens to touch it.
|
|
453
|
+
*/
|
|
454
|
+
async #autoTick() {
|
|
455
|
+
if (!this.#mover) {
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
458
|
+
try {
|
|
459
|
+
await this.#decide(this.#mover);
|
|
460
|
+
}
|
|
461
|
+
finally {
|
|
462
|
+
this.#publishTimer();
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
/** Ask the scheduler what it wants, and do it. */
|
|
466
|
+
async #decide(mover) {
|
|
279
467
|
const state = this.#desk.state;
|
|
280
468
|
if (!state.connected || !state.ready) {
|
|
281
469
|
return;
|
|
@@ -334,6 +522,10 @@ export class EliotAccessory {
|
|
|
334
522
|
clearTimeout(this.#targetTimer);
|
|
335
523
|
this.#targetTimer = undefined;
|
|
336
524
|
}
|
|
525
|
+
if (this.#timerSettle) {
|
|
526
|
+
clearTimeout(this.#timerSettle);
|
|
527
|
+
this.#timerSettle = undefined;
|
|
528
|
+
}
|
|
337
529
|
if (this.#autoTimer) {
|
|
338
530
|
clearInterval(this.#autoTimer);
|
|
339
531
|
this.#autoTimer = undefined;
|
package/dist/accessory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessory.js","sourceRoot":"","sources":["../src/accessory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accessory.js","sourceRoot":"","sources":["../src/accessory.ts"],"names":[],"mappings":"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"}
|
package/dist/auto-move.d.ts
CHANGED
|
@@ -72,10 +72,11 @@ export declare class AutoMover {
|
|
|
72
72
|
/**
|
|
73
73
|
* Turn the whole thing on or off.
|
|
74
74
|
*
|
|
75
|
-
* Switching on
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
75
|
+
* Switching on inside a window starts a full interval; outside one it starts
|
|
76
|
+
* nothing, and the first poll inside a window does. Switching off forgets the countdown
|
|
77
|
+
* rather than pausing it — coming back to a desk that moves the instant it is
|
|
78
|
+
* re-enabled is not what the switch appears to promise, and it is why the
|
|
79
|
+
* timer reads 0 while this is off rather than holding where it stopped.
|
|
79
80
|
*/
|
|
80
81
|
setEnabled(on: boolean, now?: Date): void;
|
|
81
82
|
/** The day it was switched on for, so a restart can carry it across. */
|
|
@@ -84,6 +85,42 @@ export declare class AutoMover {
|
|
|
84
85
|
restore(enabled: boolean, day: string | null): void;
|
|
85
86
|
/** When the next move is due, for the log and for tests. */
|
|
86
87
|
get dueAt(): number | null;
|
|
88
|
+
/**
|
|
89
|
+
* How much of the interval is left, as the timer slider shows it.
|
|
90
|
+
*
|
|
91
|
+
* 0 when auto movement is off. The slider *is* the countdown, and there is no
|
|
92
|
+
* countdown — showing a remainder for a timer that is not running would be
|
|
93
|
+
* showing a number that means nothing.
|
|
94
|
+
*
|
|
95
|
+
* 100 when it is on but nothing is scheduled, which is what being outside the
|
|
96
|
+
* working hours looks like: full, and waiting for a window rather than running
|
|
97
|
+
* down towards one.
|
|
98
|
+
*/
|
|
99
|
+
remainingPercent(now?: Date): number;
|
|
100
|
+
/**
|
|
101
|
+
* Move the countdown to a point, as a percentage of a full interval.
|
|
102
|
+
*
|
|
103
|
+
* This is somebody dragging the timer slider: 100 is a fresh interval, 50 is
|
|
104
|
+
* half of one left. It changes the wait and nothing else — not where the desk
|
|
105
|
+
* is headed, not whether auto movement is on.
|
|
106
|
+
*
|
|
107
|
+
* Whether the warning still fires depends on where the drag landed. Setting
|
|
108
|
+
* the timer below the warning is already the decision the warning exists to
|
|
109
|
+
* announce, and a phone that buzzes "moving in 4 minutes" the instant somebody
|
|
110
|
+
* asked for four more minutes is noise. Land above it and the warning comes as
|
|
111
|
+
* it always did, at the usual distance from the move.
|
|
112
|
+
*/
|
|
113
|
+
setRemainingPercent(percent: number, now?: Date): void;
|
|
114
|
+
/**
|
|
115
|
+
* Treat the countdown as run out, now.
|
|
116
|
+
*
|
|
117
|
+
* The next poll then returns a move, through the same path a move that came
|
|
118
|
+
* due on its own takes — the height it picks and the limits it respects are
|
|
119
|
+
* not this method's business. No warning goes with it: a warning announces a
|
|
120
|
+
* move that is coming, and this one is already here because somebody asked
|
|
121
|
+
* for it.
|
|
122
|
+
*/
|
|
123
|
+
expire(now?: Date): void;
|
|
87
124
|
/**
|
|
88
125
|
* Somebody moved the desk themselves: start the interval again.
|
|
89
126
|
*
|
|
@@ -93,6 +130,14 @@ export declare class AutoMover {
|
|
|
93
130
|
* and the clock on that restarts whenever the height does.
|
|
94
131
|
*/
|
|
95
132
|
noteManualMove(now: number): void;
|
|
133
|
+
/**
|
|
134
|
+
* Whether `now` falls inside a configured window on a configured day.
|
|
135
|
+
*
|
|
136
|
+
* Outside one there is no countdown, and nothing that would start one — a
|
|
137
|
+
* switch-on, a drag of the slider, a nudge on the handset — does. The first
|
|
138
|
+
* poll inside a window starts it.
|
|
139
|
+
*/
|
|
140
|
+
inWorkingTime(now?: Date): boolean;
|
|
96
141
|
/**
|
|
97
142
|
* Decide what to do, now.
|
|
98
143
|
*
|