@homebridge-plugins/homebridge-eufy-security 5.0.0-beta.4 → 5.0.0-beta.41
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/CONTRIBUTING.md +9 -17
- package/config.schema.json +60 -0
- package/dist/account/ownership.js +16 -16
- package/dist/account/ownership.js.map +1 -1
- package/dist/account/persistence.js +24 -74
- package/dist/account/persistence.js.map +1 -1
- package/dist/account/temporary-authentication.js +5 -3
- package/dist/account/temporary-authentication.js.map +1 -1
- package/dist/configuration.js +50 -13
- package/dist/configuration.js.map +1 -1
- package/dist/device/member-evidence.js +11 -4
- package/dist/device/member-evidence.js.map +1 -1
- package/dist/device/member-trust.js +14 -32
- package/dist/device/member-trust.js.map +1 -1
- package/dist/device/snapshot.js +6 -18
- package/dist/device/snapshot.js.map +1 -1
- package/dist/diagnostics.js +966 -337
- package/dist/diagnostics.js.map +1 -1
- package/dist/homekit/adapter.js +4 -1
- package/dist/homekit/adapter.js.map +1 -1
- package/dist/homekit/adapters/battery.js +3 -3
- package/dist/homekit/adapters/battery.js.map +1 -1
- package/dist/homekit/adapters/camera-controls.js +15 -37
- package/dist/homekit/adapters/camera-controls.js.map +1 -1
- package/dist/homekit/adapters/camera-streaming.js +74 -48
- package/dist/homekit/adapters/camera-streaming.js.map +1 -1
- package/dist/homekit/adapters/contact.js +5 -5
- package/dist/homekit/adapters/contact.js.map +1 -1
- package/dist/homekit/adapters/doorbell.js +3 -15
- package/dist/homekit/adapters/doorbell.js.map +1 -1
- package/dist/homekit/adapters/lock.js +72 -221
- package/dist/homekit/adapters/lock.js.map +1 -1
- package/dist/homekit/adapters/motion.js +3 -3
- package/dist/homekit/adapters/motion.js.map +1 -1
- package/dist/homekit/adapters/package-sensor.js +63 -0
- package/dist/homekit/adapters/package-sensor.js.map +1 -0
- package/dist/homekit/adapters/registry.js +2 -0
- package/dist/homekit/adapters/registry.js.map +1 -1
- package/dist/homekit/adapters/security-system.js +106 -250
- package/dist/homekit/adapters/security-system.js.map +1 -1
- package/dist/homekit/adapters/siren.js +5 -33
- package/dist/homekit/adapters/siren.js.map +1 -1
- package/dist/homekit/adapters/smart-light.js +19 -217
- package/dist/homekit/adapters/smart-light.js.map +1 -1
- package/dist/homekit/coverage-matrix.js +8 -67
- package/dist/homekit/coverage-matrix.js.map +1 -1
- package/dist/homekit/device-control.js +249 -13
- package/dist/homekit/device-control.js.map +1 -1
- package/dist/homekit/reconciler.js +25 -9
- package/dist/homekit/reconciler.js.map +1 -1
- package/dist/media/last-successful-image.js +8 -23
- package/dist/media/last-successful-image.js.map +1 -1
- package/dist/media/live-preview.js +217 -0
- package/dist/media/live-preview.js.map +1 -0
- package/dist/media/live-stream.js +689 -160
- package/dist/media/live-stream.js.map +1 -1
- package/dist/media/recording.js +41 -118
- package/dist/media/recording.js.map +1 -1
- package/dist/media/snapshot.js +22 -17
- package/dist/media/snapshot.js.map +1 -1
- package/dist/media/station-live-sessions.js +40 -51
- package/dist/media/station-live-sessions.js.map +1 -1
- package/dist/platform.js +61 -10
- package/dist/platform.js.map +1 -1
- package/dist/runtime/channel.js +227 -40
- package/dist/runtime/channel.js.map +1 -1
- package/dist/runtime/device-settings.js +88 -0
- package/dist/runtime/device-settings.js.map +1 -0
- package/dist/runtime/owner.js +30 -5
- package/dist/runtime/owner.js.map +1 -1
- package/dist/runtime/sdk-client.js +21 -17
- package/dist/runtime/sdk-client.js.map +1 -1
- package/dist/runtime/tracker.js +8 -38
- package/dist/runtime/tracker.js.map +1 -1
- package/dist/storage.js +1 -1
- package/dist/storage.js.map +1 -1
- package/dist/ui/dashboard.js +36 -16
- package/dist/ui/dashboard.js.map +1 -1
- package/dist/ui/runtime-channel-client.js +155 -184
- package/dist/ui/runtime-channel-client.js.map +1 -1
- package/dist/ui/server.js +94 -41
- package/dist/ui/server.js.map +1 -1
- package/homebridge-ui/public/app.css +531 -239
- package/homebridge-ui/public/assets/icons/auto_fix_high.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_0.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_1.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_2.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_3.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_4.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_5.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_6.svg +1 -0
- package/homebridge-ui/public/assets/icons/battery_full.svg +1 -0
- package/homebridge-ui/public/assets/icons/contact_support.svg +1 -0
- package/homebridge-ui/public/assets/icons/delete.svg +1 -0
- package/homebridge-ui/public/assets/icons/download.svg +1 -0
- package/homebridge-ui/public/assets/icons/extension_off.svg +1 -0
- package/homebridge-ui/public/assets/icons/info.svg +1 -0
- package/homebridge-ui/public/assets/icons/key_off.svg +1 -0
- package/homebridge-ui/public/assets/icons/keyboard_arrow_left.svg +1 -0
- package/homebridge-ui/public/assets/icons/keyboard_arrow_right.svg +1 -0
- package/homebridge-ui/public/assets/icons/keyboard_double_arrow_left.svg +1 -0
- package/homebridge-ui/public/assets/icons/keyboard_double_arrow_right.svg +1 -0
- package/homebridge-ui/public/assets/icons/movie_off.svg +1 -0
- package/homebridge-ui/public/assets/icons/play_arrow.svg +1 -0
- package/homebridge-ui/public/assets/icons/refresh.svg +1 -0
- package/homebridge-ui/public/assets/icons/satellite_alt.svg +1 -0
- package/homebridge-ui/public/assets/icons/search_off.svg +1 -0
- package/homebridge-ui/public/assets/icons/sensors_off.svg +1 -0
- package/homebridge-ui/public/assets/icons/settings_photo_camera.svg +1 -0
- package/homebridge-ui/public/assets/icons/solar_power.svg +1 -0
- package/homebridge-ui/public/assets/icons/stop.svg +1 -0
- package/homebridge-ui/public/assets/icons/videocam_off.svg +1 -0
- package/homebridge-ui/public/i18n/en.json +161 -82
- package/homebridge-ui/public/i18n/fr.json +162 -83
- package/homebridge-ui/public/index.html +224 -96
- package/homebridge-ui/public/js/app.js +821 -435
- package/homebridge-ui/public/js/dashboard.js +148 -31
- package/i18n/runtime/en.json +10 -3
- package/package.json +10 -11
- package/homebridge-ui/public/js/legacy-settings.js +0 -37
- package/homebridge-ui/public/js/profile-wizard.js +0 -61
|
@@ -14,9 +14,18 @@ export const OPERATION_FAILED_CONDITION = 'camera-control-operation-failed';
|
|
|
14
14
|
export const INVALID_OBSERVATION_CONDITION = 'invalid-camera-control-observation';
|
|
15
15
|
const OPERATION_TIMEOUT = Symbol('camera-control-operation-timeout');
|
|
16
16
|
/** The identity-free trace one observed enablement change records, whichever bundle records it. */
|
|
17
|
-
|
|
17
|
+
const ENABLEMENT_EVENT_TRACE = 'camera-enabled-changed';
|
|
18
18
|
/** The row whose flat property name the generic enablement announcement is matched against. */
|
|
19
19
|
const CAMERA_ENABLED_READ_ROW = 'camera.enabled.read';
|
|
20
|
+
/**
|
|
21
|
+
* The operation that turns a camera off and on again. The streaming bundle carries HomeKit's own camera-active
|
|
22
|
+
* state to it and declares its coverage row; the controls bundle gates its switch on it without a second row,
|
|
23
|
+
* which would claim one operation twice.
|
|
24
|
+
*/
|
|
25
|
+
export const CAMERA_ENABLED_WRITE = {
|
|
26
|
+
id: 'camera.enabled.persistent-operation',
|
|
27
|
+
kind: 'persistent-operation',
|
|
28
|
+
};
|
|
20
29
|
/**
|
|
21
30
|
* The trace one enablement announcement records, or nothing for an event that is not one.
|
|
22
31
|
*
|
|
@@ -53,10 +62,10 @@ export function deviceOperationIssuer({ context, state, owned, detached, detachR
|
|
|
53
62
|
return async (capability, member, operation, restore) => {
|
|
54
63
|
const key = `${capability}.${member}`;
|
|
55
64
|
if (state.blockedOperations.has(key)) {
|
|
56
|
-
throw new hap.HapStatusError(hap.HAPStatus.NOT_ALLOWED_IN_CURRENT_STATE);
|
|
65
|
+
throw new hap.HapStatusError(-70412 /* hap.HAPStatus.NOT_ALLOWED_IN_CURRENT_STATE */);
|
|
57
66
|
}
|
|
58
67
|
if (state.activeOperations.has(key)) {
|
|
59
|
-
throw new hap.HapStatusError(hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE);
|
|
68
|
+
throw new hap.HapStatusError(-70402 /* hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
60
69
|
}
|
|
61
70
|
let deadline;
|
|
62
71
|
const operationPromise = Promise.resolve().then(operation);
|
|
@@ -113,7 +122,7 @@ export function deviceOperationIssuer({ context, state, owned, detached, detachR
|
|
|
113
122
|
: 'operation-failure',
|
|
114
123
|
});
|
|
115
124
|
}
|
|
116
|
-
throw new hap.HapStatusError(unsupported ? hap.HAPStatus.NOT_ALLOWED_IN_CURRENT_STATE : hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE);
|
|
125
|
+
throw new hap.HapStatusError(unsupported ? -70412 /* hap.HAPStatus.NOT_ALLOWED_IN_CURRENT_STATE */ : -70402 /* hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
117
126
|
}
|
|
118
127
|
finally {
|
|
119
128
|
detachRejectors.delete(rejectDetached);
|
|
@@ -133,37 +142,39 @@ export function deviceOperationIssuer({ context, state, owned, detached, detachR
|
|
|
133
142
|
*
|
|
134
143
|
* The expected shape is stated by the caller rather than inferred, because the SDK stores an enum member as
|
|
135
144
|
* a number and a caller that accepted whatever arrived would present one member's value under another
|
|
136
|
-
* member's meaning.
|
|
145
|
+
* member's meaning. A `valid` predicate narrows it further, to the range or set HomeKit can present.
|
|
137
146
|
*/
|
|
138
|
-
export function observationReader(context, expected) {
|
|
147
|
+
export function observationReader(context, expected, code = INVALID_OBSERVATION_CONDITION) {
|
|
139
148
|
const { hap } = context;
|
|
140
|
-
return (capability, member, read) => {
|
|
149
|
+
return (capability, member, read, valid) => {
|
|
141
150
|
let value;
|
|
142
151
|
try {
|
|
143
152
|
value = read();
|
|
144
153
|
}
|
|
145
154
|
catch {
|
|
146
155
|
context.diagnose({
|
|
147
|
-
code
|
|
156
|
+
code,
|
|
148
157
|
capability,
|
|
149
158
|
member,
|
|
150
159
|
active: true,
|
|
151
160
|
reason: 'sdk-fault',
|
|
152
161
|
});
|
|
153
|
-
throw new hap.HapStatusError(hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE);
|
|
162
|
+
throw new hap.HapStatusError(-70402 /* hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
154
163
|
}
|
|
155
|
-
if (typeof value !== expected ||
|
|
164
|
+
if (typeof value !== expected ||
|
|
165
|
+
(expected === 'number' && !Number.isFinite(value)) ||
|
|
166
|
+
(valid && !valid(value))) {
|
|
156
167
|
context.diagnose({
|
|
157
|
-
code
|
|
168
|
+
code,
|
|
158
169
|
capability,
|
|
159
170
|
member,
|
|
160
171
|
active: true,
|
|
161
172
|
reason: value === undefined ? 'missing' : 'malformed',
|
|
162
173
|
});
|
|
163
|
-
throw new hap.HapStatusError(hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE);
|
|
174
|
+
throw new hap.HapStatusError(-70402 /* hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
164
175
|
}
|
|
165
176
|
context.diagnose({
|
|
166
|
-
code
|
|
177
|
+
code,
|
|
167
178
|
capability,
|
|
168
179
|
member,
|
|
169
180
|
active: false,
|
|
@@ -172,4 +183,229 @@ export function observationReader(context, expected) {
|
|
|
172
183
|
return value;
|
|
173
184
|
};
|
|
174
185
|
}
|
|
186
|
+
/** How long a completed write's projection waits for the device to report before the gap is diagnosed. */
|
|
187
|
+
const RECONCILIATION_WINDOW_MS = 60_000;
|
|
188
|
+
/**
|
|
189
|
+
* Serializes one persistent member's writes, coalescing to the newest value, and holds the requested value as
|
|
190
|
+
* a bounded projection until the device reports.
|
|
191
|
+
*
|
|
192
|
+
* A successful command acknowledges delivery and nothing more, so the projection only answers HomeKit until
|
|
193
|
+
* an observation supersedes it; one that never comes is diagnosed once the reconciliation window closes. A
|
|
194
|
+
* member the SDK refuses as unsupported is latched and every later request refused the same way.
|
|
195
|
+
*/
|
|
196
|
+
export class PersistentMemberWrites {
|
|
197
|
+
hap;
|
|
198
|
+
issue;
|
|
199
|
+
diagnose;
|
|
200
|
+
restore;
|
|
201
|
+
policy;
|
|
202
|
+
active;
|
|
203
|
+
queued;
|
|
204
|
+
reconciliation;
|
|
205
|
+
projection;
|
|
206
|
+
blockedError;
|
|
207
|
+
detached = false;
|
|
208
|
+
constructor(hap, issue, diagnose,
|
|
209
|
+
/** Hands HomeKit back to the adapter, which decides per cause whether to re-present anything. */
|
|
210
|
+
restore, policy = {}) {
|
|
211
|
+
this.hap = hap;
|
|
212
|
+
this.issue = issue;
|
|
213
|
+
this.diagnose = diagnose;
|
|
214
|
+
this.restore = restore;
|
|
215
|
+
this.policy = policy;
|
|
216
|
+
}
|
|
217
|
+
read() {
|
|
218
|
+
return this.projection;
|
|
219
|
+
}
|
|
220
|
+
request(value) {
|
|
221
|
+
if (this.blockedError) {
|
|
222
|
+
return Promise.reject(this.blockedError);
|
|
223
|
+
}
|
|
224
|
+
this.projection = value;
|
|
225
|
+
return new Promise((resolve, reject) => {
|
|
226
|
+
const request = { value, settled: false, resolve, reject };
|
|
227
|
+
if (!this.policy.supersedeOnly) {
|
|
228
|
+
request.deadline = setTimeout(() => this.timeout(request), OPERATION_DEADLINE_MS);
|
|
229
|
+
}
|
|
230
|
+
if (!this.active) {
|
|
231
|
+
this.start({ value, requests: [request], reconciled: false, abandoned: false });
|
|
232
|
+
}
|
|
233
|
+
else if (this.queued) {
|
|
234
|
+
this.queued.value = value;
|
|
235
|
+
this.queued.reconciled = false;
|
|
236
|
+
this.queued.requests.push(request);
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
this.queued = { value, requests: [request], reconciled: false, abandoned: false };
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
/** Settles the window a write opened, because the device has since said what it actually did. */
|
|
244
|
+
observe() {
|
|
245
|
+
this.projection = undefined;
|
|
246
|
+
if (this.reconciliation) {
|
|
247
|
+
clearTimeout(this.reconciliation);
|
|
248
|
+
this.reconciliation = undefined;
|
|
249
|
+
}
|
|
250
|
+
if (this.policy.supersedeOnly) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
if (this.active) {
|
|
254
|
+
this.active.reconciled = true;
|
|
255
|
+
}
|
|
256
|
+
if (this.queued) {
|
|
257
|
+
this.queued.reconciled = true;
|
|
258
|
+
}
|
|
259
|
+
if (!this.blockedError) {
|
|
260
|
+
this.diagnose('operation', false, 'recovered');
|
|
261
|
+
}
|
|
262
|
+
this.diagnose('reconciliation', false, 'recovered');
|
|
263
|
+
}
|
|
264
|
+
detach() {
|
|
265
|
+
this.detached = true;
|
|
266
|
+
if (this.reconciliation) {
|
|
267
|
+
clearTimeout(this.reconciliation);
|
|
268
|
+
}
|
|
269
|
+
for (const request of [...(this.active?.requests ?? []), ...(this.queued?.requests ?? [])]) {
|
|
270
|
+
this.settle(request, 'reject', this.communicationFailure());
|
|
271
|
+
}
|
|
272
|
+
this.active = undefined;
|
|
273
|
+
this.queued = undefined;
|
|
274
|
+
this.projection = undefined;
|
|
275
|
+
this.reconciliation = undefined;
|
|
276
|
+
}
|
|
277
|
+
communicationFailure() {
|
|
278
|
+
return new this.hap.HapStatusError(-70402 /* this.hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
279
|
+
}
|
|
280
|
+
start(batch) {
|
|
281
|
+
if (this.detached) {
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
if (this.reconciliation) {
|
|
285
|
+
clearTimeout(this.reconciliation);
|
|
286
|
+
this.reconciliation = undefined;
|
|
287
|
+
}
|
|
288
|
+
this.active = batch;
|
|
289
|
+
if (this.policy.supersedeOnly) {
|
|
290
|
+
for (const request of batch.requests) {
|
|
291
|
+
request.deadline = setTimeout(() => this.timeout(request), OPERATION_DEADLINE_MS);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
Promise.resolve()
|
|
295
|
+
.then(() => this.issue(batch.value))
|
|
296
|
+
.then(() => this.complete(batch), (error) => this.fail(batch, error));
|
|
297
|
+
}
|
|
298
|
+
complete(batch) {
|
|
299
|
+
if (this.active !== batch) {
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
if (batch.abandoned && this.queued?.requests.some(({ settled }) => !settled)) {
|
|
303
|
+
this.active = undefined;
|
|
304
|
+
this.startQueued();
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
for (const request of batch.requests) {
|
|
308
|
+
this.settle(request, 'resolve');
|
|
309
|
+
}
|
|
310
|
+
if (batch.abandoned && !batch.reconciled) {
|
|
311
|
+
this.projection = batch.value;
|
|
312
|
+
this.restore('late-completed');
|
|
313
|
+
}
|
|
314
|
+
this.diagnose('operation', false, 'recovered');
|
|
315
|
+
if (this.policy.supersedeOnly ? this.projection !== undefined : !batch.reconciled) {
|
|
316
|
+
this.reconciliation = setTimeout(() => {
|
|
317
|
+
this.reconciliation = undefined;
|
|
318
|
+
this.projection = undefined;
|
|
319
|
+
this.restore('expired');
|
|
320
|
+
this.diagnose('reconciliation', true, 'expired');
|
|
321
|
+
}, RECONCILIATION_WINDOW_MS);
|
|
322
|
+
}
|
|
323
|
+
this.active = undefined;
|
|
324
|
+
this.restore('completed');
|
|
325
|
+
this.startQueued();
|
|
326
|
+
}
|
|
327
|
+
fail(batch, cause) {
|
|
328
|
+
if (this.active !== batch) {
|
|
329
|
+
return;
|
|
330
|
+
}
|
|
331
|
+
const nonRetryable = cause instanceof CapabilityNotSupportedError;
|
|
332
|
+
const { hap } = this;
|
|
333
|
+
const error = new hap.HapStatusError(nonRetryable ? -70412 /* hap.HAPStatus.NOT_ALLOWED_IN_CURRENT_STATE */ : -70402 /* hap.HAPStatus.SERVICE_COMMUNICATION_FAILURE */);
|
|
334
|
+
for (const request of batch.requests) {
|
|
335
|
+
this.settle(request, 'reject', error);
|
|
336
|
+
}
|
|
337
|
+
if (nonRetryable) {
|
|
338
|
+
this.blockedError = error;
|
|
339
|
+
for (const request of this.queued?.requests ?? []) {
|
|
340
|
+
this.settle(request, 'reject', error);
|
|
341
|
+
}
|
|
342
|
+
this.queued = undefined;
|
|
343
|
+
}
|
|
344
|
+
this.projection = this.queued?.value;
|
|
345
|
+
this.restore('failed');
|
|
346
|
+
if (batch.abandoned && !nonRetryable) {
|
|
347
|
+
this.active = undefined;
|
|
348
|
+
this.startQueued();
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
this.diagnose('operation', true, nonRetryable ? 'capability-not-supported' : 'operation-failure');
|
|
352
|
+
this.active = undefined;
|
|
353
|
+
this.startQueued();
|
|
354
|
+
}
|
|
355
|
+
timeout(request) {
|
|
356
|
+
if (request.settled) {
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
this.settle(request, 'reject', this.communicationFailure());
|
|
360
|
+
this.diagnose('operation', true, 'timeout');
|
|
361
|
+
if (this.active?.requests.every(({ settled }) => settled)) {
|
|
362
|
+
this.projection = this.queued?.value;
|
|
363
|
+
this.restore('timed-out');
|
|
364
|
+
if (this.policy.holdAbandoned) {
|
|
365
|
+
this.active.abandoned = true;
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
this.active = undefined;
|
|
369
|
+
this.startQueued();
|
|
370
|
+
}
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
if (this.queued) {
|
|
374
|
+
this.queued.requests = this.queued.requests.filter(({ settled }) => !settled);
|
|
375
|
+
if (this.queued.requests.length === 0) {
|
|
376
|
+
this.queued = undefined;
|
|
377
|
+
this.projection = this.active?.value;
|
|
378
|
+
}
|
|
379
|
+
else {
|
|
380
|
+
this.queued.value = this.queued.requests.at(-1).value;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
startQueued() {
|
|
385
|
+
const queued = this.queued;
|
|
386
|
+
this.queued = undefined;
|
|
387
|
+
if (!queued) {
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
390
|
+
queued.requests = queued.requests.filter(({ settled }) => !settled);
|
|
391
|
+
if (queued.requests.length > 0) {
|
|
392
|
+
queued.value = queued.requests.at(-1).value;
|
|
393
|
+
this.projection = queued.reconciled ? undefined : queued.value;
|
|
394
|
+
this.start(queued);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
settle(request, result, error) {
|
|
398
|
+
if (request.settled) {
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
401
|
+
request.settled = true;
|
|
402
|
+
clearTimeout(request.deadline);
|
|
403
|
+
if (result === 'resolve') {
|
|
404
|
+
request.resolve();
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
request.reject(error);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
175
411
|
//# sourceMappingURL=device-control.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-control.js","sourceRoot":"","sources":["../../src/homekit/device-control.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"device-control.js","sourceRoot":"","sources":["../../src/homekit/device-control.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,8 @@ export class HomeKitReconciler {
|
|
|
12
12
|
recordingMedia;
|
|
13
13
|
mediaBudget;
|
|
14
14
|
stationLiveSessions;
|
|
15
|
+
hdLiveVideo;
|
|
16
|
+
liveVideoSettings;
|
|
15
17
|
accessories = new Map();
|
|
16
18
|
representedSerials = new Set();
|
|
17
19
|
attachedAdapters = new Map();
|
|
@@ -21,7 +23,7 @@ export class HomeKitReconciler {
|
|
|
21
23
|
unsubscribeRegistry;
|
|
22
24
|
unsubscribeEvents;
|
|
23
25
|
lastPublication;
|
|
24
|
-
constructor(source, store, diagnose, cachedAccessories = [], trace, entityPreferences = {}, liveMedia, snapshotMedia, recordingMedia, mediaBudget, stationLiveSessions) {
|
|
26
|
+
constructor(source, store, diagnose, cachedAccessories = [], trace, entityPreferences = {}, liveMedia, snapshotMedia, recordingMedia, mediaBudget, stationLiveSessions, hdLiveVideo = false, liveVideoSettings) {
|
|
25
27
|
this.source = source;
|
|
26
28
|
this.store = store;
|
|
27
29
|
this.diagnose = diagnose;
|
|
@@ -32,6 +34,8 @@ export class HomeKitReconciler {
|
|
|
32
34
|
this.recordingMedia = recordingMedia;
|
|
33
35
|
this.mediaBudget = mediaBudget;
|
|
34
36
|
this.stationLiveSessions = stationLiveSessions;
|
|
37
|
+
this.hdLiveVideo = hdLiveVideo;
|
|
38
|
+
this.liveVideoSettings = liveVideoSettings;
|
|
35
39
|
for (const accessory of cachedAccessories) {
|
|
36
40
|
this.accessories.set(accessory.UUID, accessory);
|
|
37
41
|
const context = accessory.context;
|
|
@@ -120,12 +124,18 @@ export class HomeKitReconciler {
|
|
|
120
124
|
snapshotMedia: this.snapshotMedia,
|
|
121
125
|
...(this.mediaBudget ? { mediaBudget: this.mediaBudget } : {}),
|
|
122
126
|
...(this.stationLiveSessions ? { stationLiveSessions: this.stationLiveSessions } : {}),
|
|
127
|
+
...(this.hdLiveVideo ? { hdLiveVideo: true } : {}),
|
|
128
|
+
...(this.liveVideoSettings ? { liveVideoSettings: this.liveVideoSettings(serial) } : {}),
|
|
123
129
|
audioEnabled: this.entityPreferences[serial]?.audio !== false,
|
|
130
|
+
securitySystemEnabled: this.entityPreferences[serial]?.securitySystem !== false,
|
|
124
131
|
snapshotMode: this.entityPreferences[serial]?.snapshotMode ?? 'Refresh',
|
|
132
|
+
...(this.entityPreferences[serial]?.armingModes === undefined
|
|
133
|
+
? {}
|
|
134
|
+
: { armingModes: this.entityPreferences[serial].armingModes }),
|
|
125
135
|
availability: () => this.source.currentAvailability?.(serial),
|
|
126
136
|
diagnose: (diagnostic) => this.setAdapterDiagnostic(serial, key, diagnostic),
|
|
127
137
|
observed: (code) => this.clearAdapterDiagnostics(serial, code, key),
|
|
128
|
-
trace: (trace) => this.trace?.({ adapter: key, ...trace }),
|
|
138
|
+
trace: (trace) => this.trace?.({ adapter: key, serial, ...trace }),
|
|
129
139
|
persist: () => this.store.update([accessory]),
|
|
130
140
|
});
|
|
131
141
|
if (handle) {
|
|
@@ -202,20 +212,26 @@ export class HomeKitReconciler {
|
|
|
202
212
|
this.detachAdapters(serial);
|
|
203
213
|
}
|
|
204
214
|
}
|
|
205
|
-
this.representedSerials
|
|
206
|
-
for (const serial of nextRepresented) {
|
|
207
|
-
this.representedSerials.add(serial);
|
|
208
|
-
}
|
|
215
|
+
this.representedSerials = nextRepresented;
|
|
209
216
|
this.lastPublication = publication;
|
|
210
217
|
}
|
|
211
218
|
observe(event) {
|
|
212
|
-
|
|
219
|
+
const serial = event.deviceSn;
|
|
220
|
+
const handles = serial ? this.attachedAdapters.get(serial) : undefined;
|
|
221
|
+
if (!serial || !handles) {
|
|
222
|
+
const registry = this.source.currentRegistry()?.registry.values() ?? [];
|
|
223
|
+
const target = !serial
|
|
224
|
+
? 'none'
|
|
225
|
+
: [...registry].some((device) => device.sn !== serial && device.stationSn === serial)
|
|
226
|
+
? 'station'
|
|
227
|
+
: 'unattached';
|
|
228
|
+
this.trace?.({ event: 'event-unrouted', kind: event.eventName, target });
|
|
213
229
|
return;
|
|
214
230
|
}
|
|
215
|
-
for (const [adapter, handle] of
|
|
231
|
+
for (const [adapter, handle] of handles) {
|
|
216
232
|
const result = handle.event?.(event);
|
|
217
233
|
if (result) {
|
|
218
|
-
this.trace?.({ adapter, ...result });
|
|
234
|
+
this.trace?.({ adapter, serial, ...result });
|
|
219
235
|
}
|
|
220
236
|
}
|
|
221
237
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../src/homekit/reconciler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../src/homekit/reconciler.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,7 +66,8 @@ export class PersistedLastSuccessfulImages {
|
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
68
|
this.discardedNames.delete(this.name(serial));
|
|
69
|
-
|
|
69
|
+
const stored = provenance === 'live' ? this.retained.get(serial)?.stored : jpeg;
|
|
70
|
+
this.retained.set(serial, { jpeg, provenance, acceptedAtMs: Date.now(), stored });
|
|
70
71
|
await this.serialize(() => this.persist(serial, jpeg));
|
|
71
72
|
}
|
|
72
73
|
/** Removes one entity's persisted and process-local fallback without exposing its opaque filename. */
|
|
@@ -107,14 +108,15 @@ export class PersistedLastSuccessfulImages {
|
|
|
107
108
|
}
|
|
108
109
|
/**
|
|
109
110
|
* A live image always replaces a retained image. A stored-only image may replace another stored-only
|
|
110
|
-
* image only when it differs, and may replace a live image only two minutes after that live success
|
|
111
|
+
* image only when it differs, and may replace a live image only two minutes after that live success and
|
|
112
|
+
* only when it differs from the stored-only image that live image replaced.
|
|
111
113
|
*/
|
|
112
114
|
accepts(serial, jpeg, provenance) {
|
|
113
115
|
const current = this.retained.get(serial);
|
|
114
116
|
if (provenance === 'live') {
|
|
115
117
|
return true;
|
|
116
118
|
}
|
|
117
|
-
if (current?.jpeg?.equals(jpeg)) {
|
|
119
|
+
if (current?.jpeg?.equals(jpeg) || current?.stored?.equals(jpeg)) {
|
|
118
120
|
return false;
|
|
119
121
|
}
|
|
120
122
|
if (current?.provenance !== 'live' || current.acceptedAtMs === undefined) {
|
|
@@ -164,30 +166,13 @@ export class PersistedLastSuccessfulImages {
|
|
|
164
166
|
}
|
|
165
167
|
/** A file that cannot be removed is not a reason to fail startup or a snapshot request. */
|
|
166
168
|
async remove(file) {
|
|
167
|
-
|
|
168
|
-
await rm(file, { force: true });
|
|
169
|
-
}
|
|
170
|
-
catch {
|
|
171
|
-
return;
|
|
172
|
-
}
|
|
169
|
+
await rm(file, { force: true }).catch(() => { });
|
|
173
170
|
}
|
|
174
171
|
/** Moves discarded data out of the readable namespace before best-effort physical removal. */
|
|
175
172
|
async discardPath(path, recursive = false) {
|
|
176
173
|
const discarded = `${path}.discarded.${process.pid}.${(this.replacements += 1)}`;
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
}
|
|
180
|
-
catch {
|
|
181
|
-
try {
|
|
182
|
-
await rm(path, { force: true, recursive });
|
|
183
|
-
}
|
|
184
|
-
catch { }
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
try {
|
|
188
|
-
await rm(discarded, { force: true, recursive });
|
|
189
|
-
}
|
|
190
|
-
catch { }
|
|
174
|
+
const target = await rename(path, discarded).then(() => discarded, () => path);
|
|
175
|
+
await rm(target, { force: true, recursive }).catch(() => { });
|
|
191
176
|
}
|
|
192
177
|
file(serial) {
|
|
193
178
|
return join(this.directory, this.name(serial));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"last-successful-image.js","sourceRoot":"","sources":["../../src/media/last-successful-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAA2B,MAAM,eAAe,CAAC;AAE5F,MAAM,kBAAkB,GAAG,WAAW,CAAC;AACvC,MAAM,kBAAkB,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"last-successful-image.js","sourceRoot":"","sources":["../../src/media/last-successful-image.ts"],"names":[],"mappings":"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"}
|