@homebridge-plugins/homebridge-eufy-security 5.0.0-beta.4 → 5.0.0-beta.40

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.
Files changed (121) hide show
  1. package/CONTRIBUTING.md +9 -17
  2. package/config.schema.json +60 -0
  3. package/dist/account/ownership.js +16 -16
  4. package/dist/account/ownership.js.map +1 -1
  5. package/dist/account/persistence.js +24 -74
  6. package/dist/account/persistence.js.map +1 -1
  7. package/dist/account/temporary-authentication.js +5 -3
  8. package/dist/account/temporary-authentication.js.map +1 -1
  9. package/dist/configuration.js +50 -13
  10. package/dist/configuration.js.map +1 -1
  11. package/dist/device/member-evidence.js +11 -4
  12. package/dist/device/member-evidence.js.map +1 -1
  13. package/dist/device/member-trust.js +14 -32
  14. package/dist/device/member-trust.js.map +1 -1
  15. package/dist/device/snapshot.js +6 -18
  16. package/dist/device/snapshot.js.map +1 -1
  17. package/dist/diagnostics.js +951 -334
  18. package/dist/diagnostics.js.map +1 -1
  19. package/dist/homekit/adapter.js +4 -1
  20. package/dist/homekit/adapter.js.map +1 -1
  21. package/dist/homekit/adapters/battery.js +3 -3
  22. package/dist/homekit/adapters/battery.js.map +1 -1
  23. package/dist/homekit/adapters/camera-controls.js +15 -37
  24. package/dist/homekit/adapters/camera-controls.js.map +1 -1
  25. package/dist/homekit/adapters/camera-streaming.js +74 -48
  26. package/dist/homekit/adapters/camera-streaming.js.map +1 -1
  27. package/dist/homekit/adapters/contact.js +5 -5
  28. package/dist/homekit/adapters/contact.js.map +1 -1
  29. package/dist/homekit/adapters/doorbell.js +3 -15
  30. package/dist/homekit/adapters/doorbell.js.map +1 -1
  31. package/dist/homekit/adapters/lock.js +72 -221
  32. package/dist/homekit/adapters/lock.js.map +1 -1
  33. package/dist/homekit/adapters/motion.js +3 -3
  34. package/dist/homekit/adapters/motion.js.map +1 -1
  35. package/dist/homekit/adapters/package-sensor.js +63 -0
  36. package/dist/homekit/adapters/package-sensor.js.map +1 -0
  37. package/dist/homekit/adapters/registry.js +2 -0
  38. package/dist/homekit/adapters/registry.js.map +1 -1
  39. package/dist/homekit/adapters/security-system.js +106 -250
  40. package/dist/homekit/adapters/security-system.js.map +1 -1
  41. package/dist/homekit/adapters/siren.js +5 -33
  42. package/dist/homekit/adapters/siren.js.map +1 -1
  43. package/dist/homekit/adapters/smart-light.js +19 -217
  44. package/dist/homekit/adapters/smart-light.js.map +1 -1
  45. package/dist/homekit/coverage-matrix.js +8 -67
  46. package/dist/homekit/coverage-matrix.js.map +1 -1
  47. package/dist/homekit/device-control.js +249 -13
  48. package/dist/homekit/device-control.js.map +1 -1
  49. package/dist/homekit/reconciler.js +25 -9
  50. package/dist/homekit/reconciler.js.map +1 -1
  51. package/dist/media/last-successful-image.js +8 -23
  52. package/dist/media/last-successful-image.js.map +1 -1
  53. package/dist/media/live-preview.js +217 -0
  54. package/dist/media/live-preview.js.map +1 -0
  55. package/dist/media/live-stream.js +689 -160
  56. package/dist/media/live-stream.js.map +1 -1
  57. package/dist/media/recording.js +41 -118
  58. package/dist/media/recording.js.map +1 -1
  59. package/dist/media/snapshot.js +22 -17
  60. package/dist/media/snapshot.js.map +1 -1
  61. package/dist/media/station-live-sessions.js +40 -51
  62. package/dist/media/station-live-sessions.js.map +1 -1
  63. package/dist/platform.js +61 -10
  64. package/dist/platform.js.map +1 -1
  65. package/dist/runtime/channel.js +227 -40
  66. package/dist/runtime/channel.js.map +1 -1
  67. package/dist/runtime/device-settings.js +88 -0
  68. package/dist/runtime/device-settings.js.map +1 -0
  69. package/dist/runtime/owner.js +30 -5
  70. package/dist/runtime/owner.js.map +1 -1
  71. package/dist/runtime/sdk-client.js +21 -17
  72. package/dist/runtime/sdk-client.js.map +1 -1
  73. package/dist/runtime/tracker.js +8 -38
  74. package/dist/runtime/tracker.js.map +1 -1
  75. package/dist/storage.js +1 -1
  76. package/dist/storage.js.map +1 -1
  77. package/dist/ui/dashboard.js +36 -16
  78. package/dist/ui/dashboard.js.map +1 -1
  79. package/dist/ui/runtime-channel-client.js +155 -184
  80. package/dist/ui/runtime-channel-client.js.map +1 -1
  81. package/dist/ui/server.js +81 -38
  82. package/dist/ui/server.js.map +1 -1
  83. package/homebridge-ui/public/app.css +531 -239
  84. package/homebridge-ui/public/assets/icons/auto_fix_high.svg +1 -0
  85. package/homebridge-ui/public/assets/icons/battery_0.svg +1 -0
  86. package/homebridge-ui/public/assets/icons/battery_1.svg +1 -0
  87. package/homebridge-ui/public/assets/icons/battery_2.svg +1 -0
  88. package/homebridge-ui/public/assets/icons/battery_3.svg +1 -0
  89. package/homebridge-ui/public/assets/icons/battery_4.svg +1 -0
  90. package/homebridge-ui/public/assets/icons/battery_5.svg +1 -0
  91. package/homebridge-ui/public/assets/icons/battery_6.svg +1 -0
  92. package/homebridge-ui/public/assets/icons/battery_full.svg +1 -0
  93. package/homebridge-ui/public/assets/icons/contact_support.svg +1 -0
  94. package/homebridge-ui/public/assets/icons/delete.svg +1 -0
  95. package/homebridge-ui/public/assets/icons/download.svg +1 -0
  96. package/homebridge-ui/public/assets/icons/extension_off.svg +1 -0
  97. package/homebridge-ui/public/assets/icons/info.svg +1 -0
  98. package/homebridge-ui/public/assets/icons/key_off.svg +1 -0
  99. package/homebridge-ui/public/assets/icons/keyboard_arrow_left.svg +1 -0
  100. package/homebridge-ui/public/assets/icons/keyboard_arrow_right.svg +1 -0
  101. package/homebridge-ui/public/assets/icons/keyboard_double_arrow_left.svg +1 -0
  102. package/homebridge-ui/public/assets/icons/keyboard_double_arrow_right.svg +1 -0
  103. package/homebridge-ui/public/assets/icons/movie_off.svg +1 -0
  104. package/homebridge-ui/public/assets/icons/play_arrow.svg +1 -0
  105. package/homebridge-ui/public/assets/icons/refresh.svg +1 -0
  106. package/homebridge-ui/public/assets/icons/satellite_alt.svg +1 -0
  107. package/homebridge-ui/public/assets/icons/search_off.svg +1 -0
  108. package/homebridge-ui/public/assets/icons/sensors_off.svg +1 -0
  109. package/homebridge-ui/public/assets/icons/settings_photo_camera.svg +1 -0
  110. package/homebridge-ui/public/assets/icons/solar_power.svg +1 -0
  111. package/homebridge-ui/public/assets/icons/stop.svg +1 -0
  112. package/homebridge-ui/public/assets/icons/videocam_off.svg +1 -0
  113. package/homebridge-ui/public/i18n/en.json +160 -82
  114. package/homebridge-ui/public/i18n/fr.json +161 -83
  115. package/homebridge-ui/public/index.html +225 -96
  116. package/homebridge-ui/public/js/app.js +814 -435
  117. package/homebridge-ui/public/js/dashboard.js +148 -31
  118. package/i18n/runtime/en.json +10 -3
  119. package/package.json +10 -11
  120. package/homebridge-ui/public/js/legacy-settings.js +0 -37
  121. 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
- export const ENABLEMENT_EVENT_TRACE = 'camera-enabled-changed';
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: INVALID_OBSERVATION_CONDITION,
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 || (expected === 'number' && !Number.isFinite(value))) {
164
+ if (typeof value !== expected ||
165
+ (expected === 'number' && !Number.isFinite(value)) ||
166
+ (valid && !valid(value))) {
156
167
  context.diagnose({
157
- code: INVALID_OBSERVATION_CONDITION,
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: INVALID_OBSERVATION_CONDITION,
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.clear();
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
- if (!event.deviceSn) {
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 this.attachedAdapters.get(event.deviceSn) ?? []) {
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
- this.retained.set(serial, { jpeg, provenance, acceptedAtMs: Date.now() });
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
- try {
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
- try {
178
- await rename(path, discarded);
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":"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"}
1
+ {"version":3,"file":"last-successful-image.js","sourceRoot":"","sources":["../../src/media/last-successful-image.ts"],"names":[],"mappings":"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"}