@camstack/addon-agent-ui 1.2.162 → 1.2.164
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 +611 -142
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -7427,7 +7427,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
7427
7427
|
return DeviceRole;
|
|
7428
7428
|
}({});
|
|
7429
7429
|
//#endregion
|
|
7430
|
-
//#region ../types/dist/composition-
|
|
7430
|
+
//#region ../types/dist/composition-Bzr7GwgP.mjs
|
|
7431
7431
|
/**
|
|
7432
7432
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
7433
7433
|
*
|
|
@@ -7481,20 +7481,20 @@ function portable(target) {
|
|
|
7481
7481
|
}
|
|
7482
7482
|
portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64");
|
|
7483
7483
|
/**
|
|
7484
|
-
*
|
|
7485
|
-
*
|
|
7484
|
+
* THE table "which boolean of this device type counts as HIGH", and the
|
|
7485
|
+
* pure evaluator of its EDGE.
|
|
7486
7486
|
*
|
|
7487
|
-
*
|
|
7488
|
-
*
|
|
7489
|
-
*
|
|
7490
|
-
*
|
|
7491
|
-
*
|
|
7492
|
-
*
|
|
7487
|
+
* ONE table for everyone who asks "is this device HIGH?": the
|
|
7488
|
+
* recorder's `RecordingTriggers.sensorDeviceIds` trigger, the post-analysis
|
|
7489
|
+
* sensor markers, the orchestrator's camera-sensors bridge and
|
|
7490
|
+
* the sources of a composite doorbell (`doorbellFeatureSources`, D671).
|
|
7491
|
+
* A second copy would diverge at the first cap added, and the symptom — "the
|
|
7492
|
+
* sensor rings the doorbell but does not record" — is exactly D62.
|
|
7493
7493
|
*
|
|
7494
|
-
* ⚠
|
|
7495
|
-
*
|
|
7496
|
-
*
|
|
7497
|
-
*
|
|
7494
|
+
* ⚠ NOT `DEVICE_STATE_READERS` (`catalogs/device-state-vocabulary.ts`), and the
|
|
7495
|
+
* two must not be unified: that one answers "what is the state WORD for a
|
|
7496
|
+
* rule" (and includes `presence`, `cover`, `alarm-panel`), this one "which
|
|
7497
|
+
* boolean's EDGE counts". Deliberately different vocabularies.
|
|
7498
7498
|
*/
|
|
7499
7499
|
/**
|
|
7500
7500
|
* Known binary / switch source caps → the boolean slice field whose
|
|
@@ -7515,6 +7515,8 @@ var SOURCE_CAP_ACTIVE_FIELD = {
|
|
|
7515
7515
|
vibration: "detected",
|
|
7516
7516
|
tamper: "tampered"
|
|
7517
7517
|
};
|
|
7518
|
+
/** Cap names whose presence in a device's bindings qualify it as a source. */
|
|
7519
|
+
var SOURCE_CAPS = Object.keys(SOURCE_CAP_ACTIVE_FIELD);
|
|
7518
7520
|
/**
|
|
7519
7521
|
* Error types for the safe expression engine. Two distinct classes so callers
|
|
7520
7522
|
* can tell a compile-time (grammar) failure from a runtime (evaluation)
|
|
@@ -9101,22 +9103,22 @@ var CLASS_MAP_MACRO_TARGETS = [
|
|
|
9101
9103
|
"package"
|
|
9102
9104
|
];
|
|
9103
9105
|
/**
|
|
9104
|
-
*
|
|
9105
|
-
*
|
|
9106
|
+
* The FIRST-LEVEL macro classes: those an object detector emits and that
|
|
9107
|
+
* an operator can select.
|
|
9106
9108
|
*
|
|
9107
|
-
*
|
|
9109
|
+
* They are the three offered by the `object-detection` step
|
|
9108
9110
|
* (`addon-pipeline/src/detection-pipeline/registry/step-definitions.ts`,
|
|
9109
|
-
* `enabledMacroClasses`). `package`
|
|
9110
|
-
* `MACRO_LABELS` —
|
|
9111
|
-
* `package-detection`,
|
|
9112
|
-
*
|
|
9111
|
+
* `enabledMacroClasses`). `package` is in {@link CLASS_MAP_MACRO_TARGETS} and in
|
|
9112
|
+
* `MACRO_LABELS` — it is a true macro — but NOT here: it belongs to the step
|
|
9113
|
+
* `package-detection`, whose enablement is driven by zones, and offering the
|
|
9114
|
+
* same word twice has already made an operator turn on the COCO proxy
|
|
9113
9115
|
* (suitcase/backpack/handbag) lasciando spento il detector dedicato.
|
|
9114
9116
|
*
|
|
9115
|
-
*
|
|
9116
|
-
*
|
|
9117
|
-
* (`types/detection.ts`);
|
|
9118
|
-
* (`RecordingTriggers.objectClasses`)
|
|
9119
|
-
*
|
|
9117
|
+
* ONE list. Before today the same three were hand-written in the step's offer
|
|
9118
|
+
* and a second time as the union `FirstLevelMacro`
|
|
9119
|
+
* (`types/detection.ts`); a third copy for the recording trigger
|
|
9120
|
+
* (`RecordingTriggers.objectClasses`) would have made the later divergence
|
|
9121
|
+
* invisible.
|
|
9120
9122
|
*/
|
|
9121
9123
|
var FIRST_LEVEL_MACRO_CLASSES = [
|
|
9122
9124
|
"person",
|
|
@@ -9181,17 +9183,17 @@ var RecordingStorageModeSchema = _enum([
|
|
|
9181
9183
|
"on-device-decision"
|
|
9182
9184
|
]);
|
|
9183
9185
|
/**
|
|
9184
|
-
*
|
|
9185
|
-
*
|
|
9186
|
+
* The macro classes that can open a recording window — the same
|
|
9187
|
+
* three offered by the `object-detection` step, from ONE list
|
|
9186
9188
|
* ({@link FIRST_LEVEL_MACRO_CLASSES}).
|
|
9187
9189
|
*/
|
|
9188
9190
|
var RecordingObjectTriggerClassSchema = _enum(FIRST_LEVEL_MACRO_CLASSES);
|
|
9189
9191
|
/**
|
|
9190
|
-
* True
|
|
9192
|
+
* True when `values` does not repeat an element.
|
|
9191
9193
|
*
|
|
9192
|
-
*
|
|
9193
|
-
*
|
|
9194
|
-
*
|
|
9194
|
+
* A duplicate is not harmless: every entry of `objectClasses` / `sensorDeviceIds`
|
|
9195
|
+
* becomes a SOURCE in `bandTriggerSources`, and the same source twice
|
|
9196
|
+
* would count its windows twice in `segmentMissedByMs`.
|
|
9195
9197
|
*/
|
|
9196
9198
|
var noDuplicates = (values) => new Set(values).size === values.length;
|
|
9197
9199
|
/** Which detectors trigger an `events`-mode band. */
|
|
@@ -9199,34 +9201,34 @@ var RecordingTriggersSchema = object({
|
|
|
9199
9201
|
motion: boolean().optional(),
|
|
9200
9202
|
audioThresholdDbfs: number().optional(),
|
|
9201
9203
|
/**
|
|
9202
|
-
*
|
|
9203
|
-
*
|
|
9204
|
-
*
|
|
9205
|
-
*
|
|
9204
|
+
* The macro classes whose detection opens a window. ABSENT = the source
|
|
9205
|
+
* is not listened to; an EMPTY array is rejected, because "events band, object
|
|
9206
|
+
* trigger on, no class" is the same shape "enabled and records
|
|
9207
|
+
* nothing, forever" that `eventsBandCanEverDemand` is written against.
|
|
9206
9208
|
*
|
|
9207
|
-
*
|
|
9208
|
-
*
|
|
9209
|
-
* `minConfidence<Macro>`
|
|
9210
|
-
* (`source: 'onboard'`)
|
|
9211
|
-
*
|
|
9209
|
+
* The signal read is ALREADY FILTERED: only `source: 'pipeline'` detections, i.e.
|
|
9210
|
+
* those that went through `enabledMacroClasses`, the
|
|
9211
|
+
* `minConfidence<Macro>` and the full-frame guard. The camera's onboard AI
|
|
9212
|
+
* (`source: 'onboard'`) goes through none of those gates and does NOT open
|
|
9213
|
+
* windows — see `recorder/object-trigger.ts`.
|
|
9212
9214
|
*/
|
|
9213
9215
|
objectClasses: array(RecordingObjectTriggerClassSchema).min(1).refine(noDuplicates, { message: "objectClasses must not repeat a class" }).optional(),
|
|
9214
9216
|
/**
|
|
9215
|
-
*
|
|
9216
|
-
*
|
|
9217
|
+
* The LINKED devices whose RISING EDGE opens a window. Absent = the source
|
|
9218
|
+
* is not listened to; an empty array is rejected for the same reason as
|
|
9217
9219
|
* `objectClasses`.
|
|
9218
9220
|
*
|
|
9219
|
-
*
|
|
9220
|
-
*
|
|
9221
|
-
*
|
|
9222
|
-
*
|
|
9223
|
-
* device (D12) —
|
|
9221
|
+
* These are SOURCE device ids, not cameras: the band names them, so the
|
|
9222
|
+
* hot path (`DeviceStateChanged`, at bus rate across the whole fleet)
|
|
9223
|
+
* does no RPC. The OFFER from which the operator picks them is another question, and
|
|
9224
|
+
* is resolved with `deviceManager.getLinkedDevices` + `getBindingsBatch` per
|
|
9225
|
+
* device (D12) — never a global list of caps.
|
|
9224
9226
|
*
|
|
9225
|
-
*
|
|
9226
|
-
* `SOURCE_CAP_ACTIVE_FIELD` (`catalogs/sensor-active-state.ts`)
|
|
9227
|
-
*
|
|
9228
|
-
*
|
|
9229
|
-
*
|
|
9227
|
+
* What "high" means depends on the device TYPE and is not decided here:
|
|
9228
|
+
* `SOURCE_CAP_ACTIVE_FIELD` (`catalogs/sensor-active-state.ts`) is THE table,
|
|
9229
|
+
* the same one as the composite doorbell (D671). And it is the EDGE, not
|
|
9230
|
+
* the level: a contact found already open at runner restart does not
|
|
9231
|
+
* record.
|
|
9230
9232
|
*/
|
|
9231
9233
|
sensorDeviceIds: array(number().int().positive()).min(1).max(16).refine(noDuplicates, { message: "sensorDeviceIds must not repeat a device" }).optional()
|
|
9232
9234
|
});
|
|
@@ -10303,7 +10305,7 @@ var DecoderSessionConfigSchema = object({
|
|
|
10303
10305
|
* - **VALUE** — at which level, for which scope, until when. That stays ONE
|
|
10304
10306
|
* thing: the logging settings document on the `system` cap. Two authorities
|
|
10305
10307
|
* over the values is the exact defect
|
|
10306
|
-
* `docs/design/plans/2026-08-26-
|
|
10308
|
+
* `docs/design/plans/2026-08-26-per-component-logging.md` was written to
|
|
10307
10309
|
* remove; re-introducing it from the cure side would be grotesque.
|
|
10308
10310
|
*
|
|
10309
10311
|
* Nothing in this file reads a clock, an env var or a store. The registry is
|
|
@@ -12014,7 +12016,7 @@ var BrokerStatusEnum = _enum([
|
|
|
12014
12016
|
"unreachable",
|
|
12015
12017
|
"error"
|
|
12016
12018
|
]);
|
|
12017
|
-
var BrokerInfoSchema
|
|
12019
|
+
var BrokerInfoSchema = object({
|
|
12018
12020
|
/** Stable broker id. Persisted; survives addon restarts. */
|
|
12019
12021
|
id: string(),
|
|
12020
12022
|
/** Addon id of the provider that OWNS this broker.
|
|
@@ -12147,7 +12149,7 @@ var GetStateInputSchema = object({
|
|
|
12147
12149
|
* HA: entity_id (returns the cached entity state). */
|
|
12148
12150
|
key: string()
|
|
12149
12151
|
});
|
|
12150
|
-
method(ListInputSchema, array(BrokerInfoSchema
|
|
12152
|
+
method(ListInputSchema, array(BrokerInfoSchema)), method(GetInputSchema, BrokerInfoSchema.nullable()), method(_void(), array(BrokerProviderInfoSchema), { auth: "admin" }), method(AddInputSchema, AddResultSchema, {
|
|
12151
12153
|
kind: "mutation",
|
|
12152
12154
|
auth: "admin"
|
|
12153
12155
|
}), method(RemoveInputSchema, _void(), {
|
|
@@ -13756,7 +13758,7 @@ method(_void(), EngineInfoSchema, { auth: "admin" }), method(object({
|
|
|
13756
13758
|
*
|
|
13757
13759
|
* ⚠ An earlier version of this comment blamed Zod stripping, and that
|
|
13758
13760
|
* was wrong — corrected 2026-08-26 after the hop map
|
|
13759
|
-
* (`docs/design/2026-08-26-
|
|
13761
|
+
* (`docs/design/2026-08-26-topic-hop-map.md`) traced the path.
|
|
13760
13762
|
* There is **no Zod parse at all** between the door and the engine: the
|
|
13761
13763
|
* dispatcher forwards the payload verbatim and UDS carries it whole. A
|
|
13762
13764
|
* field declared here reaches `SqliteSettingsBackend` either way.
|
|
@@ -14512,7 +14514,17 @@ var SiteZoneSchema = object({
|
|
|
14512
14514
|
var ProviderStatusSchema = object({
|
|
14513
14515
|
connected: boolean(),
|
|
14514
14516
|
deviceCount: number(),
|
|
14515
|
-
error: string().optional()
|
|
14517
|
+
error: string().optional(),
|
|
14518
|
+
/**
|
|
14519
|
+
* `'orchestrator'`: this provider writes NO camera's `motion` runtime slice
|
|
14520
|
+
* — the orchestrator is its only writer (D696). Set by `BaseDeviceProvider`,
|
|
14521
|
+
* which every provider bundles, so only a provider BUILT from D696-amended
|
|
14522
|
+
* code says it. ABSENT means an older provider that may still write it (raw
|
|
14523
|
+
* VMD writes, a boot seed), and the orchestrator's provider gate keeps that
|
|
14524
|
+
* provider's cameras unwritten (`camera-sensors/motion-slice-provider-gate.ts`)
|
|
14525
|
+
* — the provider twin of the runner's `getLocalLoad().motionSliceWriter`.
|
|
14526
|
+
*/
|
|
14527
|
+
motionSliceWriter: literal("orchestrator").optional()
|
|
14516
14528
|
});
|
|
14517
14529
|
object({
|
|
14518
14530
|
externalId: string(),
|
|
@@ -15648,7 +15660,7 @@ method(object({
|
|
|
15648
15660
|
* per-device window, `KeyFrameCaptureLog`, `bumpCropMetric`. Every one of them
|
|
15649
15661
|
* ends in a log line, and a log line is the thing the operator asked to stop
|
|
15650
15662
|
* needing: *"possiamo armare questi errori intanto? Così al prossimo giro
|
|
15651
|
-
* ricontrolliamo tutti questi punti"
|
|
15663
|
+
* ricontrolliamo tutti questi punti"* [can we instrument these errors in the meantime? That way next round we recheck all these points]. Reading them meant grepping Loki and
|
|
15652
15664
|
* hand-correlating timestamps, which is how a 22% thumbnail gap and a 3-hour
|
|
15653
15665
|
* media blackout were both diagnosed. The counters stay; this is where they can
|
|
15654
15666
|
* be READ.
|
|
@@ -17024,7 +17036,7 @@ var BrokerStatusSchema$1 = _enum([
|
|
|
17024
17036
|
"unreachable",
|
|
17025
17037
|
"tls-error"
|
|
17026
17038
|
]);
|
|
17027
|
-
var BrokerInfoSchema = object({
|
|
17039
|
+
var BrokerInfoSchema$1 = object({
|
|
17028
17040
|
id: string(),
|
|
17029
17041
|
name: string(),
|
|
17030
17042
|
url: string(),
|
|
@@ -17087,7 +17099,7 @@ var StatusSchema = object({
|
|
|
17087
17099
|
brokerCount: number(),
|
|
17088
17100
|
embeddedRunning: boolean()
|
|
17089
17101
|
});
|
|
17090
|
-
method(_void(), array(BrokerInfoSchema)), method(IdInputSchema, BrokerConnectionDetailsSchema, { auth: "admin" }), method(AddBrokerInputSchema, AddBrokerResultSchema, {
|
|
17102
|
+
method(_void(), array(BrokerInfoSchema$1)), method(IdInputSchema, BrokerConnectionDetailsSchema, { auth: "admin" }), method(AddBrokerInputSchema, AddBrokerResultSchema, {
|
|
17091
17103
|
kind: "mutation",
|
|
17092
17104
|
auth: "admin"
|
|
17093
17105
|
}), method(IdInputSchema, _void(), {
|
|
@@ -19263,78 +19275,16 @@ var NcRuleInputSchema = object({
|
|
|
19263
19275
|
*/
|
|
19264
19276
|
confirm: NcConfirmSchema.optional(),
|
|
19265
19277
|
/**
|
|
19266
|
-
*
|
|
19267
|
-
*
|
|
19268
|
-
*
|
|
19269
|
-
*
|
|
19270
|
-
*
|
|
19271
|
-
*
|
|
19272
|
-
*
|
|
19273
|
-
*
|
|
19274
|
-
*
|
|
19275
|
-
* Only two honest answers exist, and this flag picks between them. It has
|
|
19276
|
-
* effect ONLY on a rule that declares a recognition scope
|
|
19277
|
-
* ({@link NcConditions.identities} or {@link NcConditions.plates}) — on any
|
|
19278
|
-
* other rule there is nothing to wait for and the flag is inert.
|
|
19279
|
-
*
|
|
19280
|
-
* | value | what happens |
|
|
19281
|
-
* | --- | --- |
|
|
19282
|
-
* | `true` | the rule stops firing on the object event and fires at TRACK CLOSE instead, once, with the name — later, and complete |
|
|
19283
|
-
* | absent / `false` | it fires at once WITHOUT the name, and if recognition lands before the track closes a SECOND, "…is Gianluca" notification follows (one per track, per rule, per target) |
|
|
19284
|
-
*
|
|
19285
|
-
* `.optional()` and deliberately NOT `.default()`: a Zod default does not run
|
|
19286
|
-
* on the addon cap path, and absent has to keep meaning exactly what every
|
|
19287
|
-
* rule authored before this field meant.
|
|
19288
|
-
*
|
|
19289
|
-
* The cost of `true` is stated here because the editor states it too: a rule
|
|
19290
|
-
* that waits also inherits track-close SEMANTICS — its `zones` condition
|
|
19291
|
-
* tests every zone the track visited and a `crossing` condition can no longer
|
|
19292
|
-
* be satisfied, because a closed track carries no crossing.
|
|
19293
|
-
*/
|
|
19294
|
-
waitForEnhancement: boolean().optional(),
|
|
19295
|
-
/**
|
|
19296
|
-
* GROUP a burst of subjects into ONE notification that grows.
|
|
19297
|
-
*
|
|
19298
|
-
* Seconds of quiet after the last matching subject before the burst is
|
|
19299
|
-
* considered over. While it is open, the first subject enqueues immediately —
|
|
19300
|
-
* **exactly as today, with no added latency** — and every real growth (a new
|
|
19301
|
-
* subject, or a name confirmed on one already in it) REPLACES that
|
|
19302
|
-
* notification with an updated one naming everybody. The push carries the
|
|
19303
|
-
* group's own coalescing tag, so the phone replaces rather than stacks.
|
|
19304
|
-
*
|
|
19305
|
-
* `0` / absent = off, and off is today's behaviour byte for byte.
|
|
19306
|
-
*
|
|
19307
|
-
* ### Why an idle cutoff and not a window
|
|
19308
|
-
*
|
|
19309
|
-
* The measured seven-person arrival on device 590 spans 110 s with every
|
|
19310
|
-
* internal gap under 30 s. A 12 s fixed window cuts it into three groups; an
|
|
19311
|
-
* idle cutoff holds it as one and ends it when the arrival actually ends.
|
|
19312
|
-
* 30 s is a widely shipped value for the same decision.
|
|
19313
|
-
*
|
|
19314
|
-
* ### What it replaces
|
|
19315
|
-
*
|
|
19316
|
-
* The blind cooldown, which collapses a burst by DISCARDING it. Measured on
|
|
19317
|
-
* device 615 / *Persona su Uscio* over six days: 116 qualifying tracks → 74
|
|
19318
|
-
* notifications, **44 (37.9%) suppressed outright**, 23 of them overlapping a
|
|
19319
|
-
* track that did fire and 7 carrying a confirmed identity nobody heard about.
|
|
19320
|
-
* A group collapses the same volume by MERGING, so the cooldown becomes a
|
|
19321
|
-
* budget over GROUPS — which is what it always meant — and a growth is never
|
|
19322
|
-
* throttled by the window its own first member spent.
|
|
19323
|
-
*
|
|
19324
|
-
* ### Interaction with {@link waitForEnhancement}
|
|
19325
|
-
*
|
|
19326
|
-
* They compose, and the order matters. `waitForEnhancement` defers the rule to
|
|
19327
|
-
* TRACK CLOSE, so with both set the group is opened by the first member to
|
|
19328
|
-
* CLOSE — already carrying its name — and grows as later members close. That
|
|
19329
|
-
* is later, and complete. With grouping alone the group opens on the first
|
|
19330
|
-
* object event and picks up names as they are confirmed, through the growth
|
|
19331
|
-
* path. Neither combination fires twice for one subject.
|
|
19332
|
-
*
|
|
19333
|
-
* `.optional()` and deliberately NOT `.default()`: a Zod default does not run
|
|
19334
|
-
* on the addon cap path, so absent must keep meaning what it meant before this
|
|
19335
|
-
* field existed.
|
|
19278
|
+
* IMMEDIATE GROUPED (D692): the first matching subject opens a window of this many
|
|
19279
|
+
* seconds; the rule sends ONE message when the window closes — early, once every
|
|
19280
|
+
* subject in it is final, never before {@link NC_GROUPING_MIN_SEC} — naming everybody
|
|
19281
|
+
* the rule matched, with one mosaic tile per subject.
|
|
19282
|
+
* Absent = plain immediate (one message per track, at the first match).
|
|
19283
|
+
* Only an `immediate` DETECTION rule may carry it (`ruleGroupingApplies`, enforced on
|
|
19284
|
+
* save by the hub's grouping guard). `.optional()`, never `.default()`: the addon cap
|
|
19285
|
+
* path does not run Zod defaults.
|
|
19336
19286
|
*/
|
|
19337
|
-
|
|
19287
|
+
groupingSec: number().int().min(5).max(60).optional()
|
|
19338
19288
|
});
|
|
19339
19289
|
/**
|
|
19340
19290
|
* Partial patch for `updateRule` — any subset of the input fields, plus the
|
|
@@ -19382,9 +19332,10 @@ var NcRuleClearableKeySchema = _enum([
|
|
|
19382
19332
|
"targetUsers",
|
|
19383
19333
|
"snoozeOptions",
|
|
19384
19334
|
"snoozeAllowGlobal",
|
|
19385
|
-
"waitForEnhancement",
|
|
19386
19335
|
"actions",
|
|
19387
19336
|
"confirm",
|
|
19337
|
+
"groupingSec",
|
|
19338
|
+
"waitForEnhancement",
|
|
19388
19339
|
"groupIdleSec"
|
|
19389
19340
|
]);
|
|
19390
19341
|
var NcRuleUpdateInputSchema = object({
|
|
@@ -19406,9 +19357,25 @@ var NcRuleSchema = NcRuleInputSchema.extend({
|
|
|
19406
19357
|
*/
|
|
19407
19358
|
disabledTargetIds: array(string()).default([])
|
|
19408
19359
|
});
|
|
19360
|
+
/**
|
|
19361
|
+
* The state-summary SECTIONS (D647 / D698): the D637 kind groups that report a
|
|
19362
|
+
* still-true state. `backups-exports` and `alarm` are not sections — a completed
|
|
19363
|
+
* job is not an open state, and the alarm stays instant.
|
|
19364
|
+
*/
|
|
19365
|
+
var NcStateSummarySectionIdSchema = _enum([
|
|
19366
|
+
"device-state",
|
|
19367
|
+
"streams",
|
|
19368
|
+
"battery",
|
|
19369
|
+
"consumables",
|
|
19370
|
+
"tanks",
|
|
19371
|
+
"detection-blind",
|
|
19372
|
+
"nodes",
|
|
19373
|
+
"addons",
|
|
19374
|
+
"updates"
|
|
19375
|
+
]);
|
|
19409
19376
|
/** One section of a previewed state summary. `unavailable` = its state could not be read. */
|
|
19410
19377
|
var NcStateSummaryPreviewSectionSchema = object({
|
|
19411
|
-
id:
|
|
19378
|
+
id: NcStateSummarySectionIdSchema,
|
|
19412
19379
|
status: _enum(["read", "unavailable"]),
|
|
19413
19380
|
items: number().int().nonnegative(),
|
|
19414
19381
|
reason: string().optional()
|
|
@@ -19418,7 +19385,7 @@ var NcStateSummaryPreviewSectionSchema = object({
|
|
|
19418
19385
|
* a `rule` split (no `section`), one section's on a `section` split.
|
|
19419
19386
|
*/
|
|
19420
19387
|
var NcStateSummaryPreviewRowSchema = object({
|
|
19421
|
-
section:
|
|
19388
|
+
section: NcStateSummarySectionIdSchema.optional(),
|
|
19422
19389
|
/** The section's name on a per-section row; every reported section's, joined, on a combined one. */
|
|
19423
19390
|
title: string(),
|
|
19424
19391
|
text: string(),
|
|
@@ -21317,14 +21284,14 @@ var TrackSchema = object({
|
|
|
21317
21284
|
* `derive-returned-null tile=standin`,
|
|
21318
21285
|
* `native-tile tile=native no-key-frame-at-close`, …) written at close and
|
|
21319
21286
|
* CLEARED by the late-keyFrame upgrade when a native tile lands after all.
|
|
21320
|
-
* The operator-facing answer to "perché manca l'immagine?" on a track whose
|
|
21287
|
+
* The operator-facing answer to "perché manca l'immagine?" [why is the image missing?] on a track whose
|
|
21321
21288
|
* tile is a face/plate stand-in, a raster crop, or an icon.
|
|
21322
21289
|
*
|
|
21323
21290
|
* **`no-key-frame-at-close` (D400).** The line used to be written ONLY when
|
|
21324
21291
|
* the TILE ranked below native, so a track whose thumbnail landed natively
|
|
21325
21292
|
* while its key frame missed carried no reason at all — three of the four
|
|
21326
21293
|
* `MISSING_KEYFRAME` tracks in the 2026-09-07 operator audit were exactly
|
|
21327
|
-
* that shape, and their "niente ultimo" had no cause anywhere on the row.
|
|
21294
|
+
* that shape, and their "niente ultimo" [no last frame] had no cause anywhere on the row.
|
|
21328
21295
|
* The key frame is the head of a cascade (`keyFrame ⇒ keyFrameSmall ⇒ the
|
|
21329
21296
|
* lastFrame copy source`), so its absence is now on this line whatever the
|
|
21330
21297
|
* tile ended up being.
|
|
@@ -21411,7 +21378,7 @@ var MotionEventSchema = object({
|
|
|
21411
21378
|
/**
|
|
21412
21379
|
* Ms offsets from `timestamp` (the episode's own first rising edge, so the
|
|
21413
21380
|
* first entry is always `0`) of every genuine off→on transition the
|
|
21414
|
-
* episode saw — "ogni evento on si deve salvare" (D475). NOT one entry per
|
|
21381
|
+
* episode saw — "ogni evento on si deve salvare" [every ON event must be saved] (D475). NOT one entry per
|
|
21415
21382
|
* push: a firmware source that keepalives at ~1 Hz for the whole burst
|
|
21416
21383
|
* (Reolink, Hikvision) produces exactly one edge; a source that reports an
|
|
21417
21384
|
* explicit `false` mid-episode and then resumes before the quiet window
|
|
@@ -21935,6 +21902,7 @@ var KeyEventSchema = object({
|
|
|
21935
21902
|
bestEventId: string(),
|
|
21936
21903
|
/** Track lifetime in ms (lastSeen - firstSeen). */
|
|
21937
21904
|
windowMs: number().optional(),
|
|
21905
|
+
audioLabels: array(TrackAudioLabelSchema).readonly().optional(),
|
|
21938
21906
|
...TrackFlagFields,
|
|
21939
21907
|
...TrackRetrainFields
|
|
21940
21908
|
});
|
|
@@ -26647,7 +26615,7 @@ var ClipPlaybackSchema = object({
|
|
|
26647
26615
|
* **One authorised yes is one wake.** `next-natural` — take the clip the next
|
|
26648
26616
|
* time the camera is awake for its own reasons — is deliberately not a member:
|
|
26649
26617
|
* it was proposed, it is free on the battery, and the operator declined it on
|
|
26650
|
-
* 2026-09-20 (*"Quando un export viene richiesto si sveglia la camera."
|
|
26618
|
+
* 2026-09-20 (*"Quando un export viene richiesto si sveglia la camera."* [When an export is requested the camera wakes up],
|
|
26651
26619
|
* D558 "Considered and not taken").
|
|
26652
26620
|
*/
|
|
26653
26621
|
var ClipWakeSchema = _enum(["authorised"]);
|
|
@@ -26908,7 +26876,7 @@ DeviceType.Camera, method(object({
|
|
|
26908
26876
|
* It replaced `sources?: string[]`, a VIEW filter over source ids that
|
|
26909
26877
|
* assumed the answer was a fan-out over everything a camera has. The
|
|
26910
26878
|
* operator settled otherwise on 2026-09-20 — *"l'utilizzatore è uno
|
|
26911
|
-
* solo"* — so the list is asked of one provider at a time and there is
|
|
26879
|
+
* solo"* [there is only one user] — so the list is asked of one provider at a time and there is
|
|
26912
26880
|
* nothing to filter out of it.
|
|
26913
26881
|
*/
|
|
26914
26882
|
provider: string().min(1)
|
|
@@ -33026,7 +32994,7 @@ var ReadGopBytesResultSchema = object({
|
|
|
33026
32994
|
/**
|
|
33027
32995
|
* A time WINDOW of one finalized segment, cut by byte range — the multi-GOP
|
|
33028
32996
|
* twin of {@link ReadGopBytesResultSchema}'s single instant. Built for the
|
|
33029
|
-
* replay clip's `recording` source (`docs/design/plans/2026-08-26-replay-
|
|
32997
|
+
* replay clip's `recording` source (`docs/design/plans/2026-08-26-clip-replay-on-pipeline.md`):
|
|
33030
32998
|
* a replay needs several seconds of native pixels, not one frame.
|
|
33031
32999
|
*
|
|
33032
33000
|
* `ok.data` is standalone-demuxable, same as a GOP read. `ok.reachesRequestedEnd`
|
|
@@ -35642,6 +35610,7 @@ DeviceType.Camera, method(object({
|
|
|
35642
35610
|
detection: array(ZoneRuleSchema).readonly(),
|
|
35643
35611
|
package: array(ZoneRuleSchema).readonly()
|
|
35644
35612
|
});
|
|
35613
|
+
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
35645
35614
|
/**
|
|
35646
35615
|
* Accessory device helpers — shared across drivers.
|
|
35647
35616
|
*
|
|
@@ -44204,6 +44173,11 @@ Object.freeze({
|
|
|
44204
44173
|
}
|
|
44205
44174
|
});
|
|
44206
44175
|
Object.freeze({
|
|
44176
|
+
"accessories.getStatus": [{
|
|
44177
|
+
name: "deviceId",
|
|
44178
|
+
form: "single",
|
|
44179
|
+
optional: false
|
|
44180
|
+
}],
|
|
44207
44181
|
"accessories.setChildHidden": [{
|
|
44208
44182
|
name: "childDeviceId",
|
|
44209
44183
|
form: "single",
|
|
@@ -44223,6 +44197,11 @@ Object.freeze({
|
|
|
44223
44197
|
form: "single",
|
|
44224
44198
|
optional: false
|
|
44225
44199
|
}],
|
|
44200
|
+
"airQualitySensor.getStatus": [{
|
|
44201
|
+
name: "deviceId",
|
|
44202
|
+
form: "single",
|
|
44203
|
+
optional: false
|
|
44204
|
+
}],
|
|
44226
44205
|
"alarmPanel.arm": [{
|
|
44227
44206
|
name: "deviceId",
|
|
44228
44207
|
form: "single",
|
|
@@ -44233,11 +44212,36 @@ Object.freeze({
|
|
|
44233
44212
|
form: "single",
|
|
44234
44213
|
optional: false
|
|
44235
44214
|
}],
|
|
44215
|
+
"alarmPanel.getStatus": [{
|
|
44216
|
+
name: "deviceId",
|
|
44217
|
+
form: "single",
|
|
44218
|
+
optional: false
|
|
44219
|
+
}],
|
|
44236
44220
|
"alarmPanel.trigger": [{
|
|
44237
44221
|
name: "deviceId",
|
|
44238
44222
|
form: "single",
|
|
44239
44223
|
optional: false
|
|
44240
44224
|
}],
|
|
44225
|
+
"ambientLightSensor.getStatus": [{
|
|
44226
|
+
name: "deviceId",
|
|
44227
|
+
form: "single",
|
|
44228
|
+
optional: false
|
|
44229
|
+
}],
|
|
44230
|
+
"audioAnalysis.applyDeviceSettingsPatch": [{
|
|
44231
|
+
name: "deviceId",
|
|
44232
|
+
form: "single",
|
|
44233
|
+
optional: false
|
|
44234
|
+
}],
|
|
44235
|
+
"audioAnalysis.getDeviceLiveContribution": [{
|
|
44236
|
+
name: "deviceId",
|
|
44237
|
+
form: "single",
|
|
44238
|
+
optional: false
|
|
44239
|
+
}],
|
|
44240
|
+
"audioAnalysis.getDeviceSettingsContribution": [{
|
|
44241
|
+
name: "deviceId",
|
|
44242
|
+
form: "single",
|
|
44243
|
+
optional: false
|
|
44244
|
+
}],
|
|
44241
44245
|
"audioAnalysis.resolveDeviceSettings": [{
|
|
44242
44246
|
name: "deviceId",
|
|
44243
44247
|
form: "single",
|
|
@@ -44278,16 +44282,36 @@ Object.freeze({
|
|
|
44278
44282
|
form: "single",
|
|
44279
44283
|
optional: false
|
|
44280
44284
|
}],
|
|
44285
|
+
"automationControl.getStatus": [{
|
|
44286
|
+
name: "deviceId",
|
|
44287
|
+
form: "single",
|
|
44288
|
+
optional: false
|
|
44289
|
+
}],
|
|
44281
44290
|
"automationControl.trigger": [{
|
|
44282
44291
|
name: "deviceId",
|
|
44283
44292
|
form: "single",
|
|
44284
44293
|
optional: false
|
|
44285
44294
|
}],
|
|
44295
|
+
"battery.getStatus": [{
|
|
44296
|
+
name: "deviceId",
|
|
44297
|
+
form: "single",
|
|
44298
|
+
optional: false
|
|
44299
|
+
}],
|
|
44286
44300
|
"battery.wakeForStream": [{
|
|
44287
44301
|
name: "deviceId",
|
|
44288
44302
|
form: "single",
|
|
44289
44303
|
optional: false
|
|
44290
44304
|
}],
|
|
44305
|
+
"binary.getStatus": [{
|
|
44306
|
+
name: "deviceId",
|
|
44307
|
+
form: "single",
|
|
44308
|
+
optional: false
|
|
44309
|
+
}],
|
|
44310
|
+
"brightness.getStatus": [{
|
|
44311
|
+
name: "deviceId",
|
|
44312
|
+
form: "single",
|
|
44313
|
+
optional: false
|
|
44314
|
+
}],
|
|
44291
44315
|
"brightness.setBrightness": [{
|
|
44292
44316
|
name: "deviceId",
|
|
44293
44317
|
form: "single",
|
|
@@ -44303,6 +44327,26 @@ Object.freeze({
|
|
|
44303
44327
|
form: "single",
|
|
44304
44328
|
optional: false
|
|
44305
44329
|
}],
|
|
44330
|
+
"cameraCredentials.getStatus": [{
|
|
44331
|
+
name: "deviceId",
|
|
44332
|
+
form: "single",
|
|
44333
|
+
optional: false
|
|
44334
|
+
}],
|
|
44335
|
+
"cameraGridLayout.applyDeviceSettingsPatch": [{
|
|
44336
|
+
name: "deviceId",
|
|
44337
|
+
form: "single",
|
|
44338
|
+
optional: false
|
|
44339
|
+
}],
|
|
44340
|
+
"cameraGridLayout.getDeviceLiveContribution": [{
|
|
44341
|
+
name: "deviceId",
|
|
44342
|
+
form: "single",
|
|
44343
|
+
optional: false
|
|
44344
|
+
}],
|
|
44345
|
+
"cameraGridLayout.getDeviceSettingsContribution": [{
|
|
44346
|
+
name: "deviceId",
|
|
44347
|
+
form: "single",
|
|
44348
|
+
optional: false
|
|
44349
|
+
}],
|
|
44306
44350
|
"cameraGridLayout.getLayout": [{
|
|
44307
44351
|
name: "deviceId",
|
|
44308
44352
|
form: "single",
|
|
@@ -44318,6 +44362,21 @@ Object.freeze({
|
|
|
44318
44362
|
form: "single",
|
|
44319
44363
|
optional: false
|
|
44320
44364
|
}],
|
|
44365
|
+
"cameraPipelineConfig.applyDeviceSettingsPatch": [{
|
|
44366
|
+
name: "deviceId",
|
|
44367
|
+
form: "single",
|
|
44368
|
+
optional: false
|
|
44369
|
+
}],
|
|
44370
|
+
"cameraPipelineConfig.getDeviceLiveContribution": [{
|
|
44371
|
+
name: "deviceId",
|
|
44372
|
+
form: "single",
|
|
44373
|
+
optional: false
|
|
44374
|
+
}],
|
|
44375
|
+
"cameraPipelineConfig.getDeviceSettingsContribution": [{
|
|
44376
|
+
name: "deviceId",
|
|
44377
|
+
form: "single",
|
|
44378
|
+
optional: false
|
|
44379
|
+
}],
|
|
44321
44380
|
"cameraStreams.getBrokerStreams": [{
|
|
44322
44381
|
name: "deviceId",
|
|
44323
44382
|
form: "single",
|
|
@@ -44343,6 +44402,16 @@ Object.freeze({
|
|
|
44343
44402
|
form: "single",
|
|
44344
44403
|
optional: false
|
|
44345
44404
|
}],
|
|
44405
|
+
"carbonMonoxide.getStatus": [{
|
|
44406
|
+
name: "deviceId",
|
|
44407
|
+
form: "single",
|
|
44408
|
+
optional: false
|
|
44409
|
+
}],
|
|
44410
|
+
"climateControl.getStatus": [{
|
|
44411
|
+
name: "deviceId",
|
|
44412
|
+
form: "single",
|
|
44413
|
+
optional: false
|
|
44414
|
+
}],
|
|
44346
44415
|
"climateControl.setFanMode": [{
|
|
44347
44416
|
name: "deviceId",
|
|
44348
44417
|
form: "single",
|
|
@@ -44383,16 +44452,41 @@ Object.freeze({
|
|
|
44383
44452
|
form: "single",
|
|
44384
44453
|
optional: false
|
|
44385
44454
|
}],
|
|
44455
|
+
"color.getStatus": [{
|
|
44456
|
+
name: "deviceId",
|
|
44457
|
+
form: "single",
|
|
44458
|
+
optional: false
|
|
44459
|
+
}],
|
|
44386
44460
|
"color.setColor": [{
|
|
44387
44461
|
name: "deviceId",
|
|
44388
44462
|
form: "single",
|
|
44389
44463
|
optional: false
|
|
44390
44464
|
}],
|
|
44465
|
+
"connectivity.getStatus": [{
|
|
44466
|
+
name: "deviceId",
|
|
44467
|
+
form: "single",
|
|
44468
|
+
optional: false
|
|
44469
|
+
}],
|
|
44470
|
+
"consumables.getStatus": [{
|
|
44471
|
+
name: "deviceId",
|
|
44472
|
+
form: "single",
|
|
44473
|
+
optional: false
|
|
44474
|
+
}],
|
|
44391
44475
|
"consumables.reset": [{
|
|
44392
44476
|
name: "deviceId",
|
|
44393
44477
|
form: "single",
|
|
44394
44478
|
optional: false
|
|
44395
44479
|
}],
|
|
44480
|
+
"contact.getStatus": [{
|
|
44481
|
+
name: "deviceId",
|
|
44482
|
+
form: "single",
|
|
44483
|
+
optional: false
|
|
44484
|
+
}],
|
|
44485
|
+
"control.getStatus": [{
|
|
44486
|
+
name: "deviceId",
|
|
44487
|
+
form: "single",
|
|
44488
|
+
optional: false
|
|
44489
|
+
}],
|
|
44396
44490
|
"control.setValue": [{
|
|
44397
44491
|
name: "deviceId",
|
|
44398
44492
|
form: "single",
|
|
@@ -44403,6 +44497,11 @@ Object.freeze({
|
|
|
44403
44497
|
form: "single",
|
|
44404
44498
|
optional: false
|
|
44405
44499
|
}],
|
|
44500
|
+
"cover.getStatus": [{
|
|
44501
|
+
name: "deviceId",
|
|
44502
|
+
form: "single",
|
|
44503
|
+
optional: false
|
|
44504
|
+
}],
|
|
44406
44505
|
"cover.open": [{
|
|
44407
44506
|
name: "deviceId",
|
|
44408
44507
|
form: "single",
|
|
@@ -44428,6 +44527,11 @@ Object.freeze({
|
|
|
44428
44527
|
form: "single",
|
|
44429
44528
|
optional: false
|
|
44430
44529
|
}],
|
|
44530
|
+
"dayNight.getStatus": [{
|
|
44531
|
+
name: "deviceId",
|
|
44532
|
+
form: "single",
|
|
44533
|
+
optional: false
|
|
44534
|
+
}],
|
|
44431
44535
|
"dayNight.setSettings": [{
|
|
44432
44536
|
name: "deviceId",
|
|
44433
44537
|
form: "single",
|
|
@@ -44438,11 +44542,31 @@ Object.freeze({
|
|
|
44438
44542
|
form: "single",
|
|
44439
44543
|
optional: true
|
|
44440
44544
|
}],
|
|
44545
|
+
"detectionPipeline.applyDeviceSettingsPatch": [{
|
|
44546
|
+
name: "deviceId",
|
|
44547
|
+
form: "single",
|
|
44548
|
+
optional: false
|
|
44549
|
+
}],
|
|
44550
|
+
"detectionPipeline.getDeviceLiveContribution": [{
|
|
44551
|
+
name: "deviceId",
|
|
44552
|
+
form: "single",
|
|
44553
|
+
optional: false
|
|
44554
|
+
}],
|
|
44555
|
+
"detectionPipeline.getDeviceSettingsContribution": [{
|
|
44556
|
+
name: "deviceId",
|
|
44557
|
+
form: "single",
|
|
44558
|
+
optional: false
|
|
44559
|
+
}],
|
|
44441
44560
|
"deviceAdminLink.getAdminLink": [{
|
|
44442
44561
|
name: "deviceId",
|
|
44443
44562
|
form: "single",
|
|
44444
44563
|
optional: false
|
|
44445
44564
|
}],
|
|
44565
|
+
"deviceAdoption.getStatus": [{
|
|
44566
|
+
name: "deviceId",
|
|
44567
|
+
form: "single",
|
|
44568
|
+
optional: false
|
|
44569
|
+
}],
|
|
44446
44570
|
"deviceAdoption.release": [{
|
|
44447
44571
|
name: "camDeviceId",
|
|
44448
44572
|
form: "single",
|
|
@@ -44458,6 +44582,11 @@ Object.freeze({
|
|
|
44458
44582
|
form: "single",
|
|
44459
44583
|
optional: false
|
|
44460
44584
|
}],
|
|
44585
|
+
"deviceDiscovery.getStatus": [{
|
|
44586
|
+
name: "deviceId",
|
|
44587
|
+
form: "single",
|
|
44588
|
+
optional: false
|
|
44589
|
+
}],
|
|
44461
44590
|
"deviceDiscovery.listDiscovered": [{
|
|
44462
44591
|
name: "deviceId",
|
|
44463
44592
|
form: "single",
|
|
@@ -44477,6 +44606,21 @@ Object.freeze({
|
|
|
44477
44606
|
form: "single",
|
|
44478
44607
|
optional: false
|
|
44479
44608
|
}],
|
|
44609
|
+
"deviceExport.applyDeviceSettingsPatch": [{
|
|
44610
|
+
name: "deviceId",
|
|
44611
|
+
form: "single",
|
|
44612
|
+
optional: false
|
|
44613
|
+
}],
|
|
44614
|
+
"deviceExport.getDeviceLiveContribution": [{
|
|
44615
|
+
name: "deviceId",
|
|
44616
|
+
form: "single",
|
|
44617
|
+
optional: false
|
|
44618
|
+
}],
|
|
44619
|
+
"deviceExport.getDeviceSettingsContribution": [{
|
|
44620
|
+
name: "deviceId",
|
|
44621
|
+
form: "single",
|
|
44622
|
+
optional: false
|
|
44623
|
+
}],
|
|
44480
44624
|
"deviceExtension.listCandidates": [{
|
|
44481
44625
|
name: "deviceId",
|
|
44482
44626
|
form: "single",
|
|
@@ -44825,6 +44969,26 @@ Object.freeze({
|
|
|
44825
44969
|
form: "single",
|
|
44826
44970
|
optional: false
|
|
44827
44971
|
}],
|
|
44972
|
+
"deviceStatus.getStatus": [{
|
|
44973
|
+
name: "deviceId",
|
|
44974
|
+
form: "single",
|
|
44975
|
+
optional: false
|
|
44976
|
+
}],
|
|
44977
|
+
"doorbell.getStatus": [{
|
|
44978
|
+
name: "deviceId",
|
|
44979
|
+
form: "single",
|
|
44980
|
+
optional: false
|
|
44981
|
+
}],
|
|
44982
|
+
"enumSensor.getStatus": [{
|
|
44983
|
+
name: "deviceId",
|
|
44984
|
+
form: "single",
|
|
44985
|
+
optional: false
|
|
44986
|
+
}],
|
|
44987
|
+
"eventEmitter.getStatus": [{
|
|
44988
|
+
name: "deviceId",
|
|
44989
|
+
form: "single",
|
|
44990
|
+
optional: false
|
|
44991
|
+
}],
|
|
44828
44992
|
"faceGallery.getFaceByTrack": [{
|
|
44829
44993
|
name: "deviceId",
|
|
44830
44994
|
form: "single",
|
|
@@ -44839,6 +45003,11 @@ Object.freeze({
|
|
|
44839
45003
|
form: "array",
|
|
44840
45004
|
optional: true
|
|
44841
45005
|
}],
|
|
45006
|
+
"fanControl.getStatus": [{
|
|
45007
|
+
name: "deviceId",
|
|
45008
|
+
form: "single",
|
|
45009
|
+
optional: false
|
|
45010
|
+
}],
|
|
44842
45011
|
"fanControl.setDirection": [{
|
|
44843
45012
|
name: "deviceId",
|
|
44844
45013
|
form: "single",
|
|
@@ -44859,6 +45028,26 @@ Object.freeze({
|
|
|
44859
45028
|
form: "single",
|
|
44860
45029
|
optional: false
|
|
44861
45030
|
}],
|
|
45031
|
+
"featureProbe.getStatus": [{
|
|
45032
|
+
name: "deviceId",
|
|
45033
|
+
form: "single",
|
|
45034
|
+
optional: false
|
|
45035
|
+
}],
|
|
45036
|
+
"flood.getStatus": [{
|
|
45037
|
+
name: "deviceId",
|
|
45038
|
+
form: "single",
|
|
45039
|
+
optional: false
|
|
45040
|
+
}],
|
|
45041
|
+
"gas.getStatus": [{
|
|
45042
|
+
name: "deviceId",
|
|
45043
|
+
form: "single",
|
|
45044
|
+
optional: false
|
|
45045
|
+
}],
|
|
45046
|
+
"humidifier.getStatus": [{
|
|
45047
|
+
name: "deviceId",
|
|
45048
|
+
form: "single",
|
|
45049
|
+
optional: false
|
|
45050
|
+
}],
|
|
44862
45051
|
"humidifier.setMode": [{
|
|
44863
45052
|
name: "deviceId",
|
|
44864
45053
|
form: "single",
|
|
@@ -44874,11 +45063,26 @@ Object.freeze({
|
|
|
44874
45063
|
form: "single",
|
|
44875
45064
|
optional: false
|
|
44876
45065
|
}],
|
|
45066
|
+
"humiditySensor.getStatus": [{
|
|
45067
|
+
name: "deviceId",
|
|
45068
|
+
form: "single",
|
|
45069
|
+
optional: false
|
|
45070
|
+
}],
|
|
45071
|
+
"image.getStatus": [{
|
|
45072
|
+
name: "deviceId",
|
|
45073
|
+
form: "single",
|
|
45074
|
+
optional: false
|
|
45075
|
+
}],
|
|
44877
45076
|
"imageSettings.getOptions": [{
|
|
44878
45077
|
name: "deviceId",
|
|
44879
45078
|
form: "single",
|
|
44880
45079
|
optional: false
|
|
44881
45080
|
}],
|
|
45081
|
+
"imageSettings.getStatus": [{
|
|
45082
|
+
name: "deviceId",
|
|
45083
|
+
form: "single",
|
|
45084
|
+
optional: false
|
|
45085
|
+
}],
|
|
44882
45086
|
"imageSettings.setSettings": [{
|
|
44883
45087
|
name: "deviceId",
|
|
44884
45088
|
form: "single",
|
|
@@ -44889,6 +45093,11 @@ Object.freeze({
|
|
|
44889
45093
|
form: "single",
|
|
44890
45094
|
optional: false
|
|
44891
45095
|
}],
|
|
45096
|
+
"intercom.getStatus": [{
|
|
45097
|
+
name: "deviceId",
|
|
45098
|
+
form: "single",
|
|
45099
|
+
optional: false
|
|
45100
|
+
}],
|
|
44892
45101
|
"intercom.handleAnswer": [{
|
|
44893
45102
|
name: "deviceId",
|
|
44894
45103
|
form: "single",
|
|
@@ -44919,6 +45128,11 @@ Object.freeze({
|
|
|
44919
45128
|
form: "single",
|
|
44920
45129
|
optional: false
|
|
44921
45130
|
}],
|
|
45131
|
+
"lawnMowerControl.getStatus": [{
|
|
45132
|
+
name: "deviceId",
|
|
45133
|
+
form: "single",
|
|
45134
|
+
optional: false
|
|
45135
|
+
}],
|
|
44922
45136
|
"lawnMowerControl.pause": [{
|
|
44923
45137
|
name: "deviceId",
|
|
44924
45138
|
form: "single",
|
|
@@ -44929,6 +45143,11 @@ Object.freeze({
|
|
|
44929
45143
|
form: "single",
|
|
44930
45144
|
optional: false
|
|
44931
45145
|
}],
|
|
45146
|
+
"lockControl.getStatus": [{
|
|
45147
|
+
name: "deviceId",
|
|
45148
|
+
form: "single",
|
|
45149
|
+
optional: false
|
|
45150
|
+
}],
|
|
44932
45151
|
"lockControl.lock": [{
|
|
44933
45152
|
name: "deviceId",
|
|
44934
45153
|
form: "single",
|
|
@@ -44944,6 +45163,11 @@ Object.freeze({
|
|
|
44944
45163
|
form: "single",
|
|
44945
45164
|
optional: false
|
|
44946
45165
|
}],
|
|
45166
|
+
"mediaPlayer.getStatus": [{
|
|
45167
|
+
name: "deviceId",
|
|
45168
|
+
form: "single",
|
|
45169
|
+
optional: false
|
|
45170
|
+
}],
|
|
44947
45171
|
"mediaPlayer.next": [{
|
|
44948
45172
|
name: "deviceId",
|
|
44949
45173
|
form: "single",
|
|
@@ -45004,6 +45228,11 @@ Object.freeze({
|
|
|
45004
45228
|
form: "single",
|
|
45005
45229
|
optional: false
|
|
45006
45230
|
}],
|
|
45231
|
+
"motion.getStatus": [{
|
|
45232
|
+
name: "deviceId",
|
|
45233
|
+
form: "single",
|
|
45234
|
+
optional: false
|
|
45235
|
+
}],
|
|
45007
45236
|
"motion.isDetected": [{
|
|
45008
45237
|
name: "deviceId",
|
|
45009
45238
|
form: "single",
|
|
@@ -45014,11 +45243,31 @@ Object.freeze({
|
|
|
45014
45243
|
form: "single",
|
|
45015
45244
|
optional: false
|
|
45016
45245
|
}],
|
|
45246
|
+
"motionDetection.applyDeviceSettingsPatch": [{
|
|
45247
|
+
name: "deviceId",
|
|
45248
|
+
form: "single",
|
|
45249
|
+
optional: false
|
|
45250
|
+
}],
|
|
45251
|
+
"motionDetection.getDeviceLiveContribution": [{
|
|
45252
|
+
name: "deviceId",
|
|
45253
|
+
form: "single",
|
|
45254
|
+
optional: false
|
|
45255
|
+
}],
|
|
45256
|
+
"motionDetection.getDeviceSettingsContribution": [{
|
|
45257
|
+
name: "deviceId",
|
|
45258
|
+
form: "single",
|
|
45259
|
+
optional: false
|
|
45260
|
+
}],
|
|
45017
45261
|
"motionDetection.removeCamera": [{
|
|
45018
45262
|
name: "deviceId",
|
|
45019
45263
|
form: "single",
|
|
45020
45264
|
optional: false
|
|
45021
45265
|
}],
|
|
45266
|
+
"motionTrigger.getStatus": [{
|
|
45267
|
+
name: "deviceId",
|
|
45268
|
+
form: "single",
|
|
45269
|
+
optional: false
|
|
45270
|
+
}],
|
|
45022
45271
|
"motionTrigger.setMotionTrigger": [{
|
|
45023
45272
|
name: "deviceId",
|
|
45024
45273
|
form: "single",
|
|
@@ -45029,6 +45278,11 @@ Object.freeze({
|
|
|
45029
45278
|
form: "single",
|
|
45030
45279
|
optional: false
|
|
45031
45280
|
}],
|
|
45281
|
+
"motionZones.getStatus": [{
|
|
45282
|
+
name: "deviceId",
|
|
45283
|
+
form: "single",
|
|
45284
|
+
optional: false
|
|
45285
|
+
}],
|
|
45032
45286
|
"motionZones.setZone": [{
|
|
45033
45287
|
name: "deviceId",
|
|
45034
45288
|
form: "single",
|
|
@@ -45039,6 +45293,11 @@ Object.freeze({
|
|
|
45039
45293
|
form: "single",
|
|
45040
45294
|
optional: false
|
|
45041
45295
|
}],
|
|
45296
|
+
"nativeObjectDetection.getStatus": [{
|
|
45297
|
+
name: "deviceId",
|
|
45298
|
+
form: "single",
|
|
45299
|
+
optional: false
|
|
45300
|
+
}],
|
|
45042
45301
|
"nativeObjectDetection.setEnabled": [{
|
|
45043
45302
|
name: "deviceId",
|
|
45044
45303
|
form: "single",
|
|
@@ -45054,6 +45313,11 @@ Object.freeze({
|
|
|
45054
45313
|
form: "single",
|
|
45055
45314
|
optional: false
|
|
45056
45315
|
}],
|
|
45316
|
+
"navigation.getStatus": [{
|
|
45317
|
+
name: "deviceId",
|
|
45318
|
+
form: "single",
|
|
45319
|
+
optional: false
|
|
45320
|
+
}],
|
|
45057
45321
|
"navigation.goToPoint": [{
|
|
45058
45322
|
name: "deviceId",
|
|
45059
45323
|
form: "single",
|
|
@@ -45099,6 +45363,11 @@ Object.freeze({
|
|
|
45099
45363
|
form: "single",
|
|
45100
45364
|
optional: false
|
|
45101
45365
|
}],
|
|
45366
|
+
"networkLink.getStatus": [{
|
|
45367
|
+
name: "deviceId",
|
|
45368
|
+
form: "single",
|
|
45369
|
+
optional: false
|
|
45370
|
+
}],
|
|
45102
45371
|
"networkQuality.getDeviceStats": [{
|
|
45103
45372
|
name: "deviceId",
|
|
45104
45373
|
form: "single",
|
|
@@ -45124,11 +45393,26 @@ Object.freeze({
|
|
|
45124
45393
|
form: "single",
|
|
45125
45394
|
optional: false
|
|
45126
45395
|
}],
|
|
45396
|
+
"notifier.getStatus": [{
|
|
45397
|
+
name: "deviceId",
|
|
45398
|
+
form: "single",
|
|
45399
|
+
optional: false
|
|
45400
|
+
}],
|
|
45127
45401
|
"notifier.send": [{
|
|
45128
45402
|
name: "deviceId",
|
|
45129
45403
|
form: "single",
|
|
45130
45404
|
optional: false
|
|
45131
45405
|
}],
|
|
45406
|
+
"numericSensor.getStatus": [{
|
|
45407
|
+
name: "deviceId",
|
|
45408
|
+
form: "single",
|
|
45409
|
+
optional: false
|
|
45410
|
+
}],
|
|
45411
|
+
"osd.getStatus": [{
|
|
45412
|
+
name: "deviceId",
|
|
45413
|
+
form: "single",
|
|
45414
|
+
optional: false
|
|
45415
|
+
}],
|
|
45132
45416
|
"osd.setOverlay": [{
|
|
45133
45417
|
name: "deviceId",
|
|
45134
45418
|
form: "single",
|
|
@@ -45188,6 +45472,11 @@ Object.freeze({
|
|
|
45188
45472
|
form: "single",
|
|
45189
45473
|
optional: false
|
|
45190
45474
|
}],
|
|
45475
|
+
"petFeeder.getStatus": [{
|
|
45476
|
+
name: "deviceId",
|
|
45477
|
+
form: "single",
|
|
45478
|
+
optional: false
|
|
45479
|
+
}],
|
|
45191
45480
|
"petFeeder.markFoodReplenished": [{
|
|
45192
45481
|
name: "deviceId",
|
|
45193
45482
|
form: "single",
|
|
@@ -45223,6 +45512,11 @@ Object.freeze({
|
|
|
45223
45512
|
form: "single",
|
|
45224
45513
|
optional: false
|
|
45225
45514
|
}],
|
|
45515
|
+
"pipelineAnalytics.applyDeviceSettingsPatch": [{
|
|
45516
|
+
name: "deviceId",
|
|
45517
|
+
form: "single",
|
|
45518
|
+
optional: false
|
|
45519
|
+
}],
|
|
45226
45520
|
"pipelineAnalytics.clearTrackRelation": [{
|
|
45227
45521
|
name: "deviceId",
|
|
45228
45522
|
form: "single",
|
|
@@ -45263,6 +45557,16 @@ Object.freeze({
|
|
|
45263
45557
|
form: "single",
|
|
45264
45558
|
optional: false
|
|
45265
45559
|
}],
|
|
45560
|
+
"pipelineAnalytics.getDeviceLiveContribution": [{
|
|
45561
|
+
name: "deviceId",
|
|
45562
|
+
form: "single",
|
|
45563
|
+
optional: false
|
|
45564
|
+
}],
|
|
45565
|
+
"pipelineAnalytics.getDeviceSettingsContribution": [{
|
|
45566
|
+
name: "deviceId",
|
|
45567
|
+
form: "single",
|
|
45568
|
+
optional: false
|
|
45569
|
+
}],
|
|
45266
45570
|
"pipelineAnalytics.getEventDensity": [{
|
|
45267
45571
|
name: "deviceId",
|
|
45268
45572
|
form: "single",
|
|
@@ -45478,6 +45782,11 @@ Object.freeze({
|
|
|
45478
45782
|
form: "single",
|
|
45479
45783
|
optional: true
|
|
45480
45784
|
}],
|
|
45785
|
+
"pipelineOrchestrator.applyDeviceSettingsPatch": [{
|
|
45786
|
+
name: "deviceId",
|
|
45787
|
+
form: "single",
|
|
45788
|
+
optional: false
|
|
45789
|
+
}],
|
|
45481
45790
|
"pipelineOrchestrator.assignAudio": [{
|
|
45482
45791
|
name: "deviceId",
|
|
45483
45792
|
form: "single",
|
|
@@ -45523,6 +45832,16 @@ Object.freeze({
|
|
|
45523
45832
|
form: "single",
|
|
45524
45833
|
optional: false
|
|
45525
45834
|
}],
|
|
45835
|
+
"pipelineOrchestrator.getDeviceLiveContribution": [{
|
|
45836
|
+
name: "deviceId",
|
|
45837
|
+
form: "single",
|
|
45838
|
+
optional: false
|
|
45839
|
+
}],
|
|
45840
|
+
"pipelineOrchestrator.getDeviceSettingsContribution": [{
|
|
45841
|
+
name: "deviceId",
|
|
45842
|
+
form: "single",
|
|
45843
|
+
optional: false
|
|
45844
|
+
}],
|
|
45526
45845
|
"pipelineOrchestrator.getPipelineAssignment": [{
|
|
45527
45846
|
name: "deviceId",
|
|
45528
45847
|
form: "single",
|
|
@@ -45643,11 +45962,31 @@ Object.freeze({
|
|
|
45643
45962
|
form: "single",
|
|
45644
45963
|
optional: true
|
|
45645
45964
|
}],
|
|
45965
|
+
"powerMeter.getStatus": [{
|
|
45966
|
+
name: "deviceId",
|
|
45967
|
+
form: "single",
|
|
45968
|
+
optional: false
|
|
45969
|
+
}],
|
|
45970
|
+
"presence.getStatus": [{
|
|
45971
|
+
name: "deviceId",
|
|
45972
|
+
form: "single",
|
|
45973
|
+
optional: false
|
|
45974
|
+
}],
|
|
45975
|
+
"pressureSensor.getStatus": [{
|
|
45976
|
+
name: "deviceId",
|
|
45977
|
+
form: "single",
|
|
45978
|
+
optional: false
|
|
45979
|
+
}],
|
|
45646
45980
|
"privacyMask.getOptions": [{
|
|
45647
45981
|
name: "deviceId",
|
|
45648
45982
|
form: "single",
|
|
45649
45983
|
optional: false
|
|
45650
45984
|
}],
|
|
45985
|
+
"privacyMask.getStatus": [{
|
|
45986
|
+
name: "deviceId",
|
|
45987
|
+
form: "single",
|
|
45988
|
+
optional: false
|
|
45989
|
+
}],
|
|
45651
45990
|
"privacyMask.setAudioEnabled": [{
|
|
45652
45991
|
name: "deviceId",
|
|
45653
45992
|
form: "single",
|
|
@@ -45698,6 +46037,11 @@ Object.freeze({
|
|
|
45698
46037
|
form: "single",
|
|
45699
46038
|
optional: false
|
|
45700
46039
|
}],
|
|
46040
|
+
"ptz.getStatus": [{
|
|
46041
|
+
name: "deviceId",
|
|
46042
|
+
form: "single",
|
|
46043
|
+
optional: false
|
|
46044
|
+
}],
|
|
45701
46045
|
"ptz.goHome": [{
|
|
45702
46046
|
name: "deviceId",
|
|
45703
46047
|
form: "single",
|
|
@@ -45788,6 +46132,11 @@ Object.freeze({
|
|
|
45788
46132
|
form: "single",
|
|
45789
46133
|
optional: false
|
|
45790
46134
|
}],
|
|
46135
|
+
"recordingArchive.applyDeviceSettingsPatch": [{
|
|
46136
|
+
name: "deviceId",
|
|
46137
|
+
form: "single",
|
|
46138
|
+
optional: false
|
|
46139
|
+
}],
|
|
45791
46140
|
"recordingArchive.deleteFootprint": [{
|
|
45792
46141
|
name: "deviceId",
|
|
45793
46142
|
form: "single",
|
|
@@ -45808,6 +46157,21 @@ Object.freeze({
|
|
|
45808
46157
|
form: "single",
|
|
45809
46158
|
optional: false
|
|
45810
46159
|
}],
|
|
46160
|
+
"recordingArchive.getDeviceLiveContribution": [{
|
|
46161
|
+
name: "deviceId",
|
|
46162
|
+
form: "single",
|
|
46163
|
+
optional: false
|
|
46164
|
+
}],
|
|
46165
|
+
"recordingArchive.getDeviceSettingsContribution": [{
|
|
46166
|
+
name: "deviceId",
|
|
46167
|
+
form: "single",
|
|
46168
|
+
optional: false
|
|
46169
|
+
}],
|
|
46170
|
+
"recordingArchive.getStatus": [{
|
|
46171
|
+
name: "deviceId",
|
|
46172
|
+
form: "single",
|
|
46173
|
+
optional: false
|
|
46174
|
+
}],
|
|
45811
46175
|
"recordingArchive.listOpsLog": [{
|
|
45812
46176
|
name: "deviceId",
|
|
45813
46177
|
form: "single",
|
|
@@ -45893,6 +46257,11 @@ Object.freeze({
|
|
|
45893
46257
|
form: "single",
|
|
45894
46258
|
optional: false
|
|
45895
46259
|
}],
|
|
46260
|
+
"recordingOnboard.getStatus": [{
|
|
46261
|
+
name: "deviceId",
|
|
46262
|
+
form: "single",
|
|
46263
|
+
optional: false
|
|
46264
|
+
}],
|
|
45896
46265
|
"recordingOnboard.setSettings": [{
|
|
45897
46266
|
name: "deviceId",
|
|
45898
46267
|
form: "single",
|
|
@@ -45923,6 +46292,11 @@ Object.freeze({
|
|
|
45923
46292
|
form: "single",
|
|
45924
46293
|
optional: false
|
|
45925
46294
|
}],
|
|
46295
|
+
"sceneMonitor.getStatus": [{
|
|
46296
|
+
name: "deviceId",
|
|
46297
|
+
form: "single",
|
|
46298
|
+
optional: false
|
|
46299
|
+
}],
|
|
45926
46300
|
"sceneMonitor.listScenes": [{
|
|
45927
46301
|
name: "deviceId",
|
|
45928
46302
|
form: "single",
|
|
@@ -45948,6 +46322,11 @@ Object.freeze({
|
|
|
45948
46322
|
form: "single",
|
|
45949
46323
|
optional: false
|
|
45950
46324
|
}],
|
|
46325
|
+
"scriptRunner.getStatus": [{
|
|
46326
|
+
name: "deviceId",
|
|
46327
|
+
form: "single",
|
|
46328
|
+
optional: false
|
|
46329
|
+
}],
|
|
45951
46330
|
"scriptRunner.run": [{
|
|
45952
46331
|
name: "deviceId",
|
|
45953
46332
|
form: "single",
|
|
@@ -45958,11 +46337,31 @@ Object.freeze({
|
|
|
45958
46337
|
form: "single",
|
|
45959
46338
|
optional: false
|
|
45960
46339
|
}],
|
|
46340
|
+
"smoke.getStatus": [{
|
|
46341
|
+
name: "deviceId",
|
|
46342
|
+
form: "single",
|
|
46343
|
+
optional: false
|
|
46344
|
+
}],
|
|
46345
|
+
"snapshot.applyDeviceSettingsPatch": [{
|
|
46346
|
+
name: "deviceId",
|
|
46347
|
+
form: "single",
|
|
46348
|
+
optional: false
|
|
46349
|
+
}],
|
|
45961
46350
|
"snapshot.getDebugState": [{
|
|
45962
46351
|
name: "deviceId",
|
|
45963
46352
|
form: "single",
|
|
45964
46353
|
optional: false
|
|
45965
46354
|
}],
|
|
46355
|
+
"snapshot.getDeviceLiveContribution": [{
|
|
46356
|
+
name: "deviceId",
|
|
46357
|
+
form: "single",
|
|
46358
|
+
optional: false
|
|
46359
|
+
}],
|
|
46360
|
+
"snapshot.getDeviceSettingsContribution": [{
|
|
46361
|
+
name: "deviceId",
|
|
46362
|
+
form: "single",
|
|
46363
|
+
optional: false
|
|
46364
|
+
}],
|
|
45966
46365
|
"snapshot.getSnapshot": [{
|
|
45967
46366
|
name: "deviceId",
|
|
45968
46367
|
form: "single",
|
|
@@ -45979,6 +46378,11 @@ Object.freeze({
|
|
|
45979
46378
|
form: "array",
|
|
45980
46379
|
optional: false
|
|
45981
46380
|
}],
|
|
46381
|
+
"snapshot.getStatus": [{
|
|
46382
|
+
name: "deviceId",
|
|
46383
|
+
form: "single",
|
|
46384
|
+
optional: false
|
|
46385
|
+
}],
|
|
45982
46386
|
"snapshot.invalidateCache": [{
|
|
45983
46387
|
name: "deviceId",
|
|
45984
46388
|
form: "single",
|
|
@@ -45989,6 +46393,11 @@ Object.freeze({
|
|
|
45989
46393
|
form: "single",
|
|
45990
46394
|
optional: false
|
|
45991
46395
|
}],
|
|
46396
|
+
"streamBroker.applyDeviceSettingsPatch": [{
|
|
46397
|
+
name: "deviceId",
|
|
46398
|
+
form: "single",
|
|
46399
|
+
optional: false
|
|
46400
|
+
}],
|
|
45992
46401
|
"streamBroker.assignProfile": [{
|
|
45993
46402
|
name: "deviceId",
|
|
45994
46403
|
form: "single",
|
|
@@ -46004,6 +46413,16 @@ Object.freeze({
|
|
|
46004
46413
|
form: "single",
|
|
46005
46414
|
optional: false
|
|
46006
46415
|
}],
|
|
46416
|
+
"streamBroker.getDeviceLiveContribution": [{
|
|
46417
|
+
name: "deviceId",
|
|
46418
|
+
form: "single",
|
|
46419
|
+
optional: false
|
|
46420
|
+
}],
|
|
46421
|
+
"streamBroker.getDeviceSettingsContribution": [{
|
|
46422
|
+
name: "deviceId",
|
|
46423
|
+
form: "single",
|
|
46424
|
+
optional: false
|
|
46425
|
+
}],
|
|
46007
46426
|
"streamBroker.getStreamWithCodec": [{
|
|
46008
46427
|
name: "deviceId",
|
|
46009
46428
|
form: "single",
|
|
@@ -46064,16 +46483,46 @@ Object.freeze({
|
|
|
46064
46483
|
form: "single",
|
|
46065
46484
|
optional: false
|
|
46066
46485
|
}],
|
|
46486
|
+
"streamParams.getStatus": [{
|
|
46487
|
+
name: "deviceId",
|
|
46488
|
+
form: "single",
|
|
46489
|
+
optional: false
|
|
46490
|
+
}],
|
|
46067
46491
|
"streamParams.setProfile": [{
|
|
46068
46492
|
name: "deviceId",
|
|
46069
46493
|
form: "single",
|
|
46070
46494
|
optional: false
|
|
46071
46495
|
}],
|
|
46496
|
+
"switch.getStatus": [{
|
|
46497
|
+
name: "deviceId",
|
|
46498
|
+
form: "single",
|
|
46499
|
+
optional: false
|
|
46500
|
+
}],
|
|
46072
46501
|
"switch.setState": [{
|
|
46073
46502
|
name: "deviceId",
|
|
46074
46503
|
form: "single",
|
|
46075
46504
|
optional: false
|
|
46076
46505
|
}],
|
|
46506
|
+
"tamper.getStatus": [{
|
|
46507
|
+
name: "deviceId",
|
|
46508
|
+
form: "single",
|
|
46509
|
+
optional: false
|
|
46510
|
+
}],
|
|
46511
|
+
"temperatureSensor.getStatus": [{
|
|
46512
|
+
name: "deviceId",
|
|
46513
|
+
form: "single",
|
|
46514
|
+
optional: false
|
|
46515
|
+
}],
|
|
46516
|
+
"update.getStatus": [{
|
|
46517
|
+
name: "deviceId",
|
|
46518
|
+
form: "single",
|
|
46519
|
+
optional: false
|
|
46520
|
+
}],
|
|
46521
|
+
"vacuumControl.getStatus": [{
|
|
46522
|
+
name: "deviceId",
|
|
46523
|
+
form: "single",
|
|
46524
|
+
optional: false
|
|
46525
|
+
}],
|
|
46077
46526
|
"vacuumControl.locate": [{
|
|
46078
46527
|
name: "deviceId",
|
|
46079
46528
|
form: "single",
|
|
@@ -46109,6 +46558,11 @@ Object.freeze({
|
|
|
46109
46558
|
form: "single",
|
|
46110
46559
|
optional: false
|
|
46111
46560
|
}],
|
|
46561
|
+
"valve.getStatus": [{
|
|
46562
|
+
name: "deviceId",
|
|
46563
|
+
form: "single",
|
|
46564
|
+
optional: false
|
|
46565
|
+
}],
|
|
46112
46566
|
"valve.open": [{
|
|
46113
46567
|
name: "deviceId",
|
|
46114
46568
|
form: "single",
|
|
@@ -46124,6 +46578,11 @@ Object.freeze({
|
|
|
46124
46578
|
form: "single",
|
|
46125
46579
|
optional: false
|
|
46126
46580
|
}],
|
|
46581
|
+
"vibration.getStatus": [{
|
|
46582
|
+
name: "deviceId",
|
|
46583
|
+
form: "single",
|
|
46584
|
+
optional: false
|
|
46585
|
+
}],
|
|
46127
46586
|
"videoclips.dialClipStream": [{
|
|
46128
46587
|
name: "deviceId",
|
|
46129
46588
|
form: "single",
|
|
@@ -46159,6 +46618,11 @@ Object.freeze({
|
|
|
46159
46618
|
form: "single",
|
|
46160
46619
|
optional: false
|
|
46161
46620
|
}],
|
|
46621
|
+
"waterHeater.getStatus": [{
|
|
46622
|
+
name: "deviceId",
|
|
46623
|
+
form: "single",
|
|
46624
|
+
optional: false
|
|
46625
|
+
}],
|
|
46162
46626
|
"waterHeater.setAway": [{
|
|
46163
46627
|
name: "deviceId",
|
|
46164
46628
|
form: "single",
|
|
@@ -46174,6 +46638,11 @@ Object.freeze({
|
|
|
46174
46638
|
form: "single",
|
|
46175
46639
|
optional: false
|
|
46176
46640
|
}],
|
|
46641
|
+
"weather.getStatus": [{
|
|
46642
|
+
name: "deviceId",
|
|
46643
|
+
form: "single",
|
|
46644
|
+
optional: false
|
|
46645
|
+
}],
|
|
46177
46646
|
"webrtcSession.addIceCandidate": [{
|
|
46178
46647
|
name: "deviceId",
|
|
46179
46648
|
form: "single",
|
|
@@ -46911,7 +47380,7 @@ var PreviewTextField = string().max(200);
|
|
|
46911
47380
|
* Whether the notification's preview is a STILL or a short animation.
|
|
46912
47381
|
*
|
|
46913
47382
|
* The operator's ask, verbatim: *"inviato come gif o video (come per le altre
|
|
46914
|
-
* rule)"* — the other rules already offer an animated preview, and a ten-hour
|
|
47383
|
+
* rule)"* [sent as a gif or video (as for the other rules)] — the other rules already offer an animated preview, and a ten-hour
|
|
46915
47384
|
* night reads better as three seconds of motion than as one frame of it. Both
|
|
46916
47385
|
* modes get the SAME treatment (blurred frame, large centred title); `'gif'`
|
|
46917
47386
|
* simply applies it to a dozen frames sampled across the render and assembles
|
|
@@ -47253,7 +47722,7 @@ var AgentUIAddon = class extends BaseAddon {
|
|
|
47253
47722
|
capability: adminUiCapability,
|
|
47254
47723
|
provider: {
|
|
47255
47724
|
getStaticDir: async () => ({ staticDir: path.resolve(__dirname) }),
|
|
47256
|
-
getVersion: async () => ({ version: "1.2.
|
|
47725
|
+
getVersion: async () => ({ version: "1.2.164" })
|
|
47257
47726
|
}
|
|
47258
47727
|
}];
|
|
47259
47728
|
}
|