@camstack/addon-provider-reolink 1.2.155 → 1.2.158

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/addon.mjs CHANGED
@@ -25634,6 +25634,23 @@ var videoclipsCapability = {
25634
25634
  deviceId: number(),
25635
25635
  clipId: string().min(1),
25636
25636
  /**
25637
+ * WHICH provider holds the bytes — the `addonId` a
25638
+ * {@link ClipSourceSchema} row carries. **Required**, for the reason
25639
+ * `listClips` states one method above and for a second one this method
25640
+ * learned the hard way.
25641
+ *
25642
+ * The caller is the stream broker, and the broker lives in
25643
+ * `addon-pipeline` — the same addon that registers the RECORDER's
25644
+ * videoclips provider. With no provider named, the in-process
25645
+ * resolution handed it its own sibling, which implements this method
25646
+ * solely to explain that an analytics visit has no file behind it. So
25647
+ * every onboard clip answered with that sentence, a flash of video and
25648
+ * nothing more, while the SAME call from outside the addon reached the
25649
+ * right provider and returned the bytes (measured on 3628,
25650
+ * 2026-09-21).
25651
+ */
25652
+ provider: string().min(1),
25653
+ /**
25637
25654
  * Which twin to fetch, on the mapping D549 15 already fixed:
25638
25655
  * `low | mid` → the sub file, `high` → the main twin. `auto` is not
25639
25656
  * accepted here for the same reason it is not accepted by
@@ -33380,7 +33397,7 @@ method(object({
33380
33397
  auth: "admin"
33381
33398
  }), method(object({ deviceId: number() }), RecordingConfigSchema, {
33382
33399
  kind: "query",
33383
- auth: "admin"
33400
+ auth: "protected"
33384
33401
  }), method(object({
33385
33402
  deviceId: number(),
33386
33403
  profile: string(),
@@ -38148,6 +38165,12 @@ function createRuntimeStateBridge(params) {
38148
38165
  };
38149
38166
  }
38150
38167
  Object.freeze({
38168
+ "accessories.getStatus": {
38169
+ capName: "accessories",
38170
+ capScope: "device",
38171
+ addonId: null,
38172
+ access: "view"
38173
+ },
38151
38174
  "accessories.setChildHidden": {
38152
38175
  capName: "accessories",
38153
38176
  capScope: "device",
@@ -38430,6 +38453,12 @@ Object.freeze({
38430
38453
  addonId: null,
38431
38454
  access: "view"
38432
38455
  },
38456
+ "airQualitySensor.getStatus": {
38457
+ capName: "air-quality-sensor",
38458
+ capScope: "device",
38459
+ addonId: null,
38460
+ access: "view"
38461
+ },
38433
38462
  "alarmPanel.arm": {
38434
38463
  capName: "alarm-panel",
38435
38464
  capScope: "device",
@@ -38442,6 +38471,12 @@ Object.freeze({
38442
38471
  addonId: null,
38443
38472
  access: "create"
38444
38473
  },
38474
+ "alarmPanel.getStatus": {
38475
+ capName: "alarm-panel",
38476
+ capScope: "device",
38477
+ addonId: null,
38478
+ access: "view"
38479
+ },
38445
38480
  "alarmPanel.trigger": {
38446
38481
  capName: "alarm-panel",
38447
38482
  capScope: "device",
@@ -38490,6 +38525,30 @@ Object.freeze({
38490
38525
  addonId: null,
38491
38526
  access: "create"
38492
38527
  },
38528
+ "ambientLightSensor.getStatus": {
38529
+ capName: "ambient-light-sensor",
38530
+ capScope: "device",
38531
+ addonId: null,
38532
+ access: "view"
38533
+ },
38534
+ "audioAnalysis.applyDeviceSettingsPatch": {
38535
+ capName: "audio-analysis",
38536
+ capScope: "device",
38537
+ addonId: null,
38538
+ access: "create"
38539
+ },
38540
+ "audioAnalysis.getDeviceLiveContribution": {
38541
+ capName: "audio-analysis",
38542
+ capScope: "device",
38543
+ addonId: null,
38544
+ access: "view"
38545
+ },
38546
+ "audioAnalysis.getDeviceSettingsContribution": {
38547
+ capName: "audio-analysis",
38548
+ capScope: "device",
38549
+ addonId: null,
38550
+ access: "view"
38551
+ },
38493
38552
  "audioAnalysis.resolveDeviceSettings": {
38494
38553
  capName: "audio-analysis",
38495
38554
  capScope: "device",
@@ -38652,6 +38711,12 @@ Object.freeze({
38652
38711
  addonId: null,
38653
38712
  access: "create"
38654
38713
  },
38714
+ "automationControl.getStatus": {
38715
+ capName: "automation-control",
38716
+ capScope: "device",
38717
+ addonId: null,
38718
+ access: "view"
38719
+ },
38655
38720
  "automationControl.trigger": {
38656
38721
  capName: "automation-control",
38657
38722
  capScope: "device",
@@ -38748,12 +38813,30 @@ Object.freeze({
38748
38813
  addonId: null,
38749
38814
  access: "create"
38750
38815
  },
38816
+ "battery.getStatus": {
38817
+ capName: "battery",
38818
+ capScope: "device",
38819
+ addonId: null,
38820
+ access: "view"
38821
+ },
38751
38822
  "battery.wakeForStream": {
38752
38823
  capName: "battery",
38753
38824
  capScope: "device",
38754
38825
  addonId: null,
38755
38826
  access: "create"
38756
38827
  },
38828
+ "binary.getStatus": {
38829
+ capName: "binary",
38830
+ capScope: "device",
38831
+ addonId: null,
38832
+ access: "view"
38833
+ },
38834
+ "brightness.getStatus": {
38835
+ capName: "brightness",
38836
+ capScope: "device",
38837
+ addonId: null,
38838
+ access: "view"
38839
+ },
38757
38840
  "brightness.setBrightness": {
38758
38841
  capName: "brightness",
38759
38842
  capScope: "device",
@@ -38868,6 +38951,30 @@ Object.freeze({
38868
38951
  addonId: null,
38869
38952
  access: "view"
38870
38953
  },
38954
+ "cameraCredentials.getStatus": {
38955
+ capName: "camera-credentials",
38956
+ capScope: "device",
38957
+ addonId: null,
38958
+ access: "view"
38959
+ },
38960
+ "cameraGridLayout.applyDeviceSettingsPatch": {
38961
+ capName: "camera-grid-layout",
38962
+ capScope: "device",
38963
+ addonId: null,
38964
+ access: "create"
38965
+ },
38966
+ "cameraGridLayout.getDeviceLiveContribution": {
38967
+ capName: "camera-grid-layout",
38968
+ capScope: "device",
38969
+ addonId: null,
38970
+ access: "view"
38971
+ },
38972
+ "cameraGridLayout.getDeviceSettingsContribution": {
38973
+ capName: "camera-grid-layout",
38974
+ capScope: "device",
38975
+ addonId: null,
38976
+ access: "view"
38977
+ },
38871
38978
  "cameraGridLayout.getLayout": {
38872
38979
  capName: "camera-grid-layout",
38873
38980
  capScope: "device",
@@ -38880,6 +38987,24 @@ Object.freeze({
38880
38987
  addonId: null,
38881
38988
  access: "create"
38882
38989
  },
38990
+ "cameraPipelineConfig.applyDeviceSettingsPatch": {
38991
+ capName: "camera-pipeline-config",
38992
+ capScope: "device",
38993
+ addonId: null,
38994
+ access: "create"
38995
+ },
38996
+ "cameraPipelineConfig.getDeviceLiveContribution": {
38997
+ capName: "camera-pipeline-config",
38998
+ capScope: "device",
38999
+ addonId: null,
39000
+ access: "view"
39001
+ },
39002
+ "cameraPipelineConfig.getDeviceSettingsContribution": {
39003
+ capName: "camera-pipeline-config",
39004
+ capScope: "device",
39005
+ addonId: null,
39006
+ access: "view"
39007
+ },
38883
39008
  "cameraStreams.getBrokerStreams": {
38884
39009
  capName: "camera-streams",
38885
39010
  capScope: "device",
@@ -38910,6 +39035,18 @@ Object.freeze({
38910
39035
  addonId: null,
38911
39036
  access: "view"
38912
39037
  },
39038
+ "carbonMonoxide.getStatus": {
39039
+ capName: "carbon-monoxide",
39040
+ capScope: "device",
39041
+ addonId: null,
39042
+ access: "view"
39043
+ },
39044
+ "climateControl.getStatus": {
39045
+ capName: "climate-control",
39046
+ capScope: "device",
39047
+ addonId: null,
39048
+ access: "view"
39049
+ },
38913
39050
  "climateControl.setFanMode": {
38914
39051
  capName: "climate-control",
38915
39052
  capScope: "device",
@@ -38958,6 +39095,12 @@ Object.freeze({
38958
39095
  addonId: null,
38959
39096
  access: "create"
38960
39097
  },
39098
+ "color.getStatus": {
39099
+ capName: "color",
39100
+ capScope: "device",
39101
+ addonId: null,
39102
+ access: "view"
39103
+ },
38961
39104
  "color.setColor": {
38962
39105
  capName: "color",
38963
39106
  capScope: "device",
@@ -38976,12 +39119,36 @@ Object.freeze({
38976
39119
  addonId: null,
38977
39120
  access: "create"
38978
39121
  },
39122
+ "connectivity.getStatus": {
39123
+ capName: "connectivity",
39124
+ capScope: "device",
39125
+ addonId: null,
39126
+ access: "view"
39127
+ },
39128
+ "consumables.getStatus": {
39129
+ capName: "consumables",
39130
+ capScope: "device",
39131
+ addonId: null,
39132
+ access: "view"
39133
+ },
38979
39134
  "consumables.reset": {
38980
39135
  capName: "consumables",
38981
39136
  capScope: "device",
38982
39137
  addonId: null,
38983
39138
  access: "delete"
38984
39139
  },
39140
+ "contact.getStatus": {
39141
+ capName: "contact",
39142
+ capScope: "device",
39143
+ addonId: null,
39144
+ access: "view"
39145
+ },
39146
+ "control.getStatus": {
39147
+ capName: "control",
39148
+ capScope: "device",
39149
+ addonId: null,
39150
+ access: "view"
39151
+ },
38985
39152
  "control.setValue": {
38986
39153
  capName: "control",
38987
39154
  capScope: "device",
@@ -39048,6 +39215,12 @@ Object.freeze({
39048
39215
  addonId: null,
39049
39216
  access: "create"
39050
39217
  },
39218
+ "cover.getStatus": {
39219
+ capName: "cover",
39220
+ capScope: "device",
39221
+ addonId: null,
39222
+ access: "view"
39223
+ },
39051
39224
  "cover.open": {
39052
39225
  capName: "cover",
39053
39226
  capScope: "device",
@@ -39180,6 +39353,12 @@ Object.freeze({
39180
39353
  addonId: null,
39181
39354
  access: "view"
39182
39355
  },
39356
+ "dayNight.getStatus": {
39357
+ capName: "day-night",
39358
+ capScope: "device",
39359
+ addonId: null,
39360
+ access: "view"
39361
+ },
39183
39362
  "dayNight.setSettings": {
39184
39363
  capName: "day-night",
39185
39364
  capScope: "device",
@@ -39270,6 +39449,24 @@ Object.freeze({
39270
39449
  addonId: null,
39271
39450
  access: "view"
39272
39451
  },
39452
+ "detectionPipeline.applyDeviceSettingsPatch": {
39453
+ capName: "detection-pipeline",
39454
+ capScope: "device",
39455
+ addonId: null,
39456
+ access: "create"
39457
+ },
39458
+ "detectionPipeline.getDeviceLiveContribution": {
39459
+ capName: "detection-pipeline",
39460
+ capScope: "device",
39461
+ addonId: null,
39462
+ access: "view"
39463
+ },
39464
+ "detectionPipeline.getDeviceSettingsContribution": {
39465
+ capName: "detection-pipeline",
39466
+ capScope: "device",
39467
+ addonId: null,
39468
+ access: "view"
39469
+ },
39273
39470
  "deviceAdoption.adopt": {
39274
39471
  capName: "device-adoption",
39275
39472
  capScope: "system",
@@ -39282,6 +39479,12 @@ Object.freeze({
39282
39479
  addonId: null,
39283
39480
  access: "view"
39284
39481
  },
39482
+ "deviceAdoption.getStatus": {
39483
+ capName: "device-adoption",
39484
+ capScope: "system",
39485
+ addonId: null,
39486
+ access: "view"
39487
+ },
39285
39488
  "deviceAdoption.listCandidateFilters": {
39286
39489
  capName: "device-adoption",
39287
39490
  capScope: "system",
@@ -39318,6 +39521,12 @@ Object.freeze({
39318
39521
  addonId: null,
39319
39522
  access: "create"
39320
39523
  },
39524
+ "deviceDiscovery.getStatus": {
39525
+ capName: "device-discovery",
39526
+ capScope: "device",
39527
+ addonId: null,
39528
+ access: "view"
39529
+ },
39321
39530
  "deviceDiscovery.listDiscovered": {
39322
39531
  capName: "device-discovery",
39323
39532
  capScope: "device",
@@ -39336,12 +39545,30 @@ Object.freeze({
39336
39545
  addonId: null,
39337
39546
  access: "create"
39338
39547
  },
39548
+ "deviceExport.applyDeviceSettingsPatch": {
39549
+ capName: "device-export",
39550
+ capScope: "system",
39551
+ addonId: null,
39552
+ access: "create"
39553
+ },
39339
39554
  "deviceExport.exposeDevice": {
39340
39555
  capName: "device-export",
39341
39556
  capScope: "system",
39342
39557
  addonId: null,
39343
39558
  access: "create"
39344
39559
  },
39560
+ "deviceExport.getDeviceLiveContribution": {
39561
+ capName: "device-export",
39562
+ capScope: "system",
39563
+ addonId: null,
39564
+ access: "view"
39565
+ },
39566
+ "deviceExport.getDeviceSettingsContribution": {
39567
+ capName: "device-export",
39568
+ capScope: "system",
39569
+ addonId: null,
39570
+ access: "view"
39571
+ },
39345
39572
  "deviceExport.getStatus": {
39346
39573
  capName: "device-export",
39347
39574
  capScope: "system",
@@ -39438,6 +39665,12 @@ Object.freeze({
39438
39665
  addonId: null,
39439
39666
  access: "create"
39440
39667
  },
39668
+ "deviceManager.applyDeviceSettingsPatch": {
39669
+ capName: "device-manager",
39670
+ capScope: "system",
39671
+ addonId: null,
39672
+ access: "create"
39673
+ },
39441
39674
  "deviceManager.applyInitialMeta": {
39442
39675
  capName: "device-manager",
39443
39676
  capScope: "system",
@@ -39540,6 +39773,12 @@ Object.freeze({
39540
39773
  addonId: null,
39541
39774
  access: "view"
39542
39775
  },
39776
+ "deviceManager.getDeviceLiveContribution": {
39777
+ capName: "device-manager",
39778
+ capScope: "system",
39779
+ addonId: null,
39780
+ access: "view"
39781
+ },
39543
39782
  "deviceManager.getDeviceLiveInfoAggregate": {
39544
39783
  capName: "device-manager",
39545
39784
  capScope: "system",
@@ -39552,6 +39791,12 @@ Object.freeze({
39552
39791
  addonId: null,
39553
39792
  access: "view"
39554
39793
  },
39794
+ "deviceManager.getDeviceSettingsContribution": {
39795
+ capName: "device-manager",
39796
+ capScope: "system",
39797
+ addonId: null,
39798
+ access: "view"
39799
+ },
39555
39800
  "deviceManager.getDeviceStatusAggregate": {
39556
39801
  capName: "device-manager",
39557
39802
  capScope: "system",
@@ -40044,6 +40289,36 @@ Object.freeze({
40044
40289
  addonId: null,
40045
40290
  access: "create"
40046
40291
  },
40292
+ "deviceStatus.getStatus": {
40293
+ capName: "device-status",
40294
+ capScope: "device",
40295
+ addonId: null,
40296
+ access: "view"
40297
+ },
40298
+ "doorbell.applyDeviceSettingsPatch": {
40299
+ capName: "doorbell",
40300
+ capScope: "device",
40301
+ addonId: null,
40302
+ access: "create"
40303
+ },
40304
+ "doorbell.getDeviceLiveContribution": {
40305
+ capName: "doorbell",
40306
+ capScope: "device",
40307
+ addonId: null,
40308
+ access: "view"
40309
+ },
40310
+ "doorbell.getDeviceSettingsContribution": {
40311
+ capName: "doorbell",
40312
+ capScope: "device",
40313
+ addonId: null,
40314
+ access: "view"
40315
+ },
40316
+ "doorbell.getStatus": {
40317
+ capName: "doorbell",
40318
+ capScope: "device",
40319
+ addonId: null,
40320
+ access: "view"
40321
+ },
40047
40322
  "embeddingEncoder.encode": {
40048
40323
  capName: "embedding-encoder",
40049
40324
  capScope: "system",
@@ -40062,6 +40337,18 @@ Object.freeze({
40062
40337
  addonId: null,
40063
40338
  access: "view"
40064
40339
  },
40340
+ "enumSensor.getStatus": {
40341
+ capName: "enum-sensor",
40342
+ capScope: "device",
40343
+ addonId: null,
40344
+ access: "view"
40345
+ },
40346
+ "eventEmitter.getStatus": {
40347
+ capName: "event-emitter",
40348
+ capScope: "device",
40349
+ addonId: null,
40350
+ access: "view"
40351
+ },
40065
40352
  "events.getEventClipUrl": {
40066
40353
  capName: "events",
40067
40354
  capScope: "device",
@@ -40182,6 +40469,12 @@ Object.freeze({
40182
40469
  addonId: null,
40183
40470
  access: "view"
40184
40471
  },
40472
+ "fanControl.getStatus": {
40473
+ capName: "fan-control",
40474
+ capScope: "device",
40475
+ addonId: null,
40476
+ access: "view"
40477
+ },
40185
40478
  "fanControl.setDirection": {
40186
40479
  capName: "fan-control",
40187
40480
  capScope: "device",
@@ -40206,6 +40499,12 @@ Object.freeze({
40206
40499
  addonId: null,
40207
40500
  access: "create"
40208
40501
  },
40502
+ "featureProbe.getStatus": {
40503
+ capName: "feature-probe",
40504
+ capScope: "device",
40505
+ addonId: null,
40506
+ access: "view"
40507
+ },
40209
40508
  "filesystemBrowse.browse": {
40210
40509
  capName: "filesystem-browse",
40211
40510
  capScope: "system",
@@ -40224,6 +40523,24 @@ Object.freeze({
40224
40523
  addonId: null,
40225
40524
  access: "view"
40226
40525
  },
40526
+ "flood.getStatus": {
40527
+ capName: "flood",
40528
+ capScope: "device",
40529
+ addonId: null,
40530
+ access: "view"
40531
+ },
40532
+ "gas.getStatus": {
40533
+ capName: "gas",
40534
+ capScope: "device",
40535
+ addonId: null,
40536
+ access: "view"
40537
+ },
40538
+ "humidifier.getStatus": {
40539
+ capName: "humidifier",
40540
+ capScope: "device",
40541
+ addonId: null,
40542
+ access: "view"
40543
+ },
40227
40544
  "humidifier.setMode": {
40228
40545
  capName: "humidifier",
40229
40546
  capScope: "device",
@@ -40242,12 +40559,30 @@ Object.freeze({
40242
40559
  addonId: null,
40243
40560
  access: "create"
40244
40561
  },
40562
+ "humiditySensor.getStatus": {
40563
+ capName: "humidity-sensor",
40564
+ capScope: "device",
40565
+ addonId: null,
40566
+ access: "view"
40567
+ },
40568
+ "image.getStatus": {
40569
+ capName: "image",
40570
+ capScope: "device",
40571
+ addonId: null,
40572
+ access: "view"
40573
+ },
40245
40574
  "imageSettings.getOptions": {
40246
40575
  capName: "image-settings",
40247
40576
  capScope: "device",
40248
40577
  addonId: null,
40249
40578
  access: "view"
40250
40579
  },
40580
+ "imageSettings.getStatus": {
40581
+ capName: "image-settings",
40582
+ capScope: "device",
40583
+ addonId: null,
40584
+ access: "view"
40585
+ },
40251
40586
  "imageSettings.setSettings": {
40252
40587
  capName: "image-settings",
40253
40588
  capScope: "device",
@@ -40320,6 +40655,12 @@ Object.freeze({
40320
40655
  addonId: null,
40321
40656
  access: "create"
40322
40657
  },
40658
+ "intercom.getStatus": {
40659
+ capName: "intercom",
40660
+ capScope: "device",
40661
+ addonId: null,
40662
+ access: "view"
40663
+ },
40323
40664
  "intercom.handleAnswer": {
40324
40665
  capName: "intercom",
40325
40666
  capScope: "device",
@@ -40356,6 +40697,12 @@ Object.freeze({
40356
40697
  addonId: null,
40357
40698
  access: "create"
40358
40699
  },
40700
+ "lawnMowerControl.getStatus": {
40701
+ capName: "lawn-mower-control",
40702
+ capScope: "device",
40703
+ addonId: null,
40704
+ access: "view"
40705
+ },
40359
40706
  "lawnMowerControl.pause": {
40360
40707
  capName: "lawn-mower-control",
40361
40708
  capScope: "device",
@@ -40638,6 +40985,12 @@ Object.freeze({
40638
40985
  addonId: null,
40639
40986
  access: "create"
40640
40987
  },
40988
+ "lockControl.getStatus": {
40989
+ capName: "lock-control",
40990
+ capScope: "device",
40991
+ addonId: null,
40992
+ access: "view"
40993
+ },
40641
40994
  "lockControl.lock": {
40642
40995
  capName: "lock-control",
40643
40996
  capScope: "device",
@@ -40686,6 +41039,12 @@ Object.freeze({
40686
41039
  addonId: null,
40687
41040
  access: "view"
40688
41041
  },
41042
+ "mediaPlayer.getStatus": {
41043
+ capName: "media-player",
41044
+ capScope: "device",
41045
+ addonId: null,
41046
+ access: "view"
41047
+ },
40689
41048
  "mediaPlayer.next": {
40690
41049
  capName: "media-player",
40691
41050
  capScope: "device",
@@ -40878,6 +41237,12 @@ Object.freeze({
40878
41237
  addonId: null,
40879
41238
  access: "create"
40880
41239
  },
41240
+ "motion.getStatus": {
41241
+ capName: "motion",
41242
+ capScope: "device",
41243
+ addonId: null,
41244
+ access: "view"
41245
+ },
40881
41246
  "motion.isDetected": {
40882
41247
  capName: "motion",
40883
41248
  capScope: "device",
@@ -40890,6 +41255,24 @@ Object.freeze({
40890
41255
  addonId: null,
40891
41256
  access: "create"
40892
41257
  },
41258
+ "motionDetection.applyDeviceSettingsPatch": {
41259
+ capName: "motion-detection",
41260
+ capScope: "device",
41261
+ addonId: null,
41262
+ access: "create"
41263
+ },
41264
+ "motionDetection.getDeviceLiveContribution": {
41265
+ capName: "motion-detection",
41266
+ capScope: "device",
41267
+ addonId: null,
41268
+ access: "view"
41269
+ },
41270
+ "motionDetection.getDeviceSettingsContribution": {
41271
+ capName: "motion-detection",
41272
+ capScope: "device",
41273
+ addonId: null,
41274
+ access: "view"
41275
+ },
40893
41276
  "motionDetection.removeCamera": {
40894
41277
  capName: "motion-detection",
40895
41278
  capScope: "device",
@@ -40902,6 +41285,12 @@ Object.freeze({
40902
41285
  addonId: null,
40903
41286
  access: "delete"
40904
41287
  },
41288
+ "motionTrigger.getStatus": {
41289
+ capName: "motion-trigger",
41290
+ capScope: "device",
41291
+ addonId: null,
41292
+ access: "view"
41293
+ },
40905
41294
  "motionTrigger.setMotionTrigger": {
40906
41295
  capName: "motion-trigger",
40907
41296
  capScope: "device",
@@ -40914,6 +41303,12 @@ Object.freeze({
40914
41303
  addonId: null,
40915
41304
  access: "view"
40916
41305
  },
41306
+ "motionZones.getStatus": {
41307
+ capName: "motion-zones",
41308
+ capScope: "device",
41309
+ addonId: null,
41310
+ access: "view"
41311
+ },
40917
41312
  "motionZones.setZone": {
40918
41313
  capName: "motion-zones",
40919
41314
  capScope: "device",
@@ -40974,6 +41369,12 @@ Object.freeze({
40974
41369
  addonId: null,
40975
41370
  access: "view"
40976
41371
  },
41372
+ "nativeObjectDetection.getStatus": {
41373
+ capName: "native-object-detection",
41374
+ capScope: "device",
41375
+ addonId: null,
41376
+ access: "view"
41377
+ },
40977
41378
  "nativeObjectDetection.setEnabled": {
40978
41379
  capName: "native-object-detection",
40979
41380
  capScope: "device",
@@ -40992,6 +41393,12 @@ Object.freeze({
40992
41393
  addonId: null,
40993
41394
  access: "view"
40994
41395
  },
41396
+ "navigation.getStatus": {
41397
+ capName: "navigation",
41398
+ capScope: "device",
41399
+ addonId: null,
41400
+ access: "view"
41401
+ },
40995
41402
  "navigation.goToPoint": {
40996
41403
  capName: "navigation",
40997
41404
  capScope: "device",
@@ -41076,6 +41483,12 @@ Object.freeze({
41076
41483
  addonId: null,
41077
41484
  access: "create"
41078
41485
  },
41486
+ "networkLink.getStatus": {
41487
+ capName: "network-link",
41488
+ capScope: "device",
41489
+ addonId: null,
41490
+ access: "view"
41491
+ },
41079
41492
  "networkQuality.getAllStats": {
41080
41493
  capName: "network-quality",
41081
41494
  capScope: "system",
@@ -41334,18 +41747,36 @@ Object.freeze({
41334
41747
  addonId: null,
41335
41748
  access: "create"
41336
41749
  },
41750
+ "notifier.getStatus": {
41751
+ capName: "notifier",
41752
+ capScope: "device",
41753
+ addonId: null,
41754
+ access: "view"
41755
+ },
41337
41756
  "notifier.send": {
41338
41757
  capName: "notifier",
41339
41758
  capScope: "device",
41340
41759
  addonId: null,
41341
41760
  access: "create"
41342
41761
  },
41762
+ "numericSensor.getStatus": {
41763
+ capName: "numeric-sensor",
41764
+ capScope: "device",
41765
+ addonId: null,
41766
+ access: "view"
41767
+ },
41343
41768
  "oauthIntegration.getDescriptor": {
41344
41769
  capName: "oauth-integration",
41345
41770
  capScope: "system",
41346
41771
  addonId: null,
41347
41772
  access: "view"
41348
41773
  },
41774
+ "osd.getStatus": {
41775
+ capName: "osd",
41776
+ capScope: "device",
41777
+ addonId: null,
41778
+ access: "view"
41779
+ },
41349
41780
  "osd.setOverlay": {
41350
41781
  capName: "osd",
41351
41782
  capScope: "device",
@@ -41418,6 +41849,12 @@ Object.freeze({
41418
41849
  addonId: null,
41419
41850
  access: "create"
41420
41851
  },
41852
+ "petFeeder.getStatus": {
41853
+ capName: "pet-feeder",
41854
+ capScope: "device",
41855
+ addonId: null,
41856
+ access: "view"
41857
+ },
41421
41858
  "petFeeder.markFoodReplenished": {
41422
41859
  capName: "pet-feeder",
41423
41860
  capScope: "device",
@@ -41460,6 +41897,12 @@ Object.freeze({
41460
41897
  addonId: null,
41461
41898
  access: "create"
41462
41899
  },
41900
+ "pipelineAnalytics.applyDeviceSettingsPatch": {
41901
+ capName: "pipeline-analytics",
41902
+ capScope: "device",
41903
+ addonId: null,
41904
+ access: "create"
41905
+ },
41463
41906
  "pipelineAnalytics.cancelRelocateMedia": {
41464
41907
  capName: "pipeline-analytics",
41465
41908
  capScope: "device",
@@ -41526,6 +41969,18 @@ Object.freeze({
41526
41969
  addonId: null,
41527
41970
  access: "view"
41528
41971
  },
41972
+ "pipelineAnalytics.getDeviceLiveContribution": {
41973
+ capName: "pipeline-analytics",
41974
+ capScope: "device",
41975
+ addonId: null,
41976
+ access: "view"
41977
+ },
41978
+ "pipelineAnalytics.getDeviceSettingsContribution": {
41979
+ capName: "pipeline-analytics",
41980
+ capScope: "device",
41981
+ addonId: null,
41982
+ access: "view"
41983
+ },
41529
41984
  "pipelineAnalytics.getEventDensity": {
41530
41985
  capName: "pipeline-analytics",
41531
41986
  capScope: "device",
@@ -42096,6 +42551,12 @@ Object.freeze({
42096
42551
  addonId: null,
42097
42552
  access: "view"
42098
42553
  },
42554
+ "pipelineOrchestrator.applyDeviceSettingsPatch": {
42555
+ capName: "pipeline-orchestrator",
42556
+ capScope: "system",
42557
+ addonId: null,
42558
+ access: "create"
42559
+ },
42099
42560
  "pipelineOrchestrator.assignAudio": {
42100
42561
  capName: "pipeline-orchestrator",
42101
42562
  capScope: "system",
@@ -42186,6 +42647,18 @@ Object.freeze({
42186
42647
  addonId: null,
42187
42648
  access: "view"
42188
42649
  },
42650
+ "pipelineOrchestrator.getDeviceLiveContribution": {
42651
+ capName: "pipeline-orchestrator",
42652
+ capScope: "system",
42653
+ addonId: null,
42654
+ access: "view"
42655
+ },
42656
+ "pipelineOrchestrator.getDeviceSettingsContribution": {
42657
+ capName: "pipeline-orchestrator",
42658
+ capScope: "system",
42659
+ addonId: null,
42660
+ access: "view"
42661
+ },
42189
42662
  "pipelineOrchestrator.getGlobalMetrics": {
42190
42663
  capName: "pipeline-orchestrator",
42191
42664
  capScope: "system",
@@ -42594,12 +43067,36 @@ Object.freeze({
42594
43067
  addonId: null,
42595
43068
  access: "view"
42596
43069
  },
43070
+ "powerMeter.getStatus": {
43071
+ capName: "power-meter",
43072
+ capScope: "device",
43073
+ addonId: null,
43074
+ access: "view"
43075
+ },
43076
+ "presence.getStatus": {
43077
+ capName: "presence",
43078
+ capScope: "device",
43079
+ addonId: null,
43080
+ access: "view"
43081
+ },
43082
+ "pressureSensor.getStatus": {
43083
+ capName: "pressure-sensor",
43084
+ capScope: "device",
43085
+ addonId: null,
43086
+ access: "view"
43087
+ },
42597
43088
  "privacyMask.getOptions": {
42598
43089
  capName: "privacy-mask",
42599
43090
  capScope: "device",
42600
43091
  addonId: null,
42601
43092
  access: "view"
42602
43093
  },
43094
+ "privacyMask.getStatus": {
43095
+ capName: "privacy-mask",
43096
+ capScope: "device",
43097
+ addonId: null,
43098
+ access: "view"
43099
+ },
42603
43100
  "privacyMask.setAudioEnabled": {
42604
43101
  capName: "privacy-mask",
42605
43102
  capScope: "device",
@@ -42660,6 +43157,12 @@ Object.freeze({
42660
43157
  addonId: null,
42661
43158
  access: "view"
42662
43159
  },
43160
+ "ptz.getStatus": {
43161
+ capName: "ptz",
43162
+ capScope: "device",
43163
+ addonId: null,
43164
+ access: "view"
43165
+ },
42663
43166
  "ptz.goHome": {
42664
43167
  capName: "ptz",
42665
43168
  capScope: "device",
@@ -42738,6 +43241,12 @@ Object.freeze({
42738
43241
  addonId: null,
42739
43242
  access: "create"
42740
43243
  },
43244
+ "recording.applyDeviceSettingsPatch": {
43245
+ capName: "recording",
43246
+ capScope: "system",
43247
+ addonId: null,
43248
+ access: "create"
43249
+ },
42741
43250
  "recording.cancelRelocateJob": {
42742
43251
  capName: "recording",
42743
43252
  capScope: "system",
@@ -42786,6 +43295,18 @@ Object.freeze({
42786
43295
  addonId: null,
42787
43296
  access: "view"
42788
43297
  },
43298
+ "recording.getDeviceLiveContribution": {
43299
+ capName: "recording",
43300
+ capScope: "system",
43301
+ addonId: null,
43302
+ access: "view"
43303
+ },
43304
+ "recording.getDeviceSettingsContribution": {
43305
+ capName: "recording",
43306
+ capScope: "system",
43307
+ addonId: null,
43308
+ access: "view"
43309
+ },
42789
43310
  "recording.getPlacement": {
42790
43311
  capName: "recording",
42791
43312
  capScope: "system",
@@ -42804,6 +43325,12 @@ Object.freeze({
42804
43325
  addonId: null,
42805
43326
  access: "view"
42806
43327
  },
43328
+ "recording.getStatus": {
43329
+ capName: "recording",
43330
+ capScope: "system",
43331
+ addonId: null,
43332
+ access: "view"
43333
+ },
42807
43334
  "recording.getStorageMigrationMoveStatus": {
42808
43335
  capName: "recording",
42809
43336
  capScope: "system",
@@ -43008,6 +43535,12 @@ Object.freeze({
43008
43535
  addonId: null,
43009
43536
  access: "delete"
43010
43537
  },
43538
+ "sceneMonitor.getStatus": {
43539
+ capName: "scene-monitor",
43540
+ capScope: "device",
43541
+ addonId: null,
43542
+ access: "view"
43543
+ },
43011
43544
  "sceneMonitor.listScenes": {
43012
43545
  capName: "scene-monitor",
43013
43546
  capScope: "device",
@@ -43038,6 +43571,12 @@ Object.freeze({
43038
43571
  addonId: null,
43039
43572
  access: "create"
43040
43573
  },
43574
+ "scriptRunner.getStatus": {
43575
+ capName: "script-runner",
43576
+ capScope: "device",
43577
+ addonId: null,
43578
+ access: "view"
43579
+ },
43041
43580
  "scriptRunner.run": {
43042
43581
  capName: "script-runner",
43043
43582
  capScope: "device",
@@ -43170,6 +43709,12 @@ Object.freeze({
43170
43709
  addonId: null,
43171
43710
  access: "create"
43172
43711
  },
43712
+ "smoke.getStatus": {
43713
+ capName: "smoke",
43714
+ capScope: "device",
43715
+ addonId: null,
43716
+ access: "view"
43717
+ },
43173
43718
  "smtpProvider.getStatus": {
43174
43719
  capName: "smtp-provider",
43175
43720
  capScope: "system",
@@ -43188,12 +43733,30 @@ Object.freeze({
43188
43733
  addonId: null,
43189
43734
  access: "view"
43190
43735
  },
43736
+ "snapshot.applyDeviceSettingsPatch": {
43737
+ capName: "snapshot",
43738
+ capScope: "device",
43739
+ addonId: null,
43740
+ access: "create"
43741
+ },
43191
43742
  "snapshot.getDebugState": {
43192
43743
  capName: "snapshot",
43193
43744
  capScope: "device",
43194
43745
  addonId: null,
43195
43746
  access: "view"
43196
43747
  },
43748
+ "snapshot.getDeviceLiveContribution": {
43749
+ capName: "snapshot",
43750
+ capScope: "device",
43751
+ addonId: null,
43752
+ access: "view"
43753
+ },
43754
+ "snapshot.getDeviceSettingsContribution": {
43755
+ capName: "snapshot",
43756
+ capScope: "device",
43757
+ addonId: null,
43758
+ access: "view"
43759
+ },
43197
43760
  "snapshot.getSnapshot": {
43198
43761
  capName: "snapshot",
43199
43762
  capScope: "device",
@@ -43212,6 +43775,12 @@ Object.freeze({
43212
43775
  addonId: null,
43213
43776
  access: "view"
43214
43777
  },
43778
+ "snapshot.getStatus": {
43779
+ capName: "snapshot",
43780
+ capScope: "device",
43781
+ addonId: null,
43782
+ access: "view"
43783
+ },
43215
43784
  "snapshot.invalidateCache": {
43216
43785
  capName: "snapshot",
43217
43786
  capScope: "device",
@@ -43548,6 +44117,12 @@ Object.freeze({
43548
44117
  addonId: null,
43549
44118
  access: "create"
43550
44119
  },
44120
+ "streamBroker.applyDeviceSettingsPatch": {
44121
+ capName: "stream-broker",
44122
+ capScope: "system",
44123
+ addonId: null,
44124
+ access: "create"
44125
+ },
43551
44126
  "streamBroker.assignProfile": {
43552
44127
  capName: "stream-broker",
43553
44128
  capScope: "system",
@@ -43584,6 +44159,18 @@ Object.freeze({
43584
44159
  addonId: null,
43585
44160
  access: "view"
43586
44161
  },
44162
+ "streamBroker.getDeviceLiveContribution": {
44163
+ capName: "stream-broker",
44164
+ capScope: "system",
44165
+ addonId: null,
44166
+ access: "view"
44167
+ },
44168
+ "streamBroker.getDeviceSettingsContribution": {
44169
+ capName: "stream-broker",
44170
+ capScope: "system",
44171
+ addonId: null,
44172
+ access: "view"
44173
+ },
43587
44174
  "streamBroker.getPreBufferInfo": {
43588
44175
  capName: "stream-broker",
43589
44176
  capScope: "system",
@@ -43782,6 +44369,12 @@ Object.freeze({
43782
44369
  addonId: null,
43783
44370
  access: "view"
43784
44371
  },
44372
+ "streamParams.getStatus": {
44373
+ capName: "stream-params",
44374
+ capScope: "device",
44375
+ addonId: null,
44376
+ access: "view"
44377
+ },
43785
44378
  "streamParams.setProfile": {
43786
44379
  capName: "stream-params",
43787
44380
  capScope: "device",
@@ -43794,6 +44387,12 @@ Object.freeze({
43794
44387
  addonId: null,
43795
44388
  access: "view"
43796
44389
  },
44390
+ "switch.getStatus": {
44391
+ capName: "switch",
44392
+ capScope: "device",
44393
+ addonId: null,
44394
+ access: "view"
44395
+ },
43797
44396
  "switch.setState": {
43798
44397
  capName: "switch",
43799
44398
  capScope: "device",
@@ -43890,6 +44489,18 @@ Object.freeze({
43890
44489
  addonId: null,
43891
44490
  access: "create"
43892
44491
  },
44492
+ "tamper.getStatus": {
44493
+ capName: "tamper",
44494
+ capScope: "device",
44495
+ addonId: null,
44496
+ access: "view"
44497
+ },
44498
+ "temperatureSensor.getStatus": {
44499
+ capName: "temperature-sensor",
44500
+ capScope: "device",
44501
+ addonId: null,
44502
+ access: "view"
44503
+ },
43893
44504
  "terminalSession.adoptLegacyMonitor": {
43894
44505
  capName: "terminal-session",
43895
44506
  capScope: "system",
@@ -43986,6 +44597,12 @@ Object.freeze({
43986
44597
  addonId: null,
43987
44598
  access: "view"
43988
44599
  },
44600
+ "update.getStatus": {
44601
+ capName: "update",
44602
+ capScope: "device",
44603
+ addonId: null,
44604
+ access: "view"
44605
+ },
43989
44606
  "update.installUpdate": {
43990
44607
  capName: "update",
43991
44608
  capScope: "device",
@@ -44208,6 +44825,12 @@ Object.freeze({
44208
44825
  addonId: null,
44209
44826
  access: "create"
44210
44827
  },
44828
+ "vacuumControl.getStatus": {
44829
+ capName: "vacuum-control",
44830
+ capScope: "device",
44831
+ addonId: null,
44832
+ access: "view"
44833
+ },
44211
44834
  "vacuumControl.locate": {
44212
44835
  capName: "vacuum-control",
44213
44836
  capScope: "device",
@@ -44250,6 +44873,12 @@ Object.freeze({
44250
44873
  addonId: null,
44251
44874
  access: "create"
44252
44875
  },
44876
+ "valve.getStatus": {
44877
+ capName: "valve",
44878
+ capScope: "device",
44879
+ addonId: null,
44880
+ access: "view"
44881
+ },
44253
44882
  "valve.open": {
44254
44883
  capName: "valve",
44255
44884
  capScope: "device",
@@ -44322,6 +44951,12 @@ Object.freeze({
44322
44951
  addonId: null,
44323
44952
  access: "create"
44324
44953
  },
44954
+ "vibration.getStatus": {
44955
+ capName: "vibration",
44956
+ capScope: "device",
44957
+ addonId: null,
44958
+ access: "view"
44959
+ },
44325
44960
  "videoclips.getClipPlayback": {
44326
44961
  capName: "videoclips",
44327
44962
  capScope: "device",
@@ -44358,6 +44993,12 @@ Object.freeze({
44358
44993
  addonId: null,
44359
44994
  access: "view"
44360
44995
  },
44996
+ "waterHeater.getStatus": {
44997
+ capName: "water-heater",
44998
+ capScope: "device",
44999
+ addonId: null,
45000
+ access: "view"
45001
+ },
44361
45002
  "waterHeater.setAway": {
44362
45003
  capName: "water-heater",
44363
45004
  capScope: "device",
@@ -44376,6 +45017,12 @@ Object.freeze({
44376
45017
  addonId: null,
44377
45018
  access: "create"
44378
45019
  },
45020
+ "weather.getStatus": {
45021
+ capName: "weather",
45022
+ capScope: "device",
45023
+ addonId: null,
45024
+ access: "view"
45025
+ },
44379
45026
  "webrtcSession.addIceCandidate": {
44380
45027
  capName: "webrtc-session",
44381
45028
  capScope: "device",
@@ -148896,7 +149543,8 @@ var CLASS_BY_NATIVE = {
148896
149543
  var KIND_BY_NATIVE = {
148897
149544
  md: "motion",
148898
149545
  pir: "motion",
148899
- cry: "audio"
149546
+ cry: "audio",
149547
+ other: "motion"
148900
149548
  };
148901
149549
  /** What the subject DID — carried beside a class, never as one. */
148902
149550
  var BEHAVIOUR_BY_NATIVE = {
@@ -148909,8 +149557,9 @@ var BEHAVIOUR_BY_NATIVE = {
148909
149557
  /**
148910
149558
  * Recording REASONS — why the file exists, not what is in it. They get no
148911
149559
  * label and no behaviour; the row still lists, showing the reason raw.
148912
- * `other` / `none` are the camera declining to classify, which is not the same
148913
- * as the camera saying "nothing".
149560
+ * `none` is the camera declining to classify, which is not the same as the
149561
+ * camera saying "nothing". `other` used to live here and is now a motion KIND
149562
+ * — see {@link KIND_BY_NATIVE}.
148914
149563
  */
148915
149564
  var RECORDING_REASONS = new Set([
148916
149565
  "sched",
@@ -148922,7 +149571,6 @@ var RECORDING_REASONS = new Set([
148922
149571
  "answer",
148923
149572
  "tamper",
148924
149573
  "lmsg",
148925
- "other",
148926
149574
  "none"
148927
149575
  ]);
148928
149576
  /**
@@ -149498,6 +150146,18 @@ function createReolinkVideoclipsProvider(deps) {
149498
150146
  timeZone: device.timeZone,
149499
150147
  day
149500
150148
  });
150149
+ const newest = result.rows[result.rows.length - 1] ?? result.rows[0];
150150
+ deps.logger.info("videoclips: the camera answered a day search", {
150151
+ tags,
150152
+ meta: {
150153
+ day,
150154
+ rows: result.rows.length,
150155
+ newestFile: newest?.subFileName ?? null,
150156
+ newestStartMs: newest?.startMs ?? null,
150157
+ oldestStartMs: result.rows[0]?.startMs ?? null,
150158
+ askedAtMs: Date.now()
150159
+ }
150160
+ });
149501
150161
  if (result.mainSearchFailed !== void 0) deps.logger.warn("videoclips: the main-stream search refused — no high twin today", {
149502
150162
  tags,
149503
150163
  meta: {
@@ -150508,6 +151168,16 @@ function createClipService(deps) {
150508
151168
  };
150509
151169
  }
150510
151170
  let downloaded;
151171
+ deps.logger.info("videoclips: fetching a clip file from the camera", {
151172
+ tags,
151173
+ meta: {
151174
+ clipKey,
151175
+ twin,
151176
+ fileName,
151177
+ startMs: row.startMs,
151178
+ endMs: row.endMs
151179
+ }
151180
+ });
150511
151181
  try {
150512
151182
  downloaded = await fetchVerifiedClipBytes(device, row, clipKey, fileName);
150513
151183
  } catch (err) {