@camstack/addon-provider-reolink 1.2.26 → 1.2.27

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 (3) hide show
  1. package/dist/addon.js +1844 -19
  2. package/dist/addon.mjs +1844 -19
  3. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -3024,6 +3024,9 @@ function handlePipeResult(left, next, ctx) {
3024
3024
  fallback: left.fallback
3025
3025
  }, ctx);
3026
3026
  }
3027
+ var $ZodPreprocess = /*@__PURE__*/ $constructor("$ZodPreprocess", (inst, def) => {
3028
+ $ZodPipe.init(inst, def);
3029
+ });
3027
3030
  var $ZodReadonly = /*@__PURE__*/ $constructor("$ZodReadonly", (inst, def) => {
3028
3031
  $ZodType.init(inst, def);
3029
3032
  defineLazy(inst._zod, "propValues", () => def.innerType._zod.propValues);
@@ -5209,6 +5212,10 @@ function pipe(in_, out) {
5209
5212
  out
5210
5213
  });
5211
5214
  }
5215
+ var ZodPreprocess = /*@__PURE__*/ $constructor("ZodPreprocess", (inst, def) => {
5216
+ ZodPipe.init(inst, def);
5217
+ $ZodPreprocess.init(inst, def);
5218
+ });
5212
5219
  var ZodReadonly$16 = /*@__PURE__*/ $constructor("ZodReadonly", (inst, def) => {
5213
5220
  $ZodReadonly.init(inst, def);
5214
5221
  ZodType$16.init(inst, def);
@@ -5267,6 +5274,13 @@ function _instanceof(cls, params = {}) {
5267
5274
  };
5268
5275
  return inst;
5269
5276
  }
5277
+ function preprocess(fn, schema) {
5278
+ return new ZodPreprocess({
5279
+ type: "pipe",
5280
+ in: transform(fn),
5281
+ out: schema
5282
+ });
5283
+ }
5270
5284
  //#endregion
5271
5285
  //#region ../../node_modules/zod/v4/classic/compat.js
5272
5286
  /** @deprecated Use the raw string literal codes instead, e.g. "invalid_type". */
@@ -15730,7 +15744,87 @@ var MethodAccessSchema = _enum([
15730
15744
  var AllowedProviderSchema = union([literal("*"), array(string())]);
15731
15745
  var AllowedDevicesSchema = record(string(), union([literal("*"), array(string())]));
15732
15746
  var CapScopeSchema = _enum(["device", "system"]);
15733
- var TokenScopeSchema = discriminatedUnion("type", [
15747
+ /**
15748
+ * DeviceSelector (scope model v3 — 2026-08-12).
15749
+ *
15750
+ * A `device` grant no longer carries a frozen list of deviceIds. It carries
15751
+ * a SELECTOR the matcher resolves against the live fleet, so the grant can be
15752
+ * DYNAMIC: a `types:['camera']` selector automatically covers a camera added
15753
+ * AFTER the grant was minted — no re-grant, no re-login.
15754
+ *
15755
+ * - `all` — every device in the deployment. The broad viewer/operator
15756
+ * lever without a `category` grant (a `category` grant also covers device
15757
+ * caps that carry no deviceId; `all` is specifically the device set).
15758
+ * - `ids` — an explicit deviceId list. This is what a v2 `device:[…]`
15759
+ * grant migrates to (see {@link TokenScopeSchema}); STATIC — a new camera
15760
+ * is NOT covered until the grant is edited.
15761
+ * - `types` — every device of a `DeviceType` (e.g. every `camera`).
15762
+ * DYNAMIC. A device that changes type, or a new device of the type,
15763
+ * re-resolves on the next request.
15764
+ * - `locations` — every device whose operator-assigned `location` label is
15765
+ * in the set (e.g. "Garden", "Front door"). DYNAMIC. A device with a
15766
+ * null/unset location matches NO `locations` selector.
15767
+ */
15768
+ var DeviceSelectorSchema = discriminatedUnion("kind", [
15769
+ object({ kind: literal("all") }),
15770
+ object({
15771
+ kind: literal("ids"),
15772
+ ids: array(number().int()).min(1)
15773
+ }),
15774
+ object({
15775
+ kind: literal("types"),
15776
+ types: array(_enum(DeviceType)).min(1)
15777
+ }),
15778
+ object({
15779
+ kind: literal("locations"),
15780
+ locations: array(string().min(1)).min(1)
15781
+ })
15782
+ ]);
15783
+ var DeviceTokenScopeSchema = object({
15784
+ type: literal("device"),
15785
+ /** The device SET this grant covers — resolved against the live fleet. */
15786
+ selector: DeviceSelectorSchema,
15787
+ access: array(MethodAccessSchema).min(1),
15788
+ /**
15789
+ * Whether a grant on a PARENT device transparently covers its accessory
15790
+ * CHILDREN (siren / floodlight / PIR) via the persisted-parentage walk.
15791
+ * Direction is parent → children ONLY.
15792
+ *
15793
+ * Absent → the matcher DERIVES it from the access flavour: `view`
15794
+ * inherits (a camera viewer sees the camera's accessories), `create` /
15795
+ * `delete` do NOT (actuating/removing a child is an explicit act the
15796
+ * operator must grant on the child, not inherit from the parent). Set it
15797
+ * explicitly to override that default per grant.
15798
+ */
15799
+ includeLinked: boolean().optional()
15800
+ });
15801
+ /**
15802
+ * v2 → v3 lazy migration. A pre-v3 `device` grant carried
15803
+ * `targets: string[]` (stringified deviceIds); it rewrites to the equivalent
15804
+ * `selector: {kind:'ids', ids}`. Applied as a `preprocess` so it runs on
15805
+ * EVERY parse path — stored records AND the JWT-carried scope arrays
15806
+ * normalised at the request boundary ({@link normalizeTokenScopes} in
15807
+ * `device-selector.ts`). Chosen over a one-time DB migration because a
15808
+ * migration cannot reach a JWT already in a client's hands; parse-time
15809
+ * migration covers both without a flag day. No cast — the raw object is read
15810
+ * through `Reflect.get` (its static type is `unknown`).
15811
+ */
15812
+ function migrateLegacyTokenScope(raw) {
15813
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return raw;
15814
+ if (Reflect.get(raw, "type") !== "device") return raw;
15815
+ if (Reflect.get(raw, "selector") !== void 0) return raw;
15816
+ const targets = Reflect.get(raw, "targets");
15817
+ if (!Array.isArray(targets)) return raw;
15818
+ return {
15819
+ type: "device",
15820
+ selector: {
15821
+ kind: "ids",
15822
+ ids: targets.map((t) => typeof t === "string" ? Number(t) : t).filter((n) => typeof n === "number" && Number.isInteger(n))
15823
+ },
15824
+ access: Reflect.get(raw, "access")
15825
+ };
15826
+ }
15827
+ var TokenScopeSchema = preprocess(migrateLegacyTokenScope, discriminatedUnion("type", [
15734
15828
  object({
15735
15829
  type: literal("category"),
15736
15830
  target: CapScopeSchema,
@@ -15746,18 +15840,8 @@ var TokenScopeSchema = discriminatedUnion("type", [
15746
15840
  target: string(),
15747
15841
  access: array(MethodAccessSchema).min(1)
15748
15842
  }),
15749
- object({
15750
- type: literal("device"),
15751
- /**
15752
- * One or more deviceIds (serialised as strings for wire-format
15753
- * consistency with the rest of the union). Matcher accepts if
15754
- * `input.deviceId` ∈ `targets`. Array shape avoids the row-explosion
15755
- * of one scope-per-device when granting access to a set of cameras.
15756
- */
15757
- targets: array(string()).min(1),
15758
- access: array(MethodAccessSchema).min(1)
15759
- })
15760
- ]);
15843
+ DeviceTokenScopeSchema
15844
+ ]));
15761
15845
  object({
15762
15846
  id: string(),
15763
15847
  username: string(),
@@ -17813,7 +17897,7 @@ var detectionFpsField = {
17813
17897
  var occupancyRecheckSecField = {
17814
17898
  min: 0,
17815
17899
  max: 300,
17816
- default: 30,
17900
+ default: 300,
17817
17901
  step: 5
17818
17902
  };
17819
17903
  var occupancyRecheckFramesField = {
@@ -23179,7 +23263,41 @@ var intercomCapability = {
23179
23263
  status: {
23180
23264
  schema: IntercomStatusSchema,
23181
23265
  kind: "command-driven"
23182
- }
23266
+ },
23267
+ /**
23268
+ * Runtime-state slice — mirrored by the kernel.
23269
+ *
23270
+ * The cap declared `status` and nothing else, so the only two sources an
23271
+ * exporter has for a value — the `device.state-changed` slice event and the
23272
+ * `deviceState.getAllSnapshots` snapshot, both built from runtime state —
23273
+ * carried nothing for `intercom`. A talk-back entity in Home Assistant would
23274
+ * have been published and never received a value, which is the defect the
23275
+ * export's two classification tables exist to prevent (177 of them, once), so
23276
+ * `intercom` was excluded rather than exported.
23277
+ *
23278
+ * The shape is the status shape: there is exactly one truth about talk-back
23279
+ * and duplicating it into a second schema is how two halves of one capability
23280
+ * come to disagree. Providers write it through
23281
+ * `this.runtimeState.setCapState('intercom', …)` at the four points that open
23282
+ * and close a session, and seed it at registration so the slice exists before
23283
+ * the first session rather than after it.
23284
+ *
23285
+ * **Bound, named rather than hidden:** `talking` mirrors the provider's own
23286
+ * session handle, so a session torn down by a transport death that never
23287
+ * reaches `stopSession` / `endTalkSession` leaves it latched until the next
23288
+ * session or the next restart. That is why the slice is `session` and not
23289
+ * `restored` — a restart must never restore "talking".
23290
+ */
23291
+ runtimeState: IntercomStatusSchema,
23292
+ /**
23293
+ * Runtime-state durability: **session** — `talking` describes a live audio
23294
+ * session, which by definition does not survive the process that held it.
23295
+ * Restoring it would publish a camera as talking to nobody.
23296
+ *
23297
+ * See `RuntimeStateDurability`. Enforced by
23298
+ * `scripts/check-runtime-state-durability.ts`.
23299
+ */
23300
+ durability: "session"
23183
23301
  };
23184
23302
  /**
23185
23303
  * Robotic lawn-mower cap. Models HA `lawn_mower.*` entities — anything
@@ -25964,7 +26082,7 @@ method(object({
25964
26082
  toMs: number()
25965
26083
  }), RecordingAvailabilitySchema, {
25966
26084
  kind: "query",
25967
- auth: "admin"
26085
+ auth: "protected"
25968
26086
  }), method(object({
25969
26087
  deviceId: number(),
25970
26088
  fromMs: number(),
@@ -25972,14 +26090,14 @@ method(object({
25972
26090
  tzOffsetMinutes: number()
25973
26091
  }), RecordingDaysSchema, {
25974
26092
  kind: "query",
25975
- auth: "admin"
26093
+ auth: "protected"
25976
26094
  }), method(object({
25977
26095
  deviceId: number(),
25978
26096
  fromMs: number(),
25979
26097
  toMs: number()
25980
26098
  }), RecordingManifestSchema, {
25981
26099
  kind: "query",
25982
- auth: "admin"
26100
+ auth: "protected"
25983
26101
  }), method(object({}), RecordingStorageUsageSchema, {
25984
26102
  kind: "query",
25985
26103
  auth: "admin"
@@ -28455,6 +28573,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
28455
28573
  humiditySensor: humiditySensorCapability,
28456
28574
  image: imageCapability,
28457
28575
  imageSettings: imageSettingsCapability,
28576
+ intercom: intercomCapability,
28458
28577
  lawnMowerControl: lawnMowerControlCapability,
28459
28578
  lockControl: lockControlCapability,
28460
28579
  mediaPlayer: mediaPlayerCapability,
@@ -34876,6 +34995,1678 @@ Object.freeze({
34876
34995
  access: "create"
34877
34996
  }
34878
34997
  });
34998
+ Object.freeze({
34999
+ "accessories.setChildHidden": [{
35000
+ name: "childDeviceId",
35001
+ form: "single",
35002
+ optional: false
35003
+ }, {
35004
+ name: "deviceId",
35005
+ form: "single",
35006
+ optional: false
35007
+ }],
35008
+ "addonSettings.getDeviceSettings": [{
35009
+ name: "deviceId",
35010
+ form: "single",
35011
+ optional: false
35012
+ }],
35013
+ "addonSettings.updateDeviceSettings": [{
35014
+ name: "deviceId",
35015
+ form: "single",
35016
+ optional: false
35017
+ }],
35018
+ "alarmPanel.arm": [{
35019
+ name: "deviceId",
35020
+ form: "single",
35021
+ optional: false
35022
+ }],
35023
+ "alarmPanel.disarm": [{
35024
+ name: "deviceId",
35025
+ form: "single",
35026
+ optional: false
35027
+ }],
35028
+ "alarmPanel.trigger": [{
35029
+ name: "deviceId",
35030
+ form: "single",
35031
+ optional: false
35032
+ }],
35033
+ "audioAnalysis.resolveDeviceSettings": [{
35034
+ name: "deviceId",
35035
+ form: "single",
35036
+ optional: false
35037
+ }],
35038
+ "audioAnalyzer.classify": [{
35039
+ name: "deviceId",
35040
+ form: "single",
35041
+ optional: true
35042
+ }],
35043
+ "audioMetrics.getCurrentSnapshot": [{
35044
+ name: "deviceId",
35045
+ form: "single",
35046
+ optional: false
35047
+ }],
35048
+ "audioMetrics.getHistory": [{
35049
+ name: "deviceId",
35050
+ form: "single",
35051
+ optional: false
35052
+ }],
35053
+ "automationControl.disable": [{
35054
+ name: "deviceId",
35055
+ form: "single",
35056
+ optional: false
35057
+ }],
35058
+ "automationControl.enable": [{
35059
+ name: "deviceId",
35060
+ form: "single",
35061
+ optional: false
35062
+ }],
35063
+ "automationControl.trigger": [{
35064
+ name: "deviceId",
35065
+ form: "single",
35066
+ optional: false
35067
+ }],
35068
+ "battery.wakeForStream": [{
35069
+ name: "deviceId",
35070
+ form: "single",
35071
+ optional: false
35072
+ }],
35073
+ "brightness.setBrightness": [{
35074
+ name: "deviceId",
35075
+ form: "single",
35076
+ optional: false
35077
+ }],
35078
+ "button.press": [{
35079
+ name: "deviceId",
35080
+ form: "single",
35081
+ optional: false
35082
+ }],
35083
+ "cameraCredentials.getCredentials": [{
35084
+ name: "deviceId",
35085
+ form: "single",
35086
+ optional: false
35087
+ }],
35088
+ "cameraStreams.getBrokerStreams": [{
35089
+ name: "deviceId",
35090
+ form: "single",
35091
+ optional: false
35092
+ }],
35093
+ "cameraStreams.getCameraStreams": [{
35094
+ name: "deviceId",
35095
+ form: "single",
35096
+ optional: false
35097
+ }],
35098
+ "cameraStreams.getProfileRtspEntries": [{
35099
+ name: "deviceId",
35100
+ form: "single",
35101
+ optional: false
35102
+ }],
35103
+ "cameraStreams.getRtspEntries": [{
35104
+ name: "deviceId",
35105
+ form: "single",
35106
+ optional: false
35107
+ }],
35108
+ "cameraStreams.pickStream": [{
35109
+ name: "deviceId",
35110
+ form: "single",
35111
+ optional: false
35112
+ }],
35113
+ "climateControl.setFanMode": [{
35114
+ name: "deviceId",
35115
+ form: "single",
35116
+ optional: false
35117
+ }],
35118
+ "climateControl.setMode": [{
35119
+ name: "deviceId",
35120
+ form: "single",
35121
+ optional: false
35122
+ }],
35123
+ "climateControl.setPreset": [{
35124
+ name: "deviceId",
35125
+ form: "single",
35126
+ optional: false
35127
+ }],
35128
+ "climateControl.setSwingHorizontal": [{
35129
+ name: "deviceId",
35130
+ form: "single",
35131
+ optional: false
35132
+ }],
35133
+ "climateControl.setSwingVertical": [{
35134
+ name: "deviceId",
35135
+ form: "single",
35136
+ optional: false
35137
+ }],
35138
+ "climateControl.setTarget": [{
35139
+ name: "deviceId",
35140
+ form: "single",
35141
+ optional: false
35142
+ }],
35143
+ "climateControl.setTargetHumidity": [{
35144
+ name: "deviceId",
35145
+ form: "single",
35146
+ optional: false
35147
+ }],
35148
+ "climateControl.setTargetRange": [{
35149
+ name: "deviceId",
35150
+ form: "single",
35151
+ optional: false
35152
+ }],
35153
+ "color.setColor": [{
35154
+ name: "deviceId",
35155
+ form: "single",
35156
+ optional: false
35157
+ }],
35158
+ "consumables.reset": [{
35159
+ name: "deviceId",
35160
+ form: "single",
35161
+ optional: false
35162
+ }],
35163
+ "control.setValue": [{
35164
+ name: "deviceId",
35165
+ form: "single",
35166
+ optional: false
35167
+ }],
35168
+ "cover.close": [{
35169
+ name: "deviceId",
35170
+ form: "single",
35171
+ optional: false
35172
+ }],
35173
+ "cover.open": [{
35174
+ name: "deviceId",
35175
+ form: "single",
35176
+ optional: false
35177
+ }],
35178
+ "cover.setPosition": [{
35179
+ name: "deviceId",
35180
+ form: "single",
35181
+ optional: false
35182
+ }],
35183
+ "cover.setTiltPosition": [{
35184
+ name: "deviceId",
35185
+ form: "single",
35186
+ optional: false
35187
+ }],
35188
+ "cover.stop": [{
35189
+ name: "deviceId",
35190
+ form: "single",
35191
+ optional: false
35192
+ }],
35193
+ "dayNight.getOptions": [{
35194
+ name: "deviceId",
35195
+ form: "single",
35196
+ optional: false
35197
+ }],
35198
+ "dayNight.setSettings": [{
35199
+ name: "deviceId",
35200
+ form: "single",
35201
+ optional: false
35202
+ }],
35203
+ "decoder.createSession": [{
35204
+ name: "deviceId",
35205
+ form: "single",
35206
+ optional: true
35207
+ }],
35208
+ "deviceAdoption.release": [{
35209
+ name: "camDeviceId",
35210
+ form: "single",
35211
+ optional: false
35212
+ }],
35213
+ "deviceAdoption.resync": [{
35214
+ name: "camDeviceId",
35215
+ form: "single",
35216
+ optional: false
35217
+ }],
35218
+ "deviceDiscovery.adoptDevice": [{
35219
+ name: "deviceId",
35220
+ form: "single",
35221
+ optional: false
35222
+ }],
35223
+ "deviceDiscovery.listDiscovered": [{
35224
+ name: "deviceId",
35225
+ form: "single",
35226
+ optional: false
35227
+ }],
35228
+ "deviceDiscovery.refreshDiscovery": [{
35229
+ name: "deviceId",
35230
+ form: "single",
35231
+ optional: false
35232
+ }],
35233
+ "deviceDiscovery.releaseDevice": [{
35234
+ name: "childDeviceId",
35235
+ form: "single",
35236
+ optional: false
35237
+ }, {
35238
+ name: "deviceId",
35239
+ form: "single",
35240
+ optional: false
35241
+ }],
35242
+ "deviceManager.adoptionRelease": [{
35243
+ name: "camDeviceId",
35244
+ form: "single",
35245
+ optional: false
35246
+ }],
35247
+ "deviceManager.adoptionResync": [{
35248
+ name: "camDeviceId",
35249
+ form: "single",
35250
+ optional: false
35251
+ }],
35252
+ "deviceManager.applyInitialMeta": [{
35253
+ name: "deviceId",
35254
+ form: "single",
35255
+ optional: false
35256
+ }, {
35257
+ name: "linkDeviceId",
35258
+ form: "single",
35259
+ optional: true
35260
+ }],
35261
+ "deviceManager.disable": [{
35262
+ name: "deviceId",
35263
+ form: "single",
35264
+ optional: false
35265
+ }],
35266
+ "deviceManager.enable": [{
35267
+ name: "deviceId",
35268
+ form: "single",
35269
+ optional: false
35270
+ }],
35271
+ "deviceManager.getBindings": [{
35272
+ name: "deviceId",
35273
+ form: "single",
35274
+ optional: false
35275
+ }],
35276
+ "deviceManager.getChildren": [{
35277
+ name: "parentDeviceId",
35278
+ form: "single",
35279
+ optional: false
35280
+ }],
35281
+ "deviceManager.getConfigSchema": [{
35282
+ name: "deviceId",
35283
+ form: "single",
35284
+ optional: false
35285
+ }],
35286
+ "deviceManager.getDevice": [{
35287
+ name: "deviceId",
35288
+ form: "single",
35289
+ optional: false
35290
+ }],
35291
+ "deviceManager.getDeviceAggregate": [{
35292
+ name: "deviceId",
35293
+ form: "single",
35294
+ optional: false
35295
+ }],
35296
+ "deviceManager.getDeviceLiveInfoAggregate": [{
35297
+ name: "deviceId",
35298
+ form: "single",
35299
+ optional: false
35300
+ }],
35301
+ "deviceManager.getDeviceSettingsAggregate": [{
35302
+ name: "deviceId",
35303
+ form: "single",
35304
+ optional: false
35305
+ }],
35306
+ "deviceManager.getDeviceStatusAggregate": [{
35307
+ name: "deviceId",
35308
+ form: "single",
35309
+ optional: false
35310
+ }],
35311
+ "deviceManager.getDeviceStatusAggregateBatch": [{
35312
+ name: "deviceIds",
35313
+ form: "array",
35314
+ optional: false
35315
+ }],
35316
+ "deviceManager.getLinkedDevices": [{
35317
+ name: "deviceId",
35318
+ form: "single",
35319
+ optional: false
35320
+ }],
35321
+ "deviceManager.getSettingsSchema": [{
35322
+ name: "deviceId",
35323
+ form: "single",
35324
+ optional: false
35325
+ }],
35326
+ "deviceManager.getStreamProfileMap": [{
35327
+ name: "deviceId",
35328
+ form: "single",
35329
+ optional: false
35330
+ }],
35331
+ "deviceManager.getStreamSources": [{
35332
+ name: "deviceId",
35333
+ form: "single",
35334
+ optional: false
35335
+ }],
35336
+ "deviceManager.getWireableFields": [{
35337
+ name: "deviceId",
35338
+ form: "single",
35339
+ optional: false
35340
+ }],
35341
+ "deviceManager.loadConfig": [{
35342
+ name: "deviceId",
35343
+ form: "single",
35344
+ optional: false
35345
+ }],
35346
+ "deviceManager.loadMeta": [{
35347
+ name: "deviceId",
35348
+ form: "single",
35349
+ optional: false
35350
+ }],
35351
+ "deviceManager.loadRuntimeState": [{
35352
+ name: "deviceId",
35353
+ form: "single",
35354
+ optional: false
35355
+ }],
35356
+ "deviceManager.persistConfig": [{
35357
+ name: "deviceId",
35358
+ form: "single",
35359
+ optional: false
35360
+ }],
35361
+ "deviceManager.probeStreams": [{
35362
+ name: "deviceId",
35363
+ form: "single",
35364
+ optional: false
35365
+ }],
35366
+ "deviceManager.registerDevice": [{
35367
+ name: "parentDeviceId",
35368
+ form: "single",
35369
+ optional: true
35370
+ }],
35371
+ "deviceManager.remove": [{
35372
+ name: "deviceId",
35373
+ form: "single",
35374
+ optional: false
35375
+ }],
35376
+ "deviceManager.removeDevice": [{
35377
+ name: "deviceId",
35378
+ form: "single",
35379
+ optional: false
35380
+ }],
35381
+ "deviceManager.runDeviceAction": [{
35382
+ name: "deviceId",
35383
+ form: "single",
35384
+ optional: false
35385
+ }],
35386
+ "deviceManager.setChildLayout": [{
35387
+ name: "deviceId",
35388
+ form: "single",
35389
+ optional: false
35390
+ }],
35391
+ "deviceManager.setDisabled": [{
35392
+ name: "deviceId",
35393
+ form: "single",
35394
+ optional: false
35395
+ }],
35396
+ "deviceManager.setDisplay": [{
35397
+ name: "deviceId",
35398
+ form: "single",
35399
+ optional: false
35400
+ }],
35401
+ "deviceManager.setIntegrationId": [{
35402
+ name: "deviceId",
35403
+ form: "single",
35404
+ optional: false
35405
+ }],
35406
+ "deviceManager.setLinkDeviceId": [{
35407
+ name: "deviceId",
35408
+ form: "single",
35409
+ optional: false
35410
+ }, {
35411
+ name: "linkDeviceId",
35412
+ form: "single",
35413
+ optional: true
35414
+ }],
35415
+ "deviceManager.setLocation": [{
35416
+ name: "deviceId",
35417
+ form: "single",
35418
+ optional: false
35419
+ }],
35420
+ "deviceManager.setMetadata": [{
35421
+ name: "deviceId",
35422
+ form: "single",
35423
+ optional: false
35424
+ }],
35425
+ "deviceManager.setName": [{
35426
+ name: "deviceId",
35427
+ form: "single",
35428
+ optional: false
35429
+ }],
35430
+ "deviceManager.setPrimaryChildEntityId": [{
35431
+ name: "deviceId",
35432
+ form: "single",
35433
+ optional: false
35434
+ }],
35435
+ "deviceManager.setRole": [{
35436
+ name: "deviceId",
35437
+ form: "single",
35438
+ optional: false
35439
+ }],
35440
+ "deviceManager.setStreamProfileMap": [{
35441
+ name: "deviceId",
35442
+ form: "single",
35443
+ optional: false
35444
+ }],
35445
+ "deviceManager.setType": [{
35446
+ name: "deviceId",
35447
+ form: "single",
35448
+ optional: false
35449
+ }],
35450
+ "deviceManager.setWrapperActive": [{
35451
+ name: "deviceId",
35452
+ form: "single",
35453
+ optional: false
35454
+ }],
35455
+ "deviceManager.testField": [{
35456
+ name: "deviceId",
35457
+ form: "single",
35458
+ optional: false
35459
+ }],
35460
+ "deviceManager.updateConfig": [{
35461
+ name: "deviceId",
35462
+ form: "single",
35463
+ optional: false
35464
+ }],
35465
+ "deviceManager.updateDeviceField": [{
35466
+ name: "deviceId",
35467
+ form: "single",
35468
+ optional: false
35469
+ }],
35470
+ "deviceManager.updateDeviceFieldsBatch": [{
35471
+ name: "deviceId",
35472
+ form: "single",
35473
+ optional: false
35474
+ }],
35475
+ "deviceOps.getConfigEntries": [{
35476
+ name: "deviceId",
35477
+ form: "single",
35478
+ optional: false
35479
+ }],
35480
+ "deviceOps.getRawState": [{
35481
+ name: "deviceId",
35482
+ form: "single",
35483
+ optional: false
35484
+ }],
35485
+ "deviceOps.getSettingsSchema": [{
35486
+ name: "deviceId",
35487
+ form: "single",
35488
+ optional: false
35489
+ }],
35490
+ "deviceOps.getStreamSources": [{
35491
+ name: "deviceId",
35492
+ form: "single",
35493
+ optional: false
35494
+ }],
35495
+ "deviceOps.removeDevice": [{
35496
+ name: "deviceId",
35497
+ form: "single",
35498
+ optional: false
35499
+ }],
35500
+ "deviceOps.runAction": [{
35501
+ name: "deviceId",
35502
+ form: "single",
35503
+ optional: false
35504
+ }],
35505
+ "deviceOps.setConfig": [{
35506
+ name: "deviceId",
35507
+ form: "single",
35508
+ optional: false
35509
+ }],
35510
+ "deviceState.getCapSlice": [{
35511
+ name: "deviceId",
35512
+ form: "single",
35513
+ optional: false
35514
+ }],
35515
+ "deviceState.getSnapshot": [{
35516
+ name: "deviceId",
35517
+ form: "single",
35518
+ optional: false
35519
+ }],
35520
+ "deviceState.setCapSlice": [{
35521
+ name: "deviceId",
35522
+ form: "single",
35523
+ optional: false
35524
+ }],
35525
+ "events.getEventClipUrl": [{
35526
+ name: "deviceId",
35527
+ form: "single",
35528
+ optional: false
35529
+ }],
35530
+ "events.getEvents": [{
35531
+ name: "deviceId",
35532
+ form: "single",
35533
+ optional: false
35534
+ }],
35535
+ "events.getEventThumbnail": [{
35536
+ name: "deviceId",
35537
+ form: "single",
35538
+ optional: false
35539
+ }],
35540
+ "faceGallery.getFaceByTrack": [{
35541
+ name: "deviceId",
35542
+ form: "single",
35543
+ optional: false
35544
+ }],
35545
+ "faceGallery.listRecentFaces": [{
35546
+ name: "deviceId",
35547
+ form: "single",
35548
+ optional: true
35549
+ }],
35550
+ "fanControl.setDirection": [{
35551
+ name: "deviceId",
35552
+ form: "single",
35553
+ optional: false
35554
+ }],
35555
+ "fanControl.setOscillating": [{
35556
+ name: "deviceId",
35557
+ form: "single",
35558
+ optional: false
35559
+ }],
35560
+ "fanControl.setPercentage": [{
35561
+ name: "deviceId",
35562
+ form: "single",
35563
+ optional: false
35564
+ }],
35565
+ "fanControl.setPreset": [{
35566
+ name: "deviceId",
35567
+ form: "single",
35568
+ optional: false
35569
+ }],
35570
+ "humidifier.setMode": [{
35571
+ name: "deviceId",
35572
+ form: "single",
35573
+ optional: false
35574
+ }],
35575
+ "humidifier.setOn": [{
35576
+ name: "deviceId",
35577
+ form: "single",
35578
+ optional: false
35579
+ }],
35580
+ "humidifier.setTargetHumidity": [{
35581
+ name: "deviceId",
35582
+ form: "single",
35583
+ optional: false
35584
+ }],
35585
+ "imageSettings.getOptions": [{
35586
+ name: "deviceId",
35587
+ form: "single",
35588
+ optional: false
35589
+ }],
35590
+ "imageSettings.setSettings": [{
35591
+ name: "deviceId",
35592
+ form: "single",
35593
+ optional: false
35594
+ }],
35595
+ "intercom.endTalkSession": [{
35596
+ name: "deviceId",
35597
+ form: "single",
35598
+ optional: false
35599
+ }],
35600
+ "intercom.handleAnswer": [{
35601
+ name: "deviceId",
35602
+ form: "single",
35603
+ optional: false
35604
+ }],
35605
+ "intercom.pushTalkAudio": [{
35606
+ name: "deviceId",
35607
+ form: "single",
35608
+ optional: false
35609
+ }],
35610
+ "intercom.startSession": [{
35611
+ name: "deviceId",
35612
+ form: "single",
35613
+ optional: false
35614
+ }],
35615
+ "intercom.startTalkSession": [{
35616
+ name: "deviceId",
35617
+ form: "single",
35618
+ optional: false
35619
+ }],
35620
+ "intercom.stopSession": [{
35621
+ name: "deviceId",
35622
+ form: "single",
35623
+ optional: false
35624
+ }],
35625
+ "lawnMowerControl.dock": [{
35626
+ name: "deviceId",
35627
+ form: "single",
35628
+ optional: false
35629
+ }],
35630
+ "lawnMowerControl.pause": [{
35631
+ name: "deviceId",
35632
+ form: "single",
35633
+ optional: false
35634
+ }],
35635
+ "lawnMowerControl.startMowing": [{
35636
+ name: "deviceId",
35637
+ form: "single",
35638
+ optional: false
35639
+ }],
35640
+ "lockControl.lock": [{
35641
+ name: "deviceId",
35642
+ form: "single",
35643
+ optional: false
35644
+ }],
35645
+ "lockControl.open": [{
35646
+ name: "deviceId",
35647
+ form: "single",
35648
+ optional: false
35649
+ }],
35650
+ "lockControl.unlock": [{
35651
+ name: "deviceId",
35652
+ form: "single",
35653
+ optional: false
35654
+ }],
35655
+ "mediaPlayer.next": [{
35656
+ name: "deviceId",
35657
+ form: "single",
35658
+ optional: false
35659
+ }],
35660
+ "mediaPlayer.pause": [{
35661
+ name: "deviceId",
35662
+ form: "single",
35663
+ optional: false
35664
+ }],
35665
+ "mediaPlayer.play": [{
35666
+ name: "deviceId",
35667
+ form: "single",
35668
+ optional: false
35669
+ }],
35670
+ "mediaPlayer.playMedia": [{
35671
+ name: "deviceId",
35672
+ form: "single",
35673
+ optional: false
35674
+ }],
35675
+ "mediaPlayer.previous": [{
35676
+ name: "deviceId",
35677
+ form: "single",
35678
+ optional: false
35679
+ }],
35680
+ "mediaPlayer.seek": [{
35681
+ name: "deviceId",
35682
+ form: "single",
35683
+ optional: false
35684
+ }],
35685
+ "mediaPlayer.selectSource": [{
35686
+ name: "deviceId",
35687
+ form: "single",
35688
+ optional: false
35689
+ }],
35690
+ "mediaPlayer.setMute": [{
35691
+ name: "deviceId",
35692
+ form: "single",
35693
+ optional: false
35694
+ }],
35695
+ "mediaPlayer.setRepeat": [{
35696
+ name: "deviceId",
35697
+ form: "single",
35698
+ optional: false
35699
+ }],
35700
+ "mediaPlayer.setShuffle": [{
35701
+ name: "deviceId",
35702
+ form: "single",
35703
+ optional: false
35704
+ }],
35705
+ "mediaPlayer.setVolume": [{
35706
+ name: "deviceId",
35707
+ form: "single",
35708
+ optional: false
35709
+ }],
35710
+ "mediaPlayer.stop": [{
35711
+ name: "deviceId",
35712
+ form: "single",
35713
+ optional: false
35714
+ }],
35715
+ "motion.isDetected": [{
35716
+ name: "deviceId",
35717
+ form: "single",
35718
+ optional: false
35719
+ }],
35720
+ "motionDetection.analyze": [{
35721
+ name: "deviceId",
35722
+ form: "single",
35723
+ optional: false
35724
+ }],
35725
+ "motionDetection.removeCamera": [{
35726
+ name: "deviceId",
35727
+ form: "single",
35728
+ optional: false
35729
+ }],
35730
+ "motionTrigger.setMotionTrigger": [{
35731
+ name: "deviceId",
35732
+ form: "single",
35733
+ optional: false
35734
+ }],
35735
+ "motionZones.getOptions": [{
35736
+ name: "deviceId",
35737
+ form: "single",
35738
+ optional: false
35739
+ }],
35740
+ "motionZones.setZone": [{
35741
+ name: "deviceId",
35742
+ form: "single",
35743
+ optional: false
35744
+ }],
35745
+ "nativeObjectDetection.setEnabled": [{
35746
+ name: "deviceId",
35747
+ form: "single",
35748
+ optional: false
35749
+ }],
35750
+ "networkQuality.getDeviceStats": [{
35751
+ name: "deviceId",
35752
+ form: "single",
35753
+ optional: false
35754
+ }],
35755
+ "networkQuality.reportClientStats": [{
35756
+ name: "deviceId",
35757
+ form: "single",
35758
+ optional: false
35759
+ }],
35760
+ "notificationRules.setDeviceMuted": [{
35761
+ name: "deviceId",
35762
+ form: "single",
35763
+ optional: false
35764
+ }],
35765
+ "notifier.cancel": [{
35766
+ name: "deviceId",
35767
+ form: "single",
35768
+ optional: false
35769
+ }],
35770
+ "notifier.send": [{
35771
+ name: "deviceId",
35772
+ form: "single",
35773
+ optional: false
35774
+ }],
35775
+ "osd.setOverlay": [{
35776
+ name: "deviceId",
35777
+ form: "single",
35778
+ optional: false
35779
+ }],
35780
+ "osdManager.clearSlotBinding": [{
35781
+ name: "deviceId",
35782
+ form: "single",
35783
+ optional: false
35784
+ }],
35785
+ "osdManager.copyDeviceConfiguration": [{
35786
+ name: "sourceDeviceId",
35787
+ form: "single",
35788
+ optional: false
35789
+ }, {
35790
+ name: "targetDeviceId",
35791
+ form: "single",
35792
+ optional: false
35793
+ }],
35794
+ "osdManager.getDeviceOsd": [{
35795
+ name: "deviceId",
35796
+ form: "single",
35797
+ optional: false
35798
+ }],
35799
+ "osdManager.getSourceCatalog": [{
35800
+ name: "deviceId",
35801
+ form: "single",
35802
+ optional: false
35803
+ }],
35804
+ "osdManager.previewSlot": [{
35805
+ name: "deviceId",
35806
+ form: "single",
35807
+ optional: false
35808
+ }],
35809
+ "osdManager.renderDevice": [{
35810
+ name: "deviceId",
35811
+ form: "single",
35812
+ optional: false
35813
+ }],
35814
+ "osdManager.setSlotBinding": [{
35815
+ name: "deviceId",
35816
+ form: "single",
35817
+ optional: false
35818
+ }],
35819
+ "petFeeder.callPet": [{
35820
+ name: "deviceId",
35821
+ form: "single",
35822
+ optional: false
35823
+ }],
35824
+ "petFeeder.cancelFeed": [{
35825
+ name: "deviceId",
35826
+ form: "single",
35827
+ optional: false
35828
+ }],
35829
+ "petFeeder.feed": [{
35830
+ name: "deviceId",
35831
+ form: "single",
35832
+ optional: false
35833
+ }],
35834
+ "petFeeder.markFoodReplenished": [{
35835
+ name: "deviceId",
35836
+ form: "single",
35837
+ optional: false
35838
+ }],
35839
+ "petFeeder.playSound": [{
35840
+ name: "deviceId",
35841
+ form: "single",
35842
+ optional: false
35843
+ }],
35844
+ "petFeeder.resetDesiccant": [{
35845
+ name: "deviceId",
35846
+ form: "single",
35847
+ optional: false
35848
+ }],
35849
+ "petFeeder.setChildLock": [{
35850
+ name: "deviceId",
35851
+ form: "single",
35852
+ optional: false
35853
+ }],
35854
+ "petFeeder.setFeedSound": [{
35855
+ name: "deviceId",
35856
+ form: "single",
35857
+ optional: false
35858
+ }],
35859
+ "petFeeder.setIndicatorLight": [{
35860
+ name: "deviceId",
35861
+ form: "single",
35862
+ optional: false
35863
+ }],
35864
+ "petFeeder.setVolume": [{
35865
+ name: "deviceId",
35866
+ form: "single",
35867
+ optional: false
35868
+ }],
35869
+ "pipelineAnalytics.clearTracks": [{
35870
+ name: "deviceId",
35871
+ form: "single",
35872
+ optional: false
35873
+ }],
35874
+ "pipelineAnalytics.completeRetrainTrack": [{
35875
+ name: "deviceId",
35876
+ form: "single",
35877
+ optional: false
35878
+ }],
35879
+ "pipelineAnalytics.deleteDeviceEvents": [{
35880
+ name: "deviceId",
35881
+ form: "single",
35882
+ optional: false
35883
+ }],
35884
+ "pipelineAnalytics.deleteTracks": [{
35885
+ name: "deviceId",
35886
+ form: "single",
35887
+ optional: false
35888
+ }],
35889
+ "pipelineAnalytics.deselectRetrainFrame": [{
35890
+ name: "deviceId",
35891
+ form: "single",
35892
+ optional: false
35893
+ }],
35894
+ "pipelineAnalytics.getActiveTracks": [{
35895
+ name: "deviceId",
35896
+ form: "single",
35897
+ optional: false
35898
+ }],
35899
+ "pipelineAnalytics.getAudioEvents": [{
35900
+ name: "deviceId",
35901
+ form: "single",
35902
+ optional: false
35903
+ }],
35904
+ "pipelineAnalytics.getEventDensity": [{
35905
+ name: "deviceId",
35906
+ form: "single",
35907
+ optional: false
35908
+ }],
35909
+ "pipelineAnalytics.getKeyEvents": [{
35910
+ name: "deviceId",
35911
+ form: "single",
35912
+ optional: false
35913
+ }],
35914
+ "pipelineAnalytics.getMotionEvents": [{
35915
+ name: "deviceId",
35916
+ form: "single",
35917
+ optional: false
35918
+ }],
35919
+ "pipelineAnalytics.getObjectEvents": [{
35920
+ name: "deviceId",
35921
+ form: "single",
35922
+ optional: false
35923
+ }],
35924
+ "pipelineAnalytics.getRetrainExportUrl": [{
35925
+ name: "deviceIds",
35926
+ form: "array",
35927
+ optional: true
35928
+ }],
35929
+ "pipelineAnalytics.getSensorEvents": [{
35930
+ name: "deviceId",
35931
+ form: "single",
35932
+ optional: false
35933
+ }],
35934
+ "pipelineAnalytics.getTrack": [{
35935
+ name: "deviceId",
35936
+ form: "single",
35937
+ optional: false
35938
+ }],
35939
+ "pipelineAnalytics.getTrainingExportSummary": [{
35940
+ name: "deviceIds",
35941
+ form: "array",
35942
+ optional: true
35943
+ }],
35944
+ "pipelineAnalytics.getTrainingExportUrl": [{
35945
+ name: "deviceIds",
35946
+ form: "array",
35947
+ optional: true
35948
+ }],
35949
+ "pipelineAnalytics.listEventKinds": [{
35950
+ name: "deviceId",
35951
+ form: "single",
35952
+ optional: false
35953
+ }],
35954
+ "pipelineAnalytics.listEventKindsBatch": [{
35955
+ name: "deviceIds",
35956
+ form: "array",
35957
+ optional: false
35958
+ }],
35959
+ "pipelineAnalytics.listOpsLog": [{
35960
+ name: "deviceId",
35961
+ form: "single",
35962
+ optional: true
35963
+ }],
35964
+ "pipelineAnalytics.listRecentTracks": [{
35965
+ name: "deviceIds",
35966
+ form: "array",
35967
+ optional: false
35968
+ }],
35969
+ "pipelineAnalytics.listRetrainStaging": [{
35970
+ name: "deviceIds",
35971
+ form: "array",
35972
+ optional: true
35973
+ }],
35974
+ "pipelineAnalytics.listTracks": [{
35975
+ name: "deviceId",
35976
+ form: "single",
35977
+ optional: false
35978
+ }],
35979
+ "pipelineAnalytics.proposeRetrainAnnotations": [{
35980
+ name: "deviceId",
35981
+ form: "single",
35982
+ optional: false
35983
+ }],
35984
+ "pipelineAnalytics.pruneEventsBefore": [{
35985
+ name: "deviceId",
35986
+ form: "single",
35987
+ optional: false
35988
+ }],
35989
+ "pipelineAnalytics.pruneTracksBefore": [{
35990
+ name: "deviceId",
35991
+ form: "single",
35992
+ optional: false
35993
+ }],
35994
+ "pipelineAnalytics.rebuildObjectEmbeddings": [{
35995
+ name: "deviceId",
35996
+ form: "single",
35997
+ optional: true
35998
+ }],
35999
+ "pipelineAnalytics.restageRetrainTrack": [{
36000
+ name: "deviceId",
36001
+ form: "single",
36002
+ optional: false
36003
+ }],
36004
+ "pipelineAnalytics.saveRetrainAnnotations": [{
36005
+ name: "deviceId",
36006
+ form: "single",
36007
+ optional: false
36008
+ }],
36009
+ "pipelineAnalytics.searchObjectEvents": [{
36010
+ name: "deviceId",
36011
+ form: "single",
36012
+ optional: true
36013
+ }],
36014
+ "pipelineAnalytics.selectRetrainFrames": [{
36015
+ name: "deviceId",
36016
+ form: "single",
36017
+ optional: false
36018
+ }],
36019
+ "pipelineAnalytics.setTrackFlags": [{
36020
+ name: "deviceId",
36021
+ form: "single",
36022
+ optional: false
36023
+ }],
36024
+ "pipelineAnalytics.wipeAllAnalytics": [{
36025
+ name: "deviceId",
36026
+ form: "single",
36027
+ optional: false
36028
+ }],
36029
+ "pipelineExecutor.runPipeline": [{
36030
+ name: "deviceId",
36031
+ form: "single",
36032
+ optional: true
36033
+ }],
36034
+ "pipelineExecutor.runPipelineBatch": [{
36035
+ name: "deviceId",
36036
+ form: "single",
36037
+ optional: true
36038
+ }],
36039
+ "pipelineOrchestrator.assignAudio": [{
36040
+ name: "deviceId",
36041
+ form: "single",
36042
+ optional: false
36043
+ }],
36044
+ "pipelineOrchestrator.assignPipeline": [{
36045
+ name: "deviceId",
36046
+ form: "single",
36047
+ optional: false
36048
+ }],
36049
+ "pipelineOrchestrator.getAudioAssignment": [{
36050
+ name: "deviceId",
36051
+ form: "single",
36052
+ optional: false
36053
+ }],
36054
+ "pipelineOrchestrator.getCameraMetrics": [{
36055
+ name: "deviceId",
36056
+ form: "single",
36057
+ optional: false
36058
+ }],
36059
+ "pipelineOrchestrator.getCameraSettings": [{
36060
+ name: "deviceId",
36061
+ form: "single",
36062
+ optional: false
36063
+ }],
36064
+ "pipelineOrchestrator.getCameraStatus": [{
36065
+ name: "deviceId",
36066
+ form: "single",
36067
+ optional: false
36068
+ }],
36069
+ "pipelineOrchestrator.getCameraStatuses": [{
36070
+ name: "deviceIds",
36071
+ form: "array",
36072
+ optional: true
36073
+ }],
36074
+ "pipelineOrchestrator.getCameraStepOverrides": [{
36075
+ name: "deviceId",
36076
+ form: "single",
36077
+ optional: false
36078
+ }],
36079
+ "pipelineOrchestrator.getCameraSwitches": [{
36080
+ name: "deviceId",
36081
+ form: "single",
36082
+ optional: false
36083
+ }],
36084
+ "pipelineOrchestrator.getPipelineAssignment": [{
36085
+ name: "deviceId",
36086
+ form: "single",
36087
+ optional: false
36088
+ }],
36089
+ "pipelineOrchestrator.getPipelineDevicePin": [{
36090
+ name: "deviceId",
36091
+ form: "single",
36092
+ optional: false
36093
+ }],
36094
+ "pipelineOrchestrator.resolvePipeline": [{
36095
+ name: "deviceId",
36096
+ form: "single",
36097
+ optional: false
36098
+ }],
36099
+ "pipelineOrchestrator.setCameraPipelineForAgent": [{
36100
+ name: "deviceId",
36101
+ form: "single",
36102
+ optional: false
36103
+ }],
36104
+ "pipelineOrchestrator.setCameraStepOverride": [{
36105
+ name: "deviceId",
36106
+ form: "single",
36107
+ optional: false
36108
+ }],
36109
+ "pipelineOrchestrator.setCameraStepToggle": [{
36110
+ name: "deviceId",
36111
+ form: "single",
36112
+ optional: false
36113
+ }],
36114
+ "pipelineOrchestrator.setCameraSwitch": [{
36115
+ name: "deviceId",
36116
+ form: "single",
36117
+ optional: false
36118
+ }],
36119
+ "pipelineOrchestrator.setPipelineDevicePin": [{
36120
+ name: "deviceId",
36121
+ form: "single",
36122
+ optional: false
36123
+ }],
36124
+ "pipelineOrchestrator.unassignAudio": [{
36125
+ name: "deviceId",
36126
+ form: "single",
36127
+ optional: false
36128
+ }],
36129
+ "pipelineOrchestrator.unassignPipeline": [{
36130
+ name: "deviceId",
36131
+ form: "single",
36132
+ optional: false
36133
+ }],
36134
+ "pipelineRunner.attachCamera": [{
36135
+ name: "deviceId",
36136
+ form: "single",
36137
+ optional: false
36138
+ }],
36139
+ "pipelineRunner.detachCamera": [{
36140
+ name: "deviceId",
36141
+ form: "single",
36142
+ optional: false
36143
+ }],
36144
+ "pipelineRunner.getCameraMetrics": [{
36145
+ name: "deviceId",
36146
+ form: "single",
36147
+ optional: false
36148
+ }],
36149
+ "pipelineRunner.reportMotion": [{
36150
+ name: "deviceId",
36151
+ form: "single",
36152
+ optional: false
36153
+ }],
36154
+ "pipelineRunner.runDetailSubtree": [{
36155
+ name: "deviceId",
36156
+ form: "single",
36157
+ optional: false
36158
+ }],
36159
+ "pipelineRunner.runStatelessStep": [{
36160
+ name: "sourceDeviceId",
36161
+ form: "single",
36162
+ optional: false
36163
+ }],
36164
+ "plateGallery.getPlateByTrack": [{
36165
+ name: "deviceId",
36166
+ form: "single",
36167
+ optional: false
36168
+ }],
36169
+ "plateGallery.listPlates": [{
36170
+ name: "deviceId",
36171
+ form: "single",
36172
+ optional: true
36173
+ }],
36174
+ "privacyMask.getOptions": [{
36175
+ name: "deviceId",
36176
+ form: "single",
36177
+ optional: false
36178
+ }],
36179
+ "privacyMask.setAudioEnabled": [{
36180
+ name: "deviceId",
36181
+ form: "single",
36182
+ optional: false
36183
+ }],
36184
+ "privacyMask.setMask": [{
36185
+ name: "deviceId",
36186
+ form: "single",
36187
+ optional: false
36188
+ }],
36189
+ "ptz.continuousMove": [{
36190
+ name: "deviceId",
36191
+ form: "single",
36192
+ optional: false
36193
+ }],
36194
+ "ptz.deletePreset": [{
36195
+ name: "deviceId",
36196
+ form: "single",
36197
+ optional: false
36198
+ }],
36199
+ "ptz.getOptions": [{
36200
+ name: "deviceId",
36201
+ form: "single",
36202
+ optional: false
36203
+ }],
36204
+ "ptz.getPosition": [{
36205
+ name: "deviceId",
36206
+ form: "single",
36207
+ optional: false
36208
+ }],
36209
+ "ptz.getPresets": [{
36210
+ name: "deviceId",
36211
+ form: "single",
36212
+ optional: false
36213
+ }],
36214
+ "ptz.goHome": [{
36215
+ name: "deviceId",
36216
+ form: "single",
36217
+ optional: false
36218
+ }],
36219
+ "ptz.goToPreset": [{
36220
+ name: "deviceId",
36221
+ form: "single",
36222
+ optional: false
36223
+ }],
36224
+ "ptz.move": [{
36225
+ name: "deviceId",
36226
+ form: "single",
36227
+ optional: false
36228
+ }],
36229
+ "ptz.savePreset": [{
36230
+ name: "deviceId",
36231
+ form: "single",
36232
+ optional: false
36233
+ }],
36234
+ "ptz.setAutofocus": [{
36235
+ name: "deviceId",
36236
+ form: "single",
36237
+ optional: false
36238
+ }],
36239
+ "ptz.stop": [{
36240
+ name: "deviceId",
36241
+ form: "single",
36242
+ optional: false
36243
+ }],
36244
+ "ptzAutotrack.getSettings": [{
36245
+ name: "deviceId",
36246
+ form: "single",
36247
+ optional: false
36248
+ }],
36249
+ "ptzAutotrack.getStatus": [{
36250
+ name: "deviceId",
36251
+ form: "single",
36252
+ optional: false
36253
+ }],
36254
+ "ptzAutotrack.setEnabled": [{
36255
+ name: "deviceId",
36256
+ form: "single",
36257
+ optional: false
36258
+ }],
36259
+ "ptzAutotrack.setSettings": [{
36260
+ name: "deviceId",
36261
+ form: "single",
36262
+ optional: false
36263
+ }],
36264
+ "reboot.reboot": [{
36265
+ name: "deviceId",
36266
+ form: "single",
36267
+ optional: false
36268
+ }],
36269
+ "recording.deleteFootprint": [{
36270
+ name: "deviceId",
36271
+ form: "single",
36272
+ optional: false
36273
+ }],
36274
+ "recording.getAvailability": [{
36275
+ name: "deviceId",
36276
+ form: "single",
36277
+ optional: false
36278
+ }],
36279
+ "recording.getDaysWithRecordings": [{
36280
+ name: "deviceId",
36281
+ form: "single",
36282
+ optional: false
36283
+ }],
36284
+ "recording.getDeviceConfig": [{
36285
+ name: "deviceId",
36286
+ form: "single",
36287
+ optional: false
36288
+ }],
36289
+ "recording.getPlaybackManifest": [{
36290
+ name: "deviceId",
36291
+ form: "single",
36292
+ optional: false
36293
+ }],
36294
+ "recording.listOpsLog": [{
36295
+ name: "deviceId",
36296
+ form: "single",
36297
+ optional: true
36298
+ }],
36299
+ "recording.locateSegment": [{
36300
+ name: "deviceId",
36301
+ form: "single",
36302
+ optional: false
36303
+ }],
36304
+ "recording.pruneFootage": [{
36305
+ name: "deviceId",
36306
+ form: "single",
36307
+ optional: false
36308
+ }],
36309
+ "recording.readGopBytes": [{
36310
+ name: "deviceId",
36311
+ form: "single",
36312
+ optional: false
36313
+ }],
36314
+ "recording.readSegmentBytes": [{
36315
+ name: "deviceId",
36316
+ form: "single",
36317
+ optional: false
36318
+ }],
36319
+ "recording.relocateFootage": [{
36320
+ name: "deviceId",
36321
+ form: "single",
36322
+ optional: true
36323
+ }],
36324
+ "recording.renderClip": [{
36325
+ name: "deviceId",
36326
+ form: "single",
36327
+ optional: false
36328
+ }],
36329
+ "recording.renderGif": [{
36330
+ name: "deviceId",
36331
+ form: "single",
36332
+ optional: false
36333
+ }],
36334
+ "recording.rescanStorage": [{
36335
+ name: "deviceId",
36336
+ form: "single",
36337
+ optional: false
36338
+ }],
36339
+ "recording.setDeviceConfig": [{
36340
+ name: "deviceId",
36341
+ form: "single",
36342
+ optional: false
36343
+ }],
36344
+ "recording.startStorageMigrationMove": [{
36345
+ name: "deviceId",
36346
+ form: "single",
36347
+ optional: true
36348
+ }],
36349
+ "recordingExport.createExport": [{
36350
+ name: "deviceId",
36351
+ form: "single",
36352
+ optional: false
36353
+ }],
36354
+ "recordingExport.listExports": [{
36355
+ name: "deviceId",
36356
+ form: "single",
36357
+ optional: true
36358
+ }],
36359
+ "sceneMonitor.captureReference": [{
36360
+ name: "deviceId",
36361
+ form: "single",
36362
+ optional: false
36363
+ }],
36364
+ "sceneMonitor.createScene": [{
36365
+ name: "deviceId",
36366
+ form: "single",
36367
+ optional: false
36368
+ }],
36369
+ "sceneMonitor.deleteReference": [{
36370
+ name: "deviceId",
36371
+ form: "single",
36372
+ optional: false
36373
+ }],
36374
+ "sceneMonitor.deleteScene": [{
36375
+ name: "deviceId",
36376
+ form: "single",
36377
+ optional: false
36378
+ }],
36379
+ "sceneMonitor.listScenes": [{
36380
+ name: "deviceId",
36381
+ form: "single",
36382
+ optional: false
36383
+ }],
36384
+ "sceneMonitor.recheckNow": [{
36385
+ name: "deviceId",
36386
+ form: "single",
36387
+ optional: false
36388
+ }],
36389
+ "sceneMonitor.updateScene": [{
36390
+ name: "deviceId",
36391
+ form: "single",
36392
+ optional: false
36393
+ }],
36394
+ "scriptRunner.run": [{
36395
+ name: "deviceId",
36396
+ form: "single",
36397
+ optional: false
36398
+ }],
36399
+ "scriptRunner.stop": [{
36400
+ name: "deviceId",
36401
+ form: "single",
36402
+ optional: false
36403
+ }],
36404
+ "snapshot.getSnapshot": [{
36405
+ name: "deviceId",
36406
+ form: "single",
36407
+ optional: false
36408
+ }],
36409
+ "snapshot.getSnapshotOverview": [{
36410
+ name: "deviceIds",
36411
+ form: "array",
36412
+ optional: false
36413
+ }],
36414
+ "snapshot.invalidateCache": [{
36415
+ name: "deviceId",
36416
+ form: "single",
36417
+ optional: false
36418
+ }],
36419
+ "streamBroker.acquireEgressTranscode": [{
36420
+ name: "deviceId",
36421
+ form: "single",
36422
+ optional: false
36423
+ }],
36424
+ "streamBroker.assignProfile": [{
36425
+ name: "deviceId",
36426
+ form: "single",
36427
+ optional: false
36428
+ }],
36429
+ "streamBroker.getDeviceAudioMute": [{
36430
+ name: "deviceId",
36431
+ form: "single",
36432
+ optional: false
36433
+ }],
36434
+ "streamBroker.getStreamWithCodec": [{
36435
+ name: "deviceId",
36436
+ form: "single",
36437
+ optional: false
36438
+ }],
36439
+ "streamBroker.produceEventMedia": [{
36440
+ name: "deviceId",
36441
+ form: "single",
36442
+ optional: false
36443
+ }],
36444
+ "streamBroker.publishCameraStream": [{
36445
+ name: "deviceId",
36446
+ form: "single",
36447
+ optional: false
36448
+ }],
36449
+ "streamBroker.renderPreBufferClip": [{
36450
+ name: "deviceId",
36451
+ form: "single",
36452
+ optional: false
36453
+ }],
36454
+ "streamBroker.restartProfile": [{
36455
+ name: "deviceId",
36456
+ form: "single",
36457
+ optional: false
36458
+ }],
36459
+ "streamBroker.retractCameraStream": [{
36460
+ name: "deviceId",
36461
+ form: "single",
36462
+ optional: false
36463
+ }],
36464
+ "streamBroker.setDeviceAudioMute": [{
36465
+ name: "deviceId",
36466
+ form: "single",
36467
+ optional: false
36468
+ }],
36469
+ "streamBroker.unassignProfile": [{
36470
+ name: "deviceId",
36471
+ form: "single",
36472
+ optional: false
36473
+ }],
36474
+ "streamCatalog.getCatalog": [{
36475
+ name: "deviceId",
36476
+ form: "single",
36477
+ optional: false
36478
+ }],
36479
+ "streamParams.getConfigSchema": [{
36480
+ name: "deviceId",
36481
+ form: "single",
36482
+ optional: false
36483
+ }],
36484
+ "streamParams.getOptions": [{
36485
+ name: "deviceId",
36486
+ form: "single",
36487
+ optional: false
36488
+ }],
36489
+ "streamParams.setProfile": [{
36490
+ name: "deviceId",
36491
+ form: "single",
36492
+ optional: false
36493
+ }],
36494
+ "switch.setState": [{
36495
+ name: "deviceId",
36496
+ form: "single",
36497
+ optional: false
36498
+ }],
36499
+ "vacuumControl.locate": [{
36500
+ name: "deviceId",
36501
+ form: "single",
36502
+ optional: false
36503
+ }],
36504
+ "vacuumControl.pause": [{
36505
+ name: "deviceId",
36506
+ form: "single",
36507
+ optional: false
36508
+ }],
36509
+ "vacuumControl.returnToBase": [{
36510
+ name: "deviceId",
36511
+ form: "single",
36512
+ optional: false
36513
+ }],
36514
+ "vacuumControl.setFanSpeed": [{
36515
+ name: "deviceId",
36516
+ form: "single",
36517
+ optional: false
36518
+ }],
36519
+ "vacuumControl.start": [{
36520
+ name: "deviceId",
36521
+ form: "single",
36522
+ optional: false
36523
+ }],
36524
+ "vacuumControl.stop": [{
36525
+ name: "deviceId",
36526
+ form: "single",
36527
+ optional: false
36528
+ }],
36529
+ "valve.close": [{
36530
+ name: "deviceId",
36531
+ form: "single",
36532
+ optional: false
36533
+ }],
36534
+ "valve.open": [{
36535
+ name: "deviceId",
36536
+ form: "single",
36537
+ optional: false
36538
+ }],
36539
+ "valve.setPosition": [{
36540
+ name: "deviceId",
36541
+ form: "single",
36542
+ optional: false
36543
+ }],
36544
+ "valve.stop": [{
36545
+ name: "deviceId",
36546
+ form: "single",
36547
+ optional: false
36548
+ }],
36549
+ "videoclips.getClipPlayback": [{
36550
+ name: "deviceId",
36551
+ form: "single",
36552
+ optional: false
36553
+ }],
36554
+ "videoclips.listClips": [{
36555
+ name: "deviceId",
36556
+ form: "single",
36557
+ optional: false
36558
+ }],
36559
+ "waterHeater.setAway": [{
36560
+ name: "deviceId",
36561
+ form: "single",
36562
+ optional: false
36563
+ }],
36564
+ "waterHeater.setOperationMode": [{
36565
+ name: "deviceId",
36566
+ form: "single",
36567
+ optional: false
36568
+ }],
36569
+ "waterHeater.setTargetTemp": [{
36570
+ name: "deviceId",
36571
+ form: "single",
36572
+ optional: false
36573
+ }],
36574
+ "webrtcSession.addIceCandidate": [{
36575
+ name: "deviceId",
36576
+ form: "single",
36577
+ optional: false
36578
+ }],
36579
+ "webrtcSession.closeSession": [{
36580
+ name: "deviceId",
36581
+ form: "single",
36582
+ optional: false
36583
+ }],
36584
+ "webrtcSession.createSession": [{
36585
+ name: "deviceId",
36586
+ form: "single",
36587
+ optional: false
36588
+ }],
36589
+ "webrtcSession.getIceCandidates": [{
36590
+ name: "deviceId",
36591
+ form: "single",
36592
+ optional: false
36593
+ }],
36594
+ "webrtcSession.getSessionState": [{
36595
+ name: "deviceId",
36596
+ form: "single",
36597
+ optional: false
36598
+ }],
36599
+ "webrtcSession.handleAnswer": [{
36600
+ name: "deviceId",
36601
+ form: "single",
36602
+ optional: false
36603
+ }],
36604
+ "webrtcSession.handleOffer": [{
36605
+ name: "deviceId",
36606
+ form: "single",
36607
+ optional: false
36608
+ }],
36609
+ "webrtcSession.hasAdaptiveBitrate": [{
36610
+ name: "deviceId",
36611
+ form: "single",
36612
+ optional: false
36613
+ }],
36614
+ "webrtcSession.listStreams": [{
36615
+ name: "deviceId",
36616
+ form: "single",
36617
+ optional: false
36618
+ }],
36619
+ "zoneAnalytics.getCameraHistory": [{
36620
+ name: "deviceId",
36621
+ form: "single",
36622
+ optional: false
36623
+ }],
36624
+ "zoneAnalytics.getCurrentSnapshot": [{
36625
+ name: "deviceId",
36626
+ form: "single",
36627
+ optional: false
36628
+ }],
36629
+ "zoneAnalytics.getUnzonedHistory": [{
36630
+ name: "deviceId",
36631
+ form: "single",
36632
+ optional: false
36633
+ }],
36634
+ "zoneAnalytics.getZoneHistory": [{
36635
+ name: "deviceId",
36636
+ form: "single",
36637
+ optional: false
36638
+ }],
36639
+ "zoneRules.listRules": [{
36640
+ name: "deviceId",
36641
+ form: "single",
36642
+ optional: false
36643
+ }],
36644
+ "zoneRules.setRules": [{
36645
+ name: "deviceId",
36646
+ form: "single",
36647
+ optional: false
36648
+ }],
36649
+ "zones.addZone": [{
36650
+ name: "deviceId",
36651
+ form: "single",
36652
+ optional: false
36653
+ }],
36654
+ "zones.listZones": [{
36655
+ name: "deviceId",
36656
+ form: "single",
36657
+ optional: false
36658
+ }],
36659
+ "zones.removeZone": [{
36660
+ name: "deviceId",
36661
+ form: "single",
36662
+ optional: false
36663
+ }],
36664
+ "zones.updateZone": [{
36665
+ name: "deviceId",
36666
+ form: "single",
36667
+ optional: false
36668
+ }]
36669
+ });
34879
36670
  Object.freeze({
34880
36671
  "broker": "broker",
34881
36672
  "device-export": "device-export",
@@ -228818,6 +230609,29 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
228818
230609
  * UX without falsely claiming readiness when audio decode isn't
228819
230610
  * available.
228820
230611
  */
230612
+ /**
230613
+ * Mirror talk-back into the `intercom` runtime-state slice.
230614
+ *
230615
+ * The cap's `status` is command-driven and nothing reads it: every consumer
230616
+ * outside this process — the admin UI, the Home Assistant export — sees a
230617
+ * capability only through the runtime-state slice, via the
230618
+ * `device.state-changed` event or the `deviceState.getAllSnapshots`
230619
+ * snapshot. Without this write the `intercom` entity Home Assistant
230620
+ * publishes would exist and never receive a value, which is exactly the
230621
+ * defect that kept the capability out of the export.
230622
+ *
230623
+ * Called at the four points that open or close a session — and seeded at
230624
+ * registration, so the slice says `talking: false` from boot rather than
230625
+ * only after the first session.
230626
+ */
230627
+ publishIntercomState(talking) {
230628
+ const previous = this.getCapSlice(intercomCapability);
230629
+ this.setCapSlice(intercomCapability, {
230630
+ talking,
230631
+ lastSessionAt: talking ? Date.now() : previous?.lastSessionAt ?? null,
230632
+ ability: previous?.ability ?? null
230633
+ });
230634
+ }
228821
230635
  registerIntercomIfSupported() {
228822
230636
  if (this.intercomRegistered) return;
228823
230637
  const probe = this.getProbeFlags();
@@ -228852,7 +230666,14 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
228852
230666
  ...this.config.get("intercomMaxBacklogMs") !== void 0 ? { maxBacklogMs: this.config.get("intercomMaxBacklogMs") } : {},
228853
230667
  ...this.config.get("intercomGain") !== void 0 ? { outputGain: this.config.get("intercomGain") } : {}
228854
230668
  });
228855
- return this.intercomOrchestrator.start();
230669
+ try {
230670
+ const opened = await this.intercomOrchestrator.start();
230671
+ this.publishIntercomState(true);
230672
+ return opened;
230673
+ } catch (err) {
230674
+ this.publishIntercomState(false);
230675
+ throw err;
230676
+ }
228856
230677
  },
228857
230678
  handleAnswer: async ({ deviceId, sessionId, sdpAnswer }) => {
228858
230679
  if (deviceId !== this.id) return;
@@ -228863,6 +230684,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
228863
230684
  if (deviceId !== this.id) return;
228864
230685
  if (!this.intercomOrchestrator) return;
228865
230686
  await this.intercomOrchestrator.stop(sessionId);
230687
+ this.publishIntercomState(false);
228866
230688
  },
228867
230689
  startTalkSession: async ({ deviceId }) => {
228868
230690
  if (deviceId !== this.id) throw new Error(`ReolinkCamera: intercom deviceId mismatch, expected ${this.id}, got ${deviceId}`);
@@ -228893,6 +230715,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
228893
230715
  lastSequenceNumber: -1,
228894
230716
  opusDecode: null
228895
230717
  };
230718
+ this.publishIntercomState(true);
228896
230719
  this.ctx.logger.info("intercom talk session opened", {
228897
230720
  tags: { deviceId: this.id },
228898
230721
  meta: {
@@ -229020,6 +230843,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
229020
230843
  }
229021
230844
  });
229022
230845
  });
230846
+ this.publishIntercomState(false);
229023
230847
  this.ctx.logger.info("intercom talk session closed", {
229024
230848
  tags: { deviceId: this.id },
229025
230849
  meta: {
@@ -229029,6 +230853,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
229029
230853
  });
229030
230854
  }
229031
230855
  });
230856
+ this.publishIntercomState(false);
229032
230857
  this.ctx.logger.info("intercom cap registered (WebRTC + audio-codec wiring active)", { tags: { deviceId: this.id } });
229033
230858
  }
229034
230859
  /**