@camstack/addon-osd-manager 0.1.154 → 0.1.156
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/{MotionZonesSettings-DHyaxzBi.mjs → MotionZonesSettings-DaDfau7A.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-D7EH_wl3.mjs → PrivacyMaskSettings-Ci65qYWB.mjs} +4 -4
- package/dist/{SceneMonitorEditor-CO6VwdkE.mjs → SceneMonitorEditor-BG9mHyrC.mjs} +3 -3
- package/dist/_stub.js +2014 -2011
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-Cj3lK2is.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-BDKvyj3r.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BTkfkwrM.mjs +26 -0
- package/dist/{hostInit-CE3gFb67.mjs → hostInit-DdhUwSkK.mjs} +2 -2
- package/dist/index.js +615 -146
- package/dist/index.mjs +615 -146
- package/dist/{player-overlays-CTsQBdl8.mjs → player-overlays-C_Gmuzev.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-BPw6Y2I0.mjs → responsive-C-9Ko8kt.mjs} +1 -1
- package/dist/{scene-monitor-copy-DNkKk6vF.mjs → scene-monitor-copy-DudW1LZg.mjs} +1 -1
- package/dist/{square-BPzhX8Pc.mjs → square-CpweDmax.mjs} +1 -1
- package/dist/{trash-2-DemFUbcB.mjs → trash-2-cb_YtxOy.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-BLAGk27g.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-Dly_n9Qj.mjs} +1 -1
- package/package.json +1 -3
- package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-1qxETV_o.mjs +0 -26
package/dist/index.mjs
CHANGED
|
@@ -7519,7 +7519,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
7519
7519
|
return DeviceRole;
|
|
7520
7520
|
}({});
|
|
7521
7521
|
//#endregion
|
|
7522
|
-
//#region ../types/dist/composition-
|
|
7522
|
+
//#region ../types/dist/composition-Bzr7GwgP.mjs
|
|
7523
7523
|
/**
|
|
7524
7524
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
7525
7525
|
*
|
|
@@ -7573,20 +7573,20 @@ function portable(target) {
|
|
|
7573
7573
|
}
|
|
7574
7574
|
portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64");
|
|
7575
7575
|
/**
|
|
7576
|
-
*
|
|
7577
|
-
*
|
|
7576
|
+
* THE table "which boolean of this device type counts as HIGH", and the
|
|
7577
|
+
* pure evaluator of its EDGE.
|
|
7578
7578
|
*
|
|
7579
|
-
*
|
|
7580
|
-
*
|
|
7581
|
-
*
|
|
7582
|
-
*
|
|
7583
|
-
*
|
|
7584
|
-
*
|
|
7579
|
+
* ONE table for everyone who asks "is this device HIGH?": the
|
|
7580
|
+
* recorder's `RecordingTriggers.sensorDeviceIds` trigger, the post-analysis
|
|
7581
|
+
* sensor markers, the orchestrator's camera-sensors bridge and
|
|
7582
|
+
* the sources of a composite doorbell (`doorbellFeatureSources`, D671).
|
|
7583
|
+
* A second copy would diverge at the first cap added, and the symptom — "the
|
|
7584
|
+
* sensor rings the doorbell but does not record" — is exactly D62.
|
|
7585
7585
|
*
|
|
7586
|
-
* ⚠
|
|
7587
|
-
*
|
|
7588
|
-
*
|
|
7589
|
-
*
|
|
7586
|
+
* ⚠ NOT `DEVICE_STATE_READERS` (`catalogs/device-state-vocabulary.ts`), and the
|
|
7587
|
+
* two must not be unified: that one answers "what is the state WORD for a
|
|
7588
|
+
* rule" (and includes `presence`, `cover`, `alarm-panel`), this one "which
|
|
7589
|
+
* boolean's EDGE counts". Deliberately different vocabularies.
|
|
7590
7590
|
*/
|
|
7591
7591
|
/**
|
|
7592
7592
|
* Known binary / switch source caps → the boolean slice field whose
|
|
@@ -7607,6 +7607,8 @@ var SOURCE_CAP_ACTIVE_FIELD = {
|
|
|
7607
7607
|
vibration: "detected",
|
|
7608
7608
|
tamper: "tampered"
|
|
7609
7609
|
};
|
|
7610
|
+
/** Cap names whose presence in a device's bindings qualify it as a source. */
|
|
7611
|
+
var SOURCE_CAPS = Object.keys(SOURCE_CAP_ACTIVE_FIELD);
|
|
7610
7612
|
/**
|
|
7611
7613
|
* Error types for the safe expression engine. Two distinct classes so callers
|
|
7612
7614
|
* can tell a compile-time (grammar) failure from a runtime (evaluation)
|
|
@@ -9193,22 +9195,22 @@ var CLASS_MAP_MACRO_TARGETS = [
|
|
|
9193
9195
|
"package"
|
|
9194
9196
|
];
|
|
9195
9197
|
/**
|
|
9196
|
-
*
|
|
9197
|
-
*
|
|
9198
|
+
* The FIRST-LEVEL macro classes: those an object detector emits and that
|
|
9199
|
+
* an operator can select.
|
|
9198
9200
|
*
|
|
9199
|
-
*
|
|
9201
|
+
* They are the three offered by the `object-detection` step
|
|
9200
9202
|
* (`addon-pipeline/src/detection-pipeline/registry/step-definitions.ts`,
|
|
9201
|
-
* `enabledMacroClasses`). `package`
|
|
9202
|
-
* `MACRO_LABELS` —
|
|
9203
|
-
* `package-detection`,
|
|
9204
|
-
*
|
|
9203
|
+
* `enabledMacroClasses`). `package` is in {@link CLASS_MAP_MACRO_TARGETS} and in
|
|
9204
|
+
* `MACRO_LABELS` — it is a true macro — but NOT here: it belongs to the step
|
|
9205
|
+
* `package-detection`, whose enablement is driven by zones, and offering the
|
|
9206
|
+
* same word twice has already made an operator turn on the COCO proxy
|
|
9205
9207
|
* (suitcase/backpack/handbag) lasciando spento il detector dedicato.
|
|
9206
9208
|
*
|
|
9207
|
-
*
|
|
9208
|
-
*
|
|
9209
|
-
* (`types/detection.ts`);
|
|
9210
|
-
* (`RecordingTriggers.objectClasses`)
|
|
9211
|
-
*
|
|
9209
|
+
* ONE list. Before today the same three were hand-written in the step's offer
|
|
9210
|
+
* and a second time as the union `FirstLevelMacro`
|
|
9211
|
+
* (`types/detection.ts`); a third copy for the recording trigger
|
|
9212
|
+
* (`RecordingTriggers.objectClasses`) would have made the later divergence
|
|
9213
|
+
* invisible.
|
|
9212
9214
|
*/
|
|
9213
9215
|
var FIRST_LEVEL_MACRO_CLASSES = [
|
|
9214
9216
|
"person",
|
|
@@ -9273,17 +9275,17 @@ var RecordingStorageModeSchema = _enum([
|
|
|
9273
9275
|
"on-device-decision"
|
|
9274
9276
|
]);
|
|
9275
9277
|
/**
|
|
9276
|
-
*
|
|
9277
|
-
*
|
|
9278
|
+
* The macro classes that can open a recording window — the same
|
|
9279
|
+
* three offered by the `object-detection` step, from ONE list
|
|
9278
9280
|
* ({@link FIRST_LEVEL_MACRO_CLASSES}).
|
|
9279
9281
|
*/
|
|
9280
9282
|
var RecordingObjectTriggerClassSchema = _enum(FIRST_LEVEL_MACRO_CLASSES);
|
|
9281
9283
|
/**
|
|
9282
|
-
* True
|
|
9284
|
+
* True when `values` does not repeat an element.
|
|
9283
9285
|
*
|
|
9284
|
-
*
|
|
9285
|
-
*
|
|
9286
|
-
*
|
|
9286
|
+
* A duplicate is not harmless: every entry of `objectClasses` / `sensorDeviceIds`
|
|
9287
|
+
* becomes a SOURCE in `bandTriggerSources`, and the same source twice
|
|
9288
|
+
* would count its windows twice in `segmentMissedByMs`.
|
|
9287
9289
|
*/
|
|
9288
9290
|
var noDuplicates = (values) => new Set(values).size === values.length;
|
|
9289
9291
|
/** Which detectors trigger an `events`-mode band. */
|
|
@@ -9291,34 +9293,34 @@ var RecordingTriggersSchema = object({
|
|
|
9291
9293
|
motion: boolean().optional(),
|
|
9292
9294
|
audioThresholdDbfs: number().optional(),
|
|
9293
9295
|
/**
|
|
9294
|
-
*
|
|
9295
|
-
*
|
|
9296
|
-
*
|
|
9297
|
-
*
|
|
9296
|
+
* The macro classes whose detection opens a window. ABSENT = the source
|
|
9297
|
+
* is not listened to; an EMPTY array is rejected, because "events band, object
|
|
9298
|
+
* trigger on, no class" is the same shape "enabled and records
|
|
9299
|
+
* nothing, forever" that `eventsBandCanEverDemand` is written against.
|
|
9298
9300
|
*
|
|
9299
|
-
*
|
|
9300
|
-
*
|
|
9301
|
-
* `minConfidence<Macro>`
|
|
9302
|
-
* (`source: 'onboard'`)
|
|
9303
|
-
*
|
|
9301
|
+
* The signal read is ALREADY FILTERED: only `source: 'pipeline'` detections, i.e.
|
|
9302
|
+
* those that went through `enabledMacroClasses`, the
|
|
9303
|
+
* `minConfidence<Macro>` and the full-frame guard. The camera's onboard AI
|
|
9304
|
+
* (`source: 'onboard'`) goes through none of those gates and does NOT open
|
|
9305
|
+
* windows — see `recorder/object-trigger.ts`.
|
|
9304
9306
|
*/
|
|
9305
9307
|
objectClasses: array(RecordingObjectTriggerClassSchema).min(1).refine(noDuplicates, { message: "objectClasses must not repeat a class" }).optional(),
|
|
9306
9308
|
/**
|
|
9307
|
-
*
|
|
9308
|
-
*
|
|
9309
|
+
* The LINKED devices whose RISING EDGE opens a window. Absent = the source
|
|
9310
|
+
* is not listened to; an empty array is rejected for the same reason as
|
|
9309
9311
|
* `objectClasses`.
|
|
9310
9312
|
*
|
|
9311
|
-
*
|
|
9312
|
-
*
|
|
9313
|
-
*
|
|
9314
|
-
*
|
|
9315
|
-
* device (D12) —
|
|
9313
|
+
* These are SOURCE device ids, not cameras: the band names them, so the
|
|
9314
|
+
* hot path (`DeviceStateChanged`, at bus rate across the whole fleet)
|
|
9315
|
+
* does no RPC. The OFFER from which the operator picks them is another question, and
|
|
9316
|
+
* is resolved with `deviceManager.getLinkedDevices` + `getBindingsBatch` per
|
|
9317
|
+
* device (D12) — never a global list of caps.
|
|
9316
9318
|
*
|
|
9317
|
-
*
|
|
9318
|
-
* `SOURCE_CAP_ACTIVE_FIELD` (`catalogs/sensor-active-state.ts`)
|
|
9319
|
-
*
|
|
9320
|
-
*
|
|
9321
|
-
*
|
|
9319
|
+
* What "high" means depends on the device TYPE and is not decided here:
|
|
9320
|
+
* `SOURCE_CAP_ACTIVE_FIELD` (`catalogs/sensor-active-state.ts`) is THE table,
|
|
9321
|
+
* the same one as the composite doorbell (D671). And it is the EDGE, not
|
|
9322
|
+
* the level: a contact found already open at runner restart does not
|
|
9323
|
+
* record.
|
|
9322
9324
|
*/
|
|
9323
9325
|
sensorDeviceIds: array(number().int().positive()).min(1).max(16).refine(noDuplicates, { message: "sensorDeviceIds must not repeat a device" }).optional()
|
|
9324
9326
|
});
|
|
@@ -10395,7 +10397,7 @@ var DecoderSessionConfigSchema = object({
|
|
|
10395
10397
|
* - **VALUE** — at which level, for which scope, until when. That stays ONE
|
|
10396
10398
|
* thing: the logging settings document on the `system` cap. Two authorities
|
|
10397
10399
|
* over the values is the exact defect
|
|
10398
|
-
* `docs/design/plans/2026-08-26-
|
|
10400
|
+
* `docs/design/plans/2026-08-26-per-component-logging.md` was written to
|
|
10399
10401
|
* remove; re-introducing it from the cure side would be grotesque.
|
|
10400
10402
|
*
|
|
10401
10403
|
* Nothing in this file reads a clock, an env var or a store. The registry is
|
|
@@ -12476,7 +12478,7 @@ var BrokerStatusEnum = _enum([
|
|
|
12476
12478
|
"unreachable",
|
|
12477
12479
|
"error"
|
|
12478
12480
|
]);
|
|
12479
|
-
var BrokerInfoSchema
|
|
12481
|
+
var BrokerInfoSchema = object({
|
|
12480
12482
|
/** Stable broker id. Persisted; survives addon restarts. */
|
|
12481
12483
|
id: string(),
|
|
12482
12484
|
/** Addon id of the provider that OWNS this broker.
|
|
@@ -12619,8 +12621,8 @@ var brokerCapability = {
|
|
|
12619
12621
|
kind: "poll"
|
|
12620
12622
|
},
|
|
12621
12623
|
methods: {
|
|
12622
|
-
list: method(ListInputSchema, array(BrokerInfoSchema
|
|
12623
|
-
get: method(GetInputSchema, BrokerInfoSchema
|
|
12624
|
+
list: method(ListInputSchema, array(BrokerInfoSchema)),
|
|
12625
|
+
get: method(GetInputSchema, BrokerInfoSchema.nullable()),
|
|
12624
12626
|
/** Enumerate which addon provides which broker kind(s) for the
|
|
12625
12627
|
* unified create picker. The auto-mount fans this array across
|
|
12626
12628
|
* every registered `broker` provider (array-output method), so the
|
|
@@ -15026,7 +15028,7 @@ var dataStoreProviderCapability = {
|
|
|
15026
15028
|
*
|
|
15027
15029
|
* ⚠ An earlier version of this comment blamed Zod stripping, and that
|
|
15028
15030
|
* was wrong — corrected 2026-08-26 after the hop map
|
|
15029
|
-
* (`docs/design/2026-08-26-
|
|
15031
|
+
* (`docs/design/2026-08-26-topic-hop-map.md`) traced the path.
|
|
15030
15032
|
* There is **no Zod parse at all** between the door and the engine: the
|
|
15031
15033
|
* dispatcher forwards the payload verbatim and UDS carries it whole. A
|
|
15032
15034
|
* field declared here reaches `SqliteSettingsBackend` either way.
|
|
@@ -15988,7 +15990,17 @@ var SiteZoneSchema = object({
|
|
|
15988
15990
|
var ProviderStatusSchema = object({
|
|
15989
15991
|
connected: boolean(),
|
|
15990
15992
|
deviceCount: number(),
|
|
15991
|
-
error: string().optional()
|
|
15993
|
+
error: string().optional(),
|
|
15994
|
+
/**
|
|
15995
|
+
* `'orchestrator'`: this provider writes NO camera's `motion` runtime slice
|
|
15996
|
+
* — the orchestrator is its only writer (D696). Set by `BaseDeviceProvider`,
|
|
15997
|
+
* which every provider bundles, so only a provider BUILT from D696-amended
|
|
15998
|
+
* code says it. ABSENT means an older provider that may still write it (raw
|
|
15999
|
+
* VMD writes, a boot seed), and the orchestrator's provider gate keeps that
|
|
16000
|
+
* provider's cameras unwritten (`camera-sensors/motion-slice-provider-gate.ts`)
|
|
16001
|
+
* — the provider twin of the runner's `getLocalLoad().motionSliceWriter`.
|
|
16002
|
+
*/
|
|
16003
|
+
motionSliceWriter: literal("orchestrator").optional()
|
|
15992
16004
|
});
|
|
15993
16005
|
object({
|
|
15994
16006
|
externalId: string(),
|
|
@@ -17179,7 +17191,7 @@ var deviceManagerCapability = {
|
|
|
17179
17191
|
* sources could be switched off without switching off the rest (D556, then
|
|
17180
17192
|
* D555's re-key by source). The operator removed the whole idea the same
|
|
17181
17193
|
* day: *"tutti i providers funzionano sempre, non serve
|
|
17182
|
-
* disattivarli/attivarli … loro vivono lì"* (D557 amended, third). A
|
|
17194
|
+
* disattivarli/attivarli … loro vivono lì"* [all the providers always work, there is no need to deactivate/activate them … they live there] (D557 amended, third). A
|
|
17183
17195
|
* collection cap's providers are a DERIVED set — every addon that provides
|
|
17184
17196
|
* the cap for this device type, computed on every read and persisted
|
|
17185
17197
|
* nowhere — so there is nothing here to activate, and a verb that accepted
|
|
@@ -18017,7 +18029,7 @@ var embeddingEncoderCapability = {
|
|
|
18017
18029
|
* per-device window, `KeyFrameCaptureLog`, `bumpCropMetric`. Every one of them
|
|
18018
18030
|
* ends in a log line, and a log line is the thing the operator asked to stop
|
|
18019
18031
|
* needing: *"possiamo armare questi errori intanto? Così al prossimo giro
|
|
18020
|
-
* ricontrolliamo tutti questi punti"
|
|
18032
|
+
* 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
|
|
18021
18033
|
* hand-correlating timestamps, which is how a 22% thumbnail gap and a 3-hour
|
|
18022
18034
|
* media blackout were both diagnosed. The counters stay; this is where they can
|
|
18023
18035
|
* be READ.
|
|
@@ -19665,7 +19677,7 @@ var BrokerStatusSchema$1 = _enum([
|
|
|
19665
19677
|
"unreachable",
|
|
19666
19678
|
"tls-error"
|
|
19667
19679
|
]);
|
|
19668
|
-
var BrokerInfoSchema = object({
|
|
19680
|
+
var BrokerInfoSchema$1 = object({
|
|
19669
19681
|
id: string(),
|
|
19670
19682
|
name: string(),
|
|
19671
19683
|
url: string(),
|
|
@@ -19738,7 +19750,7 @@ var mqttBrokerCapability = {
|
|
|
19738
19750
|
kind: "poll"
|
|
19739
19751
|
},
|
|
19740
19752
|
methods: {
|
|
19741
|
-
listBrokers: method(_void(), array(BrokerInfoSchema)),
|
|
19753
|
+
listBrokers: method(_void(), array(BrokerInfoSchema$1)),
|
|
19742
19754
|
getBrokerConfig: method(IdInputSchema, BrokerConnectionDetailsSchema, { auth: "admin" }),
|
|
19743
19755
|
addBroker: method(AddBrokerInputSchema, AddBrokerResultSchema, {
|
|
19744
19756
|
kind: "mutation",
|
|
@@ -21992,78 +22004,16 @@ var NcRuleInputSchema = object({
|
|
|
21992
22004
|
*/
|
|
21993
22005
|
confirm: NcConfirmSchema.optional(),
|
|
21994
22006
|
/**
|
|
21995
|
-
*
|
|
21996
|
-
*
|
|
21997
|
-
*
|
|
21998
|
-
*
|
|
21999
|
-
*
|
|
22000
|
-
*
|
|
22001
|
-
*
|
|
22002
|
-
*
|
|
22003
|
-
*
|
|
22004
|
-
* Only two honest answers exist, and this flag picks between them. It has
|
|
22005
|
-
* effect ONLY on a rule that declares a recognition scope
|
|
22006
|
-
* ({@link NcConditions.identities} or {@link NcConditions.plates}) — on any
|
|
22007
|
-
* other rule there is nothing to wait for and the flag is inert.
|
|
22008
|
-
*
|
|
22009
|
-
* | value | what happens |
|
|
22010
|
-
* | --- | --- |
|
|
22011
|
-
* | `true` | the rule stops firing on the object event and fires at TRACK CLOSE instead, once, with the name — later, and complete |
|
|
22012
|
-
* | 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) |
|
|
22013
|
-
*
|
|
22014
|
-
* `.optional()` and deliberately NOT `.default()`: a Zod default does not run
|
|
22015
|
-
* on the addon cap path, and absent has to keep meaning exactly what every
|
|
22016
|
-
* rule authored before this field meant.
|
|
22017
|
-
*
|
|
22018
|
-
* The cost of `true` is stated here because the editor states it too: a rule
|
|
22019
|
-
* that waits also inherits track-close SEMANTICS — its `zones` condition
|
|
22020
|
-
* tests every zone the track visited and a `crossing` condition can no longer
|
|
22021
|
-
* be satisfied, because a closed track carries no crossing.
|
|
22022
|
-
*/
|
|
22023
|
-
waitForEnhancement: boolean().optional(),
|
|
22024
|
-
/**
|
|
22025
|
-
* GROUP a burst of subjects into ONE notification that grows.
|
|
22026
|
-
*
|
|
22027
|
-
* Seconds of quiet after the last matching subject before the burst is
|
|
22028
|
-
* considered over. While it is open, the first subject enqueues immediately —
|
|
22029
|
-
* **exactly as today, with no added latency** — and every real growth (a new
|
|
22030
|
-
* subject, or a name confirmed on one already in it) REPLACES that
|
|
22031
|
-
* notification with an updated one naming everybody. The push carries the
|
|
22032
|
-
* group's own coalescing tag, so the phone replaces rather than stacks.
|
|
22033
|
-
*
|
|
22034
|
-
* `0` / absent = off, and off is today's behaviour byte for byte.
|
|
22035
|
-
*
|
|
22036
|
-
* ### Why an idle cutoff and not a window
|
|
22037
|
-
*
|
|
22038
|
-
* The measured seven-person arrival on device 590 spans 110 s with every
|
|
22039
|
-
* internal gap under 30 s. A 12 s fixed window cuts it into three groups; an
|
|
22040
|
-
* idle cutoff holds it as one and ends it when the arrival actually ends.
|
|
22041
|
-
* 30 s is a widely shipped value for the same decision.
|
|
22042
|
-
*
|
|
22043
|
-
* ### What it replaces
|
|
22044
|
-
*
|
|
22045
|
-
* The blind cooldown, which collapses a burst by DISCARDING it. Measured on
|
|
22046
|
-
* device 615 / *Persona su Uscio* over six days: 116 qualifying tracks → 74
|
|
22047
|
-
* notifications, **44 (37.9%) suppressed outright**, 23 of them overlapping a
|
|
22048
|
-
* track that did fire and 7 carrying a confirmed identity nobody heard about.
|
|
22049
|
-
* A group collapses the same volume by MERGING, so the cooldown becomes a
|
|
22050
|
-
* budget over GROUPS — which is what it always meant — and a growth is never
|
|
22051
|
-
* throttled by the window its own first member spent.
|
|
22052
|
-
*
|
|
22053
|
-
* ### Interaction with {@link waitForEnhancement}
|
|
22054
|
-
*
|
|
22055
|
-
* They compose, and the order matters. `waitForEnhancement` defers the rule to
|
|
22056
|
-
* TRACK CLOSE, so with both set the group is opened by the first member to
|
|
22057
|
-
* CLOSE — already carrying its name — and grows as later members close. That
|
|
22058
|
-
* is later, and complete. With grouping alone the group opens on the first
|
|
22059
|
-
* object event and picks up names as they are confirmed, through the growth
|
|
22060
|
-
* path. Neither combination fires twice for one subject.
|
|
22061
|
-
*
|
|
22062
|
-
* `.optional()` and deliberately NOT `.default()`: a Zod default does not run
|
|
22063
|
-
* on the addon cap path, so absent must keep meaning what it meant before this
|
|
22064
|
-
* field existed.
|
|
22007
|
+
* IMMEDIATE GROUPED (D692): the first matching subject opens a window of this many
|
|
22008
|
+
* seconds; the rule sends ONE message when the window closes — early, once every
|
|
22009
|
+
* subject in it is final, never before {@link NC_GROUPING_MIN_SEC} — naming everybody
|
|
22010
|
+
* the rule matched, with one mosaic tile per subject.
|
|
22011
|
+
* Absent = plain immediate (one message per track, at the first match).
|
|
22012
|
+
* Only an `immediate` DETECTION rule may carry it (`ruleGroupingApplies`, enforced on
|
|
22013
|
+
* save by the hub's grouping guard). `.optional()`, never `.default()`: the addon cap
|
|
22014
|
+
* path does not run Zod defaults.
|
|
22065
22015
|
*/
|
|
22066
|
-
|
|
22016
|
+
groupingSec: number().int().min(5).max(60).optional()
|
|
22067
22017
|
});
|
|
22068
22018
|
/**
|
|
22069
22019
|
* Partial patch for `updateRule` — any subset of the input fields, plus the
|
|
@@ -22111,9 +22061,10 @@ var NcRuleClearableKeySchema = _enum([
|
|
|
22111
22061
|
"targetUsers",
|
|
22112
22062
|
"snoozeOptions",
|
|
22113
22063
|
"snoozeAllowGlobal",
|
|
22114
|
-
"waitForEnhancement",
|
|
22115
22064
|
"actions",
|
|
22116
22065
|
"confirm",
|
|
22066
|
+
"groupingSec",
|
|
22067
|
+
"waitForEnhancement",
|
|
22117
22068
|
"groupIdleSec"
|
|
22118
22069
|
]);
|
|
22119
22070
|
var NcRuleUpdateInputSchema = object({
|
|
@@ -22135,9 +22086,25 @@ var NcRuleSchema = NcRuleInputSchema.extend({
|
|
|
22135
22086
|
*/
|
|
22136
22087
|
disabledTargetIds: array(string()).default([])
|
|
22137
22088
|
});
|
|
22089
|
+
/**
|
|
22090
|
+
* The state-summary SECTIONS (D647 / D698): the D637 kind groups that report a
|
|
22091
|
+
* still-true state. `backups-exports` and `alarm` are not sections — a completed
|
|
22092
|
+
* job is not an open state, and the alarm stays instant.
|
|
22093
|
+
*/
|
|
22094
|
+
var NcStateSummarySectionIdSchema = _enum([
|
|
22095
|
+
"device-state",
|
|
22096
|
+
"streams",
|
|
22097
|
+
"battery",
|
|
22098
|
+
"consumables",
|
|
22099
|
+
"tanks",
|
|
22100
|
+
"detection-blind",
|
|
22101
|
+
"nodes",
|
|
22102
|
+
"addons",
|
|
22103
|
+
"updates"
|
|
22104
|
+
]);
|
|
22138
22105
|
/** One section of a previewed state summary. `unavailable` = its state could not be read. */
|
|
22139
22106
|
var NcStateSummaryPreviewSectionSchema = object({
|
|
22140
|
-
id:
|
|
22107
|
+
id: NcStateSummarySectionIdSchema,
|
|
22141
22108
|
status: _enum(["read", "unavailable"]),
|
|
22142
22109
|
items: number().int().nonnegative(),
|
|
22143
22110
|
reason: string().optional()
|
|
@@ -22147,7 +22114,7 @@ var NcStateSummaryPreviewSectionSchema = object({
|
|
|
22147
22114
|
* a `rule` split (no `section`), one section's on a `section` split.
|
|
22148
22115
|
*/
|
|
22149
22116
|
var NcStateSummaryPreviewRowSchema = object({
|
|
22150
|
-
section:
|
|
22117
|
+
section: NcStateSummarySectionIdSchema.optional(),
|
|
22151
22118
|
/** The section's name on a per-section row; every reported section's, joined, on a combined one. */
|
|
22152
22119
|
title: string(),
|
|
22153
22120
|
text: string(),
|
|
@@ -22665,7 +22632,7 @@ var NC_CONDITION_CATALOG = [
|
|
|
22665
22632
|
operator: "in",
|
|
22666
22633
|
appliesTo: ["immediate", "track-end"],
|
|
22667
22634
|
phase: "P1",
|
|
22668
|
-
description: "Only recognised people. Selecting NOBODY means every identity in the face gallery; selecting some narrows to those. Matched on the gallery id, so renaming a person does not break the rule. On
|
|
22635
|
+
description: "Only recognised people. Selecting NOBODY means every identity in the face gallery; selecting some narrows to those. Matched on the gallery id, so renaming a person does not break the rule. On Immediate delivery the name must already be known when an event is written — choose Immediate, grouped to wait for it (D692)."
|
|
22669
22636
|
},
|
|
22670
22637
|
{
|
|
22671
22638
|
id: "plates",
|
|
@@ -24770,14 +24737,14 @@ var TrackSchema = object({
|
|
|
24770
24737
|
* `derive-returned-null tile=standin`,
|
|
24771
24738
|
* `native-tile tile=native no-key-frame-at-close`, …) written at close and
|
|
24772
24739
|
* CLEARED by the late-keyFrame upgrade when a native tile lands after all.
|
|
24773
|
-
* The operator-facing answer to "perché manca l'immagine?" on a track whose
|
|
24740
|
+
* The operator-facing answer to "perché manca l'immagine?" [why is the image missing?] on a track whose
|
|
24774
24741
|
* tile is a face/plate stand-in, a raster crop, or an icon.
|
|
24775
24742
|
*
|
|
24776
24743
|
* **`no-key-frame-at-close` (D400).** The line used to be written ONLY when
|
|
24777
24744
|
* the TILE ranked below native, so a track whose thumbnail landed natively
|
|
24778
24745
|
* while its key frame missed carried no reason at all — three of the four
|
|
24779
24746
|
* `MISSING_KEYFRAME` tracks in the 2026-09-07 operator audit were exactly
|
|
24780
|
-
* that shape, and their "niente ultimo" had no cause anywhere on the row.
|
|
24747
|
+
* that shape, and their "niente ultimo" [no last frame] had no cause anywhere on the row.
|
|
24781
24748
|
* The key frame is the head of a cascade (`keyFrame ⇒ keyFrameSmall ⇒ the
|
|
24782
24749
|
* lastFrame copy source`), so its absence is now on this line whatever the
|
|
24783
24750
|
* tile ended up being.
|
|
@@ -24864,7 +24831,7 @@ var MotionEventSchema = object({
|
|
|
24864
24831
|
/**
|
|
24865
24832
|
* Ms offsets from `timestamp` (the episode's own first rising edge, so the
|
|
24866
24833
|
* first entry is always `0`) of every genuine off→on transition the
|
|
24867
|
-
* episode saw — "ogni evento on si deve salvare" (D475). NOT one entry per
|
|
24834
|
+
* episode saw — "ogni evento on si deve salvare" [every ON event must be saved] (D475). NOT one entry per
|
|
24868
24835
|
* push: a firmware source that keepalives at ~1 Hz for the whole burst
|
|
24869
24836
|
* (Reolink, Hikvision) produces exactly one edge; a source that reports an
|
|
24870
24837
|
* explicit `false` mid-episode and then resumes before the quiet window
|
|
@@ -25388,6 +25355,7 @@ var KeyEventSchema = object({
|
|
|
25388
25355
|
bestEventId: string(),
|
|
25389
25356
|
/** Track lifetime in ms (lastSeen - firstSeen). */
|
|
25390
25357
|
windowMs: number().optional(),
|
|
25358
|
+
audioLabels: array(TrackAudioLabelSchema).readonly().optional(),
|
|
25391
25359
|
...TrackFlagFields,
|
|
25392
25360
|
...TrackRetrainFields
|
|
25393
25361
|
});
|
|
@@ -32072,7 +32040,7 @@ var ClipPlaybackSchema = object({
|
|
|
32072
32040
|
* **One authorised yes is one wake.** `next-natural` — take the clip the next
|
|
32073
32041
|
* time the camera is awake for its own reasons — is deliberately not a member:
|
|
32074
32042
|
* it was proposed, it is free on the battery, and the operator declined it on
|
|
32075
|
-
* 2026-09-20 (*"Quando un export viene richiesto si sveglia la camera."
|
|
32043
|
+
* 2026-09-20 (*"Quando un export viene richiesto si sveglia la camera."* [When an export is requested the camera wakes up],
|
|
32076
32044
|
* D558 "Considered and not taken").
|
|
32077
32045
|
*/
|
|
32078
32046
|
var ClipWakeSchema = _enum(["authorised"]);
|
|
@@ -32317,7 +32285,7 @@ var videoclipsCapability = {
|
|
|
32317
32285
|
* **It is a SECTION of the Recording tab, at the end of it — not a tab of
|
|
32318
32286
|
* its own.** It shipped as a `clips` top-tab and the operator rejected the
|
|
32319
32287
|
* placement: *"utilizzerei la stessa tab recordings, lì abbiamo già tutto il
|
|
32320
|
-
* necessario, una nuova sezione alla fine per le clips"
|
|
32288
|
+
* 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
|
|
32321
32289
|
* already holds the recorder's panel, the schedule bands and the unified
|
|
32322
32290
|
* retention policy; footage the camera itself holds is the same question,
|
|
32323
32291
|
* asked of a different store. `order: 100` puts it after all of them with
|
|
@@ -32378,7 +32346,7 @@ var videoclipsCapability = {
|
|
|
32378
32346
|
* It replaced `sources?: string[]`, a VIEW filter over source ids that
|
|
32379
32347
|
* assumed the answer was a fan-out over everything a camera has. The
|
|
32380
32348
|
* operator settled otherwise on 2026-09-20 — *"l'utilizzatore è uno
|
|
32381
|
-
* solo"* — so the list is asked of one provider at a time and there is
|
|
32349
|
+
* solo"* [there is only one user] — so the list is asked of one provider at a time and there is
|
|
32382
32350
|
* nothing to filter out of it.
|
|
32383
32351
|
*/
|
|
32384
32352
|
provider: string().min(1)
|
|
@@ -41519,7 +41487,7 @@ var ReadGopBytesResultSchema = object({
|
|
|
41519
41487
|
/**
|
|
41520
41488
|
* A time WINDOW of one finalized segment, cut by byte range — the multi-GOP
|
|
41521
41489
|
* twin of {@link ReadGopBytesResultSchema}'s single instant. Built for the
|
|
41522
|
-
* replay clip's `recording` source (`docs/design/plans/2026-08-26-replay-
|
|
41490
|
+
* replay clip's `recording` source (`docs/design/plans/2026-08-26-clip-replay-on-pipeline.md`):
|
|
41523
41491
|
* a replay needs several seconds of native pixels, not one frame.
|
|
41524
41492
|
*
|
|
41525
41493
|
* `ok.data` is standalone-demuxable, same as a GOP read. `ok.reachesRequestedEnd`
|
|
@@ -44127,7 +44095,7 @@ var systemCapability = {
|
|
|
44127
44095
|
*
|
|
44128
44096
|
* This is the surface the operator asked for on 2026-08-28 (*"possiamo
|
|
44129
44097
|
* armare questi errori intanto? Così al prossimo giro ricontrolliamo tutti
|
|
44130
|
-
* questi punti"*). Before it, four live failure modes could only be counted
|
|
44098
|
+
* questi punti"* [can we instrument these errors in the meantime? That way next round we recheck all these points]). Before it, four live failure modes could only be counted
|
|
44131
44099
|
* by grepping Loki and hand-correlating timestamps, which is exactly how a
|
|
44132
44100
|
* 22% thumbnail gap and a 3-hour media blackout were diagnosed — twice.
|
|
44133
44101
|
*
|
|
@@ -45288,6 +45256,7 @@ var zoneRulesCapability = {
|
|
|
45288
45256
|
*/
|
|
45289
45257
|
durability: "restored"
|
|
45290
45258
|
};
|
|
45259
|
+
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
45291
45260
|
/**
|
|
45292
45261
|
* Most specific first. Extending this list is how a new device kind becomes
|
|
45293
45262
|
* gateable; nothing else needs to change.
|
|
@@ -54077,6 +54046,11 @@ Object.freeze({
|
|
|
54077
54046
|
}
|
|
54078
54047
|
});
|
|
54079
54048
|
Object.freeze({
|
|
54049
|
+
"accessories.getStatus": [{
|
|
54050
|
+
name: "deviceId",
|
|
54051
|
+
form: "single",
|
|
54052
|
+
optional: false
|
|
54053
|
+
}],
|
|
54080
54054
|
"accessories.setChildHidden": [{
|
|
54081
54055
|
name: "childDeviceId",
|
|
54082
54056
|
form: "single",
|
|
@@ -54096,6 +54070,11 @@ Object.freeze({
|
|
|
54096
54070
|
form: "single",
|
|
54097
54071
|
optional: false
|
|
54098
54072
|
}],
|
|
54073
|
+
"airQualitySensor.getStatus": [{
|
|
54074
|
+
name: "deviceId",
|
|
54075
|
+
form: "single",
|
|
54076
|
+
optional: false
|
|
54077
|
+
}],
|
|
54099
54078
|
"alarmPanel.arm": [{
|
|
54100
54079
|
name: "deviceId",
|
|
54101
54080
|
form: "single",
|
|
@@ -54106,11 +54085,36 @@ Object.freeze({
|
|
|
54106
54085
|
form: "single",
|
|
54107
54086
|
optional: false
|
|
54108
54087
|
}],
|
|
54088
|
+
"alarmPanel.getStatus": [{
|
|
54089
|
+
name: "deviceId",
|
|
54090
|
+
form: "single",
|
|
54091
|
+
optional: false
|
|
54092
|
+
}],
|
|
54109
54093
|
"alarmPanel.trigger": [{
|
|
54110
54094
|
name: "deviceId",
|
|
54111
54095
|
form: "single",
|
|
54112
54096
|
optional: false
|
|
54113
54097
|
}],
|
|
54098
|
+
"ambientLightSensor.getStatus": [{
|
|
54099
|
+
name: "deviceId",
|
|
54100
|
+
form: "single",
|
|
54101
|
+
optional: false
|
|
54102
|
+
}],
|
|
54103
|
+
"audioAnalysis.applyDeviceSettingsPatch": [{
|
|
54104
|
+
name: "deviceId",
|
|
54105
|
+
form: "single",
|
|
54106
|
+
optional: false
|
|
54107
|
+
}],
|
|
54108
|
+
"audioAnalysis.getDeviceLiveContribution": [{
|
|
54109
|
+
name: "deviceId",
|
|
54110
|
+
form: "single",
|
|
54111
|
+
optional: false
|
|
54112
|
+
}],
|
|
54113
|
+
"audioAnalysis.getDeviceSettingsContribution": [{
|
|
54114
|
+
name: "deviceId",
|
|
54115
|
+
form: "single",
|
|
54116
|
+
optional: false
|
|
54117
|
+
}],
|
|
54114
54118
|
"audioAnalysis.resolveDeviceSettings": [{
|
|
54115
54119
|
name: "deviceId",
|
|
54116
54120
|
form: "single",
|
|
@@ -54151,16 +54155,36 @@ Object.freeze({
|
|
|
54151
54155
|
form: "single",
|
|
54152
54156
|
optional: false
|
|
54153
54157
|
}],
|
|
54158
|
+
"automationControl.getStatus": [{
|
|
54159
|
+
name: "deviceId",
|
|
54160
|
+
form: "single",
|
|
54161
|
+
optional: false
|
|
54162
|
+
}],
|
|
54154
54163
|
"automationControl.trigger": [{
|
|
54155
54164
|
name: "deviceId",
|
|
54156
54165
|
form: "single",
|
|
54157
54166
|
optional: false
|
|
54158
54167
|
}],
|
|
54168
|
+
"battery.getStatus": [{
|
|
54169
|
+
name: "deviceId",
|
|
54170
|
+
form: "single",
|
|
54171
|
+
optional: false
|
|
54172
|
+
}],
|
|
54159
54173
|
"battery.wakeForStream": [{
|
|
54160
54174
|
name: "deviceId",
|
|
54161
54175
|
form: "single",
|
|
54162
54176
|
optional: false
|
|
54163
54177
|
}],
|
|
54178
|
+
"binary.getStatus": [{
|
|
54179
|
+
name: "deviceId",
|
|
54180
|
+
form: "single",
|
|
54181
|
+
optional: false
|
|
54182
|
+
}],
|
|
54183
|
+
"brightness.getStatus": [{
|
|
54184
|
+
name: "deviceId",
|
|
54185
|
+
form: "single",
|
|
54186
|
+
optional: false
|
|
54187
|
+
}],
|
|
54164
54188
|
"brightness.setBrightness": [{
|
|
54165
54189
|
name: "deviceId",
|
|
54166
54190
|
form: "single",
|
|
@@ -54176,6 +54200,26 @@ Object.freeze({
|
|
|
54176
54200
|
form: "single",
|
|
54177
54201
|
optional: false
|
|
54178
54202
|
}],
|
|
54203
|
+
"cameraCredentials.getStatus": [{
|
|
54204
|
+
name: "deviceId",
|
|
54205
|
+
form: "single",
|
|
54206
|
+
optional: false
|
|
54207
|
+
}],
|
|
54208
|
+
"cameraGridLayout.applyDeviceSettingsPatch": [{
|
|
54209
|
+
name: "deviceId",
|
|
54210
|
+
form: "single",
|
|
54211
|
+
optional: false
|
|
54212
|
+
}],
|
|
54213
|
+
"cameraGridLayout.getDeviceLiveContribution": [{
|
|
54214
|
+
name: "deviceId",
|
|
54215
|
+
form: "single",
|
|
54216
|
+
optional: false
|
|
54217
|
+
}],
|
|
54218
|
+
"cameraGridLayout.getDeviceSettingsContribution": [{
|
|
54219
|
+
name: "deviceId",
|
|
54220
|
+
form: "single",
|
|
54221
|
+
optional: false
|
|
54222
|
+
}],
|
|
54179
54223
|
"cameraGridLayout.getLayout": [{
|
|
54180
54224
|
name: "deviceId",
|
|
54181
54225
|
form: "single",
|
|
@@ -54191,6 +54235,21 @@ Object.freeze({
|
|
|
54191
54235
|
form: "single",
|
|
54192
54236
|
optional: false
|
|
54193
54237
|
}],
|
|
54238
|
+
"cameraPipelineConfig.applyDeviceSettingsPatch": [{
|
|
54239
|
+
name: "deviceId",
|
|
54240
|
+
form: "single",
|
|
54241
|
+
optional: false
|
|
54242
|
+
}],
|
|
54243
|
+
"cameraPipelineConfig.getDeviceLiveContribution": [{
|
|
54244
|
+
name: "deviceId",
|
|
54245
|
+
form: "single",
|
|
54246
|
+
optional: false
|
|
54247
|
+
}],
|
|
54248
|
+
"cameraPipelineConfig.getDeviceSettingsContribution": [{
|
|
54249
|
+
name: "deviceId",
|
|
54250
|
+
form: "single",
|
|
54251
|
+
optional: false
|
|
54252
|
+
}],
|
|
54194
54253
|
"cameraStreams.getBrokerStreams": [{
|
|
54195
54254
|
name: "deviceId",
|
|
54196
54255
|
form: "single",
|
|
@@ -54216,6 +54275,16 @@ Object.freeze({
|
|
|
54216
54275
|
form: "single",
|
|
54217
54276
|
optional: false
|
|
54218
54277
|
}],
|
|
54278
|
+
"carbonMonoxide.getStatus": [{
|
|
54279
|
+
name: "deviceId",
|
|
54280
|
+
form: "single",
|
|
54281
|
+
optional: false
|
|
54282
|
+
}],
|
|
54283
|
+
"climateControl.getStatus": [{
|
|
54284
|
+
name: "deviceId",
|
|
54285
|
+
form: "single",
|
|
54286
|
+
optional: false
|
|
54287
|
+
}],
|
|
54219
54288
|
"climateControl.setFanMode": [{
|
|
54220
54289
|
name: "deviceId",
|
|
54221
54290
|
form: "single",
|
|
@@ -54256,16 +54325,41 @@ Object.freeze({
|
|
|
54256
54325
|
form: "single",
|
|
54257
54326
|
optional: false
|
|
54258
54327
|
}],
|
|
54328
|
+
"color.getStatus": [{
|
|
54329
|
+
name: "deviceId",
|
|
54330
|
+
form: "single",
|
|
54331
|
+
optional: false
|
|
54332
|
+
}],
|
|
54259
54333
|
"color.setColor": [{
|
|
54260
54334
|
name: "deviceId",
|
|
54261
54335
|
form: "single",
|
|
54262
54336
|
optional: false
|
|
54263
54337
|
}],
|
|
54338
|
+
"connectivity.getStatus": [{
|
|
54339
|
+
name: "deviceId",
|
|
54340
|
+
form: "single",
|
|
54341
|
+
optional: false
|
|
54342
|
+
}],
|
|
54343
|
+
"consumables.getStatus": [{
|
|
54344
|
+
name: "deviceId",
|
|
54345
|
+
form: "single",
|
|
54346
|
+
optional: false
|
|
54347
|
+
}],
|
|
54264
54348
|
"consumables.reset": [{
|
|
54265
54349
|
name: "deviceId",
|
|
54266
54350
|
form: "single",
|
|
54267
54351
|
optional: false
|
|
54268
54352
|
}],
|
|
54353
|
+
"contact.getStatus": [{
|
|
54354
|
+
name: "deviceId",
|
|
54355
|
+
form: "single",
|
|
54356
|
+
optional: false
|
|
54357
|
+
}],
|
|
54358
|
+
"control.getStatus": [{
|
|
54359
|
+
name: "deviceId",
|
|
54360
|
+
form: "single",
|
|
54361
|
+
optional: false
|
|
54362
|
+
}],
|
|
54269
54363
|
"control.setValue": [{
|
|
54270
54364
|
name: "deviceId",
|
|
54271
54365
|
form: "single",
|
|
@@ -54276,6 +54370,11 @@ Object.freeze({
|
|
|
54276
54370
|
form: "single",
|
|
54277
54371
|
optional: false
|
|
54278
54372
|
}],
|
|
54373
|
+
"cover.getStatus": [{
|
|
54374
|
+
name: "deviceId",
|
|
54375
|
+
form: "single",
|
|
54376
|
+
optional: false
|
|
54377
|
+
}],
|
|
54279
54378
|
"cover.open": [{
|
|
54280
54379
|
name: "deviceId",
|
|
54281
54380
|
form: "single",
|
|
@@ -54301,6 +54400,11 @@ Object.freeze({
|
|
|
54301
54400
|
form: "single",
|
|
54302
54401
|
optional: false
|
|
54303
54402
|
}],
|
|
54403
|
+
"dayNight.getStatus": [{
|
|
54404
|
+
name: "deviceId",
|
|
54405
|
+
form: "single",
|
|
54406
|
+
optional: false
|
|
54407
|
+
}],
|
|
54304
54408
|
"dayNight.setSettings": [{
|
|
54305
54409
|
name: "deviceId",
|
|
54306
54410
|
form: "single",
|
|
@@ -54311,11 +54415,31 @@ Object.freeze({
|
|
|
54311
54415
|
form: "single",
|
|
54312
54416
|
optional: true
|
|
54313
54417
|
}],
|
|
54418
|
+
"detectionPipeline.applyDeviceSettingsPatch": [{
|
|
54419
|
+
name: "deviceId",
|
|
54420
|
+
form: "single",
|
|
54421
|
+
optional: false
|
|
54422
|
+
}],
|
|
54423
|
+
"detectionPipeline.getDeviceLiveContribution": [{
|
|
54424
|
+
name: "deviceId",
|
|
54425
|
+
form: "single",
|
|
54426
|
+
optional: false
|
|
54427
|
+
}],
|
|
54428
|
+
"detectionPipeline.getDeviceSettingsContribution": [{
|
|
54429
|
+
name: "deviceId",
|
|
54430
|
+
form: "single",
|
|
54431
|
+
optional: false
|
|
54432
|
+
}],
|
|
54314
54433
|
"deviceAdminLink.getAdminLink": [{
|
|
54315
54434
|
name: "deviceId",
|
|
54316
54435
|
form: "single",
|
|
54317
54436
|
optional: false
|
|
54318
54437
|
}],
|
|
54438
|
+
"deviceAdoption.getStatus": [{
|
|
54439
|
+
name: "deviceId",
|
|
54440
|
+
form: "single",
|
|
54441
|
+
optional: false
|
|
54442
|
+
}],
|
|
54319
54443
|
"deviceAdoption.release": [{
|
|
54320
54444
|
name: "camDeviceId",
|
|
54321
54445
|
form: "single",
|
|
@@ -54331,6 +54455,11 @@ Object.freeze({
|
|
|
54331
54455
|
form: "single",
|
|
54332
54456
|
optional: false
|
|
54333
54457
|
}],
|
|
54458
|
+
"deviceDiscovery.getStatus": [{
|
|
54459
|
+
name: "deviceId",
|
|
54460
|
+
form: "single",
|
|
54461
|
+
optional: false
|
|
54462
|
+
}],
|
|
54334
54463
|
"deviceDiscovery.listDiscovered": [{
|
|
54335
54464
|
name: "deviceId",
|
|
54336
54465
|
form: "single",
|
|
@@ -54350,6 +54479,21 @@ Object.freeze({
|
|
|
54350
54479
|
form: "single",
|
|
54351
54480
|
optional: false
|
|
54352
54481
|
}],
|
|
54482
|
+
"deviceExport.applyDeviceSettingsPatch": [{
|
|
54483
|
+
name: "deviceId",
|
|
54484
|
+
form: "single",
|
|
54485
|
+
optional: false
|
|
54486
|
+
}],
|
|
54487
|
+
"deviceExport.getDeviceLiveContribution": [{
|
|
54488
|
+
name: "deviceId",
|
|
54489
|
+
form: "single",
|
|
54490
|
+
optional: false
|
|
54491
|
+
}],
|
|
54492
|
+
"deviceExport.getDeviceSettingsContribution": [{
|
|
54493
|
+
name: "deviceId",
|
|
54494
|
+
form: "single",
|
|
54495
|
+
optional: false
|
|
54496
|
+
}],
|
|
54353
54497
|
"deviceExtension.listCandidates": [{
|
|
54354
54498
|
name: "deviceId",
|
|
54355
54499
|
form: "single",
|
|
@@ -54698,6 +54842,26 @@ Object.freeze({
|
|
|
54698
54842
|
form: "single",
|
|
54699
54843
|
optional: false
|
|
54700
54844
|
}],
|
|
54845
|
+
"deviceStatus.getStatus": [{
|
|
54846
|
+
name: "deviceId",
|
|
54847
|
+
form: "single",
|
|
54848
|
+
optional: false
|
|
54849
|
+
}],
|
|
54850
|
+
"doorbell.getStatus": [{
|
|
54851
|
+
name: "deviceId",
|
|
54852
|
+
form: "single",
|
|
54853
|
+
optional: false
|
|
54854
|
+
}],
|
|
54855
|
+
"enumSensor.getStatus": [{
|
|
54856
|
+
name: "deviceId",
|
|
54857
|
+
form: "single",
|
|
54858
|
+
optional: false
|
|
54859
|
+
}],
|
|
54860
|
+
"eventEmitter.getStatus": [{
|
|
54861
|
+
name: "deviceId",
|
|
54862
|
+
form: "single",
|
|
54863
|
+
optional: false
|
|
54864
|
+
}],
|
|
54701
54865
|
"faceGallery.getFaceByTrack": [{
|
|
54702
54866
|
name: "deviceId",
|
|
54703
54867
|
form: "single",
|
|
@@ -54712,6 +54876,11 @@ Object.freeze({
|
|
|
54712
54876
|
form: "array",
|
|
54713
54877
|
optional: true
|
|
54714
54878
|
}],
|
|
54879
|
+
"fanControl.getStatus": [{
|
|
54880
|
+
name: "deviceId",
|
|
54881
|
+
form: "single",
|
|
54882
|
+
optional: false
|
|
54883
|
+
}],
|
|
54715
54884
|
"fanControl.setDirection": [{
|
|
54716
54885
|
name: "deviceId",
|
|
54717
54886
|
form: "single",
|
|
@@ -54732,6 +54901,26 @@ Object.freeze({
|
|
|
54732
54901
|
form: "single",
|
|
54733
54902
|
optional: false
|
|
54734
54903
|
}],
|
|
54904
|
+
"featureProbe.getStatus": [{
|
|
54905
|
+
name: "deviceId",
|
|
54906
|
+
form: "single",
|
|
54907
|
+
optional: false
|
|
54908
|
+
}],
|
|
54909
|
+
"flood.getStatus": [{
|
|
54910
|
+
name: "deviceId",
|
|
54911
|
+
form: "single",
|
|
54912
|
+
optional: false
|
|
54913
|
+
}],
|
|
54914
|
+
"gas.getStatus": [{
|
|
54915
|
+
name: "deviceId",
|
|
54916
|
+
form: "single",
|
|
54917
|
+
optional: false
|
|
54918
|
+
}],
|
|
54919
|
+
"humidifier.getStatus": [{
|
|
54920
|
+
name: "deviceId",
|
|
54921
|
+
form: "single",
|
|
54922
|
+
optional: false
|
|
54923
|
+
}],
|
|
54735
54924
|
"humidifier.setMode": [{
|
|
54736
54925
|
name: "deviceId",
|
|
54737
54926
|
form: "single",
|
|
@@ -54747,11 +54936,26 @@ Object.freeze({
|
|
|
54747
54936
|
form: "single",
|
|
54748
54937
|
optional: false
|
|
54749
54938
|
}],
|
|
54939
|
+
"humiditySensor.getStatus": [{
|
|
54940
|
+
name: "deviceId",
|
|
54941
|
+
form: "single",
|
|
54942
|
+
optional: false
|
|
54943
|
+
}],
|
|
54944
|
+
"image.getStatus": [{
|
|
54945
|
+
name: "deviceId",
|
|
54946
|
+
form: "single",
|
|
54947
|
+
optional: false
|
|
54948
|
+
}],
|
|
54750
54949
|
"imageSettings.getOptions": [{
|
|
54751
54950
|
name: "deviceId",
|
|
54752
54951
|
form: "single",
|
|
54753
54952
|
optional: false
|
|
54754
54953
|
}],
|
|
54954
|
+
"imageSettings.getStatus": [{
|
|
54955
|
+
name: "deviceId",
|
|
54956
|
+
form: "single",
|
|
54957
|
+
optional: false
|
|
54958
|
+
}],
|
|
54755
54959
|
"imageSettings.setSettings": [{
|
|
54756
54960
|
name: "deviceId",
|
|
54757
54961
|
form: "single",
|
|
@@ -54762,6 +54966,11 @@ Object.freeze({
|
|
|
54762
54966
|
form: "single",
|
|
54763
54967
|
optional: false
|
|
54764
54968
|
}],
|
|
54969
|
+
"intercom.getStatus": [{
|
|
54970
|
+
name: "deviceId",
|
|
54971
|
+
form: "single",
|
|
54972
|
+
optional: false
|
|
54973
|
+
}],
|
|
54765
54974
|
"intercom.handleAnswer": [{
|
|
54766
54975
|
name: "deviceId",
|
|
54767
54976
|
form: "single",
|
|
@@ -54792,6 +55001,11 @@ Object.freeze({
|
|
|
54792
55001
|
form: "single",
|
|
54793
55002
|
optional: false
|
|
54794
55003
|
}],
|
|
55004
|
+
"lawnMowerControl.getStatus": [{
|
|
55005
|
+
name: "deviceId",
|
|
55006
|
+
form: "single",
|
|
55007
|
+
optional: false
|
|
55008
|
+
}],
|
|
54795
55009
|
"lawnMowerControl.pause": [{
|
|
54796
55010
|
name: "deviceId",
|
|
54797
55011
|
form: "single",
|
|
@@ -54802,6 +55016,11 @@ Object.freeze({
|
|
|
54802
55016
|
form: "single",
|
|
54803
55017
|
optional: false
|
|
54804
55018
|
}],
|
|
55019
|
+
"lockControl.getStatus": [{
|
|
55020
|
+
name: "deviceId",
|
|
55021
|
+
form: "single",
|
|
55022
|
+
optional: false
|
|
55023
|
+
}],
|
|
54805
55024
|
"lockControl.lock": [{
|
|
54806
55025
|
name: "deviceId",
|
|
54807
55026
|
form: "single",
|
|
@@ -54817,6 +55036,11 @@ Object.freeze({
|
|
|
54817
55036
|
form: "single",
|
|
54818
55037
|
optional: false
|
|
54819
55038
|
}],
|
|
55039
|
+
"mediaPlayer.getStatus": [{
|
|
55040
|
+
name: "deviceId",
|
|
55041
|
+
form: "single",
|
|
55042
|
+
optional: false
|
|
55043
|
+
}],
|
|
54820
55044
|
"mediaPlayer.next": [{
|
|
54821
55045
|
name: "deviceId",
|
|
54822
55046
|
form: "single",
|
|
@@ -54877,6 +55101,11 @@ Object.freeze({
|
|
|
54877
55101
|
form: "single",
|
|
54878
55102
|
optional: false
|
|
54879
55103
|
}],
|
|
55104
|
+
"motion.getStatus": [{
|
|
55105
|
+
name: "deviceId",
|
|
55106
|
+
form: "single",
|
|
55107
|
+
optional: false
|
|
55108
|
+
}],
|
|
54880
55109
|
"motion.isDetected": [{
|
|
54881
55110
|
name: "deviceId",
|
|
54882
55111
|
form: "single",
|
|
@@ -54887,11 +55116,31 @@ Object.freeze({
|
|
|
54887
55116
|
form: "single",
|
|
54888
55117
|
optional: false
|
|
54889
55118
|
}],
|
|
55119
|
+
"motionDetection.applyDeviceSettingsPatch": [{
|
|
55120
|
+
name: "deviceId",
|
|
55121
|
+
form: "single",
|
|
55122
|
+
optional: false
|
|
55123
|
+
}],
|
|
55124
|
+
"motionDetection.getDeviceLiveContribution": [{
|
|
55125
|
+
name: "deviceId",
|
|
55126
|
+
form: "single",
|
|
55127
|
+
optional: false
|
|
55128
|
+
}],
|
|
55129
|
+
"motionDetection.getDeviceSettingsContribution": [{
|
|
55130
|
+
name: "deviceId",
|
|
55131
|
+
form: "single",
|
|
55132
|
+
optional: false
|
|
55133
|
+
}],
|
|
54890
55134
|
"motionDetection.removeCamera": [{
|
|
54891
55135
|
name: "deviceId",
|
|
54892
55136
|
form: "single",
|
|
54893
55137
|
optional: false
|
|
54894
55138
|
}],
|
|
55139
|
+
"motionTrigger.getStatus": [{
|
|
55140
|
+
name: "deviceId",
|
|
55141
|
+
form: "single",
|
|
55142
|
+
optional: false
|
|
55143
|
+
}],
|
|
54895
55144
|
"motionTrigger.setMotionTrigger": [{
|
|
54896
55145
|
name: "deviceId",
|
|
54897
55146
|
form: "single",
|
|
@@ -54902,6 +55151,11 @@ Object.freeze({
|
|
|
54902
55151
|
form: "single",
|
|
54903
55152
|
optional: false
|
|
54904
55153
|
}],
|
|
55154
|
+
"motionZones.getStatus": [{
|
|
55155
|
+
name: "deviceId",
|
|
55156
|
+
form: "single",
|
|
55157
|
+
optional: false
|
|
55158
|
+
}],
|
|
54905
55159
|
"motionZones.setZone": [{
|
|
54906
55160
|
name: "deviceId",
|
|
54907
55161
|
form: "single",
|
|
@@ -54912,6 +55166,11 @@ Object.freeze({
|
|
|
54912
55166
|
form: "single",
|
|
54913
55167
|
optional: false
|
|
54914
55168
|
}],
|
|
55169
|
+
"nativeObjectDetection.getStatus": [{
|
|
55170
|
+
name: "deviceId",
|
|
55171
|
+
form: "single",
|
|
55172
|
+
optional: false
|
|
55173
|
+
}],
|
|
54915
55174
|
"nativeObjectDetection.setEnabled": [{
|
|
54916
55175
|
name: "deviceId",
|
|
54917
55176
|
form: "single",
|
|
@@ -54927,6 +55186,11 @@ Object.freeze({
|
|
|
54927
55186
|
form: "single",
|
|
54928
55187
|
optional: false
|
|
54929
55188
|
}],
|
|
55189
|
+
"navigation.getStatus": [{
|
|
55190
|
+
name: "deviceId",
|
|
55191
|
+
form: "single",
|
|
55192
|
+
optional: false
|
|
55193
|
+
}],
|
|
54930
55194
|
"navigation.goToPoint": [{
|
|
54931
55195
|
name: "deviceId",
|
|
54932
55196
|
form: "single",
|
|
@@ -54972,6 +55236,11 @@ Object.freeze({
|
|
|
54972
55236
|
form: "single",
|
|
54973
55237
|
optional: false
|
|
54974
55238
|
}],
|
|
55239
|
+
"networkLink.getStatus": [{
|
|
55240
|
+
name: "deviceId",
|
|
55241
|
+
form: "single",
|
|
55242
|
+
optional: false
|
|
55243
|
+
}],
|
|
54975
55244
|
"networkQuality.getDeviceStats": [{
|
|
54976
55245
|
name: "deviceId",
|
|
54977
55246
|
form: "single",
|
|
@@ -54997,11 +55266,26 @@ Object.freeze({
|
|
|
54997
55266
|
form: "single",
|
|
54998
55267
|
optional: false
|
|
54999
55268
|
}],
|
|
55269
|
+
"notifier.getStatus": [{
|
|
55270
|
+
name: "deviceId",
|
|
55271
|
+
form: "single",
|
|
55272
|
+
optional: false
|
|
55273
|
+
}],
|
|
55000
55274
|
"notifier.send": [{
|
|
55001
55275
|
name: "deviceId",
|
|
55002
55276
|
form: "single",
|
|
55003
55277
|
optional: false
|
|
55004
55278
|
}],
|
|
55279
|
+
"numericSensor.getStatus": [{
|
|
55280
|
+
name: "deviceId",
|
|
55281
|
+
form: "single",
|
|
55282
|
+
optional: false
|
|
55283
|
+
}],
|
|
55284
|
+
"osd.getStatus": [{
|
|
55285
|
+
name: "deviceId",
|
|
55286
|
+
form: "single",
|
|
55287
|
+
optional: false
|
|
55288
|
+
}],
|
|
55005
55289
|
"osd.setOverlay": [{
|
|
55006
55290
|
name: "deviceId",
|
|
55007
55291
|
form: "single",
|
|
@@ -55061,6 +55345,11 @@ Object.freeze({
|
|
|
55061
55345
|
form: "single",
|
|
55062
55346
|
optional: false
|
|
55063
55347
|
}],
|
|
55348
|
+
"petFeeder.getStatus": [{
|
|
55349
|
+
name: "deviceId",
|
|
55350
|
+
form: "single",
|
|
55351
|
+
optional: false
|
|
55352
|
+
}],
|
|
55064
55353
|
"petFeeder.markFoodReplenished": [{
|
|
55065
55354
|
name: "deviceId",
|
|
55066
55355
|
form: "single",
|
|
@@ -55096,6 +55385,11 @@ Object.freeze({
|
|
|
55096
55385
|
form: "single",
|
|
55097
55386
|
optional: false
|
|
55098
55387
|
}],
|
|
55388
|
+
"pipelineAnalytics.applyDeviceSettingsPatch": [{
|
|
55389
|
+
name: "deviceId",
|
|
55390
|
+
form: "single",
|
|
55391
|
+
optional: false
|
|
55392
|
+
}],
|
|
55099
55393
|
"pipelineAnalytics.clearTrackRelation": [{
|
|
55100
55394
|
name: "deviceId",
|
|
55101
55395
|
form: "single",
|
|
@@ -55136,6 +55430,16 @@ Object.freeze({
|
|
|
55136
55430
|
form: "single",
|
|
55137
55431
|
optional: false
|
|
55138
55432
|
}],
|
|
55433
|
+
"pipelineAnalytics.getDeviceLiveContribution": [{
|
|
55434
|
+
name: "deviceId",
|
|
55435
|
+
form: "single",
|
|
55436
|
+
optional: false
|
|
55437
|
+
}],
|
|
55438
|
+
"pipelineAnalytics.getDeviceSettingsContribution": [{
|
|
55439
|
+
name: "deviceId",
|
|
55440
|
+
form: "single",
|
|
55441
|
+
optional: false
|
|
55442
|
+
}],
|
|
55139
55443
|
"pipelineAnalytics.getEventDensity": [{
|
|
55140
55444
|
name: "deviceId",
|
|
55141
55445
|
form: "single",
|
|
@@ -55351,6 +55655,11 @@ Object.freeze({
|
|
|
55351
55655
|
form: "single",
|
|
55352
55656
|
optional: true
|
|
55353
55657
|
}],
|
|
55658
|
+
"pipelineOrchestrator.applyDeviceSettingsPatch": [{
|
|
55659
|
+
name: "deviceId",
|
|
55660
|
+
form: "single",
|
|
55661
|
+
optional: false
|
|
55662
|
+
}],
|
|
55354
55663
|
"pipelineOrchestrator.assignAudio": [{
|
|
55355
55664
|
name: "deviceId",
|
|
55356
55665
|
form: "single",
|
|
@@ -55396,6 +55705,16 @@ Object.freeze({
|
|
|
55396
55705
|
form: "single",
|
|
55397
55706
|
optional: false
|
|
55398
55707
|
}],
|
|
55708
|
+
"pipelineOrchestrator.getDeviceLiveContribution": [{
|
|
55709
|
+
name: "deviceId",
|
|
55710
|
+
form: "single",
|
|
55711
|
+
optional: false
|
|
55712
|
+
}],
|
|
55713
|
+
"pipelineOrchestrator.getDeviceSettingsContribution": [{
|
|
55714
|
+
name: "deviceId",
|
|
55715
|
+
form: "single",
|
|
55716
|
+
optional: false
|
|
55717
|
+
}],
|
|
55399
55718
|
"pipelineOrchestrator.getPipelineAssignment": [{
|
|
55400
55719
|
name: "deviceId",
|
|
55401
55720
|
form: "single",
|
|
@@ -55516,11 +55835,31 @@ Object.freeze({
|
|
|
55516
55835
|
form: "single",
|
|
55517
55836
|
optional: true
|
|
55518
55837
|
}],
|
|
55838
|
+
"powerMeter.getStatus": [{
|
|
55839
|
+
name: "deviceId",
|
|
55840
|
+
form: "single",
|
|
55841
|
+
optional: false
|
|
55842
|
+
}],
|
|
55843
|
+
"presence.getStatus": [{
|
|
55844
|
+
name: "deviceId",
|
|
55845
|
+
form: "single",
|
|
55846
|
+
optional: false
|
|
55847
|
+
}],
|
|
55848
|
+
"pressureSensor.getStatus": [{
|
|
55849
|
+
name: "deviceId",
|
|
55850
|
+
form: "single",
|
|
55851
|
+
optional: false
|
|
55852
|
+
}],
|
|
55519
55853
|
"privacyMask.getOptions": [{
|
|
55520
55854
|
name: "deviceId",
|
|
55521
55855
|
form: "single",
|
|
55522
55856
|
optional: false
|
|
55523
55857
|
}],
|
|
55858
|
+
"privacyMask.getStatus": [{
|
|
55859
|
+
name: "deviceId",
|
|
55860
|
+
form: "single",
|
|
55861
|
+
optional: false
|
|
55862
|
+
}],
|
|
55524
55863
|
"privacyMask.setAudioEnabled": [{
|
|
55525
55864
|
name: "deviceId",
|
|
55526
55865
|
form: "single",
|
|
@@ -55571,6 +55910,11 @@ Object.freeze({
|
|
|
55571
55910
|
form: "single",
|
|
55572
55911
|
optional: false
|
|
55573
55912
|
}],
|
|
55913
|
+
"ptz.getStatus": [{
|
|
55914
|
+
name: "deviceId",
|
|
55915
|
+
form: "single",
|
|
55916
|
+
optional: false
|
|
55917
|
+
}],
|
|
55574
55918
|
"ptz.goHome": [{
|
|
55575
55919
|
name: "deviceId",
|
|
55576
55920
|
form: "single",
|
|
@@ -55661,6 +56005,11 @@ Object.freeze({
|
|
|
55661
56005
|
form: "single",
|
|
55662
56006
|
optional: false
|
|
55663
56007
|
}],
|
|
56008
|
+
"recordingArchive.applyDeviceSettingsPatch": [{
|
|
56009
|
+
name: "deviceId",
|
|
56010
|
+
form: "single",
|
|
56011
|
+
optional: false
|
|
56012
|
+
}],
|
|
55664
56013
|
"recordingArchive.deleteFootprint": [{
|
|
55665
56014
|
name: "deviceId",
|
|
55666
56015
|
form: "single",
|
|
@@ -55681,6 +56030,21 @@ Object.freeze({
|
|
|
55681
56030
|
form: "single",
|
|
55682
56031
|
optional: false
|
|
55683
56032
|
}],
|
|
56033
|
+
"recordingArchive.getDeviceLiveContribution": [{
|
|
56034
|
+
name: "deviceId",
|
|
56035
|
+
form: "single",
|
|
56036
|
+
optional: false
|
|
56037
|
+
}],
|
|
56038
|
+
"recordingArchive.getDeviceSettingsContribution": [{
|
|
56039
|
+
name: "deviceId",
|
|
56040
|
+
form: "single",
|
|
56041
|
+
optional: false
|
|
56042
|
+
}],
|
|
56043
|
+
"recordingArchive.getStatus": [{
|
|
56044
|
+
name: "deviceId",
|
|
56045
|
+
form: "single",
|
|
56046
|
+
optional: false
|
|
56047
|
+
}],
|
|
55684
56048
|
"recordingArchive.listOpsLog": [{
|
|
55685
56049
|
name: "deviceId",
|
|
55686
56050
|
form: "single",
|
|
@@ -55766,6 +56130,11 @@ Object.freeze({
|
|
|
55766
56130
|
form: "single",
|
|
55767
56131
|
optional: false
|
|
55768
56132
|
}],
|
|
56133
|
+
"recordingOnboard.getStatus": [{
|
|
56134
|
+
name: "deviceId",
|
|
56135
|
+
form: "single",
|
|
56136
|
+
optional: false
|
|
56137
|
+
}],
|
|
55769
56138
|
"recordingOnboard.setSettings": [{
|
|
55770
56139
|
name: "deviceId",
|
|
55771
56140
|
form: "single",
|
|
@@ -55796,6 +56165,11 @@ Object.freeze({
|
|
|
55796
56165
|
form: "single",
|
|
55797
56166
|
optional: false
|
|
55798
56167
|
}],
|
|
56168
|
+
"sceneMonitor.getStatus": [{
|
|
56169
|
+
name: "deviceId",
|
|
56170
|
+
form: "single",
|
|
56171
|
+
optional: false
|
|
56172
|
+
}],
|
|
55799
56173
|
"sceneMonitor.listScenes": [{
|
|
55800
56174
|
name: "deviceId",
|
|
55801
56175
|
form: "single",
|
|
@@ -55821,6 +56195,11 @@ Object.freeze({
|
|
|
55821
56195
|
form: "single",
|
|
55822
56196
|
optional: false
|
|
55823
56197
|
}],
|
|
56198
|
+
"scriptRunner.getStatus": [{
|
|
56199
|
+
name: "deviceId",
|
|
56200
|
+
form: "single",
|
|
56201
|
+
optional: false
|
|
56202
|
+
}],
|
|
55824
56203
|
"scriptRunner.run": [{
|
|
55825
56204
|
name: "deviceId",
|
|
55826
56205
|
form: "single",
|
|
@@ -55831,11 +56210,31 @@ Object.freeze({
|
|
|
55831
56210
|
form: "single",
|
|
55832
56211
|
optional: false
|
|
55833
56212
|
}],
|
|
56213
|
+
"smoke.getStatus": [{
|
|
56214
|
+
name: "deviceId",
|
|
56215
|
+
form: "single",
|
|
56216
|
+
optional: false
|
|
56217
|
+
}],
|
|
56218
|
+
"snapshot.applyDeviceSettingsPatch": [{
|
|
56219
|
+
name: "deviceId",
|
|
56220
|
+
form: "single",
|
|
56221
|
+
optional: false
|
|
56222
|
+
}],
|
|
55834
56223
|
"snapshot.getDebugState": [{
|
|
55835
56224
|
name: "deviceId",
|
|
55836
56225
|
form: "single",
|
|
55837
56226
|
optional: false
|
|
55838
56227
|
}],
|
|
56228
|
+
"snapshot.getDeviceLiveContribution": [{
|
|
56229
|
+
name: "deviceId",
|
|
56230
|
+
form: "single",
|
|
56231
|
+
optional: false
|
|
56232
|
+
}],
|
|
56233
|
+
"snapshot.getDeviceSettingsContribution": [{
|
|
56234
|
+
name: "deviceId",
|
|
56235
|
+
form: "single",
|
|
56236
|
+
optional: false
|
|
56237
|
+
}],
|
|
55839
56238
|
"snapshot.getSnapshot": [{
|
|
55840
56239
|
name: "deviceId",
|
|
55841
56240
|
form: "single",
|
|
@@ -55852,6 +56251,11 @@ Object.freeze({
|
|
|
55852
56251
|
form: "array",
|
|
55853
56252
|
optional: false
|
|
55854
56253
|
}],
|
|
56254
|
+
"snapshot.getStatus": [{
|
|
56255
|
+
name: "deviceId",
|
|
56256
|
+
form: "single",
|
|
56257
|
+
optional: false
|
|
56258
|
+
}],
|
|
55855
56259
|
"snapshot.invalidateCache": [{
|
|
55856
56260
|
name: "deviceId",
|
|
55857
56261
|
form: "single",
|
|
@@ -55862,6 +56266,11 @@ Object.freeze({
|
|
|
55862
56266
|
form: "single",
|
|
55863
56267
|
optional: false
|
|
55864
56268
|
}],
|
|
56269
|
+
"streamBroker.applyDeviceSettingsPatch": [{
|
|
56270
|
+
name: "deviceId",
|
|
56271
|
+
form: "single",
|
|
56272
|
+
optional: false
|
|
56273
|
+
}],
|
|
55865
56274
|
"streamBroker.assignProfile": [{
|
|
55866
56275
|
name: "deviceId",
|
|
55867
56276
|
form: "single",
|
|
@@ -55877,6 +56286,16 @@ Object.freeze({
|
|
|
55877
56286
|
form: "single",
|
|
55878
56287
|
optional: false
|
|
55879
56288
|
}],
|
|
56289
|
+
"streamBroker.getDeviceLiveContribution": [{
|
|
56290
|
+
name: "deviceId",
|
|
56291
|
+
form: "single",
|
|
56292
|
+
optional: false
|
|
56293
|
+
}],
|
|
56294
|
+
"streamBroker.getDeviceSettingsContribution": [{
|
|
56295
|
+
name: "deviceId",
|
|
56296
|
+
form: "single",
|
|
56297
|
+
optional: false
|
|
56298
|
+
}],
|
|
55880
56299
|
"streamBroker.getStreamWithCodec": [{
|
|
55881
56300
|
name: "deviceId",
|
|
55882
56301
|
form: "single",
|
|
@@ -55937,16 +56356,46 @@ Object.freeze({
|
|
|
55937
56356
|
form: "single",
|
|
55938
56357
|
optional: false
|
|
55939
56358
|
}],
|
|
56359
|
+
"streamParams.getStatus": [{
|
|
56360
|
+
name: "deviceId",
|
|
56361
|
+
form: "single",
|
|
56362
|
+
optional: false
|
|
56363
|
+
}],
|
|
55940
56364
|
"streamParams.setProfile": [{
|
|
55941
56365
|
name: "deviceId",
|
|
55942
56366
|
form: "single",
|
|
55943
56367
|
optional: false
|
|
55944
56368
|
}],
|
|
56369
|
+
"switch.getStatus": [{
|
|
56370
|
+
name: "deviceId",
|
|
56371
|
+
form: "single",
|
|
56372
|
+
optional: false
|
|
56373
|
+
}],
|
|
55945
56374
|
"switch.setState": [{
|
|
55946
56375
|
name: "deviceId",
|
|
55947
56376
|
form: "single",
|
|
55948
56377
|
optional: false
|
|
55949
56378
|
}],
|
|
56379
|
+
"tamper.getStatus": [{
|
|
56380
|
+
name: "deviceId",
|
|
56381
|
+
form: "single",
|
|
56382
|
+
optional: false
|
|
56383
|
+
}],
|
|
56384
|
+
"temperatureSensor.getStatus": [{
|
|
56385
|
+
name: "deviceId",
|
|
56386
|
+
form: "single",
|
|
56387
|
+
optional: false
|
|
56388
|
+
}],
|
|
56389
|
+
"update.getStatus": [{
|
|
56390
|
+
name: "deviceId",
|
|
56391
|
+
form: "single",
|
|
56392
|
+
optional: false
|
|
56393
|
+
}],
|
|
56394
|
+
"vacuumControl.getStatus": [{
|
|
56395
|
+
name: "deviceId",
|
|
56396
|
+
form: "single",
|
|
56397
|
+
optional: false
|
|
56398
|
+
}],
|
|
55950
56399
|
"vacuumControl.locate": [{
|
|
55951
56400
|
name: "deviceId",
|
|
55952
56401
|
form: "single",
|
|
@@ -55982,6 +56431,11 @@ Object.freeze({
|
|
|
55982
56431
|
form: "single",
|
|
55983
56432
|
optional: false
|
|
55984
56433
|
}],
|
|
56434
|
+
"valve.getStatus": [{
|
|
56435
|
+
name: "deviceId",
|
|
56436
|
+
form: "single",
|
|
56437
|
+
optional: false
|
|
56438
|
+
}],
|
|
55985
56439
|
"valve.open": [{
|
|
55986
56440
|
name: "deviceId",
|
|
55987
56441
|
form: "single",
|
|
@@ -55997,6 +56451,11 @@ Object.freeze({
|
|
|
55997
56451
|
form: "single",
|
|
55998
56452
|
optional: false
|
|
55999
56453
|
}],
|
|
56454
|
+
"vibration.getStatus": [{
|
|
56455
|
+
name: "deviceId",
|
|
56456
|
+
form: "single",
|
|
56457
|
+
optional: false
|
|
56458
|
+
}],
|
|
56000
56459
|
"videoclips.dialClipStream": [{
|
|
56001
56460
|
name: "deviceId",
|
|
56002
56461
|
form: "single",
|
|
@@ -56032,6 +56491,11 @@ Object.freeze({
|
|
|
56032
56491
|
form: "single",
|
|
56033
56492
|
optional: false
|
|
56034
56493
|
}],
|
|
56494
|
+
"waterHeater.getStatus": [{
|
|
56495
|
+
name: "deviceId",
|
|
56496
|
+
form: "single",
|
|
56497
|
+
optional: false
|
|
56498
|
+
}],
|
|
56035
56499
|
"waterHeater.setAway": [{
|
|
56036
56500
|
name: "deviceId",
|
|
56037
56501
|
form: "single",
|
|
@@ -56047,6 +56511,11 @@ Object.freeze({
|
|
|
56047
56511
|
form: "single",
|
|
56048
56512
|
optional: false
|
|
56049
56513
|
}],
|
|
56514
|
+
"weather.getStatus": [{
|
|
56515
|
+
name: "deviceId",
|
|
56516
|
+
form: "single",
|
|
56517
|
+
optional: false
|
|
56518
|
+
}],
|
|
56050
56519
|
"webrtcSession.addIceCandidate": [{
|
|
56051
56520
|
name: "deviceId",
|
|
56052
56521
|
form: "single",
|
|
@@ -56864,7 +57333,7 @@ var PreviewTextField = string().max(200);
|
|
|
56864
57333
|
* Whether the notification's preview is a STILL or a short animation.
|
|
56865
57334
|
*
|
|
56866
57335
|
* The operator's ask, verbatim: *"inviato come gif o video (come per le altre
|
|
56867
|
-
* rule)"* — the other rules already offer an animated preview, and a ten-hour
|
|
57336
|
+
* rule)"* [sent as a gif or video (as for the other rules)] — the other rules already offer an animated preview, and a ten-hour
|
|
56868
57337
|
* night reads better as three seconds of motion than as one frame of it. Both
|
|
56869
57338
|
* modes get the SAME treatment (blurred frame, large centred title); `'gif'`
|
|
56870
57339
|
* simply applies it to a dozen frames sampled across the render and assembles
|