@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.js CHANGED
@@ -25639,6 +25639,23 @@ var videoclipsCapability = {
25639
25639
  deviceId: number(),
25640
25640
  clipId: string().min(1),
25641
25641
  /**
25642
+ * WHICH provider holds the bytes — the `addonId` a
25643
+ * {@link ClipSourceSchema} row carries. **Required**, for the reason
25644
+ * `listClips` states one method above and for a second one this method
25645
+ * learned the hard way.
25646
+ *
25647
+ * The caller is the stream broker, and the broker lives in
25648
+ * `addon-pipeline` — the same addon that registers the RECORDER's
25649
+ * videoclips provider. With no provider named, the in-process
25650
+ * resolution handed it its own sibling, which implements this method
25651
+ * solely to explain that an analytics visit has no file behind it. So
25652
+ * every onboard clip answered with that sentence, a flash of video and
25653
+ * nothing more, while the SAME call from outside the addon reached the
25654
+ * right provider and returned the bytes (measured on 3628,
25655
+ * 2026-09-21).
25656
+ */
25657
+ provider: string().min(1),
25658
+ /**
25642
25659
  * Which twin to fetch, on the mapping D549 15 already fixed:
25643
25660
  * `low | mid` → the sub file, `high` → the main twin. `auto` is not
25644
25661
  * accepted here for the same reason it is not accepted by
@@ -33385,7 +33402,7 @@ method(object({
33385
33402
  auth: "admin"
33386
33403
  }), method(object({ deviceId: number() }), RecordingConfigSchema, {
33387
33404
  kind: "query",
33388
- auth: "admin"
33405
+ auth: "protected"
33389
33406
  }), method(object({
33390
33407
  deviceId: number(),
33391
33408
  profile: string(),
@@ -38153,6 +38170,12 @@ function createRuntimeStateBridge(params) {
38153
38170
  };
38154
38171
  }
38155
38172
  Object.freeze({
38173
+ "accessories.getStatus": {
38174
+ capName: "accessories",
38175
+ capScope: "device",
38176
+ addonId: null,
38177
+ access: "view"
38178
+ },
38156
38179
  "accessories.setChildHidden": {
38157
38180
  capName: "accessories",
38158
38181
  capScope: "device",
@@ -38435,6 +38458,12 @@ Object.freeze({
38435
38458
  addonId: null,
38436
38459
  access: "view"
38437
38460
  },
38461
+ "airQualitySensor.getStatus": {
38462
+ capName: "air-quality-sensor",
38463
+ capScope: "device",
38464
+ addonId: null,
38465
+ access: "view"
38466
+ },
38438
38467
  "alarmPanel.arm": {
38439
38468
  capName: "alarm-panel",
38440
38469
  capScope: "device",
@@ -38447,6 +38476,12 @@ Object.freeze({
38447
38476
  addonId: null,
38448
38477
  access: "create"
38449
38478
  },
38479
+ "alarmPanel.getStatus": {
38480
+ capName: "alarm-panel",
38481
+ capScope: "device",
38482
+ addonId: null,
38483
+ access: "view"
38484
+ },
38450
38485
  "alarmPanel.trigger": {
38451
38486
  capName: "alarm-panel",
38452
38487
  capScope: "device",
@@ -38495,6 +38530,30 @@ Object.freeze({
38495
38530
  addonId: null,
38496
38531
  access: "create"
38497
38532
  },
38533
+ "ambientLightSensor.getStatus": {
38534
+ capName: "ambient-light-sensor",
38535
+ capScope: "device",
38536
+ addonId: null,
38537
+ access: "view"
38538
+ },
38539
+ "audioAnalysis.applyDeviceSettingsPatch": {
38540
+ capName: "audio-analysis",
38541
+ capScope: "device",
38542
+ addonId: null,
38543
+ access: "create"
38544
+ },
38545
+ "audioAnalysis.getDeviceLiveContribution": {
38546
+ capName: "audio-analysis",
38547
+ capScope: "device",
38548
+ addonId: null,
38549
+ access: "view"
38550
+ },
38551
+ "audioAnalysis.getDeviceSettingsContribution": {
38552
+ capName: "audio-analysis",
38553
+ capScope: "device",
38554
+ addonId: null,
38555
+ access: "view"
38556
+ },
38498
38557
  "audioAnalysis.resolveDeviceSettings": {
38499
38558
  capName: "audio-analysis",
38500
38559
  capScope: "device",
@@ -38657,6 +38716,12 @@ Object.freeze({
38657
38716
  addonId: null,
38658
38717
  access: "create"
38659
38718
  },
38719
+ "automationControl.getStatus": {
38720
+ capName: "automation-control",
38721
+ capScope: "device",
38722
+ addonId: null,
38723
+ access: "view"
38724
+ },
38660
38725
  "automationControl.trigger": {
38661
38726
  capName: "automation-control",
38662
38727
  capScope: "device",
@@ -38753,12 +38818,30 @@ Object.freeze({
38753
38818
  addonId: null,
38754
38819
  access: "create"
38755
38820
  },
38821
+ "battery.getStatus": {
38822
+ capName: "battery",
38823
+ capScope: "device",
38824
+ addonId: null,
38825
+ access: "view"
38826
+ },
38756
38827
  "battery.wakeForStream": {
38757
38828
  capName: "battery",
38758
38829
  capScope: "device",
38759
38830
  addonId: null,
38760
38831
  access: "create"
38761
38832
  },
38833
+ "binary.getStatus": {
38834
+ capName: "binary",
38835
+ capScope: "device",
38836
+ addonId: null,
38837
+ access: "view"
38838
+ },
38839
+ "brightness.getStatus": {
38840
+ capName: "brightness",
38841
+ capScope: "device",
38842
+ addonId: null,
38843
+ access: "view"
38844
+ },
38762
38845
  "brightness.setBrightness": {
38763
38846
  capName: "brightness",
38764
38847
  capScope: "device",
@@ -38873,6 +38956,30 @@ Object.freeze({
38873
38956
  addonId: null,
38874
38957
  access: "view"
38875
38958
  },
38959
+ "cameraCredentials.getStatus": {
38960
+ capName: "camera-credentials",
38961
+ capScope: "device",
38962
+ addonId: null,
38963
+ access: "view"
38964
+ },
38965
+ "cameraGridLayout.applyDeviceSettingsPatch": {
38966
+ capName: "camera-grid-layout",
38967
+ capScope: "device",
38968
+ addonId: null,
38969
+ access: "create"
38970
+ },
38971
+ "cameraGridLayout.getDeviceLiveContribution": {
38972
+ capName: "camera-grid-layout",
38973
+ capScope: "device",
38974
+ addonId: null,
38975
+ access: "view"
38976
+ },
38977
+ "cameraGridLayout.getDeviceSettingsContribution": {
38978
+ capName: "camera-grid-layout",
38979
+ capScope: "device",
38980
+ addonId: null,
38981
+ access: "view"
38982
+ },
38876
38983
  "cameraGridLayout.getLayout": {
38877
38984
  capName: "camera-grid-layout",
38878
38985
  capScope: "device",
@@ -38885,6 +38992,24 @@ Object.freeze({
38885
38992
  addonId: null,
38886
38993
  access: "create"
38887
38994
  },
38995
+ "cameraPipelineConfig.applyDeviceSettingsPatch": {
38996
+ capName: "camera-pipeline-config",
38997
+ capScope: "device",
38998
+ addonId: null,
38999
+ access: "create"
39000
+ },
39001
+ "cameraPipelineConfig.getDeviceLiveContribution": {
39002
+ capName: "camera-pipeline-config",
39003
+ capScope: "device",
39004
+ addonId: null,
39005
+ access: "view"
39006
+ },
39007
+ "cameraPipelineConfig.getDeviceSettingsContribution": {
39008
+ capName: "camera-pipeline-config",
39009
+ capScope: "device",
39010
+ addonId: null,
39011
+ access: "view"
39012
+ },
38888
39013
  "cameraStreams.getBrokerStreams": {
38889
39014
  capName: "camera-streams",
38890
39015
  capScope: "device",
@@ -38915,6 +39040,18 @@ Object.freeze({
38915
39040
  addonId: null,
38916
39041
  access: "view"
38917
39042
  },
39043
+ "carbonMonoxide.getStatus": {
39044
+ capName: "carbon-monoxide",
39045
+ capScope: "device",
39046
+ addonId: null,
39047
+ access: "view"
39048
+ },
39049
+ "climateControl.getStatus": {
39050
+ capName: "climate-control",
39051
+ capScope: "device",
39052
+ addonId: null,
39053
+ access: "view"
39054
+ },
38918
39055
  "climateControl.setFanMode": {
38919
39056
  capName: "climate-control",
38920
39057
  capScope: "device",
@@ -38963,6 +39100,12 @@ Object.freeze({
38963
39100
  addonId: null,
38964
39101
  access: "create"
38965
39102
  },
39103
+ "color.getStatus": {
39104
+ capName: "color",
39105
+ capScope: "device",
39106
+ addonId: null,
39107
+ access: "view"
39108
+ },
38966
39109
  "color.setColor": {
38967
39110
  capName: "color",
38968
39111
  capScope: "device",
@@ -38981,12 +39124,36 @@ Object.freeze({
38981
39124
  addonId: null,
38982
39125
  access: "create"
38983
39126
  },
39127
+ "connectivity.getStatus": {
39128
+ capName: "connectivity",
39129
+ capScope: "device",
39130
+ addonId: null,
39131
+ access: "view"
39132
+ },
39133
+ "consumables.getStatus": {
39134
+ capName: "consumables",
39135
+ capScope: "device",
39136
+ addonId: null,
39137
+ access: "view"
39138
+ },
38984
39139
  "consumables.reset": {
38985
39140
  capName: "consumables",
38986
39141
  capScope: "device",
38987
39142
  addonId: null,
38988
39143
  access: "delete"
38989
39144
  },
39145
+ "contact.getStatus": {
39146
+ capName: "contact",
39147
+ capScope: "device",
39148
+ addonId: null,
39149
+ access: "view"
39150
+ },
39151
+ "control.getStatus": {
39152
+ capName: "control",
39153
+ capScope: "device",
39154
+ addonId: null,
39155
+ access: "view"
39156
+ },
38990
39157
  "control.setValue": {
38991
39158
  capName: "control",
38992
39159
  capScope: "device",
@@ -39053,6 +39220,12 @@ Object.freeze({
39053
39220
  addonId: null,
39054
39221
  access: "create"
39055
39222
  },
39223
+ "cover.getStatus": {
39224
+ capName: "cover",
39225
+ capScope: "device",
39226
+ addonId: null,
39227
+ access: "view"
39228
+ },
39056
39229
  "cover.open": {
39057
39230
  capName: "cover",
39058
39231
  capScope: "device",
@@ -39185,6 +39358,12 @@ Object.freeze({
39185
39358
  addonId: null,
39186
39359
  access: "view"
39187
39360
  },
39361
+ "dayNight.getStatus": {
39362
+ capName: "day-night",
39363
+ capScope: "device",
39364
+ addonId: null,
39365
+ access: "view"
39366
+ },
39188
39367
  "dayNight.setSettings": {
39189
39368
  capName: "day-night",
39190
39369
  capScope: "device",
@@ -39275,6 +39454,24 @@ Object.freeze({
39275
39454
  addonId: null,
39276
39455
  access: "view"
39277
39456
  },
39457
+ "detectionPipeline.applyDeviceSettingsPatch": {
39458
+ capName: "detection-pipeline",
39459
+ capScope: "device",
39460
+ addonId: null,
39461
+ access: "create"
39462
+ },
39463
+ "detectionPipeline.getDeviceLiveContribution": {
39464
+ capName: "detection-pipeline",
39465
+ capScope: "device",
39466
+ addonId: null,
39467
+ access: "view"
39468
+ },
39469
+ "detectionPipeline.getDeviceSettingsContribution": {
39470
+ capName: "detection-pipeline",
39471
+ capScope: "device",
39472
+ addonId: null,
39473
+ access: "view"
39474
+ },
39278
39475
  "deviceAdoption.adopt": {
39279
39476
  capName: "device-adoption",
39280
39477
  capScope: "system",
@@ -39287,6 +39484,12 @@ Object.freeze({
39287
39484
  addonId: null,
39288
39485
  access: "view"
39289
39486
  },
39487
+ "deviceAdoption.getStatus": {
39488
+ capName: "device-adoption",
39489
+ capScope: "system",
39490
+ addonId: null,
39491
+ access: "view"
39492
+ },
39290
39493
  "deviceAdoption.listCandidateFilters": {
39291
39494
  capName: "device-adoption",
39292
39495
  capScope: "system",
@@ -39323,6 +39526,12 @@ Object.freeze({
39323
39526
  addonId: null,
39324
39527
  access: "create"
39325
39528
  },
39529
+ "deviceDiscovery.getStatus": {
39530
+ capName: "device-discovery",
39531
+ capScope: "device",
39532
+ addonId: null,
39533
+ access: "view"
39534
+ },
39326
39535
  "deviceDiscovery.listDiscovered": {
39327
39536
  capName: "device-discovery",
39328
39537
  capScope: "device",
@@ -39341,12 +39550,30 @@ Object.freeze({
39341
39550
  addonId: null,
39342
39551
  access: "create"
39343
39552
  },
39553
+ "deviceExport.applyDeviceSettingsPatch": {
39554
+ capName: "device-export",
39555
+ capScope: "system",
39556
+ addonId: null,
39557
+ access: "create"
39558
+ },
39344
39559
  "deviceExport.exposeDevice": {
39345
39560
  capName: "device-export",
39346
39561
  capScope: "system",
39347
39562
  addonId: null,
39348
39563
  access: "create"
39349
39564
  },
39565
+ "deviceExport.getDeviceLiveContribution": {
39566
+ capName: "device-export",
39567
+ capScope: "system",
39568
+ addonId: null,
39569
+ access: "view"
39570
+ },
39571
+ "deviceExport.getDeviceSettingsContribution": {
39572
+ capName: "device-export",
39573
+ capScope: "system",
39574
+ addonId: null,
39575
+ access: "view"
39576
+ },
39350
39577
  "deviceExport.getStatus": {
39351
39578
  capName: "device-export",
39352
39579
  capScope: "system",
@@ -39443,6 +39670,12 @@ Object.freeze({
39443
39670
  addonId: null,
39444
39671
  access: "create"
39445
39672
  },
39673
+ "deviceManager.applyDeviceSettingsPatch": {
39674
+ capName: "device-manager",
39675
+ capScope: "system",
39676
+ addonId: null,
39677
+ access: "create"
39678
+ },
39446
39679
  "deviceManager.applyInitialMeta": {
39447
39680
  capName: "device-manager",
39448
39681
  capScope: "system",
@@ -39545,6 +39778,12 @@ Object.freeze({
39545
39778
  addonId: null,
39546
39779
  access: "view"
39547
39780
  },
39781
+ "deviceManager.getDeviceLiveContribution": {
39782
+ capName: "device-manager",
39783
+ capScope: "system",
39784
+ addonId: null,
39785
+ access: "view"
39786
+ },
39548
39787
  "deviceManager.getDeviceLiveInfoAggregate": {
39549
39788
  capName: "device-manager",
39550
39789
  capScope: "system",
@@ -39557,6 +39796,12 @@ Object.freeze({
39557
39796
  addonId: null,
39558
39797
  access: "view"
39559
39798
  },
39799
+ "deviceManager.getDeviceSettingsContribution": {
39800
+ capName: "device-manager",
39801
+ capScope: "system",
39802
+ addonId: null,
39803
+ access: "view"
39804
+ },
39560
39805
  "deviceManager.getDeviceStatusAggregate": {
39561
39806
  capName: "device-manager",
39562
39807
  capScope: "system",
@@ -40049,6 +40294,36 @@ Object.freeze({
40049
40294
  addonId: null,
40050
40295
  access: "create"
40051
40296
  },
40297
+ "deviceStatus.getStatus": {
40298
+ capName: "device-status",
40299
+ capScope: "device",
40300
+ addonId: null,
40301
+ access: "view"
40302
+ },
40303
+ "doorbell.applyDeviceSettingsPatch": {
40304
+ capName: "doorbell",
40305
+ capScope: "device",
40306
+ addonId: null,
40307
+ access: "create"
40308
+ },
40309
+ "doorbell.getDeviceLiveContribution": {
40310
+ capName: "doorbell",
40311
+ capScope: "device",
40312
+ addonId: null,
40313
+ access: "view"
40314
+ },
40315
+ "doorbell.getDeviceSettingsContribution": {
40316
+ capName: "doorbell",
40317
+ capScope: "device",
40318
+ addonId: null,
40319
+ access: "view"
40320
+ },
40321
+ "doorbell.getStatus": {
40322
+ capName: "doorbell",
40323
+ capScope: "device",
40324
+ addonId: null,
40325
+ access: "view"
40326
+ },
40052
40327
  "embeddingEncoder.encode": {
40053
40328
  capName: "embedding-encoder",
40054
40329
  capScope: "system",
@@ -40067,6 +40342,18 @@ Object.freeze({
40067
40342
  addonId: null,
40068
40343
  access: "view"
40069
40344
  },
40345
+ "enumSensor.getStatus": {
40346
+ capName: "enum-sensor",
40347
+ capScope: "device",
40348
+ addonId: null,
40349
+ access: "view"
40350
+ },
40351
+ "eventEmitter.getStatus": {
40352
+ capName: "event-emitter",
40353
+ capScope: "device",
40354
+ addonId: null,
40355
+ access: "view"
40356
+ },
40070
40357
  "events.getEventClipUrl": {
40071
40358
  capName: "events",
40072
40359
  capScope: "device",
@@ -40187,6 +40474,12 @@ Object.freeze({
40187
40474
  addonId: null,
40188
40475
  access: "view"
40189
40476
  },
40477
+ "fanControl.getStatus": {
40478
+ capName: "fan-control",
40479
+ capScope: "device",
40480
+ addonId: null,
40481
+ access: "view"
40482
+ },
40190
40483
  "fanControl.setDirection": {
40191
40484
  capName: "fan-control",
40192
40485
  capScope: "device",
@@ -40211,6 +40504,12 @@ Object.freeze({
40211
40504
  addonId: null,
40212
40505
  access: "create"
40213
40506
  },
40507
+ "featureProbe.getStatus": {
40508
+ capName: "feature-probe",
40509
+ capScope: "device",
40510
+ addonId: null,
40511
+ access: "view"
40512
+ },
40214
40513
  "filesystemBrowse.browse": {
40215
40514
  capName: "filesystem-browse",
40216
40515
  capScope: "system",
@@ -40229,6 +40528,24 @@ Object.freeze({
40229
40528
  addonId: null,
40230
40529
  access: "view"
40231
40530
  },
40531
+ "flood.getStatus": {
40532
+ capName: "flood",
40533
+ capScope: "device",
40534
+ addonId: null,
40535
+ access: "view"
40536
+ },
40537
+ "gas.getStatus": {
40538
+ capName: "gas",
40539
+ capScope: "device",
40540
+ addonId: null,
40541
+ access: "view"
40542
+ },
40543
+ "humidifier.getStatus": {
40544
+ capName: "humidifier",
40545
+ capScope: "device",
40546
+ addonId: null,
40547
+ access: "view"
40548
+ },
40232
40549
  "humidifier.setMode": {
40233
40550
  capName: "humidifier",
40234
40551
  capScope: "device",
@@ -40247,12 +40564,30 @@ Object.freeze({
40247
40564
  addonId: null,
40248
40565
  access: "create"
40249
40566
  },
40567
+ "humiditySensor.getStatus": {
40568
+ capName: "humidity-sensor",
40569
+ capScope: "device",
40570
+ addonId: null,
40571
+ access: "view"
40572
+ },
40573
+ "image.getStatus": {
40574
+ capName: "image",
40575
+ capScope: "device",
40576
+ addonId: null,
40577
+ access: "view"
40578
+ },
40250
40579
  "imageSettings.getOptions": {
40251
40580
  capName: "image-settings",
40252
40581
  capScope: "device",
40253
40582
  addonId: null,
40254
40583
  access: "view"
40255
40584
  },
40585
+ "imageSettings.getStatus": {
40586
+ capName: "image-settings",
40587
+ capScope: "device",
40588
+ addonId: null,
40589
+ access: "view"
40590
+ },
40256
40591
  "imageSettings.setSettings": {
40257
40592
  capName: "image-settings",
40258
40593
  capScope: "device",
@@ -40325,6 +40660,12 @@ Object.freeze({
40325
40660
  addonId: null,
40326
40661
  access: "create"
40327
40662
  },
40663
+ "intercom.getStatus": {
40664
+ capName: "intercom",
40665
+ capScope: "device",
40666
+ addonId: null,
40667
+ access: "view"
40668
+ },
40328
40669
  "intercom.handleAnswer": {
40329
40670
  capName: "intercom",
40330
40671
  capScope: "device",
@@ -40361,6 +40702,12 @@ Object.freeze({
40361
40702
  addonId: null,
40362
40703
  access: "create"
40363
40704
  },
40705
+ "lawnMowerControl.getStatus": {
40706
+ capName: "lawn-mower-control",
40707
+ capScope: "device",
40708
+ addonId: null,
40709
+ access: "view"
40710
+ },
40364
40711
  "lawnMowerControl.pause": {
40365
40712
  capName: "lawn-mower-control",
40366
40713
  capScope: "device",
@@ -40643,6 +40990,12 @@ Object.freeze({
40643
40990
  addonId: null,
40644
40991
  access: "create"
40645
40992
  },
40993
+ "lockControl.getStatus": {
40994
+ capName: "lock-control",
40995
+ capScope: "device",
40996
+ addonId: null,
40997
+ access: "view"
40998
+ },
40646
40999
  "lockControl.lock": {
40647
41000
  capName: "lock-control",
40648
41001
  capScope: "device",
@@ -40691,6 +41044,12 @@ Object.freeze({
40691
41044
  addonId: null,
40692
41045
  access: "view"
40693
41046
  },
41047
+ "mediaPlayer.getStatus": {
41048
+ capName: "media-player",
41049
+ capScope: "device",
41050
+ addonId: null,
41051
+ access: "view"
41052
+ },
40694
41053
  "mediaPlayer.next": {
40695
41054
  capName: "media-player",
40696
41055
  capScope: "device",
@@ -40883,6 +41242,12 @@ Object.freeze({
40883
41242
  addonId: null,
40884
41243
  access: "create"
40885
41244
  },
41245
+ "motion.getStatus": {
41246
+ capName: "motion",
41247
+ capScope: "device",
41248
+ addonId: null,
41249
+ access: "view"
41250
+ },
40886
41251
  "motion.isDetected": {
40887
41252
  capName: "motion",
40888
41253
  capScope: "device",
@@ -40895,6 +41260,24 @@ Object.freeze({
40895
41260
  addonId: null,
40896
41261
  access: "create"
40897
41262
  },
41263
+ "motionDetection.applyDeviceSettingsPatch": {
41264
+ capName: "motion-detection",
41265
+ capScope: "device",
41266
+ addonId: null,
41267
+ access: "create"
41268
+ },
41269
+ "motionDetection.getDeviceLiveContribution": {
41270
+ capName: "motion-detection",
41271
+ capScope: "device",
41272
+ addonId: null,
41273
+ access: "view"
41274
+ },
41275
+ "motionDetection.getDeviceSettingsContribution": {
41276
+ capName: "motion-detection",
41277
+ capScope: "device",
41278
+ addonId: null,
41279
+ access: "view"
41280
+ },
40898
41281
  "motionDetection.removeCamera": {
40899
41282
  capName: "motion-detection",
40900
41283
  capScope: "device",
@@ -40907,6 +41290,12 @@ Object.freeze({
40907
41290
  addonId: null,
40908
41291
  access: "delete"
40909
41292
  },
41293
+ "motionTrigger.getStatus": {
41294
+ capName: "motion-trigger",
41295
+ capScope: "device",
41296
+ addonId: null,
41297
+ access: "view"
41298
+ },
40910
41299
  "motionTrigger.setMotionTrigger": {
40911
41300
  capName: "motion-trigger",
40912
41301
  capScope: "device",
@@ -40919,6 +41308,12 @@ Object.freeze({
40919
41308
  addonId: null,
40920
41309
  access: "view"
40921
41310
  },
41311
+ "motionZones.getStatus": {
41312
+ capName: "motion-zones",
41313
+ capScope: "device",
41314
+ addonId: null,
41315
+ access: "view"
41316
+ },
40922
41317
  "motionZones.setZone": {
40923
41318
  capName: "motion-zones",
40924
41319
  capScope: "device",
@@ -40979,6 +41374,12 @@ Object.freeze({
40979
41374
  addonId: null,
40980
41375
  access: "view"
40981
41376
  },
41377
+ "nativeObjectDetection.getStatus": {
41378
+ capName: "native-object-detection",
41379
+ capScope: "device",
41380
+ addonId: null,
41381
+ access: "view"
41382
+ },
40982
41383
  "nativeObjectDetection.setEnabled": {
40983
41384
  capName: "native-object-detection",
40984
41385
  capScope: "device",
@@ -40997,6 +41398,12 @@ Object.freeze({
40997
41398
  addonId: null,
40998
41399
  access: "view"
40999
41400
  },
41401
+ "navigation.getStatus": {
41402
+ capName: "navigation",
41403
+ capScope: "device",
41404
+ addonId: null,
41405
+ access: "view"
41406
+ },
41000
41407
  "navigation.goToPoint": {
41001
41408
  capName: "navigation",
41002
41409
  capScope: "device",
@@ -41081,6 +41488,12 @@ Object.freeze({
41081
41488
  addonId: null,
41082
41489
  access: "create"
41083
41490
  },
41491
+ "networkLink.getStatus": {
41492
+ capName: "network-link",
41493
+ capScope: "device",
41494
+ addonId: null,
41495
+ access: "view"
41496
+ },
41084
41497
  "networkQuality.getAllStats": {
41085
41498
  capName: "network-quality",
41086
41499
  capScope: "system",
@@ -41339,18 +41752,36 @@ Object.freeze({
41339
41752
  addonId: null,
41340
41753
  access: "create"
41341
41754
  },
41755
+ "notifier.getStatus": {
41756
+ capName: "notifier",
41757
+ capScope: "device",
41758
+ addonId: null,
41759
+ access: "view"
41760
+ },
41342
41761
  "notifier.send": {
41343
41762
  capName: "notifier",
41344
41763
  capScope: "device",
41345
41764
  addonId: null,
41346
41765
  access: "create"
41347
41766
  },
41767
+ "numericSensor.getStatus": {
41768
+ capName: "numeric-sensor",
41769
+ capScope: "device",
41770
+ addonId: null,
41771
+ access: "view"
41772
+ },
41348
41773
  "oauthIntegration.getDescriptor": {
41349
41774
  capName: "oauth-integration",
41350
41775
  capScope: "system",
41351
41776
  addonId: null,
41352
41777
  access: "view"
41353
41778
  },
41779
+ "osd.getStatus": {
41780
+ capName: "osd",
41781
+ capScope: "device",
41782
+ addonId: null,
41783
+ access: "view"
41784
+ },
41354
41785
  "osd.setOverlay": {
41355
41786
  capName: "osd",
41356
41787
  capScope: "device",
@@ -41423,6 +41854,12 @@ Object.freeze({
41423
41854
  addonId: null,
41424
41855
  access: "create"
41425
41856
  },
41857
+ "petFeeder.getStatus": {
41858
+ capName: "pet-feeder",
41859
+ capScope: "device",
41860
+ addonId: null,
41861
+ access: "view"
41862
+ },
41426
41863
  "petFeeder.markFoodReplenished": {
41427
41864
  capName: "pet-feeder",
41428
41865
  capScope: "device",
@@ -41465,6 +41902,12 @@ Object.freeze({
41465
41902
  addonId: null,
41466
41903
  access: "create"
41467
41904
  },
41905
+ "pipelineAnalytics.applyDeviceSettingsPatch": {
41906
+ capName: "pipeline-analytics",
41907
+ capScope: "device",
41908
+ addonId: null,
41909
+ access: "create"
41910
+ },
41468
41911
  "pipelineAnalytics.cancelRelocateMedia": {
41469
41912
  capName: "pipeline-analytics",
41470
41913
  capScope: "device",
@@ -41531,6 +41974,18 @@ Object.freeze({
41531
41974
  addonId: null,
41532
41975
  access: "view"
41533
41976
  },
41977
+ "pipelineAnalytics.getDeviceLiveContribution": {
41978
+ capName: "pipeline-analytics",
41979
+ capScope: "device",
41980
+ addonId: null,
41981
+ access: "view"
41982
+ },
41983
+ "pipelineAnalytics.getDeviceSettingsContribution": {
41984
+ capName: "pipeline-analytics",
41985
+ capScope: "device",
41986
+ addonId: null,
41987
+ access: "view"
41988
+ },
41534
41989
  "pipelineAnalytics.getEventDensity": {
41535
41990
  capName: "pipeline-analytics",
41536
41991
  capScope: "device",
@@ -42101,6 +42556,12 @@ Object.freeze({
42101
42556
  addonId: null,
42102
42557
  access: "view"
42103
42558
  },
42559
+ "pipelineOrchestrator.applyDeviceSettingsPatch": {
42560
+ capName: "pipeline-orchestrator",
42561
+ capScope: "system",
42562
+ addonId: null,
42563
+ access: "create"
42564
+ },
42104
42565
  "pipelineOrchestrator.assignAudio": {
42105
42566
  capName: "pipeline-orchestrator",
42106
42567
  capScope: "system",
@@ -42191,6 +42652,18 @@ Object.freeze({
42191
42652
  addonId: null,
42192
42653
  access: "view"
42193
42654
  },
42655
+ "pipelineOrchestrator.getDeviceLiveContribution": {
42656
+ capName: "pipeline-orchestrator",
42657
+ capScope: "system",
42658
+ addonId: null,
42659
+ access: "view"
42660
+ },
42661
+ "pipelineOrchestrator.getDeviceSettingsContribution": {
42662
+ capName: "pipeline-orchestrator",
42663
+ capScope: "system",
42664
+ addonId: null,
42665
+ access: "view"
42666
+ },
42194
42667
  "pipelineOrchestrator.getGlobalMetrics": {
42195
42668
  capName: "pipeline-orchestrator",
42196
42669
  capScope: "system",
@@ -42599,12 +43072,36 @@ Object.freeze({
42599
43072
  addonId: null,
42600
43073
  access: "view"
42601
43074
  },
43075
+ "powerMeter.getStatus": {
43076
+ capName: "power-meter",
43077
+ capScope: "device",
43078
+ addonId: null,
43079
+ access: "view"
43080
+ },
43081
+ "presence.getStatus": {
43082
+ capName: "presence",
43083
+ capScope: "device",
43084
+ addonId: null,
43085
+ access: "view"
43086
+ },
43087
+ "pressureSensor.getStatus": {
43088
+ capName: "pressure-sensor",
43089
+ capScope: "device",
43090
+ addonId: null,
43091
+ access: "view"
43092
+ },
42602
43093
  "privacyMask.getOptions": {
42603
43094
  capName: "privacy-mask",
42604
43095
  capScope: "device",
42605
43096
  addonId: null,
42606
43097
  access: "view"
42607
43098
  },
43099
+ "privacyMask.getStatus": {
43100
+ capName: "privacy-mask",
43101
+ capScope: "device",
43102
+ addonId: null,
43103
+ access: "view"
43104
+ },
42608
43105
  "privacyMask.setAudioEnabled": {
42609
43106
  capName: "privacy-mask",
42610
43107
  capScope: "device",
@@ -42665,6 +43162,12 @@ Object.freeze({
42665
43162
  addonId: null,
42666
43163
  access: "view"
42667
43164
  },
43165
+ "ptz.getStatus": {
43166
+ capName: "ptz",
43167
+ capScope: "device",
43168
+ addonId: null,
43169
+ access: "view"
43170
+ },
42668
43171
  "ptz.goHome": {
42669
43172
  capName: "ptz",
42670
43173
  capScope: "device",
@@ -42743,6 +43246,12 @@ Object.freeze({
42743
43246
  addonId: null,
42744
43247
  access: "create"
42745
43248
  },
43249
+ "recording.applyDeviceSettingsPatch": {
43250
+ capName: "recording",
43251
+ capScope: "system",
43252
+ addonId: null,
43253
+ access: "create"
43254
+ },
42746
43255
  "recording.cancelRelocateJob": {
42747
43256
  capName: "recording",
42748
43257
  capScope: "system",
@@ -42791,6 +43300,18 @@ Object.freeze({
42791
43300
  addonId: null,
42792
43301
  access: "view"
42793
43302
  },
43303
+ "recording.getDeviceLiveContribution": {
43304
+ capName: "recording",
43305
+ capScope: "system",
43306
+ addonId: null,
43307
+ access: "view"
43308
+ },
43309
+ "recording.getDeviceSettingsContribution": {
43310
+ capName: "recording",
43311
+ capScope: "system",
43312
+ addonId: null,
43313
+ access: "view"
43314
+ },
42794
43315
  "recording.getPlacement": {
42795
43316
  capName: "recording",
42796
43317
  capScope: "system",
@@ -42809,6 +43330,12 @@ Object.freeze({
42809
43330
  addonId: null,
42810
43331
  access: "view"
42811
43332
  },
43333
+ "recording.getStatus": {
43334
+ capName: "recording",
43335
+ capScope: "system",
43336
+ addonId: null,
43337
+ access: "view"
43338
+ },
42812
43339
  "recording.getStorageMigrationMoveStatus": {
42813
43340
  capName: "recording",
42814
43341
  capScope: "system",
@@ -43013,6 +43540,12 @@ Object.freeze({
43013
43540
  addonId: null,
43014
43541
  access: "delete"
43015
43542
  },
43543
+ "sceneMonitor.getStatus": {
43544
+ capName: "scene-monitor",
43545
+ capScope: "device",
43546
+ addonId: null,
43547
+ access: "view"
43548
+ },
43016
43549
  "sceneMonitor.listScenes": {
43017
43550
  capName: "scene-monitor",
43018
43551
  capScope: "device",
@@ -43043,6 +43576,12 @@ Object.freeze({
43043
43576
  addonId: null,
43044
43577
  access: "create"
43045
43578
  },
43579
+ "scriptRunner.getStatus": {
43580
+ capName: "script-runner",
43581
+ capScope: "device",
43582
+ addonId: null,
43583
+ access: "view"
43584
+ },
43046
43585
  "scriptRunner.run": {
43047
43586
  capName: "script-runner",
43048
43587
  capScope: "device",
@@ -43175,6 +43714,12 @@ Object.freeze({
43175
43714
  addonId: null,
43176
43715
  access: "create"
43177
43716
  },
43717
+ "smoke.getStatus": {
43718
+ capName: "smoke",
43719
+ capScope: "device",
43720
+ addonId: null,
43721
+ access: "view"
43722
+ },
43178
43723
  "smtpProvider.getStatus": {
43179
43724
  capName: "smtp-provider",
43180
43725
  capScope: "system",
@@ -43193,12 +43738,30 @@ Object.freeze({
43193
43738
  addonId: null,
43194
43739
  access: "view"
43195
43740
  },
43741
+ "snapshot.applyDeviceSettingsPatch": {
43742
+ capName: "snapshot",
43743
+ capScope: "device",
43744
+ addonId: null,
43745
+ access: "create"
43746
+ },
43196
43747
  "snapshot.getDebugState": {
43197
43748
  capName: "snapshot",
43198
43749
  capScope: "device",
43199
43750
  addonId: null,
43200
43751
  access: "view"
43201
43752
  },
43753
+ "snapshot.getDeviceLiveContribution": {
43754
+ capName: "snapshot",
43755
+ capScope: "device",
43756
+ addonId: null,
43757
+ access: "view"
43758
+ },
43759
+ "snapshot.getDeviceSettingsContribution": {
43760
+ capName: "snapshot",
43761
+ capScope: "device",
43762
+ addonId: null,
43763
+ access: "view"
43764
+ },
43202
43765
  "snapshot.getSnapshot": {
43203
43766
  capName: "snapshot",
43204
43767
  capScope: "device",
@@ -43217,6 +43780,12 @@ Object.freeze({
43217
43780
  addonId: null,
43218
43781
  access: "view"
43219
43782
  },
43783
+ "snapshot.getStatus": {
43784
+ capName: "snapshot",
43785
+ capScope: "device",
43786
+ addonId: null,
43787
+ access: "view"
43788
+ },
43220
43789
  "snapshot.invalidateCache": {
43221
43790
  capName: "snapshot",
43222
43791
  capScope: "device",
@@ -43553,6 +44122,12 @@ Object.freeze({
43553
44122
  addonId: null,
43554
44123
  access: "create"
43555
44124
  },
44125
+ "streamBroker.applyDeviceSettingsPatch": {
44126
+ capName: "stream-broker",
44127
+ capScope: "system",
44128
+ addonId: null,
44129
+ access: "create"
44130
+ },
43556
44131
  "streamBroker.assignProfile": {
43557
44132
  capName: "stream-broker",
43558
44133
  capScope: "system",
@@ -43589,6 +44164,18 @@ Object.freeze({
43589
44164
  addonId: null,
43590
44165
  access: "view"
43591
44166
  },
44167
+ "streamBroker.getDeviceLiveContribution": {
44168
+ capName: "stream-broker",
44169
+ capScope: "system",
44170
+ addonId: null,
44171
+ access: "view"
44172
+ },
44173
+ "streamBroker.getDeviceSettingsContribution": {
44174
+ capName: "stream-broker",
44175
+ capScope: "system",
44176
+ addonId: null,
44177
+ access: "view"
44178
+ },
43592
44179
  "streamBroker.getPreBufferInfo": {
43593
44180
  capName: "stream-broker",
43594
44181
  capScope: "system",
@@ -43787,6 +44374,12 @@ Object.freeze({
43787
44374
  addonId: null,
43788
44375
  access: "view"
43789
44376
  },
44377
+ "streamParams.getStatus": {
44378
+ capName: "stream-params",
44379
+ capScope: "device",
44380
+ addonId: null,
44381
+ access: "view"
44382
+ },
43790
44383
  "streamParams.setProfile": {
43791
44384
  capName: "stream-params",
43792
44385
  capScope: "device",
@@ -43799,6 +44392,12 @@ Object.freeze({
43799
44392
  addonId: null,
43800
44393
  access: "view"
43801
44394
  },
44395
+ "switch.getStatus": {
44396
+ capName: "switch",
44397
+ capScope: "device",
44398
+ addonId: null,
44399
+ access: "view"
44400
+ },
43802
44401
  "switch.setState": {
43803
44402
  capName: "switch",
43804
44403
  capScope: "device",
@@ -43895,6 +44494,18 @@ Object.freeze({
43895
44494
  addonId: null,
43896
44495
  access: "create"
43897
44496
  },
44497
+ "tamper.getStatus": {
44498
+ capName: "tamper",
44499
+ capScope: "device",
44500
+ addonId: null,
44501
+ access: "view"
44502
+ },
44503
+ "temperatureSensor.getStatus": {
44504
+ capName: "temperature-sensor",
44505
+ capScope: "device",
44506
+ addonId: null,
44507
+ access: "view"
44508
+ },
43898
44509
  "terminalSession.adoptLegacyMonitor": {
43899
44510
  capName: "terminal-session",
43900
44511
  capScope: "system",
@@ -43991,6 +44602,12 @@ Object.freeze({
43991
44602
  addonId: null,
43992
44603
  access: "view"
43993
44604
  },
44605
+ "update.getStatus": {
44606
+ capName: "update",
44607
+ capScope: "device",
44608
+ addonId: null,
44609
+ access: "view"
44610
+ },
43994
44611
  "update.installUpdate": {
43995
44612
  capName: "update",
43996
44613
  capScope: "device",
@@ -44213,6 +44830,12 @@ Object.freeze({
44213
44830
  addonId: null,
44214
44831
  access: "create"
44215
44832
  },
44833
+ "vacuumControl.getStatus": {
44834
+ capName: "vacuum-control",
44835
+ capScope: "device",
44836
+ addonId: null,
44837
+ access: "view"
44838
+ },
44216
44839
  "vacuumControl.locate": {
44217
44840
  capName: "vacuum-control",
44218
44841
  capScope: "device",
@@ -44255,6 +44878,12 @@ Object.freeze({
44255
44878
  addonId: null,
44256
44879
  access: "create"
44257
44880
  },
44881
+ "valve.getStatus": {
44882
+ capName: "valve",
44883
+ capScope: "device",
44884
+ addonId: null,
44885
+ access: "view"
44886
+ },
44258
44887
  "valve.open": {
44259
44888
  capName: "valve",
44260
44889
  capScope: "device",
@@ -44327,6 +44956,12 @@ Object.freeze({
44327
44956
  addonId: null,
44328
44957
  access: "create"
44329
44958
  },
44959
+ "vibration.getStatus": {
44960
+ capName: "vibration",
44961
+ capScope: "device",
44962
+ addonId: null,
44963
+ access: "view"
44964
+ },
44330
44965
  "videoclips.getClipPlayback": {
44331
44966
  capName: "videoclips",
44332
44967
  capScope: "device",
@@ -44363,6 +44998,12 @@ Object.freeze({
44363
44998
  addonId: null,
44364
44999
  access: "view"
44365
45000
  },
45001
+ "waterHeater.getStatus": {
45002
+ capName: "water-heater",
45003
+ capScope: "device",
45004
+ addonId: null,
45005
+ access: "view"
45006
+ },
44366
45007
  "waterHeater.setAway": {
44367
45008
  capName: "water-heater",
44368
45009
  capScope: "device",
@@ -44381,6 +45022,12 @@ Object.freeze({
44381
45022
  addonId: null,
44382
45023
  access: "create"
44383
45024
  },
45025
+ "weather.getStatus": {
45026
+ capName: "weather",
45027
+ capScope: "device",
45028
+ addonId: null,
45029
+ access: "view"
45030
+ },
44384
45031
  "webrtcSession.addIceCandidate": {
44385
45032
  capName: "webrtc-session",
44386
45033
  capScope: "device",
@@ -148901,7 +149548,8 @@ var CLASS_BY_NATIVE = {
148901
149548
  var KIND_BY_NATIVE = {
148902
149549
  md: "motion",
148903
149550
  pir: "motion",
148904
- cry: "audio"
149551
+ cry: "audio",
149552
+ other: "motion"
148905
149553
  };
148906
149554
  /** What the subject DID — carried beside a class, never as one. */
148907
149555
  var BEHAVIOUR_BY_NATIVE = {
@@ -148914,8 +149562,9 @@ var BEHAVIOUR_BY_NATIVE = {
148914
149562
  /**
148915
149563
  * Recording REASONS — why the file exists, not what is in it. They get no
148916
149564
  * label and no behaviour; the row still lists, showing the reason raw.
148917
- * `other` / `none` are the camera declining to classify, which is not the same
148918
- * as the camera saying "nothing".
149565
+ * `none` is the camera declining to classify, which is not the same as the
149566
+ * camera saying "nothing". `other` used to live here and is now a motion KIND
149567
+ * — see {@link KIND_BY_NATIVE}.
148919
149568
  */
148920
149569
  var RECORDING_REASONS = new Set([
148921
149570
  "sched",
@@ -148927,7 +149576,6 @@ var RECORDING_REASONS = new Set([
148927
149576
  "answer",
148928
149577
  "tamper",
148929
149578
  "lmsg",
148930
- "other",
148931
149579
  "none"
148932
149580
  ]);
148933
149581
  /**
@@ -149503,6 +150151,18 @@ function createReolinkVideoclipsProvider(deps) {
149503
150151
  timeZone: device.timeZone,
149504
150152
  day
149505
150153
  });
150154
+ const newest = result.rows[result.rows.length - 1] ?? result.rows[0];
150155
+ deps.logger.info("videoclips: the camera answered a day search", {
150156
+ tags,
150157
+ meta: {
150158
+ day,
150159
+ rows: result.rows.length,
150160
+ newestFile: newest?.subFileName ?? null,
150161
+ newestStartMs: newest?.startMs ?? null,
150162
+ oldestStartMs: result.rows[0]?.startMs ?? null,
150163
+ askedAtMs: Date.now()
150164
+ }
150165
+ });
149506
150166
  if (result.mainSearchFailed !== void 0) deps.logger.warn("videoclips: the main-stream search refused — no high twin today", {
149507
150167
  tags,
149508
150168
  meta: {
@@ -150513,6 +151173,16 @@ function createClipService(deps) {
150513
151173
  };
150514
151174
  }
150515
151175
  let downloaded;
151176
+ deps.logger.info("videoclips: fetching a clip file from the camera", {
151177
+ tags,
151178
+ meta: {
151179
+ clipKey,
151180
+ twin,
151181
+ fileName,
151182
+ startMs: row.startMs,
151183
+ endMs: row.endMs
151184
+ }
151185
+ });
150516
151186
  try {
150517
151187
  downloaded = await fetchVerifiedClipBytes(device, row, clipKey, fileName);
150518
151188
  } catch (err) {