@camstack/addon-provider-hikvision 1.2.137 → 1.2.138
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 +600 -141
- package/dist/addon.mjs +600 -141
- package/package.json +1 -3
package/dist/addon.mjs
CHANGED
|
@@ -7437,7 +7437,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
7437
7437
|
return DeviceRole;
|
|
7438
7438
|
}({});
|
|
7439
7439
|
//#endregion
|
|
7440
|
-
//#region ../types/dist/composition-
|
|
7440
|
+
//#region ../types/dist/composition-Bzr7GwgP.mjs
|
|
7441
7441
|
/**
|
|
7442
7442
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
7443
7443
|
*
|
|
@@ -7491,20 +7491,20 @@ function portable(target) {
|
|
|
7491
7491
|
}
|
|
7492
7492
|
portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64");
|
|
7493
7493
|
/**
|
|
7494
|
-
*
|
|
7495
|
-
*
|
|
7494
|
+
* THE table "which boolean of this device type counts as HIGH", and the
|
|
7495
|
+
* pure evaluator of its EDGE.
|
|
7496
7496
|
*
|
|
7497
|
-
*
|
|
7498
|
-
*
|
|
7499
|
-
*
|
|
7500
|
-
*
|
|
7501
|
-
*
|
|
7502
|
-
*
|
|
7497
|
+
* ONE table for everyone who asks "is this device HIGH?": the
|
|
7498
|
+
* recorder's `RecordingTriggers.sensorDeviceIds` trigger, the post-analysis
|
|
7499
|
+
* sensor markers, the orchestrator's camera-sensors bridge and
|
|
7500
|
+
* the sources of a composite doorbell (`doorbellFeatureSources`, D671).
|
|
7501
|
+
* A second copy would diverge at the first cap added, and the symptom — "the
|
|
7502
|
+
* sensor rings the doorbell but does not record" — is exactly D62.
|
|
7503
7503
|
*
|
|
7504
|
-
* ⚠
|
|
7505
|
-
*
|
|
7506
|
-
*
|
|
7507
|
-
*
|
|
7504
|
+
* ⚠ NOT `DEVICE_STATE_READERS` (`catalogs/device-state-vocabulary.ts`), and the
|
|
7505
|
+
* two must not be unified: that one answers "what is the state WORD for a
|
|
7506
|
+
* rule" (and includes `presence`, `cover`, `alarm-panel`), this one "which
|
|
7507
|
+
* boolean's EDGE counts". Deliberately different vocabularies.
|
|
7508
7508
|
*/
|
|
7509
7509
|
/**
|
|
7510
7510
|
* Known binary / switch source caps → the boolean slice field whose
|
|
@@ -7525,6 +7525,8 @@ var SOURCE_CAP_ACTIVE_FIELD = {
|
|
|
7525
7525
|
vibration: "detected",
|
|
7526
7526
|
tamper: "tampered"
|
|
7527
7527
|
};
|
|
7528
|
+
/** Cap names whose presence in a device's bindings qualify it as a source. */
|
|
7529
|
+
var SOURCE_CAPS = Object.keys(SOURCE_CAP_ACTIVE_FIELD);
|
|
7528
7530
|
/**
|
|
7529
7531
|
* Error types for the safe expression engine. Two distinct classes so callers
|
|
7530
7532
|
* can tell a compile-time (grammar) failure from a runtime (evaluation)
|
|
@@ -9131,22 +9133,22 @@ var CLASS_MAP_MACRO_TARGETS = [
|
|
|
9131
9133
|
"package"
|
|
9132
9134
|
];
|
|
9133
9135
|
/**
|
|
9134
|
-
*
|
|
9135
|
-
*
|
|
9136
|
+
* The FIRST-LEVEL macro classes: those an object detector emits and that
|
|
9137
|
+
* an operator can select.
|
|
9136
9138
|
*
|
|
9137
|
-
*
|
|
9139
|
+
* They are the three offered by the `object-detection` step
|
|
9138
9140
|
* (`addon-pipeline/src/detection-pipeline/registry/step-definitions.ts`,
|
|
9139
|
-
* `enabledMacroClasses`). `package`
|
|
9140
|
-
* `MACRO_LABELS` —
|
|
9141
|
-
* `package-detection`,
|
|
9142
|
-
*
|
|
9141
|
+
* `enabledMacroClasses`). `package` is in {@link CLASS_MAP_MACRO_TARGETS} and in
|
|
9142
|
+
* `MACRO_LABELS` — it is a true macro — but NOT here: it belongs to the step
|
|
9143
|
+
* `package-detection`, whose enablement is driven by zones, and offering the
|
|
9144
|
+
* same word twice has already made an operator turn on the COCO proxy
|
|
9143
9145
|
* (suitcase/backpack/handbag) lasciando spento il detector dedicato.
|
|
9144
9146
|
*
|
|
9145
|
-
*
|
|
9146
|
-
*
|
|
9147
|
-
* (`types/detection.ts`);
|
|
9148
|
-
* (`RecordingTriggers.objectClasses`)
|
|
9149
|
-
*
|
|
9147
|
+
* ONE list. Before today the same three were hand-written in the step's offer
|
|
9148
|
+
* and a second time as the union `FirstLevelMacro`
|
|
9149
|
+
* (`types/detection.ts`); a third copy for the recording trigger
|
|
9150
|
+
* (`RecordingTriggers.objectClasses`) would have made the later divergence
|
|
9151
|
+
* invisible.
|
|
9150
9152
|
*/
|
|
9151
9153
|
var FIRST_LEVEL_MACRO_CLASSES = [
|
|
9152
9154
|
"person",
|
|
@@ -9211,17 +9213,17 @@ var RecordingStorageModeSchema = _enum([
|
|
|
9211
9213
|
"on-device-decision"
|
|
9212
9214
|
]);
|
|
9213
9215
|
/**
|
|
9214
|
-
*
|
|
9215
|
-
*
|
|
9216
|
+
* The macro classes that can open a recording window — the same
|
|
9217
|
+
* three offered by the `object-detection` step, from ONE list
|
|
9216
9218
|
* ({@link FIRST_LEVEL_MACRO_CLASSES}).
|
|
9217
9219
|
*/
|
|
9218
9220
|
var RecordingObjectTriggerClassSchema = _enum(FIRST_LEVEL_MACRO_CLASSES);
|
|
9219
9221
|
/**
|
|
9220
|
-
* True
|
|
9222
|
+
* True when `values` does not repeat an element.
|
|
9221
9223
|
*
|
|
9222
|
-
*
|
|
9223
|
-
*
|
|
9224
|
-
*
|
|
9224
|
+
* A duplicate is not harmless: every entry of `objectClasses` / `sensorDeviceIds`
|
|
9225
|
+
* becomes a SOURCE in `bandTriggerSources`, and the same source twice
|
|
9226
|
+
* would count its windows twice in `segmentMissedByMs`.
|
|
9225
9227
|
*/
|
|
9226
9228
|
var noDuplicates = (values) => new Set(values).size === values.length;
|
|
9227
9229
|
/** Which detectors trigger an `events`-mode band. */
|
|
@@ -9229,34 +9231,34 @@ var RecordingTriggersSchema = object({
|
|
|
9229
9231
|
motion: boolean().optional(),
|
|
9230
9232
|
audioThresholdDbfs: number().optional(),
|
|
9231
9233
|
/**
|
|
9232
|
-
*
|
|
9233
|
-
*
|
|
9234
|
-
*
|
|
9235
|
-
*
|
|
9234
|
+
* The macro classes whose detection opens a window. ABSENT = the source
|
|
9235
|
+
* is not listened to; an EMPTY array is rejected, because "events band, object
|
|
9236
|
+
* trigger on, no class" is the same shape "enabled and records
|
|
9237
|
+
* nothing, forever" that `eventsBandCanEverDemand` is written against.
|
|
9236
9238
|
*
|
|
9237
|
-
*
|
|
9238
|
-
*
|
|
9239
|
-
* `minConfidence<Macro>`
|
|
9240
|
-
* (`source: 'onboard'`)
|
|
9241
|
-
*
|
|
9239
|
+
* The signal read is ALREADY FILTERED: only `source: 'pipeline'` detections, i.e.
|
|
9240
|
+
* those that went through `enabledMacroClasses`, the
|
|
9241
|
+
* `minConfidence<Macro>` and the full-frame guard. The camera's onboard AI
|
|
9242
|
+
* (`source: 'onboard'`) goes through none of those gates and does NOT open
|
|
9243
|
+
* windows — see `recorder/object-trigger.ts`.
|
|
9242
9244
|
*/
|
|
9243
9245
|
objectClasses: array(RecordingObjectTriggerClassSchema).min(1).refine(noDuplicates, { message: "objectClasses must not repeat a class" }).optional(),
|
|
9244
9246
|
/**
|
|
9245
|
-
*
|
|
9246
|
-
*
|
|
9247
|
+
* The LINKED devices whose RISING EDGE opens a window. Absent = the source
|
|
9248
|
+
* is not listened to; an empty array is rejected for the same reason as
|
|
9247
9249
|
* `objectClasses`.
|
|
9248
9250
|
*
|
|
9249
|
-
*
|
|
9250
|
-
*
|
|
9251
|
-
*
|
|
9252
|
-
*
|
|
9253
|
-
* device (D12) —
|
|
9251
|
+
* These are SOURCE device ids, not cameras: the band names them, so the
|
|
9252
|
+
* hot path (`DeviceStateChanged`, at bus rate across the whole fleet)
|
|
9253
|
+
* does no RPC. The OFFER from which the operator picks them is another question, and
|
|
9254
|
+
* is resolved with `deviceManager.getLinkedDevices` + `getBindingsBatch` per
|
|
9255
|
+
* device (D12) — never a global list of caps.
|
|
9254
9256
|
*
|
|
9255
|
-
*
|
|
9256
|
-
* `SOURCE_CAP_ACTIVE_FIELD` (`catalogs/sensor-active-state.ts`)
|
|
9257
|
-
*
|
|
9258
|
-
*
|
|
9259
|
-
*
|
|
9257
|
+
* What "high" means depends on the device TYPE and is not decided here:
|
|
9258
|
+
* `SOURCE_CAP_ACTIVE_FIELD` (`catalogs/sensor-active-state.ts`) is THE table,
|
|
9259
|
+
* the same one as the composite doorbell (D671). And it is the EDGE, not
|
|
9260
|
+
* the level: a contact found already open at runner restart does not
|
|
9261
|
+
* record.
|
|
9260
9262
|
*/
|
|
9261
9263
|
sensorDeviceIds: array(number().int().positive()).min(1).max(16).refine(noDuplicates, { message: "sensorDeviceIds must not repeat a device" }).optional()
|
|
9262
9264
|
});
|
|
@@ -10508,7 +10510,7 @@ function findTimezone(id) {
|
|
|
10508
10510
|
* - **VALUE** — at which level, for which scope, until when. That stays ONE
|
|
10509
10511
|
* thing: the logging settings document on the `system` cap. Two authorities
|
|
10510
10512
|
* over the values is the exact defect
|
|
10511
|
-
* `docs/design/plans/2026-08-26-
|
|
10513
|
+
* `docs/design/plans/2026-08-26-per-component-logging.md` was written to
|
|
10512
10514
|
* remove; re-introducing it from the cure side would be grotesque.
|
|
10513
10515
|
*
|
|
10514
10516
|
* Nothing in this file reads a clock, an env var or a store. The registry is
|
|
@@ -12325,7 +12327,7 @@ var BrokerStatusEnum = _enum([
|
|
|
12325
12327
|
"unreachable",
|
|
12326
12328
|
"error"
|
|
12327
12329
|
]);
|
|
12328
|
-
var BrokerInfoSchema
|
|
12330
|
+
var BrokerInfoSchema = object({
|
|
12329
12331
|
/** Stable broker id. Persisted; survives addon restarts. */
|
|
12330
12332
|
id: string(),
|
|
12331
12333
|
/** Addon id of the provider that OWNS this broker.
|
|
@@ -12458,7 +12460,7 @@ var GetStateInputSchema = object({
|
|
|
12458
12460
|
* HA: entity_id (returns the cached entity state). */
|
|
12459
12461
|
key: string()
|
|
12460
12462
|
});
|
|
12461
|
-
method(ListInputSchema, array(BrokerInfoSchema
|
|
12463
|
+
method(ListInputSchema, array(BrokerInfoSchema)), method(GetInputSchema, BrokerInfoSchema.nullable()), method(_void(), array(BrokerProviderInfoSchema), { auth: "admin" }), method(AddInputSchema, AddResultSchema, {
|
|
12462
12464
|
kind: "mutation",
|
|
12463
12465
|
auth: "admin"
|
|
12464
12466
|
}), method(RemoveInputSchema, _void(), {
|
|
@@ -14169,7 +14171,7 @@ method(_void(), EngineInfoSchema, { auth: "admin" }), method(object({
|
|
|
14169
14171
|
*
|
|
14170
14172
|
* ⚠ An earlier version of this comment blamed Zod stripping, and that
|
|
14171
14173
|
* was wrong — corrected 2026-08-26 after the hop map
|
|
14172
|
-
* (`docs/design/2026-08-26-
|
|
14174
|
+
* (`docs/design/2026-08-26-topic-hop-map.md`) traced the path.
|
|
14173
14175
|
* There is **no Zod parse at all** between the door and the engine: the
|
|
14174
14176
|
* dispatcher forwards the payload verbatim and UDS carries it whole. A
|
|
14175
14177
|
* field declared here reaches `SqliteSettingsBackend` either way.
|
|
@@ -16372,7 +16374,7 @@ method(object({
|
|
|
16372
16374
|
* per-device window, `KeyFrameCaptureLog`, `bumpCropMetric`. Every one of them
|
|
16373
16375
|
* ends in a log line, and a log line is the thing the operator asked to stop
|
|
16374
16376
|
* needing: *"possiamo armare questi errori intanto? Così al prossimo giro
|
|
16375
|
-
* ricontrolliamo tutti questi punti"
|
|
16377
|
+
* 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
|
|
16376
16378
|
* hand-correlating timestamps, which is how a 22% thumbnail gap and a 3-hour
|
|
16377
16379
|
* media blackout were both diagnosed. The counters stay; this is where they can
|
|
16378
16380
|
* be READ.
|
|
@@ -17767,7 +17769,7 @@ var BrokerStatusSchema$1 = _enum([
|
|
|
17767
17769
|
"unreachable",
|
|
17768
17770
|
"tls-error"
|
|
17769
17771
|
]);
|
|
17770
|
-
var BrokerInfoSchema = object({
|
|
17772
|
+
var BrokerInfoSchema$1 = object({
|
|
17771
17773
|
id: string(),
|
|
17772
17774
|
name: string(),
|
|
17773
17775
|
url: string(),
|
|
@@ -17830,7 +17832,7 @@ var StatusSchema = object({
|
|
|
17830
17832
|
brokerCount: number(),
|
|
17831
17833
|
embeddedRunning: boolean()
|
|
17832
17834
|
});
|
|
17833
|
-
method(_void(), array(BrokerInfoSchema)), method(IdInputSchema, BrokerConnectionDetailsSchema, { auth: "admin" }), method(AddBrokerInputSchema, AddBrokerResultSchema, {
|
|
17835
|
+
method(_void(), array(BrokerInfoSchema$1)), method(IdInputSchema, BrokerConnectionDetailsSchema, { auth: "admin" }), method(AddBrokerInputSchema, AddBrokerResultSchema, {
|
|
17834
17836
|
kind: "mutation",
|
|
17835
17837
|
auth: "admin"
|
|
17836
17838
|
}), method(IdInputSchema, _void(), {
|
|
@@ -20044,78 +20046,16 @@ var NcRuleInputSchema = object({
|
|
|
20044
20046
|
*/
|
|
20045
20047
|
confirm: NcConfirmSchema.optional(),
|
|
20046
20048
|
/**
|
|
20047
|
-
*
|
|
20048
|
-
*
|
|
20049
|
-
*
|
|
20050
|
-
*
|
|
20051
|
-
*
|
|
20052
|
-
*
|
|
20053
|
-
*
|
|
20054
|
-
*
|
|
20055
|
-
*
|
|
20056
|
-
* Only two honest answers exist, and this flag picks between them. It has
|
|
20057
|
-
* effect ONLY on a rule that declares a recognition scope
|
|
20058
|
-
* ({@link NcConditions.identities} or {@link NcConditions.plates}) — on any
|
|
20059
|
-
* other rule there is nothing to wait for and the flag is inert.
|
|
20060
|
-
*
|
|
20061
|
-
* | value | what happens |
|
|
20062
|
-
* | --- | --- |
|
|
20063
|
-
* | `true` | the rule stops firing on the object event and fires at TRACK CLOSE instead, once, with the name — later, and complete |
|
|
20064
|
-
* | 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) |
|
|
20065
|
-
*
|
|
20066
|
-
* `.optional()` and deliberately NOT `.default()`: a Zod default does not run
|
|
20067
|
-
* on the addon cap path, and absent has to keep meaning exactly what every
|
|
20068
|
-
* rule authored before this field meant.
|
|
20069
|
-
*
|
|
20070
|
-
* The cost of `true` is stated here because the editor states it too: a rule
|
|
20071
|
-
* that waits also inherits track-close SEMANTICS — its `zones` condition
|
|
20072
|
-
* tests every zone the track visited and a `crossing` condition can no longer
|
|
20073
|
-
* be satisfied, because a closed track carries no crossing.
|
|
20049
|
+
* IMMEDIATE GROUPED (D692): the first matching subject opens a window of this many
|
|
20050
|
+
* seconds; the rule sends ONE message when the window closes — early, once every
|
|
20051
|
+
* subject in it is final, never before {@link NC_GROUPING_MIN_SEC} — naming everybody
|
|
20052
|
+
* the rule matched, with one mosaic tile per subject.
|
|
20053
|
+
* Absent = plain immediate (one message per track, at the first match).
|
|
20054
|
+
* Only an `immediate` DETECTION rule may carry it (`ruleGroupingApplies`, enforced on
|
|
20055
|
+
* save by the hub's grouping guard). `.optional()`, never `.default()`: the addon cap
|
|
20056
|
+
* path does not run Zod defaults.
|
|
20074
20057
|
*/
|
|
20075
|
-
|
|
20076
|
-
/**
|
|
20077
|
-
* GROUP a burst of subjects into ONE notification that grows.
|
|
20078
|
-
*
|
|
20079
|
-
* Seconds of quiet after the last matching subject before the burst is
|
|
20080
|
-
* considered over. While it is open, the first subject enqueues immediately —
|
|
20081
|
-
* **exactly as today, with no added latency** — and every real growth (a new
|
|
20082
|
-
* subject, or a name confirmed on one already in it) REPLACES that
|
|
20083
|
-
* notification with an updated one naming everybody. The push carries the
|
|
20084
|
-
* group's own coalescing tag, so the phone replaces rather than stacks.
|
|
20085
|
-
*
|
|
20086
|
-
* `0` / absent = off, and off is today's behaviour byte for byte.
|
|
20087
|
-
*
|
|
20088
|
-
* ### Why an idle cutoff and not a window
|
|
20089
|
-
*
|
|
20090
|
-
* The measured seven-person arrival on device 590 spans 110 s with every
|
|
20091
|
-
* internal gap under 30 s. A 12 s fixed window cuts it into three groups; an
|
|
20092
|
-
* idle cutoff holds it as one and ends it when the arrival actually ends.
|
|
20093
|
-
* 30 s is a widely shipped value for the same decision.
|
|
20094
|
-
*
|
|
20095
|
-
* ### What it replaces
|
|
20096
|
-
*
|
|
20097
|
-
* The blind cooldown, which collapses a burst by DISCARDING it. Measured on
|
|
20098
|
-
* device 615 / *Persona su Uscio* over six days: 116 qualifying tracks → 74
|
|
20099
|
-
* notifications, **44 (37.9%) suppressed outright**, 23 of them overlapping a
|
|
20100
|
-
* track that did fire and 7 carrying a confirmed identity nobody heard about.
|
|
20101
|
-
* A group collapses the same volume by MERGING, so the cooldown becomes a
|
|
20102
|
-
* budget over GROUPS — which is what it always meant — and a growth is never
|
|
20103
|
-
* throttled by the window its own first member spent.
|
|
20104
|
-
*
|
|
20105
|
-
* ### Interaction with {@link waitForEnhancement}
|
|
20106
|
-
*
|
|
20107
|
-
* They compose, and the order matters. `waitForEnhancement` defers the rule to
|
|
20108
|
-
* TRACK CLOSE, so with both set the group is opened by the first member to
|
|
20109
|
-
* CLOSE — already carrying its name — and grows as later members close. That
|
|
20110
|
-
* is later, and complete. With grouping alone the group opens on the first
|
|
20111
|
-
* object event and picks up names as they are confirmed, through the growth
|
|
20112
|
-
* path. Neither combination fires twice for one subject.
|
|
20113
|
-
*
|
|
20114
|
-
* `.optional()` and deliberately NOT `.default()`: a Zod default does not run
|
|
20115
|
-
* on the addon cap path, so absent must keep meaning what it meant before this
|
|
20116
|
-
* field existed.
|
|
20117
|
-
*/
|
|
20118
|
-
groupIdleSec: number().int().min(0).max(600).optional()
|
|
20058
|
+
groupingSec: number().int().min(5).max(60).optional()
|
|
20119
20059
|
});
|
|
20120
20060
|
/**
|
|
20121
20061
|
* Partial patch for `updateRule` — any subset of the input fields, plus the
|
|
@@ -20163,9 +20103,10 @@ var NcRuleClearableKeySchema = _enum([
|
|
|
20163
20103
|
"targetUsers",
|
|
20164
20104
|
"snoozeOptions",
|
|
20165
20105
|
"snoozeAllowGlobal",
|
|
20166
|
-
"waitForEnhancement",
|
|
20167
20106
|
"actions",
|
|
20168
20107
|
"confirm",
|
|
20108
|
+
"groupingSec",
|
|
20109
|
+
"waitForEnhancement",
|
|
20169
20110
|
"groupIdleSec"
|
|
20170
20111
|
]);
|
|
20171
20112
|
var NcRuleUpdateInputSchema = object({
|
|
@@ -20187,9 +20128,25 @@ var NcRuleSchema = NcRuleInputSchema.extend({
|
|
|
20187
20128
|
*/
|
|
20188
20129
|
disabledTargetIds: array(string()).default([])
|
|
20189
20130
|
});
|
|
20131
|
+
/**
|
|
20132
|
+
* The state-summary SECTIONS (D647 / D698): the D637 kind groups that report a
|
|
20133
|
+
* still-true state. `backups-exports` and `alarm` are not sections — a completed
|
|
20134
|
+
* job is not an open state, and the alarm stays instant.
|
|
20135
|
+
*/
|
|
20136
|
+
var NcStateSummarySectionIdSchema = _enum([
|
|
20137
|
+
"device-state",
|
|
20138
|
+
"streams",
|
|
20139
|
+
"battery",
|
|
20140
|
+
"consumables",
|
|
20141
|
+
"tanks",
|
|
20142
|
+
"detection-blind",
|
|
20143
|
+
"nodes",
|
|
20144
|
+
"addons",
|
|
20145
|
+
"updates"
|
|
20146
|
+
]);
|
|
20190
20147
|
/** One section of a previewed state summary. `unavailable` = its state could not be read. */
|
|
20191
20148
|
var NcStateSummaryPreviewSectionSchema = object({
|
|
20192
|
-
id:
|
|
20149
|
+
id: NcStateSummarySectionIdSchema,
|
|
20193
20150
|
status: _enum(["read", "unavailable"]),
|
|
20194
20151
|
items: number().int().nonnegative(),
|
|
20195
20152
|
reason: string().optional()
|
|
@@ -20199,7 +20156,7 @@ var NcStateSummaryPreviewSectionSchema = object({
|
|
|
20199
20156
|
* a `rule` split (no `section`), one section's on a `section` split.
|
|
20200
20157
|
*/
|
|
20201
20158
|
var NcStateSummaryPreviewRowSchema = object({
|
|
20202
|
-
section:
|
|
20159
|
+
section: NcStateSummarySectionIdSchema.optional(),
|
|
20203
20160
|
/** The section's name on a per-section row; every reported section's, joined, on a combined one. */
|
|
20204
20161
|
title: string(),
|
|
20205
20162
|
text: string(),
|
|
@@ -22098,14 +22055,14 @@ var TrackSchema = object({
|
|
|
22098
22055
|
* `derive-returned-null tile=standin`,
|
|
22099
22056
|
* `native-tile tile=native no-key-frame-at-close`, …) written at close and
|
|
22100
22057
|
* CLEARED by the late-keyFrame upgrade when a native tile lands after all.
|
|
22101
|
-
* The operator-facing answer to "perché manca l'immagine?" on a track whose
|
|
22058
|
+
* The operator-facing answer to "perché manca l'immagine?" [why is the image missing?] on a track whose
|
|
22102
22059
|
* tile is a face/plate stand-in, a raster crop, or an icon.
|
|
22103
22060
|
*
|
|
22104
22061
|
* **`no-key-frame-at-close` (D400).** The line used to be written ONLY when
|
|
22105
22062
|
* the TILE ranked below native, so a track whose thumbnail landed natively
|
|
22106
22063
|
* while its key frame missed carried no reason at all — three of the four
|
|
22107
22064
|
* `MISSING_KEYFRAME` tracks in the 2026-09-07 operator audit were exactly
|
|
22108
|
-
* that shape, and their "niente ultimo" had no cause anywhere on the row.
|
|
22065
|
+
* that shape, and their "niente ultimo" [no last frame] had no cause anywhere on the row.
|
|
22109
22066
|
* The key frame is the head of a cascade (`keyFrame ⇒ keyFrameSmall ⇒ the
|
|
22110
22067
|
* lastFrame copy source`), so its absence is now on this line whatever the
|
|
22111
22068
|
* tile ended up being.
|
|
@@ -22192,7 +22149,7 @@ var MotionEventSchema = object({
|
|
|
22192
22149
|
/**
|
|
22193
22150
|
* Ms offsets from `timestamp` (the episode's own first rising edge, so the
|
|
22194
22151
|
* first entry is always `0`) of every genuine off→on transition the
|
|
22195
|
-
* episode saw — "ogni evento on si deve salvare" (D475). NOT one entry per
|
|
22152
|
+
* episode saw — "ogni evento on si deve salvare" [every ON event must be saved] (D475). NOT one entry per
|
|
22196
22153
|
* push: a firmware source that keepalives at ~1 Hz for the whole burst
|
|
22197
22154
|
* (Reolink, Hikvision) produces exactly one edge; a source that reports an
|
|
22198
22155
|
* explicit `false` mid-episode and then resumes before the quiet window
|
|
@@ -22716,6 +22673,7 @@ var KeyEventSchema = object({
|
|
|
22716
22673
|
bestEventId: string(),
|
|
22717
22674
|
/** Track lifetime in ms (lastSeen - firstSeen). */
|
|
22718
22675
|
windowMs: number().optional(),
|
|
22676
|
+
audioLabels: array(TrackAudioLabelSchema).readonly().optional(),
|
|
22719
22677
|
...TrackFlagFields,
|
|
22720
22678
|
...TrackRetrainFields
|
|
22721
22679
|
});
|
|
@@ -27649,7 +27607,7 @@ var ClipPlaybackSchema = object({
|
|
|
27649
27607
|
* **One authorised yes is one wake.** `next-natural` — take the clip the next
|
|
27650
27608
|
* time the camera is awake for its own reasons — is deliberately not a member:
|
|
27651
27609
|
* it was proposed, it is free on the battery, and the operator declined it on
|
|
27652
|
-
* 2026-09-20 (*"Quando un export viene richiesto si sveglia la camera."
|
|
27610
|
+
* 2026-09-20 (*"Quando un export viene richiesto si sveglia la camera."* [When an export is requested the camera wakes up],
|
|
27653
27611
|
* D558 "Considered and not taken").
|
|
27654
27612
|
*/
|
|
27655
27613
|
var ClipWakeSchema = _enum(["authorised"]);
|
|
@@ -28045,7 +28003,7 @@ var videoclipsCapability = {
|
|
|
28045
28003
|
* **It is a SECTION of the Recording tab, at the end of it — not a tab of
|
|
28046
28004
|
* its own.** It shipped as a `clips` top-tab and the operator rejected the
|
|
28047
28005
|
* placement: *"utilizzerei la stessa tab recordings, lì abbiamo già tutto il
|
|
28048
|
-
* necessario, una nuova sezione alla fine per le clips"
|
|
28006
|
+
* necessario, una nuova sezione alla fine per le clips"* [I would use the same recordings tab, there we already have everything necessary, a new section at the end for the clips]. The Recording tab
|
|
28049
28007
|
* already holds the recorder's panel, the schedule bands and the unified
|
|
28050
28008
|
* retention policy; footage the camera itself holds is the same question,
|
|
28051
28009
|
* asked of a different store. `order: 100` puts it after all of them with
|
|
@@ -28106,7 +28064,7 @@ var videoclipsCapability = {
|
|
|
28106
28064
|
* It replaced `sources?: string[]`, a VIEW filter over source ids that
|
|
28107
28065
|
* assumed the answer was a fan-out over everything a camera has. The
|
|
28108
28066
|
* operator settled otherwise on 2026-09-20 — *"l'utilizzatore è uno
|
|
28109
|
-
* solo"* — so the list is asked of one provider at a time and there is
|
|
28067
|
+
* solo"* [there is only one user] — so the list is asked of one provider at a time and there is
|
|
28110
28068
|
* nothing to filter out of it.
|
|
28111
28069
|
*/
|
|
28112
28070
|
provider: string().min(1)
|
|
@@ -36453,7 +36411,7 @@ var ReadGopBytesResultSchema = object({
|
|
|
36453
36411
|
/**
|
|
36454
36412
|
* A time WINDOW of one finalized segment, cut by byte range — the multi-GOP
|
|
36455
36413
|
* twin of {@link ReadGopBytesResultSchema}'s single instant. Built for the
|
|
36456
|
-
* replay clip's `recording` source (`docs/design/plans/2026-08-26-replay-
|
|
36414
|
+
* replay clip's `recording` source (`docs/design/plans/2026-08-26-clip-replay-on-pipeline.md`):
|
|
36457
36415
|
* a replay needs several seconds of native pixels, not one frame.
|
|
36458
36416
|
*
|
|
36459
36417
|
* `ok.data` is standalone-demuxable, same as a GOP read. `ok.reachesRequestedEnd`
|
|
@@ -40195,6 +40153,7 @@ var zoneRulesCapability = {
|
|
|
40195
40153
|
*/
|
|
40196
40154
|
durability: "restored"
|
|
40197
40155
|
};
|
|
40156
|
+
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
40198
40157
|
/**
|
|
40199
40158
|
* Accessory device helpers — shared across drivers.
|
|
40200
40159
|
*
|
|
@@ -50514,6 +50473,11 @@ Object.freeze({
|
|
|
50514
50473
|
}
|
|
50515
50474
|
});
|
|
50516
50475
|
Object.freeze({
|
|
50476
|
+
"accessories.getStatus": [{
|
|
50477
|
+
name: "deviceId",
|
|
50478
|
+
form: "single",
|
|
50479
|
+
optional: false
|
|
50480
|
+
}],
|
|
50517
50481
|
"accessories.setChildHidden": [{
|
|
50518
50482
|
name: "childDeviceId",
|
|
50519
50483
|
form: "single",
|
|
@@ -50533,6 +50497,11 @@ Object.freeze({
|
|
|
50533
50497
|
form: "single",
|
|
50534
50498
|
optional: false
|
|
50535
50499
|
}],
|
|
50500
|
+
"airQualitySensor.getStatus": [{
|
|
50501
|
+
name: "deviceId",
|
|
50502
|
+
form: "single",
|
|
50503
|
+
optional: false
|
|
50504
|
+
}],
|
|
50536
50505
|
"alarmPanel.arm": [{
|
|
50537
50506
|
name: "deviceId",
|
|
50538
50507
|
form: "single",
|
|
@@ -50543,11 +50512,36 @@ Object.freeze({
|
|
|
50543
50512
|
form: "single",
|
|
50544
50513
|
optional: false
|
|
50545
50514
|
}],
|
|
50515
|
+
"alarmPanel.getStatus": [{
|
|
50516
|
+
name: "deviceId",
|
|
50517
|
+
form: "single",
|
|
50518
|
+
optional: false
|
|
50519
|
+
}],
|
|
50546
50520
|
"alarmPanel.trigger": [{
|
|
50547
50521
|
name: "deviceId",
|
|
50548
50522
|
form: "single",
|
|
50549
50523
|
optional: false
|
|
50550
50524
|
}],
|
|
50525
|
+
"ambientLightSensor.getStatus": [{
|
|
50526
|
+
name: "deviceId",
|
|
50527
|
+
form: "single",
|
|
50528
|
+
optional: false
|
|
50529
|
+
}],
|
|
50530
|
+
"audioAnalysis.applyDeviceSettingsPatch": [{
|
|
50531
|
+
name: "deviceId",
|
|
50532
|
+
form: "single",
|
|
50533
|
+
optional: false
|
|
50534
|
+
}],
|
|
50535
|
+
"audioAnalysis.getDeviceLiveContribution": [{
|
|
50536
|
+
name: "deviceId",
|
|
50537
|
+
form: "single",
|
|
50538
|
+
optional: false
|
|
50539
|
+
}],
|
|
50540
|
+
"audioAnalysis.getDeviceSettingsContribution": [{
|
|
50541
|
+
name: "deviceId",
|
|
50542
|
+
form: "single",
|
|
50543
|
+
optional: false
|
|
50544
|
+
}],
|
|
50551
50545
|
"audioAnalysis.resolveDeviceSettings": [{
|
|
50552
50546
|
name: "deviceId",
|
|
50553
50547
|
form: "single",
|
|
@@ -50588,16 +50582,36 @@ Object.freeze({
|
|
|
50588
50582
|
form: "single",
|
|
50589
50583
|
optional: false
|
|
50590
50584
|
}],
|
|
50585
|
+
"automationControl.getStatus": [{
|
|
50586
|
+
name: "deviceId",
|
|
50587
|
+
form: "single",
|
|
50588
|
+
optional: false
|
|
50589
|
+
}],
|
|
50591
50590
|
"automationControl.trigger": [{
|
|
50592
50591
|
name: "deviceId",
|
|
50593
50592
|
form: "single",
|
|
50594
50593
|
optional: false
|
|
50595
50594
|
}],
|
|
50595
|
+
"battery.getStatus": [{
|
|
50596
|
+
name: "deviceId",
|
|
50597
|
+
form: "single",
|
|
50598
|
+
optional: false
|
|
50599
|
+
}],
|
|
50596
50600
|
"battery.wakeForStream": [{
|
|
50597
50601
|
name: "deviceId",
|
|
50598
50602
|
form: "single",
|
|
50599
50603
|
optional: false
|
|
50600
50604
|
}],
|
|
50605
|
+
"binary.getStatus": [{
|
|
50606
|
+
name: "deviceId",
|
|
50607
|
+
form: "single",
|
|
50608
|
+
optional: false
|
|
50609
|
+
}],
|
|
50610
|
+
"brightness.getStatus": [{
|
|
50611
|
+
name: "deviceId",
|
|
50612
|
+
form: "single",
|
|
50613
|
+
optional: false
|
|
50614
|
+
}],
|
|
50601
50615
|
"brightness.setBrightness": [{
|
|
50602
50616
|
name: "deviceId",
|
|
50603
50617
|
form: "single",
|
|
@@ -50613,6 +50627,26 @@ Object.freeze({
|
|
|
50613
50627
|
form: "single",
|
|
50614
50628
|
optional: false
|
|
50615
50629
|
}],
|
|
50630
|
+
"cameraCredentials.getStatus": [{
|
|
50631
|
+
name: "deviceId",
|
|
50632
|
+
form: "single",
|
|
50633
|
+
optional: false
|
|
50634
|
+
}],
|
|
50635
|
+
"cameraGridLayout.applyDeviceSettingsPatch": [{
|
|
50636
|
+
name: "deviceId",
|
|
50637
|
+
form: "single",
|
|
50638
|
+
optional: false
|
|
50639
|
+
}],
|
|
50640
|
+
"cameraGridLayout.getDeviceLiveContribution": [{
|
|
50641
|
+
name: "deviceId",
|
|
50642
|
+
form: "single",
|
|
50643
|
+
optional: false
|
|
50644
|
+
}],
|
|
50645
|
+
"cameraGridLayout.getDeviceSettingsContribution": [{
|
|
50646
|
+
name: "deviceId",
|
|
50647
|
+
form: "single",
|
|
50648
|
+
optional: false
|
|
50649
|
+
}],
|
|
50616
50650
|
"cameraGridLayout.getLayout": [{
|
|
50617
50651
|
name: "deviceId",
|
|
50618
50652
|
form: "single",
|
|
@@ -50628,6 +50662,21 @@ Object.freeze({
|
|
|
50628
50662
|
form: "single",
|
|
50629
50663
|
optional: false
|
|
50630
50664
|
}],
|
|
50665
|
+
"cameraPipelineConfig.applyDeviceSettingsPatch": [{
|
|
50666
|
+
name: "deviceId",
|
|
50667
|
+
form: "single",
|
|
50668
|
+
optional: false
|
|
50669
|
+
}],
|
|
50670
|
+
"cameraPipelineConfig.getDeviceLiveContribution": [{
|
|
50671
|
+
name: "deviceId",
|
|
50672
|
+
form: "single",
|
|
50673
|
+
optional: false
|
|
50674
|
+
}],
|
|
50675
|
+
"cameraPipelineConfig.getDeviceSettingsContribution": [{
|
|
50676
|
+
name: "deviceId",
|
|
50677
|
+
form: "single",
|
|
50678
|
+
optional: false
|
|
50679
|
+
}],
|
|
50631
50680
|
"cameraStreams.getBrokerStreams": [{
|
|
50632
50681
|
name: "deviceId",
|
|
50633
50682
|
form: "single",
|
|
@@ -50653,6 +50702,16 @@ Object.freeze({
|
|
|
50653
50702
|
form: "single",
|
|
50654
50703
|
optional: false
|
|
50655
50704
|
}],
|
|
50705
|
+
"carbonMonoxide.getStatus": [{
|
|
50706
|
+
name: "deviceId",
|
|
50707
|
+
form: "single",
|
|
50708
|
+
optional: false
|
|
50709
|
+
}],
|
|
50710
|
+
"climateControl.getStatus": [{
|
|
50711
|
+
name: "deviceId",
|
|
50712
|
+
form: "single",
|
|
50713
|
+
optional: false
|
|
50714
|
+
}],
|
|
50656
50715
|
"climateControl.setFanMode": [{
|
|
50657
50716
|
name: "deviceId",
|
|
50658
50717
|
form: "single",
|
|
@@ -50693,16 +50752,41 @@ Object.freeze({
|
|
|
50693
50752
|
form: "single",
|
|
50694
50753
|
optional: false
|
|
50695
50754
|
}],
|
|
50755
|
+
"color.getStatus": [{
|
|
50756
|
+
name: "deviceId",
|
|
50757
|
+
form: "single",
|
|
50758
|
+
optional: false
|
|
50759
|
+
}],
|
|
50696
50760
|
"color.setColor": [{
|
|
50697
50761
|
name: "deviceId",
|
|
50698
50762
|
form: "single",
|
|
50699
50763
|
optional: false
|
|
50700
50764
|
}],
|
|
50765
|
+
"connectivity.getStatus": [{
|
|
50766
|
+
name: "deviceId",
|
|
50767
|
+
form: "single",
|
|
50768
|
+
optional: false
|
|
50769
|
+
}],
|
|
50770
|
+
"consumables.getStatus": [{
|
|
50771
|
+
name: "deviceId",
|
|
50772
|
+
form: "single",
|
|
50773
|
+
optional: false
|
|
50774
|
+
}],
|
|
50701
50775
|
"consumables.reset": [{
|
|
50702
50776
|
name: "deviceId",
|
|
50703
50777
|
form: "single",
|
|
50704
50778
|
optional: false
|
|
50705
50779
|
}],
|
|
50780
|
+
"contact.getStatus": [{
|
|
50781
|
+
name: "deviceId",
|
|
50782
|
+
form: "single",
|
|
50783
|
+
optional: false
|
|
50784
|
+
}],
|
|
50785
|
+
"control.getStatus": [{
|
|
50786
|
+
name: "deviceId",
|
|
50787
|
+
form: "single",
|
|
50788
|
+
optional: false
|
|
50789
|
+
}],
|
|
50706
50790
|
"control.setValue": [{
|
|
50707
50791
|
name: "deviceId",
|
|
50708
50792
|
form: "single",
|
|
@@ -50713,6 +50797,11 @@ Object.freeze({
|
|
|
50713
50797
|
form: "single",
|
|
50714
50798
|
optional: false
|
|
50715
50799
|
}],
|
|
50800
|
+
"cover.getStatus": [{
|
|
50801
|
+
name: "deviceId",
|
|
50802
|
+
form: "single",
|
|
50803
|
+
optional: false
|
|
50804
|
+
}],
|
|
50716
50805
|
"cover.open": [{
|
|
50717
50806
|
name: "deviceId",
|
|
50718
50807
|
form: "single",
|
|
@@ -50738,6 +50827,11 @@ Object.freeze({
|
|
|
50738
50827
|
form: "single",
|
|
50739
50828
|
optional: false
|
|
50740
50829
|
}],
|
|
50830
|
+
"dayNight.getStatus": [{
|
|
50831
|
+
name: "deviceId",
|
|
50832
|
+
form: "single",
|
|
50833
|
+
optional: false
|
|
50834
|
+
}],
|
|
50741
50835
|
"dayNight.setSettings": [{
|
|
50742
50836
|
name: "deviceId",
|
|
50743
50837
|
form: "single",
|
|
@@ -50748,11 +50842,31 @@ Object.freeze({
|
|
|
50748
50842
|
form: "single",
|
|
50749
50843
|
optional: true
|
|
50750
50844
|
}],
|
|
50845
|
+
"detectionPipeline.applyDeviceSettingsPatch": [{
|
|
50846
|
+
name: "deviceId",
|
|
50847
|
+
form: "single",
|
|
50848
|
+
optional: false
|
|
50849
|
+
}],
|
|
50850
|
+
"detectionPipeline.getDeviceLiveContribution": [{
|
|
50851
|
+
name: "deviceId",
|
|
50852
|
+
form: "single",
|
|
50853
|
+
optional: false
|
|
50854
|
+
}],
|
|
50855
|
+
"detectionPipeline.getDeviceSettingsContribution": [{
|
|
50856
|
+
name: "deviceId",
|
|
50857
|
+
form: "single",
|
|
50858
|
+
optional: false
|
|
50859
|
+
}],
|
|
50751
50860
|
"deviceAdminLink.getAdminLink": [{
|
|
50752
50861
|
name: "deviceId",
|
|
50753
50862
|
form: "single",
|
|
50754
50863
|
optional: false
|
|
50755
50864
|
}],
|
|
50865
|
+
"deviceAdoption.getStatus": [{
|
|
50866
|
+
name: "deviceId",
|
|
50867
|
+
form: "single",
|
|
50868
|
+
optional: false
|
|
50869
|
+
}],
|
|
50756
50870
|
"deviceAdoption.release": [{
|
|
50757
50871
|
name: "camDeviceId",
|
|
50758
50872
|
form: "single",
|
|
@@ -50768,6 +50882,11 @@ Object.freeze({
|
|
|
50768
50882
|
form: "single",
|
|
50769
50883
|
optional: false
|
|
50770
50884
|
}],
|
|
50885
|
+
"deviceDiscovery.getStatus": [{
|
|
50886
|
+
name: "deviceId",
|
|
50887
|
+
form: "single",
|
|
50888
|
+
optional: false
|
|
50889
|
+
}],
|
|
50771
50890
|
"deviceDiscovery.listDiscovered": [{
|
|
50772
50891
|
name: "deviceId",
|
|
50773
50892
|
form: "single",
|
|
@@ -50787,6 +50906,21 @@ Object.freeze({
|
|
|
50787
50906
|
form: "single",
|
|
50788
50907
|
optional: false
|
|
50789
50908
|
}],
|
|
50909
|
+
"deviceExport.applyDeviceSettingsPatch": [{
|
|
50910
|
+
name: "deviceId",
|
|
50911
|
+
form: "single",
|
|
50912
|
+
optional: false
|
|
50913
|
+
}],
|
|
50914
|
+
"deviceExport.getDeviceLiveContribution": [{
|
|
50915
|
+
name: "deviceId",
|
|
50916
|
+
form: "single",
|
|
50917
|
+
optional: false
|
|
50918
|
+
}],
|
|
50919
|
+
"deviceExport.getDeviceSettingsContribution": [{
|
|
50920
|
+
name: "deviceId",
|
|
50921
|
+
form: "single",
|
|
50922
|
+
optional: false
|
|
50923
|
+
}],
|
|
50790
50924
|
"deviceExtension.listCandidates": [{
|
|
50791
50925
|
name: "deviceId",
|
|
50792
50926
|
form: "single",
|
|
@@ -51135,6 +51269,26 @@ Object.freeze({
|
|
|
51135
51269
|
form: "single",
|
|
51136
51270
|
optional: false
|
|
51137
51271
|
}],
|
|
51272
|
+
"deviceStatus.getStatus": [{
|
|
51273
|
+
name: "deviceId",
|
|
51274
|
+
form: "single",
|
|
51275
|
+
optional: false
|
|
51276
|
+
}],
|
|
51277
|
+
"doorbell.getStatus": [{
|
|
51278
|
+
name: "deviceId",
|
|
51279
|
+
form: "single",
|
|
51280
|
+
optional: false
|
|
51281
|
+
}],
|
|
51282
|
+
"enumSensor.getStatus": [{
|
|
51283
|
+
name: "deviceId",
|
|
51284
|
+
form: "single",
|
|
51285
|
+
optional: false
|
|
51286
|
+
}],
|
|
51287
|
+
"eventEmitter.getStatus": [{
|
|
51288
|
+
name: "deviceId",
|
|
51289
|
+
form: "single",
|
|
51290
|
+
optional: false
|
|
51291
|
+
}],
|
|
51138
51292
|
"faceGallery.getFaceByTrack": [{
|
|
51139
51293
|
name: "deviceId",
|
|
51140
51294
|
form: "single",
|
|
@@ -51149,6 +51303,11 @@ Object.freeze({
|
|
|
51149
51303
|
form: "array",
|
|
51150
51304
|
optional: true
|
|
51151
51305
|
}],
|
|
51306
|
+
"fanControl.getStatus": [{
|
|
51307
|
+
name: "deviceId",
|
|
51308
|
+
form: "single",
|
|
51309
|
+
optional: false
|
|
51310
|
+
}],
|
|
51152
51311
|
"fanControl.setDirection": [{
|
|
51153
51312
|
name: "deviceId",
|
|
51154
51313
|
form: "single",
|
|
@@ -51169,6 +51328,26 @@ Object.freeze({
|
|
|
51169
51328
|
form: "single",
|
|
51170
51329
|
optional: false
|
|
51171
51330
|
}],
|
|
51331
|
+
"featureProbe.getStatus": [{
|
|
51332
|
+
name: "deviceId",
|
|
51333
|
+
form: "single",
|
|
51334
|
+
optional: false
|
|
51335
|
+
}],
|
|
51336
|
+
"flood.getStatus": [{
|
|
51337
|
+
name: "deviceId",
|
|
51338
|
+
form: "single",
|
|
51339
|
+
optional: false
|
|
51340
|
+
}],
|
|
51341
|
+
"gas.getStatus": [{
|
|
51342
|
+
name: "deviceId",
|
|
51343
|
+
form: "single",
|
|
51344
|
+
optional: false
|
|
51345
|
+
}],
|
|
51346
|
+
"humidifier.getStatus": [{
|
|
51347
|
+
name: "deviceId",
|
|
51348
|
+
form: "single",
|
|
51349
|
+
optional: false
|
|
51350
|
+
}],
|
|
51172
51351
|
"humidifier.setMode": [{
|
|
51173
51352
|
name: "deviceId",
|
|
51174
51353
|
form: "single",
|
|
@@ -51184,11 +51363,26 @@ Object.freeze({
|
|
|
51184
51363
|
form: "single",
|
|
51185
51364
|
optional: false
|
|
51186
51365
|
}],
|
|
51366
|
+
"humiditySensor.getStatus": [{
|
|
51367
|
+
name: "deviceId",
|
|
51368
|
+
form: "single",
|
|
51369
|
+
optional: false
|
|
51370
|
+
}],
|
|
51371
|
+
"image.getStatus": [{
|
|
51372
|
+
name: "deviceId",
|
|
51373
|
+
form: "single",
|
|
51374
|
+
optional: false
|
|
51375
|
+
}],
|
|
51187
51376
|
"imageSettings.getOptions": [{
|
|
51188
51377
|
name: "deviceId",
|
|
51189
51378
|
form: "single",
|
|
51190
51379
|
optional: false
|
|
51191
51380
|
}],
|
|
51381
|
+
"imageSettings.getStatus": [{
|
|
51382
|
+
name: "deviceId",
|
|
51383
|
+
form: "single",
|
|
51384
|
+
optional: false
|
|
51385
|
+
}],
|
|
51192
51386
|
"imageSettings.setSettings": [{
|
|
51193
51387
|
name: "deviceId",
|
|
51194
51388
|
form: "single",
|
|
@@ -51199,6 +51393,11 @@ Object.freeze({
|
|
|
51199
51393
|
form: "single",
|
|
51200
51394
|
optional: false
|
|
51201
51395
|
}],
|
|
51396
|
+
"intercom.getStatus": [{
|
|
51397
|
+
name: "deviceId",
|
|
51398
|
+
form: "single",
|
|
51399
|
+
optional: false
|
|
51400
|
+
}],
|
|
51202
51401
|
"intercom.handleAnswer": [{
|
|
51203
51402
|
name: "deviceId",
|
|
51204
51403
|
form: "single",
|
|
@@ -51229,6 +51428,11 @@ Object.freeze({
|
|
|
51229
51428
|
form: "single",
|
|
51230
51429
|
optional: false
|
|
51231
51430
|
}],
|
|
51431
|
+
"lawnMowerControl.getStatus": [{
|
|
51432
|
+
name: "deviceId",
|
|
51433
|
+
form: "single",
|
|
51434
|
+
optional: false
|
|
51435
|
+
}],
|
|
51232
51436
|
"lawnMowerControl.pause": [{
|
|
51233
51437
|
name: "deviceId",
|
|
51234
51438
|
form: "single",
|
|
@@ -51239,6 +51443,11 @@ Object.freeze({
|
|
|
51239
51443
|
form: "single",
|
|
51240
51444
|
optional: false
|
|
51241
51445
|
}],
|
|
51446
|
+
"lockControl.getStatus": [{
|
|
51447
|
+
name: "deviceId",
|
|
51448
|
+
form: "single",
|
|
51449
|
+
optional: false
|
|
51450
|
+
}],
|
|
51242
51451
|
"lockControl.lock": [{
|
|
51243
51452
|
name: "deviceId",
|
|
51244
51453
|
form: "single",
|
|
@@ -51254,6 +51463,11 @@ Object.freeze({
|
|
|
51254
51463
|
form: "single",
|
|
51255
51464
|
optional: false
|
|
51256
51465
|
}],
|
|
51466
|
+
"mediaPlayer.getStatus": [{
|
|
51467
|
+
name: "deviceId",
|
|
51468
|
+
form: "single",
|
|
51469
|
+
optional: false
|
|
51470
|
+
}],
|
|
51257
51471
|
"mediaPlayer.next": [{
|
|
51258
51472
|
name: "deviceId",
|
|
51259
51473
|
form: "single",
|
|
@@ -51314,6 +51528,11 @@ Object.freeze({
|
|
|
51314
51528
|
form: "single",
|
|
51315
51529
|
optional: false
|
|
51316
51530
|
}],
|
|
51531
|
+
"motion.getStatus": [{
|
|
51532
|
+
name: "deviceId",
|
|
51533
|
+
form: "single",
|
|
51534
|
+
optional: false
|
|
51535
|
+
}],
|
|
51317
51536
|
"motion.isDetected": [{
|
|
51318
51537
|
name: "deviceId",
|
|
51319
51538
|
form: "single",
|
|
@@ -51324,11 +51543,31 @@ Object.freeze({
|
|
|
51324
51543
|
form: "single",
|
|
51325
51544
|
optional: false
|
|
51326
51545
|
}],
|
|
51546
|
+
"motionDetection.applyDeviceSettingsPatch": [{
|
|
51547
|
+
name: "deviceId",
|
|
51548
|
+
form: "single",
|
|
51549
|
+
optional: false
|
|
51550
|
+
}],
|
|
51551
|
+
"motionDetection.getDeviceLiveContribution": [{
|
|
51552
|
+
name: "deviceId",
|
|
51553
|
+
form: "single",
|
|
51554
|
+
optional: false
|
|
51555
|
+
}],
|
|
51556
|
+
"motionDetection.getDeviceSettingsContribution": [{
|
|
51557
|
+
name: "deviceId",
|
|
51558
|
+
form: "single",
|
|
51559
|
+
optional: false
|
|
51560
|
+
}],
|
|
51327
51561
|
"motionDetection.removeCamera": [{
|
|
51328
51562
|
name: "deviceId",
|
|
51329
51563
|
form: "single",
|
|
51330
51564
|
optional: false
|
|
51331
51565
|
}],
|
|
51566
|
+
"motionTrigger.getStatus": [{
|
|
51567
|
+
name: "deviceId",
|
|
51568
|
+
form: "single",
|
|
51569
|
+
optional: false
|
|
51570
|
+
}],
|
|
51332
51571
|
"motionTrigger.setMotionTrigger": [{
|
|
51333
51572
|
name: "deviceId",
|
|
51334
51573
|
form: "single",
|
|
@@ -51339,6 +51578,11 @@ Object.freeze({
|
|
|
51339
51578
|
form: "single",
|
|
51340
51579
|
optional: false
|
|
51341
51580
|
}],
|
|
51581
|
+
"motionZones.getStatus": [{
|
|
51582
|
+
name: "deviceId",
|
|
51583
|
+
form: "single",
|
|
51584
|
+
optional: false
|
|
51585
|
+
}],
|
|
51342
51586
|
"motionZones.setZone": [{
|
|
51343
51587
|
name: "deviceId",
|
|
51344
51588
|
form: "single",
|
|
@@ -51349,6 +51593,11 @@ Object.freeze({
|
|
|
51349
51593
|
form: "single",
|
|
51350
51594
|
optional: false
|
|
51351
51595
|
}],
|
|
51596
|
+
"nativeObjectDetection.getStatus": [{
|
|
51597
|
+
name: "deviceId",
|
|
51598
|
+
form: "single",
|
|
51599
|
+
optional: false
|
|
51600
|
+
}],
|
|
51352
51601
|
"nativeObjectDetection.setEnabled": [{
|
|
51353
51602
|
name: "deviceId",
|
|
51354
51603
|
form: "single",
|
|
@@ -51364,6 +51613,11 @@ Object.freeze({
|
|
|
51364
51613
|
form: "single",
|
|
51365
51614
|
optional: false
|
|
51366
51615
|
}],
|
|
51616
|
+
"navigation.getStatus": [{
|
|
51617
|
+
name: "deviceId",
|
|
51618
|
+
form: "single",
|
|
51619
|
+
optional: false
|
|
51620
|
+
}],
|
|
51367
51621
|
"navigation.goToPoint": [{
|
|
51368
51622
|
name: "deviceId",
|
|
51369
51623
|
form: "single",
|
|
@@ -51409,6 +51663,11 @@ Object.freeze({
|
|
|
51409
51663
|
form: "single",
|
|
51410
51664
|
optional: false
|
|
51411
51665
|
}],
|
|
51666
|
+
"networkLink.getStatus": [{
|
|
51667
|
+
name: "deviceId",
|
|
51668
|
+
form: "single",
|
|
51669
|
+
optional: false
|
|
51670
|
+
}],
|
|
51412
51671
|
"networkQuality.getDeviceStats": [{
|
|
51413
51672
|
name: "deviceId",
|
|
51414
51673
|
form: "single",
|
|
@@ -51434,11 +51693,26 @@ Object.freeze({
|
|
|
51434
51693
|
form: "single",
|
|
51435
51694
|
optional: false
|
|
51436
51695
|
}],
|
|
51696
|
+
"notifier.getStatus": [{
|
|
51697
|
+
name: "deviceId",
|
|
51698
|
+
form: "single",
|
|
51699
|
+
optional: false
|
|
51700
|
+
}],
|
|
51437
51701
|
"notifier.send": [{
|
|
51438
51702
|
name: "deviceId",
|
|
51439
51703
|
form: "single",
|
|
51440
51704
|
optional: false
|
|
51441
51705
|
}],
|
|
51706
|
+
"numericSensor.getStatus": [{
|
|
51707
|
+
name: "deviceId",
|
|
51708
|
+
form: "single",
|
|
51709
|
+
optional: false
|
|
51710
|
+
}],
|
|
51711
|
+
"osd.getStatus": [{
|
|
51712
|
+
name: "deviceId",
|
|
51713
|
+
form: "single",
|
|
51714
|
+
optional: false
|
|
51715
|
+
}],
|
|
51442
51716
|
"osd.setOverlay": [{
|
|
51443
51717
|
name: "deviceId",
|
|
51444
51718
|
form: "single",
|
|
@@ -51498,6 +51772,11 @@ Object.freeze({
|
|
|
51498
51772
|
form: "single",
|
|
51499
51773
|
optional: false
|
|
51500
51774
|
}],
|
|
51775
|
+
"petFeeder.getStatus": [{
|
|
51776
|
+
name: "deviceId",
|
|
51777
|
+
form: "single",
|
|
51778
|
+
optional: false
|
|
51779
|
+
}],
|
|
51501
51780
|
"petFeeder.markFoodReplenished": [{
|
|
51502
51781
|
name: "deviceId",
|
|
51503
51782
|
form: "single",
|
|
@@ -51533,6 +51812,11 @@ Object.freeze({
|
|
|
51533
51812
|
form: "single",
|
|
51534
51813
|
optional: false
|
|
51535
51814
|
}],
|
|
51815
|
+
"pipelineAnalytics.applyDeviceSettingsPatch": [{
|
|
51816
|
+
name: "deviceId",
|
|
51817
|
+
form: "single",
|
|
51818
|
+
optional: false
|
|
51819
|
+
}],
|
|
51536
51820
|
"pipelineAnalytics.clearTrackRelation": [{
|
|
51537
51821
|
name: "deviceId",
|
|
51538
51822
|
form: "single",
|
|
@@ -51573,6 +51857,16 @@ Object.freeze({
|
|
|
51573
51857
|
form: "single",
|
|
51574
51858
|
optional: false
|
|
51575
51859
|
}],
|
|
51860
|
+
"pipelineAnalytics.getDeviceLiveContribution": [{
|
|
51861
|
+
name: "deviceId",
|
|
51862
|
+
form: "single",
|
|
51863
|
+
optional: false
|
|
51864
|
+
}],
|
|
51865
|
+
"pipelineAnalytics.getDeviceSettingsContribution": [{
|
|
51866
|
+
name: "deviceId",
|
|
51867
|
+
form: "single",
|
|
51868
|
+
optional: false
|
|
51869
|
+
}],
|
|
51576
51870
|
"pipelineAnalytics.getEventDensity": [{
|
|
51577
51871
|
name: "deviceId",
|
|
51578
51872
|
form: "single",
|
|
@@ -51788,6 +52082,11 @@ Object.freeze({
|
|
|
51788
52082
|
form: "single",
|
|
51789
52083
|
optional: true
|
|
51790
52084
|
}],
|
|
52085
|
+
"pipelineOrchestrator.applyDeviceSettingsPatch": [{
|
|
52086
|
+
name: "deviceId",
|
|
52087
|
+
form: "single",
|
|
52088
|
+
optional: false
|
|
52089
|
+
}],
|
|
51791
52090
|
"pipelineOrchestrator.assignAudio": [{
|
|
51792
52091
|
name: "deviceId",
|
|
51793
52092
|
form: "single",
|
|
@@ -51833,6 +52132,16 @@ Object.freeze({
|
|
|
51833
52132
|
form: "single",
|
|
51834
52133
|
optional: false
|
|
51835
52134
|
}],
|
|
52135
|
+
"pipelineOrchestrator.getDeviceLiveContribution": [{
|
|
52136
|
+
name: "deviceId",
|
|
52137
|
+
form: "single",
|
|
52138
|
+
optional: false
|
|
52139
|
+
}],
|
|
52140
|
+
"pipelineOrchestrator.getDeviceSettingsContribution": [{
|
|
52141
|
+
name: "deviceId",
|
|
52142
|
+
form: "single",
|
|
52143
|
+
optional: false
|
|
52144
|
+
}],
|
|
51836
52145
|
"pipelineOrchestrator.getPipelineAssignment": [{
|
|
51837
52146
|
name: "deviceId",
|
|
51838
52147
|
form: "single",
|
|
@@ -51953,11 +52262,31 @@ Object.freeze({
|
|
|
51953
52262
|
form: "single",
|
|
51954
52263
|
optional: true
|
|
51955
52264
|
}],
|
|
52265
|
+
"powerMeter.getStatus": [{
|
|
52266
|
+
name: "deviceId",
|
|
52267
|
+
form: "single",
|
|
52268
|
+
optional: false
|
|
52269
|
+
}],
|
|
52270
|
+
"presence.getStatus": [{
|
|
52271
|
+
name: "deviceId",
|
|
52272
|
+
form: "single",
|
|
52273
|
+
optional: false
|
|
52274
|
+
}],
|
|
52275
|
+
"pressureSensor.getStatus": [{
|
|
52276
|
+
name: "deviceId",
|
|
52277
|
+
form: "single",
|
|
52278
|
+
optional: false
|
|
52279
|
+
}],
|
|
51956
52280
|
"privacyMask.getOptions": [{
|
|
51957
52281
|
name: "deviceId",
|
|
51958
52282
|
form: "single",
|
|
51959
52283
|
optional: false
|
|
51960
52284
|
}],
|
|
52285
|
+
"privacyMask.getStatus": [{
|
|
52286
|
+
name: "deviceId",
|
|
52287
|
+
form: "single",
|
|
52288
|
+
optional: false
|
|
52289
|
+
}],
|
|
51961
52290
|
"privacyMask.setAudioEnabled": [{
|
|
51962
52291
|
name: "deviceId",
|
|
51963
52292
|
form: "single",
|
|
@@ -52008,6 +52337,11 @@ Object.freeze({
|
|
|
52008
52337
|
form: "single",
|
|
52009
52338
|
optional: false
|
|
52010
52339
|
}],
|
|
52340
|
+
"ptz.getStatus": [{
|
|
52341
|
+
name: "deviceId",
|
|
52342
|
+
form: "single",
|
|
52343
|
+
optional: false
|
|
52344
|
+
}],
|
|
52011
52345
|
"ptz.goHome": [{
|
|
52012
52346
|
name: "deviceId",
|
|
52013
52347
|
form: "single",
|
|
@@ -52098,6 +52432,11 @@ Object.freeze({
|
|
|
52098
52432
|
form: "single",
|
|
52099
52433
|
optional: false
|
|
52100
52434
|
}],
|
|
52435
|
+
"recordingArchive.applyDeviceSettingsPatch": [{
|
|
52436
|
+
name: "deviceId",
|
|
52437
|
+
form: "single",
|
|
52438
|
+
optional: false
|
|
52439
|
+
}],
|
|
52101
52440
|
"recordingArchive.deleteFootprint": [{
|
|
52102
52441
|
name: "deviceId",
|
|
52103
52442
|
form: "single",
|
|
@@ -52118,6 +52457,21 @@ Object.freeze({
|
|
|
52118
52457
|
form: "single",
|
|
52119
52458
|
optional: false
|
|
52120
52459
|
}],
|
|
52460
|
+
"recordingArchive.getDeviceLiveContribution": [{
|
|
52461
|
+
name: "deviceId",
|
|
52462
|
+
form: "single",
|
|
52463
|
+
optional: false
|
|
52464
|
+
}],
|
|
52465
|
+
"recordingArchive.getDeviceSettingsContribution": [{
|
|
52466
|
+
name: "deviceId",
|
|
52467
|
+
form: "single",
|
|
52468
|
+
optional: false
|
|
52469
|
+
}],
|
|
52470
|
+
"recordingArchive.getStatus": [{
|
|
52471
|
+
name: "deviceId",
|
|
52472
|
+
form: "single",
|
|
52473
|
+
optional: false
|
|
52474
|
+
}],
|
|
52121
52475
|
"recordingArchive.listOpsLog": [{
|
|
52122
52476
|
name: "deviceId",
|
|
52123
52477
|
form: "single",
|
|
@@ -52203,6 +52557,11 @@ Object.freeze({
|
|
|
52203
52557
|
form: "single",
|
|
52204
52558
|
optional: false
|
|
52205
52559
|
}],
|
|
52560
|
+
"recordingOnboard.getStatus": [{
|
|
52561
|
+
name: "deviceId",
|
|
52562
|
+
form: "single",
|
|
52563
|
+
optional: false
|
|
52564
|
+
}],
|
|
52206
52565
|
"recordingOnboard.setSettings": [{
|
|
52207
52566
|
name: "deviceId",
|
|
52208
52567
|
form: "single",
|
|
@@ -52233,6 +52592,11 @@ Object.freeze({
|
|
|
52233
52592
|
form: "single",
|
|
52234
52593
|
optional: false
|
|
52235
52594
|
}],
|
|
52595
|
+
"sceneMonitor.getStatus": [{
|
|
52596
|
+
name: "deviceId",
|
|
52597
|
+
form: "single",
|
|
52598
|
+
optional: false
|
|
52599
|
+
}],
|
|
52236
52600
|
"sceneMonitor.listScenes": [{
|
|
52237
52601
|
name: "deviceId",
|
|
52238
52602
|
form: "single",
|
|
@@ -52258,6 +52622,11 @@ Object.freeze({
|
|
|
52258
52622
|
form: "single",
|
|
52259
52623
|
optional: false
|
|
52260
52624
|
}],
|
|
52625
|
+
"scriptRunner.getStatus": [{
|
|
52626
|
+
name: "deviceId",
|
|
52627
|
+
form: "single",
|
|
52628
|
+
optional: false
|
|
52629
|
+
}],
|
|
52261
52630
|
"scriptRunner.run": [{
|
|
52262
52631
|
name: "deviceId",
|
|
52263
52632
|
form: "single",
|
|
@@ -52268,11 +52637,31 @@ Object.freeze({
|
|
|
52268
52637
|
form: "single",
|
|
52269
52638
|
optional: false
|
|
52270
52639
|
}],
|
|
52640
|
+
"smoke.getStatus": [{
|
|
52641
|
+
name: "deviceId",
|
|
52642
|
+
form: "single",
|
|
52643
|
+
optional: false
|
|
52644
|
+
}],
|
|
52645
|
+
"snapshot.applyDeviceSettingsPatch": [{
|
|
52646
|
+
name: "deviceId",
|
|
52647
|
+
form: "single",
|
|
52648
|
+
optional: false
|
|
52649
|
+
}],
|
|
52271
52650
|
"snapshot.getDebugState": [{
|
|
52272
52651
|
name: "deviceId",
|
|
52273
52652
|
form: "single",
|
|
52274
52653
|
optional: false
|
|
52275
52654
|
}],
|
|
52655
|
+
"snapshot.getDeviceLiveContribution": [{
|
|
52656
|
+
name: "deviceId",
|
|
52657
|
+
form: "single",
|
|
52658
|
+
optional: false
|
|
52659
|
+
}],
|
|
52660
|
+
"snapshot.getDeviceSettingsContribution": [{
|
|
52661
|
+
name: "deviceId",
|
|
52662
|
+
form: "single",
|
|
52663
|
+
optional: false
|
|
52664
|
+
}],
|
|
52276
52665
|
"snapshot.getSnapshot": [{
|
|
52277
52666
|
name: "deviceId",
|
|
52278
52667
|
form: "single",
|
|
@@ -52289,6 +52678,11 @@ Object.freeze({
|
|
|
52289
52678
|
form: "array",
|
|
52290
52679
|
optional: false
|
|
52291
52680
|
}],
|
|
52681
|
+
"snapshot.getStatus": [{
|
|
52682
|
+
name: "deviceId",
|
|
52683
|
+
form: "single",
|
|
52684
|
+
optional: false
|
|
52685
|
+
}],
|
|
52292
52686
|
"snapshot.invalidateCache": [{
|
|
52293
52687
|
name: "deviceId",
|
|
52294
52688
|
form: "single",
|
|
@@ -52299,6 +52693,11 @@ Object.freeze({
|
|
|
52299
52693
|
form: "single",
|
|
52300
52694
|
optional: false
|
|
52301
52695
|
}],
|
|
52696
|
+
"streamBroker.applyDeviceSettingsPatch": [{
|
|
52697
|
+
name: "deviceId",
|
|
52698
|
+
form: "single",
|
|
52699
|
+
optional: false
|
|
52700
|
+
}],
|
|
52302
52701
|
"streamBroker.assignProfile": [{
|
|
52303
52702
|
name: "deviceId",
|
|
52304
52703
|
form: "single",
|
|
@@ -52314,6 +52713,16 @@ Object.freeze({
|
|
|
52314
52713
|
form: "single",
|
|
52315
52714
|
optional: false
|
|
52316
52715
|
}],
|
|
52716
|
+
"streamBroker.getDeviceLiveContribution": [{
|
|
52717
|
+
name: "deviceId",
|
|
52718
|
+
form: "single",
|
|
52719
|
+
optional: false
|
|
52720
|
+
}],
|
|
52721
|
+
"streamBroker.getDeviceSettingsContribution": [{
|
|
52722
|
+
name: "deviceId",
|
|
52723
|
+
form: "single",
|
|
52724
|
+
optional: false
|
|
52725
|
+
}],
|
|
52317
52726
|
"streamBroker.getStreamWithCodec": [{
|
|
52318
52727
|
name: "deviceId",
|
|
52319
52728
|
form: "single",
|
|
@@ -52374,16 +52783,46 @@ Object.freeze({
|
|
|
52374
52783
|
form: "single",
|
|
52375
52784
|
optional: false
|
|
52376
52785
|
}],
|
|
52786
|
+
"streamParams.getStatus": [{
|
|
52787
|
+
name: "deviceId",
|
|
52788
|
+
form: "single",
|
|
52789
|
+
optional: false
|
|
52790
|
+
}],
|
|
52377
52791
|
"streamParams.setProfile": [{
|
|
52378
52792
|
name: "deviceId",
|
|
52379
52793
|
form: "single",
|
|
52380
52794
|
optional: false
|
|
52381
52795
|
}],
|
|
52796
|
+
"switch.getStatus": [{
|
|
52797
|
+
name: "deviceId",
|
|
52798
|
+
form: "single",
|
|
52799
|
+
optional: false
|
|
52800
|
+
}],
|
|
52382
52801
|
"switch.setState": [{
|
|
52383
52802
|
name: "deviceId",
|
|
52384
52803
|
form: "single",
|
|
52385
52804
|
optional: false
|
|
52386
52805
|
}],
|
|
52806
|
+
"tamper.getStatus": [{
|
|
52807
|
+
name: "deviceId",
|
|
52808
|
+
form: "single",
|
|
52809
|
+
optional: false
|
|
52810
|
+
}],
|
|
52811
|
+
"temperatureSensor.getStatus": [{
|
|
52812
|
+
name: "deviceId",
|
|
52813
|
+
form: "single",
|
|
52814
|
+
optional: false
|
|
52815
|
+
}],
|
|
52816
|
+
"update.getStatus": [{
|
|
52817
|
+
name: "deviceId",
|
|
52818
|
+
form: "single",
|
|
52819
|
+
optional: false
|
|
52820
|
+
}],
|
|
52821
|
+
"vacuumControl.getStatus": [{
|
|
52822
|
+
name: "deviceId",
|
|
52823
|
+
form: "single",
|
|
52824
|
+
optional: false
|
|
52825
|
+
}],
|
|
52387
52826
|
"vacuumControl.locate": [{
|
|
52388
52827
|
name: "deviceId",
|
|
52389
52828
|
form: "single",
|
|
@@ -52419,6 +52858,11 @@ Object.freeze({
|
|
|
52419
52858
|
form: "single",
|
|
52420
52859
|
optional: false
|
|
52421
52860
|
}],
|
|
52861
|
+
"valve.getStatus": [{
|
|
52862
|
+
name: "deviceId",
|
|
52863
|
+
form: "single",
|
|
52864
|
+
optional: false
|
|
52865
|
+
}],
|
|
52422
52866
|
"valve.open": [{
|
|
52423
52867
|
name: "deviceId",
|
|
52424
52868
|
form: "single",
|
|
@@ -52434,6 +52878,11 @@ Object.freeze({
|
|
|
52434
52878
|
form: "single",
|
|
52435
52879
|
optional: false
|
|
52436
52880
|
}],
|
|
52881
|
+
"vibration.getStatus": [{
|
|
52882
|
+
name: "deviceId",
|
|
52883
|
+
form: "single",
|
|
52884
|
+
optional: false
|
|
52885
|
+
}],
|
|
52437
52886
|
"videoclips.dialClipStream": [{
|
|
52438
52887
|
name: "deviceId",
|
|
52439
52888
|
form: "single",
|
|
@@ -52469,6 +52918,11 @@ Object.freeze({
|
|
|
52469
52918
|
form: "single",
|
|
52470
52919
|
optional: false
|
|
52471
52920
|
}],
|
|
52921
|
+
"waterHeater.getStatus": [{
|
|
52922
|
+
name: "deviceId",
|
|
52923
|
+
form: "single",
|
|
52924
|
+
optional: false
|
|
52925
|
+
}],
|
|
52472
52926
|
"waterHeater.setAway": [{
|
|
52473
52927
|
name: "deviceId",
|
|
52474
52928
|
form: "single",
|
|
@@ -52484,6 +52938,11 @@ Object.freeze({
|
|
|
52484
52938
|
form: "single",
|
|
52485
52939
|
optional: false
|
|
52486
52940
|
}],
|
|
52941
|
+
"weather.getStatus": [{
|
|
52942
|
+
name: "deviceId",
|
|
52943
|
+
form: "single",
|
|
52944
|
+
optional: false
|
|
52945
|
+
}],
|
|
52487
52946
|
"webrtcSession.addIceCandidate": [{
|
|
52488
52947
|
name: "deviceId",
|
|
52489
52948
|
form: "single",
|
|
@@ -53221,7 +53680,7 @@ var PreviewTextField = string().max(200);
|
|
|
53221
53680
|
* Whether the notification's preview is a STILL or a short animation.
|
|
53222
53681
|
*
|
|
53223
53682
|
* The operator's ask, verbatim: *"inviato come gif o video (come per le altre
|
|
53224
|
-
* rule)"* — the other rules already offer an animated preview, and a ten-hour
|
|
53683
|
+
* rule)"* [sent as a gif or video (as for the other rules)] — the other rules already offer an animated preview, and a ten-hour
|
|
53225
53684
|
* night reads better as three seconds of motion than as one frame of it. Both
|
|
53226
53685
|
* modes get the SAME treatment (blurred frame, large centred title); `'gif'`
|
|
53227
53686
|
* simply applies it to a dozen frames sampled across the render and assembles
|