@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.js
CHANGED
|
@@ -7523,7 +7523,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
7523
7523
|
return DeviceRole;
|
|
7524
7524
|
}({});
|
|
7525
7525
|
//#endregion
|
|
7526
|
-
//#region ../types/dist/composition-
|
|
7526
|
+
//#region ../types/dist/composition-Bzr7GwgP.mjs
|
|
7527
7527
|
/**
|
|
7528
7528
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
7529
7529
|
*
|
|
@@ -7577,20 +7577,20 @@ function portable(target) {
|
|
|
7577
7577
|
}
|
|
7578
7578
|
portable("linux64"), portable("linuxarm64"), portable("macarm64"), portable("mac64");
|
|
7579
7579
|
/**
|
|
7580
|
-
*
|
|
7581
|
-
*
|
|
7580
|
+
* THE table "which boolean of this device type counts as HIGH", and the
|
|
7581
|
+
* pure evaluator of its EDGE.
|
|
7582
7582
|
*
|
|
7583
|
-
*
|
|
7584
|
-
*
|
|
7585
|
-
*
|
|
7586
|
-
*
|
|
7587
|
-
*
|
|
7588
|
-
*
|
|
7583
|
+
* ONE table for everyone who asks "is this device HIGH?": the
|
|
7584
|
+
* recorder's `RecordingTriggers.sensorDeviceIds` trigger, the post-analysis
|
|
7585
|
+
* sensor markers, the orchestrator's camera-sensors bridge and
|
|
7586
|
+
* the sources of a composite doorbell (`doorbellFeatureSources`, D671).
|
|
7587
|
+
* A second copy would diverge at the first cap added, and the symptom — "the
|
|
7588
|
+
* sensor rings the doorbell but does not record" — is exactly D62.
|
|
7589
7589
|
*
|
|
7590
|
-
* ⚠
|
|
7591
|
-
*
|
|
7592
|
-
*
|
|
7593
|
-
*
|
|
7590
|
+
* ⚠ NOT `DEVICE_STATE_READERS` (`catalogs/device-state-vocabulary.ts`), and the
|
|
7591
|
+
* two must not be unified: that one answers "what is the state WORD for a
|
|
7592
|
+
* rule" (and includes `presence`, `cover`, `alarm-panel`), this one "which
|
|
7593
|
+
* boolean's EDGE counts". Deliberately different vocabularies.
|
|
7594
7594
|
*/
|
|
7595
7595
|
/**
|
|
7596
7596
|
* Known binary / switch source caps → the boolean slice field whose
|
|
@@ -7611,6 +7611,8 @@ var SOURCE_CAP_ACTIVE_FIELD = {
|
|
|
7611
7611
|
vibration: "detected",
|
|
7612
7612
|
tamper: "tampered"
|
|
7613
7613
|
};
|
|
7614
|
+
/** Cap names whose presence in a device's bindings qualify it as a source. */
|
|
7615
|
+
var SOURCE_CAPS = Object.keys(SOURCE_CAP_ACTIVE_FIELD);
|
|
7614
7616
|
/**
|
|
7615
7617
|
* Error types for the safe expression engine. Two distinct classes so callers
|
|
7616
7618
|
* can tell a compile-time (grammar) failure from a runtime (evaluation)
|
|
@@ -9197,22 +9199,22 @@ var CLASS_MAP_MACRO_TARGETS = [
|
|
|
9197
9199
|
"package"
|
|
9198
9200
|
];
|
|
9199
9201
|
/**
|
|
9200
|
-
*
|
|
9201
|
-
*
|
|
9202
|
+
* The FIRST-LEVEL macro classes: those an object detector emits and that
|
|
9203
|
+
* an operator can select.
|
|
9202
9204
|
*
|
|
9203
|
-
*
|
|
9205
|
+
* They are the three offered by the `object-detection` step
|
|
9204
9206
|
* (`addon-pipeline/src/detection-pipeline/registry/step-definitions.ts`,
|
|
9205
|
-
* `enabledMacroClasses`). `package`
|
|
9206
|
-
* `MACRO_LABELS` —
|
|
9207
|
-
* `package-detection`,
|
|
9208
|
-
*
|
|
9207
|
+
* `enabledMacroClasses`). `package` is in {@link CLASS_MAP_MACRO_TARGETS} and in
|
|
9208
|
+
* `MACRO_LABELS` — it is a true macro — but NOT here: it belongs to the step
|
|
9209
|
+
* `package-detection`, whose enablement is driven by zones, and offering the
|
|
9210
|
+
* same word twice has already made an operator turn on the COCO proxy
|
|
9209
9211
|
* (suitcase/backpack/handbag) lasciando spento il detector dedicato.
|
|
9210
9212
|
*
|
|
9211
|
-
*
|
|
9212
|
-
*
|
|
9213
|
-
* (`types/detection.ts`);
|
|
9214
|
-
* (`RecordingTriggers.objectClasses`)
|
|
9215
|
-
*
|
|
9213
|
+
* ONE list. Before today the same three were hand-written in the step's offer
|
|
9214
|
+
* and a second time as the union `FirstLevelMacro`
|
|
9215
|
+
* (`types/detection.ts`); a third copy for the recording trigger
|
|
9216
|
+
* (`RecordingTriggers.objectClasses`) would have made the later divergence
|
|
9217
|
+
* invisible.
|
|
9216
9218
|
*/
|
|
9217
9219
|
var FIRST_LEVEL_MACRO_CLASSES = [
|
|
9218
9220
|
"person",
|
|
@@ -9277,17 +9279,17 @@ var RecordingStorageModeSchema = _enum([
|
|
|
9277
9279
|
"on-device-decision"
|
|
9278
9280
|
]);
|
|
9279
9281
|
/**
|
|
9280
|
-
*
|
|
9281
|
-
*
|
|
9282
|
+
* The macro classes that can open a recording window — the same
|
|
9283
|
+
* three offered by the `object-detection` step, from ONE list
|
|
9282
9284
|
* ({@link FIRST_LEVEL_MACRO_CLASSES}).
|
|
9283
9285
|
*/
|
|
9284
9286
|
var RecordingObjectTriggerClassSchema = _enum(FIRST_LEVEL_MACRO_CLASSES);
|
|
9285
9287
|
/**
|
|
9286
|
-
* True
|
|
9288
|
+
* True when `values` does not repeat an element.
|
|
9287
9289
|
*
|
|
9288
|
-
*
|
|
9289
|
-
*
|
|
9290
|
-
*
|
|
9290
|
+
* A duplicate is not harmless: every entry of `objectClasses` / `sensorDeviceIds`
|
|
9291
|
+
* becomes a SOURCE in `bandTriggerSources`, and the same source twice
|
|
9292
|
+
* would count its windows twice in `segmentMissedByMs`.
|
|
9291
9293
|
*/
|
|
9292
9294
|
var noDuplicates = (values) => new Set(values).size === values.length;
|
|
9293
9295
|
/** Which detectors trigger an `events`-mode band. */
|
|
@@ -9295,34 +9297,34 @@ var RecordingTriggersSchema = object({
|
|
|
9295
9297
|
motion: boolean().optional(),
|
|
9296
9298
|
audioThresholdDbfs: number().optional(),
|
|
9297
9299
|
/**
|
|
9298
|
-
*
|
|
9299
|
-
*
|
|
9300
|
-
*
|
|
9301
|
-
*
|
|
9300
|
+
* The macro classes whose detection opens a window. ABSENT = the source
|
|
9301
|
+
* is not listened to; an EMPTY array is rejected, because "events band, object
|
|
9302
|
+
* trigger on, no class" is the same shape "enabled and records
|
|
9303
|
+
* nothing, forever" that `eventsBandCanEverDemand` is written against.
|
|
9302
9304
|
*
|
|
9303
|
-
*
|
|
9304
|
-
*
|
|
9305
|
-
* `minConfidence<Macro>`
|
|
9306
|
-
* (`source: 'onboard'`)
|
|
9307
|
-
*
|
|
9305
|
+
* The signal read is ALREADY FILTERED: only `source: 'pipeline'` detections, i.e.
|
|
9306
|
+
* those that went through `enabledMacroClasses`, the
|
|
9307
|
+
* `minConfidence<Macro>` and the full-frame guard. The camera's onboard AI
|
|
9308
|
+
* (`source: 'onboard'`) goes through none of those gates and does NOT open
|
|
9309
|
+
* windows — see `recorder/object-trigger.ts`.
|
|
9308
9310
|
*/
|
|
9309
9311
|
objectClasses: array(RecordingObjectTriggerClassSchema).min(1).refine(noDuplicates, { message: "objectClasses must not repeat a class" }).optional(),
|
|
9310
9312
|
/**
|
|
9311
|
-
*
|
|
9312
|
-
*
|
|
9313
|
+
* The LINKED devices whose RISING EDGE opens a window. Absent = the source
|
|
9314
|
+
* is not listened to; an empty array is rejected for the same reason as
|
|
9313
9315
|
* `objectClasses`.
|
|
9314
9316
|
*
|
|
9315
|
-
*
|
|
9316
|
-
*
|
|
9317
|
-
*
|
|
9318
|
-
*
|
|
9319
|
-
* device (D12) —
|
|
9317
|
+
* These are SOURCE device ids, not cameras: the band names them, so the
|
|
9318
|
+
* hot path (`DeviceStateChanged`, at bus rate across the whole fleet)
|
|
9319
|
+
* does no RPC. The OFFER from which the operator picks them is another question, and
|
|
9320
|
+
* is resolved with `deviceManager.getLinkedDevices` + `getBindingsBatch` per
|
|
9321
|
+
* device (D12) — never a global list of caps.
|
|
9320
9322
|
*
|
|
9321
|
-
*
|
|
9322
|
-
* `SOURCE_CAP_ACTIVE_FIELD` (`catalogs/sensor-active-state.ts`)
|
|
9323
|
-
*
|
|
9324
|
-
*
|
|
9325
|
-
*
|
|
9323
|
+
* What "high" means depends on the device TYPE and is not decided here:
|
|
9324
|
+
* `SOURCE_CAP_ACTIVE_FIELD` (`catalogs/sensor-active-state.ts`) is THE table,
|
|
9325
|
+
* the same one as the composite doorbell (D671). And it is the EDGE, not
|
|
9326
|
+
* the level: a contact found already open at runner restart does not
|
|
9327
|
+
* record.
|
|
9326
9328
|
*/
|
|
9327
9329
|
sensorDeviceIds: array(number().int().positive()).min(1).max(16).refine(noDuplicates, { message: "sensorDeviceIds must not repeat a device" }).optional()
|
|
9328
9330
|
});
|
|
@@ -10399,7 +10401,7 @@ var DecoderSessionConfigSchema = object({
|
|
|
10399
10401
|
* - **VALUE** — at which level, for which scope, until when. That stays ONE
|
|
10400
10402
|
* thing: the logging settings document on the `system` cap. Two authorities
|
|
10401
10403
|
* over the values is the exact defect
|
|
10402
|
-
* `docs/design/plans/2026-08-26-
|
|
10404
|
+
* `docs/design/plans/2026-08-26-per-component-logging.md` was written to
|
|
10403
10405
|
* remove; re-introducing it from the cure side would be grotesque.
|
|
10404
10406
|
*
|
|
10405
10407
|
* Nothing in this file reads a clock, an env var or a store. The registry is
|
|
@@ -12480,7 +12482,7 @@ var BrokerStatusEnum = _enum([
|
|
|
12480
12482
|
"unreachable",
|
|
12481
12483
|
"error"
|
|
12482
12484
|
]);
|
|
12483
|
-
var BrokerInfoSchema
|
|
12485
|
+
var BrokerInfoSchema = object({
|
|
12484
12486
|
/** Stable broker id. Persisted; survives addon restarts. */
|
|
12485
12487
|
id: string(),
|
|
12486
12488
|
/** Addon id of the provider that OWNS this broker.
|
|
@@ -12623,8 +12625,8 @@ var brokerCapability = {
|
|
|
12623
12625
|
kind: "poll"
|
|
12624
12626
|
},
|
|
12625
12627
|
methods: {
|
|
12626
|
-
list: method(ListInputSchema, array(BrokerInfoSchema
|
|
12627
|
-
get: method(GetInputSchema, BrokerInfoSchema
|
|
12628
|
+
list: method(ListInputSchema, array(BrokerInfoSchema)),
|
|
12629
|
+
get: method(GetInputSchema, BrokerInfoSchema.nullable()),
|
|
12628
12630
|
/** Enumerate which addon provides which broker kind(s) for the
|
|
12629
12631
|
* unified create picker. The auto-mount fans this array across
|
|
12630
12632
|
* every registered `broker` provider (array-output method), so the
|
|
@@ -15030,7 +15032,7 @@ var dataStoreProviderCapability = {
|
|
|
15030
15032
|
*
|
|
15031
15033
|
* ⚠ An earlier version of this comment blamed Zod stripping, and that
|
|
15032
15034
|
* was wrong — corrected 2026-08-26 after the hop map
|
|
15033
|
-
* (`docs/design/2026-08-26-
|
|
15035
|
+
* (`docs/design/2026-08-26-topic-hop-map.md`) traced the path.
|
|
15034
15036
|
* There is **no Zod parse at all** between the door and the engine: the
|
|
15035
15037
|
* dispatcher forwards the payload verbatim and UDS carries it whole. A
|
|
15036
15038
|
* field declared here reaches `SqliteSettingsBackend` either way.
|
|
@@ -15992,7 +15994,17 @@ var SiteZoneSchema = object({
|
|
|
15992
15994
|
var ProviderStatusSchema = object({
|
|
15993
15995
|
connected: boolean(),
|
|
15994
15996
|
deviceCount: number(),
|
|
15995
|
-
error: string().optional()
|
|
15997
|
+
error: string().optional(),
|
|
15998
|
+
/**
|
|
15999
|
+
* `'orchestrator'`: this provider writes NO camera's `motion` runtime slice
|
|
16000
|
+
* — the orchestrator is its only writer (D696). Set by `BaseDeviceProvider`,
|
|
16001
|
+
* which every provider bundles, so only a provider BUILT from D696-amended
|
|
16002
|
+
* code says it. ABSENT means an older provider that may still write it (raw
|
|
16003
|
+
* VMD writes, a boot seed), and the orchestrator's provider gate keeps that
|
|
16004
|
+
* provider's cameras unwritten (`camera-sensors/motion-slice-provider-gate.ts`)
|
|
16005
|
+
* — the provider twin of the runner's `getLocalLoad().motionSliceWriter`.
|
|
16006
|
+
*/
|
|
16007
|
+
motionSliceWriter: literal("orchestrator").optional()
|
|
15996
16008
|
});
|
|
15997
16009
|
object({
|
|
15998
16010
|
externalId: string(),
|
|
@@ -17183,7 +17195,7 @@ var deviceManagerCapability = {
|
|
|
17183
17195
|
* sources could be switched off without switching off the rest (D556, then
|
|
17184
17196
|
* D555's re-key by source). The operator removed the whole idea the same
|
|
17185
17197
|
* day: *"tutti i providers funzionano sempre, non serve
|
|
17186
|
-
* disattivarli/attivarli … loro vivono lì"* (D557 amended, third). A
|
|
17198
|
+
* 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
|
|
17187
17199
|
* collection cap's providers are a DERIVED set — every addon that provides
|
|
17188
17200
|
* the cap for this device type, computed on every read and persisted
|
|
17189
17201
|
* nowhere — so there is nothing here to activate, and a verb that accepted
|
|
@@ -18021,7 +18033,7 @@ var embeddingEncoderCapability = {
|
|
|
18021
18033
|
* per-device window, `KeyFrameCaptureLog`, `bumpCropMetric`. Every one of them
|
|
18022
18034
|
* ends in a log line, and a log line is the thing the operator asked to stop
|
|
18023
18035
|
* needing: *"possiamo armare questi errori intanto? Così al prossimo giro
|
|
18024
|
-
* ricontrolliamo tutti questi punti"
|
|
18036
|
+
* 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
|
|
18025
18037
|
* hand-correlating timestamps, which is how a 22% thumbnail gap and a 3-hour
|
|
18026
18038
|
* media blackout were both diagnosed. The counters stay; this is where they can
|
|
18027
18039
|
* be READ.
|
|
@@ -19669,7 +19681,7 @@ var BrokerStatusSchema$1 = _enum([
|
|
|
19669
19681
|
"unreachable",
|
|
19670
19682
|
"tls-error"
|
|
19671
19683
|
]);
|
|
19672
|
-
var BrokerInfoSchema = object({
|
|
19684
|
+
var BrokerInfoSchema$1 = object({
|
|
19673
19685
|
id: string(),
|
|
19674
19686
|
name: string(),
|
|
19675
19687
|
url: string(),
|
|
@@ -19742,7 +19754,7 @@ var mqttBrokerCapability = {
|
|
|
19742
19754
|
kind: "poll"
|
|
19743
19755
|
},
|
|
19744
19756
|
methods: {
|
|
19745
|
-
listBrokers: method(_void(), array(BrokerInfoSchema)),
|
|
19757
|
+
listBrokers: method(_void(), array(BrokerInfoSchema$1)),
|
|
19746
19758
|
getBrokerConfig: method(IdInputSchema, BrokerConnectionDetailsSchema, { auth: "admin" }),
|
|
19747
19759
|
addBroker: method(AddBrokerInputSchema, AddBrokerResultSchema, {
|
|
19748
19760
|
kind: "mutation",
|
|
@@ -21996,78 +22008,16 @@ var NcRuleInputSchema = object({
|
|
|
21996
22008
|
*/
|
|
21997
22009
|
confirm: NcConfirmSchema.optional(),
|
|
21998
22010
|
/**
|
|
21999
|
-
*
|
|
22000
|
-
*
|
|
22001
|
-
*
|
|
22002
|
-
*
|
|
22003
|
-
*
|
|
22004
|
-
*
|
|
22005
|
-
*
|
|
22006
|
-
*
|
|
22007
|
-
*
|
|
22008
|
-
* Only two honest answers exist, and this flag picks between them. It has
|
|
22009
|
-
* effect ONLY on a rule that declares a recognition scope
|
|
22010
|
-
* ({@link NcConditions.identities} or {@link NcConditions.plates}) — on any
|
|
22011
|
-
* other rule there is nothing to wait for and the flag is inert.
|
|
22012
|
-
*
|
|
22013
|
-
* | value | what happens |
|
|
22014
|
-
* | --- | --- |
|
|
22015
|
-
* | `true` | the rule stops firing on the object event and fires at TRACK CLOSE instead, once, with the name — later, and complete |
|
|
22016
|
-
* | 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) |
|
|
22017
|
-
*
|
|
22018
|
-
* `.optional()` and deliberately NOT `.default()`: a Zod default does not run
|
|
22019
|
-
* on the addon cap path, and absent has to keep meaning exactly what every
|
|
22020
|
-
* rule authored before this field meant.
|
|
22021
|
-
*
|
|
22022
|
-
* The cost of `true` is stated here because the editor states it too: a rule
|
|
22023
|
-
* that waits also inherits track-close SEMANTICS — its `zones` condition
|
|
22024
|
-
* tests every zone the track visited and a `crossing` condition can no longer
|
|
22025
|
-
* be satisfied, because a closed track carries no crossing.
|
|
22026
|
-
*/
|
|
22027
|
-
waitForEnhancement: boolean().optional(),
|
|
22028
|
-
/**
|
|
22029
|
-
* GROUP a burst of subjects into ONE notification that grows.
|
|
22030
|
-
*
|
|
22031
|
-
* Seconds of quiet after the last matching subject before the burst is
|
|
22032
|
-
* considered over. While it is open, the first subject enqueues immediately —
|
|
22033
|
-
* **exactly as today, with no added latency** — and every real growth (a new
|
|
22034
|
-
* subject, or a name confirmed on one already in it) REPLACES that
|
|
22035
|
-
* notification with an updated one naming everybody. The push carries the
|
|
22036
|
-
* group's own coalescing tag, so the phone replaces rather than stacks.
|
|
22037
|
-
*
|
|
22038
|
-
* `0` / absent = off, and off is today's behaviour byte for byte.
|
|
22039
|
-
*
|
|
22040
|
-
* ### Why an idle cutoff and not a window
|
|
22041
|
-
*
|
|
22042
|
-
* The measured seven-person arrival on device 590 spans 110 s with every
|
|
22043
|
-
* internal gap under 30 s. A 12 s fixed window cuts it into three groups; an
|
|
22044
|
-
* idle cutoff holds it as one and ends it when the arrival actually ends.
|
|
22045
|
-
* 30 s is a widely shipped value for the same decision.
|
|
22046
|
-
*
|
|
22047
|
-
* ### What it replaces
|
|
22048
|
-
*
|
|
22049
|
-
* The blind cooldown, which collapses a burst by DISCARDING it. Measured on
|
|
22050
|
-
* device 615 / *Persona su Uscio* over six days: 116 qualifying tracks → 74
|
|
22051
|
-
* notifications, **44 (37.9%) suppressed outright**, 23 of them overlapping a
|
|
22052
|
-
* track that did fire and 7 carrying a confirmed identity nobody heard about.
|
|
22053
|
-
* A group collapses the same volume by MERGING, so the cooldown becomes a
|
|
22054
|
-
* budget over GROUPS — which is what it always meant — and a growth is never
|
|
22055
|
-
* throttled by the window its own first member spent.
|
|
22056
|
-
*
|
|
22057
|
-
* ### Interaction with {@link waitForEnhancement}
|
|
22058
|
-
*
|
|
22059
|
-
* They compose, and the order matters. `waitForEnhancement` defers the rule to
|
|
22060
|
-
* TRACK CLOSE, so with both set the group is opened by the first member to
|
|
22061
|
-
* CLOSE — already carrying its name — and grows as later members close. That
|
|
22062
|
-
* is later, and complete. With grouping alone the group opens on the first
|
|
22063
|
-
* object event and picks up names as they are confirmed, through the growth
|
|
22064
|
-
* path. Neither combination fires twice for one subject.
|
|
22065
|
-
*
|
|
22066
|
-
* `.optional()` and deliberately NOT `.default()`: a Zod default does not run
|
|
22067
|
-
* on the addon cap path, so absent must keep meaning what it meant before this
|
|
22068
|
-
* field existed.
|
|
22011
|
+
* IMMEDIATE GROUPED (D692): the first matching subject opens a window of this many
|
|
22012
|
+
* seconds; the rule sends ONE message when the window closes — early, once every
|
|
22013
|
+
* subject in it is final, never before {@link NC_GROUPING_MIN_SEC} — naming everybody
|
|
22014
|
+
* the rule matched, with one mosaic tile per subject.
|
|
22015
|
+
* Absent = plain immediate (one message per track, at the first match).
|
|
22016
|
+
* Only an `immediate` DETECTION rule may carry it (`ruleGroupingApplies`, enforced on
|
|
22017
|
+
* save by the hub's grouping guard). `.optional()`, never `.default()`: the addon cap
|
|
22018
|
+
* path does not run Zod defaults.
|
|
22069
22019
|
*/
|
|
22070
|
-
|
|
22020
|
+
groupingSec: number().int().min(5).max(60).optional()
|
|
22071
22021
|
});
|
|
22072
22022
|
/**
|
|
22073
22023
|
* Partial patch for `updateRule` — any subset of the input fields, plus the
|
|
@@ -22115,9 +22065,10 @@ var NcRuleClearableKeySchema = _enum([
|
|
|
22115
22065
|
"targetUsers",
|
|
22116
22066
|
"snoozeOptions",
|
|
22117
22067
|
"snoozeAllowGlobal",
|
|
22118
|
-
"waitForEnhancement",
|
|
22119
22068
|
"actions",
|
|
22120
22069
|
"confirm",
|
|
22070
|
+
"groupingSec",
|
|
22071
|
+
"waitForEnhancement",
|
|
22121
22072
|
"groupIdleSec"
|
|
22122
22073
|
]);
|
|
22123
22074
|
var NcRuleUpdateInputSchema = object({
|
|
@@ -22139,9 +22090,25 @@ var NcRuleSchema = NcRuleInputSchema.extend({
|
|
|
22139
22090
|
*/
|
|
22140
22091
|
disabledTargetIds: array(string()).default([])
|
|
22141
22092
|
});
|
|
22093
|
+
/**
|
|
22094
|
+
* The state-summary SECTIONS (D647 / D698): the D637 kind groups that report a
|
|
22095
|
+
* still-true state. `backups-exports` and `alarm` are not sections — a completed
|
|
22096
|
+
* job is not an open state, and the alarm stays instant.
|
|
22097
|
+
*/
|
|
22098
|
+
var NcStateSummarySectionIdSchema = _enum([
|
|
22099
|
+
"device-state",
|
|
22100
|
+
"streams",
|
|
22101
|
+
"battery",
|
|
22102
|
+
"consumables",
|
|
22103
|
+
"tanks",
|
|
22104
|
+
"detection-blind",
|
|
22105
|
+
"nodes",
|
|
22106
|
+
"addons",
|
|
22107
|
+
"updates"
|
|
22108
|
+
]);
|
|
22142
22109
|
/** One section of a previewed state summary. `unavailable` = its state could not be read. */
|
|
22143
22110
|
var NcStateSummaryPreviewSectionSchema = object({
|
|
22144
|
-
id:
|
|
22111
|
+
id: NcStateSummarySectionIdSchema,
|
|
22145
22112
|
status: _enum(["read", "unavailable"]),
|
|
22146
22113
|
items: number().int().nonnegative(),
|
|
22147
22114
|
reason: string().optional()
|
|
@@ -22151,7 +22118,7 @@ var NcStateSummaryPreviewSectionSchema = object({
|
|
|
22151
22118
|
* a `rule` split (no `section`), one section's on a `section` split.
|
|
22152
22119
|
*/
|
|
22153
22120
|
var NcStateSummaryPreviewRowSchema = object({
|
|
22154
|
-
section:
|
|
22121
|
+
section: NcStateSummarySectionIdSchema.optional(),
|
|
22155
22122
|
/** The section's name on a per-section row; every reported section's, joined, on a combined one. */
|
|
22156
22123
|
title: string(),
|
|
22157
22124
|
text: string(),
|
|
@@ -22669,7 +22636,7 @@ var NC_CONDITION_CATALOG = [
|
|
|
22669
22636
|
operator: "in",
|
|
22670
22637
|
appliesTo: ["immediate", "track-end"],
|
|
22671
22638
|
phase: "P1",
|
|
22672
|
-
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
|
|
22639
|
+
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)."
|
|
22673
22640
|
},
|
|
22674
22641
|
{
|
|
22675
22642
|
id: "plates",
|
|
@@ -24774,14 +24741,14 @@ var TrackSchema = object({
|
|
|
24774
24741
|
* `derive-returned-null tile=standin`,
|
|
24775
24742
|
* `native-tile tile=native no-key-frame-at-close`, …) written at close and
|
|
24776
24743
|
* CLEARED by the late-keyFrame upgrade when a native tile lands after all.
|
|
24777
|
-
* The operator-facing answer to "perché manca l'immagine?" on a track whose
|
|
24744
|
+
* The operator-facing answer to "perché manca l'immagine?" [why is the image missing?] on a track whose
|
|
24778
24745
|
* tile is a face/plate stand-in, a raster crop, or an icon.
|
|
24779
24746
|
*
|
|
24780
24747
|
* **`no-key-frame-at-close` (D400).** The line used to be written ONLY when
|
|
24781
24748
|
* the TILE ranked below native, so a track whose thumbnail landed natively
|
|
24782
24749
|
* while its key frame missed carried no reason at all — three of the four
|
|
24783
24750
|
* `MISSING_KEYFRAME` tracks in the 2026-09-07 operator audit were exactly
|
|
24784
|
-
* that shape, and their "niente ultimo" had no cause anywhere on the row.
|
|
24751
|
+
* that shape, and their "niente ultimo" [no last frame] had no cause anywhere on the row.
|
|
24785
24752
|
* The key frame is the head of a cascade (`keyFrame ⇒ keyFrameSmall ⇒ the
|
|
24786
24753
|
* lastFrame copy source`), so its absence is now on this line whatever the
|
|
24787
24754
|
* tile ended up being.
|
|
@@ -24868,7 +24835,7 @@ var MotionEventSchema = object({
|
|
|
24868
24835
|
/**
|
|
24869
24836
|
* Ms offsets from `timestamp` (the episode's own first rising edge, so the
|
|
24870
24837
|
* first entry is always `0`) of every genuine off→on transition the
|
|
24871
|
-
* episode saw — "ogni evento on si deve salvare" (D475). NOT one entry per
|
|
24838
|
+
* episode saw — "ogni evento on si deve salvare" [every ON event must be saved] (D475). NOT one entry per
|
|
24872
24839
|
* push: a firmware source that keepalives at ~1 Hz for the whole burst
|
|
24873
24840
|
* (Reolink, Hikvision) produces exactly one edge; a source that reports an
|
|
24874
24841
|
* explicit `false` mid-episode and then resumes before the quiet window
|
|
@@ -25392,6 +25359,7 @@ var KeyEventSchema = object({
|
|
|
25392
25359
|
bestEventId: string(),
|
|
25393
25360
|
/** Track lifetime in ms (lastSeen - firstSeen). */
|
|
25394
25361
|
windowMs: number().optional(),
|
|
25362
|
+
audioLabels: array(TrackAudioLabelSchema).readonly().optional(),
|
|
25395
25363
|
...TrackFlagFields,
|
|
25396
25364
|
...TrackRetrainFields
|
|
25397
25365
|
});
|
|
@@ -32076,7 +32044,7 @@ var ClipPlaybackSchema = object({
|
|
|
32076
32044
|
* **One authorised yes is one wake.** `next-natural` — take the clip the next
|
|
32077
32045
|
* time the camera is awake for its own reasons — is deliberately not a member:
|
|
32078
32046
|
* it was proposed, it is free on the battery, and the operator declined it on
|
|
32079
|
-
* 2026-09-20 (*"Quando un export viene richiesto si sveglia la camera."
|
|
32047
|
+
* 2026-09-20 (*"Quando un export viene richiesto si sveglia la camera."* [When an export is requested the camera wakes up],
|
|
32080
32048
|
* D558 "Considered and not taken").
|
|
32081
32049
|
*/
|
|
32082
32050
|
var ClipWakeSchema = _enum(["authorised"]);
|
|
@@ -32321,7 +32289,7 @@ var videoclipsCapability = {
|
|
|
32321
32289
|
* **It is a SECTION of the Recording tab, at the end of it — not a tab of
|
|
32322
32290
|
* its own.** It shipped as a `clips` top-tab and the operator rejected the
|
|
32323
32291
|
* placement: *"utilizzerei la stessa tab recordings, lì abbiamo già tutto il
|
|
32324
|
-
* necessario, una nuova sezione alla fine per le clips"
|
|
32292
|
+
* 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
|
|
32325
32293
|
* already holds the recorder's panel, the schedule bands and the unified
|
|
32326
32294
|
* retention policy; footage the camera itself holds is the same question,
|
|
32327
32295
|
* asked of a different store. `order: 100` puts it after all of them with
|
|
@@ -32382,7 +32350,7 @@ var videoclipsCapability = {
|
|
|
32382
32350
|
* It replaced `sources?: string[]`, a VIEW filter over source ids that
|
|
32383
32351
|
* assumed the answer was a fan-out over everything a camera has. The
|
|
32384
32352
|
* operator settled otherwise on 2026-09-20 — *"l'utilizzatore è uno
|
|
32385
|
-
* solo"* — so the list is asked of one provider at a time and there is
|
|
32353
|
+
* solo"* [there is only one user] — so the list is asked of one provider at a time and there is
|
|
32386
32354
|
* nothing to filter out of it.
|
|
32387
32355
|
*/
|
|
32388
32356
|
provider: string().min(1)
|
|
@@ -41523,7 +41491,7 @@ var ReadGopBytesResultSchema = object({
|
|
|
41523
41491
|
/**
|
|
41524
41492
|
* A time WINDOW of one finalized segment, cut by byte range — the multi-GOP
|
|
41525
41493
|
* twin of {@link ReadGopBytesResultSchema}'s single instant. Built for the
|
|
41526
|
-
* replay clip's `recording` source (`docs/design/plans/2026-08-26-replay-
|
|
41494
|
+
* replay clip's `recording` source (`docs/design/plans/2026-08-26-clip-replay-on-pipeline.md`):
|
|
41527
41495
|
* a replay needs several seconds of native pixels, not one frame.
|
|
41528
41496
|
*
|
|
41529
41497
|
* `ok.data` is standalone-demuxable, same as a GOP read. `ok.reachesRequestedEnd`
|
|
@@ -44131,7 +44099,7 @@ var systemCapability = {
|
|
|
44131
44099
|
*
|
|
44132
44100
|
* This is the surface the operator asked for on 2026-08-28 (*"possiamo
|
|
44133
44101
|
* armare questi errori intanto? Così al prossimo giro ricontrolliamo tutti
|
|
44134
|
-
* questi punti"*). Before it, four live failure modes could only be counted
|
|
44102
|
+
* 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
|
|
44135
44103
|
* by grepping Loki and hand-correlating timestamps, which is exactly how a
|
|
44136
44104
|
* 22% thumbnail gap and a 3-hour media blackout were diagnosed — twice.
|
|
44137
44105
|
*
|
|
@@ -45292,6 +45260,7 @@ var zoneRulesCapability = {
|
|
|
45292
45260
|
*/
|
|
45293
45261
|
durability: "restored"
|
|
45294
45262
|
};
|
|
45263
|
+
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
45295
45264
|
/**
|
|
45296
45265
|
* Most specific first. Extending this list is how a new device kind becomes
|
|
45297
45266
|
* gateable; nothing else needs to change.
|
|
@@ -54081,6 +54050,11 @@ Object.freeze({
|
|
|
54081
54050
|
}
|
|
54082
54051
|
});
|
|
54083
54052
|
Object.freeze({
|
|
54053
|
+
"accessories.getStatus": [{
|
|
54054
|
+
name: "deviceId",
|
|
54055
|
+
form: "single",
|
|
54056
|
+
optional: false
|
|
54057
|
+
}],
|
|
54084
54058
|
"accessories.setChildHidden": [{
|
|
54085
54059
|
name: "childDeviceId",
|
|
54086
54060
|
form: "single",
|
|
@@ -54100,6 +54074,11 @@ Object.freeze({
|
|
|
54100
54074
|
form: "single",
|
|
54101
54075
|
optional: false
|
|
54102
54076
|
}],
|
|
54077
|
+
"airQualitySensor.getStatus": [{
|
|
54078
|
+
name: "deviceId",
|
|
54079
|
+
form: "single",
|
|
54080
|
+
optional: false
|
|
54081
|
+
}],
|
|
54103
54082
|
"alarmPanel.arm": [{
|
|
54104
54083
|
name: "deviceId",
|
|
54105
54084
|
form: "single",
|
|
@@ -54110,11 +54089,36 @@ Object.freeze({
|
|
|
54110
54089
|
form: "single",
|
|
54111
54090
|
optional: false
|
|
54112
54091
|
}],
|
|
54092
|
+
"alarmPanel.getStatus": [{
|
|
54093
|
+
name: "deviceId",
|
|
54094
|
+
form: "single",
|
|
54095
|
+
optional: false
|
|
54096
|
+
}],
|
|
54113
54097
|
"alarmPanel.trigger": [{
|
|
54114
54098
|
name: "deviceId",
|
|
54115
54099
|
form: "single",
|
|
54116
54100
|
optional: false
|
|
54117
54101
|
}],
|
|
54102
|
+
"ambientLightSensor.getStatus": [{
|
|
54103
|
+
name: "deviceId",
|
|
54104
|
+
form: "single",
|
|
54105
|
+
optional: false
|
|
54106
|
+
}],
|
|
54107
|
+
"audioAnalysis.applyDeviceSettingsPatch": [{
|
|
54108
|
+
name: "deviceId",
|
|
54109
|
+
form: "single",
|
|
54110
|
+
optional: false
|
|
54111
|
+
}],
|
|
54112
|
+
"audioAnalysis.getDeviceLiveContribution": [{
|
|
54113
|
+
name: "deviceId",
|
|
54114
|
+
form: "single",
|
|
54115
|
+
optional: false
|
|
54116
|
+
}],
|
|
54117
|
+
"audioAnalysis.getDeviceSettingsContribution": [{
|
|
54118
|
+
name: "deviceId",
|
|
54119
|
+
form: "single",
|
|
54120
|
+
optional: false
|
|
54121
|
+
}],
|
|
54118
54122
|
"audioAnalysis.resolveDeviceSettings": [{
|
|
54119
54123
|
name: "deviceId",
|
|
54120
54124
|
form: "single",
|
|
@@ -54155,16 +54159,36 @@ Object.freeze({
|
|
|
54155
54159
|
form: "single",
|
|
54156
54160
|
optional: false
|
|
54157
54161
|
}],
|
|
54162
|
+
"automationControl.getStatus": [{
|
|
54163
|
+
name: "deviceId",
|
|
54164
|
+
form: "single",
|
|
54165
|
+
optional: false
|
|
54166
|
+
}],
|
|
54158
54167
|
"automationControl.trigger": [{
|
|
54159
54168
|
name: "deviceId",
|
|
54160
54169
|
form: "single",
|
|
54161
54170
|
optional: false
|
|
54162
54171
|
}],
|
|
54172
|
+
"battery.getStatus": [{
|
|
54173
|
+
name: "deviceId",
|
|
54174
|
+
form: "single",
|
|
54175
|
+
optional: false
|
|
54176
|
+
}],
|
|
54163
54177
|
"battery.wakeForStream": [{
|
|
54164
54178
|
name: "deviceId",
|
|
54165
54179
|
form: "single",
|
|
54166
54180
|
optional: false
|
|
54167
54181
|
}],
|
|
54182
|
+
"binary.getStatus": [{
|
|
54183
|
+
name: "deviceId",
|
|
54184
|
+
form: "single",
|
|
54185
|
+
optional: false
|
|
54186
|
+
}],
|
|
54187
|
+
"brightness.getStatus": [{
|
|
54188
|
+
name: "deviceId",
|
|
54189
|
+
form: "single",
|
|
54190
|
+
optional: false
|
|
54191
|
+
}],
|
|
54168
54192
|
"brightness.setBrightness": [{
|
|
54169
54193
|
name: "deviceId",
|
|
54170
54194
|
form: "single",
|
|
@@ -54180,6 +54204,26 @@ Object.freeze({
|
|
|
54180
54204
|
form: "single",
|
|
54181
54205
|
optional: false
|
|
54182
54206
|
}],
|
|
54207
|
+
"cameraCredentials.getStatus": [{
|
|
54208
|
+
name: "deviceId",
|
|
54209
|
+
form: "single",
|
|
54210
|
+
optional: false
|
|
54211
|
+
}],
|
|
54212
|
+
"cameraGridLayout.applyDeviceSettingsPatch": [{
|
|
54213
|
+
name: "deviceId",
|
|
54214
|
+
form: "single",
|
|
54215
|
+
optional: false
|
|
54216
|
+
}],
|
|
54217
|
+
"cameraGridLayout.getDeviceLiveContribution": [{
|
|
54218
|
+
name: "deviceId",
|
|
54219
|
+
form: "single",
|
|
54220
|
+
optional: false
|
|
54221
|
+
}],
|
|
54222
|
+
"cameraGridLayout.getDeviceSettingsContribution": [{
|
|
54223
|
+
name: "deviceId",
|
|
54224
|
+
form: "single",
|
|
54225
|
+
optional: false
|
|
54226
|
+
}],
|
|
54183
54227
|
"cameraGridLayout.getLayout": [{
|
|
54184
54228
|
name: "deviceId",
|
|
54185
54229
|
form: "single",
|
|
@@ -54195,6 +54239,21 @@ Object.freeze({
|
|
|
54195
54239
|
form: "single",
|
|
54196
54240
|
optional: false
|
|
54197
54241
|
}],
|
|
54242
|
+
"cameraPipelineConfig.applyDeviceSettingsPatch": [{
|
|
54243
|
+
name: "deviceId",
|
|
54244
|
+
form: "single",
|
|
54245
|
+
optional: false
|
|
54246
|
+
}],
|
|
54247
|
+
"cameraPipelineConfig.getDeviceLiveContribution": [{
|
|
54248
|
+
name: "deviceId",
|
|
54249
|
+
form: "single",
|
|
54250
|
+
optional: false
|
|
54251
|
+
}],
|
|
54252
|
+
"cameraPipelineConfig.getDeviceSettingsContribution": [{
|
|
54253
|
+
name: "deviceId",
|
|
54254
|
+
form: "single",
|
|
54255
|
+
optional: false
|
|
54256
|
+
}],
|
|
54198
54257
|
"cameraStreams.getBrokerStreams": [{
|
|
54199
54258
|
name: "deviceId",
|
|
54200
54259
|
form: "single",
|
|
@@ -54220,6 +54279,16 @@ Object.freeze({
|
|
|
54220
54279
|
form: "single",
|
|
54221
54280
|
optional: false
|
|
54222
54281
|
}],
|
|
54282
|
+
"carbonMonoxide.getStatus": [{
|
|
54283
|
+
name: "deviceId",
|
|
54284
|
+
form: "single",
|
|
54285
|
+
optional: false
|
|
54286
|
+
}],
|
|
54287
|
+
"climateControl.getStatus": [{
|
|
54288
|
+
name: "deviceId",
|
|
54289
|
+
form: "single",
|
|
54290
|
+
optional: false
|
|
54291
|
+
}],
|
|
54223
54292
|
"climateControl.setFanMode": [{
|
|
54224
54293
|
name: "deviceId",
|
|
54225
54294
|
form: "single",
|
|
@@ -54260,16 +54329,41 @@ Object.freeze({
|
|
|
54260
54329
|
form: "single",
|
|
54261
54330
|
optional: false
|
|
54262
54331
|
}],
|
|
54332
|
+
"color.getStatus": [{
|
|
54333
|
+
name: "deviceId",
|
|
54334
|
+
form: "single",
|
|
54335
|
+
optional: false
|
|
54336
|
+
}],
|
|
54263
54337
|
"color.setColor": [{
|
|
54264
54338
|
name: "deviceId",
|
|
54265
54339
|
form: "single",
|
|
54266
54340
|
optional: false
|
|
54267
54341
|
}],
|
|
54342
|
+
"connectivity.getStatus": [{
|
|
54343
|
+
name: "deviceId",
|
|
54344
|
+
form: "single",
|
|
54345
|
+
optional: false
|
|
54346
|
+
}],
|
|
54347
|
+
"consumables.getStatus": [{
|
|
54348
|
+
name: "deviceId",
|
|
54349
|
+
form: "single",
|
|
54350
|
+
optional: false
|
|
54351
|
+
}],
|
|
54268
54352
|
"consumables.reset": [{
|
|
54269
54353
|
name: "deviceId",
|
|
54270
54354
|
form: "single",
|
|
54271
54355
|
optional: false
|
|
54272
54356
|
}],
|
|
54357
|
+
"contact.getStatus": [{
|
|
54358
|
+
name: "deviceId",
|
|
54359
|
+
form: "single",
|
|
54360
|
+
optional: false
|
|
54361
|
+
}],
|
|
54362
|
+
"control.getStatus": [{
|
|
54363
|
+
name: "deviceId",
|
|
54364
|
+
form: "single",
|
|
54365
|
+
optional: false
|
|
54366
|
+
}],
|
|
54273
54367
|
"control.setValue": [{
|
|
54274
54368
|
name: "deviceId",
|
|
54275
54369
|
form: "single",
|
|
@@ -54280,6 +54374,11 @@ Object.freeze({
|
|
|
54280
54374
|
form: "single",
|
|
54281
54375
|
optional: false
|
|
54282
54376
|
}],
|
|
54377
|
+
"cover.getStatus": [{
|
|
54378
|
+
name: "deviceId",
|
|
54379
|
+
form: "single",
|
|
54380
|
+
optional: false
|
|
54381
|
+
}],
|
|
54283
54382
|
"cover.open": [{
|
|
54284
54383
|
name: "deviceId",
|
|
54285
54384
|
form: "single",
|
|
@@ -54305,6 +54404,11 @@ Object.freeze({
|
|
|
54305
54404
|
form: "single",
|
|
54306
54405
|
optional: false
|
|
54307
54406
|
}],
|
|
54407
|
+
"dayNight.getStatus": [{
|
|
54408
|
+
name: "deviceId",
|
|
54409
|
+
form: "single",
|
|
54410
|
+
optional: false
|
|
54411
|
+
}],
|
|
54308
54412
|
"dayNight.setSettings": [{
|
|
54309
54413
|
name: "deviceId",
|
|
54310
54414
|
form: "single",
|
|
@@ -54315,11 +54419,31 @@ Object.freeze({
|
|
|
54315
54419
|
form: "single",
|
|
54316
54420
|
optional: true
|
|
54317
54421
|
}],
|
|
54422
|
+
"detectionPipeline.applyDeviceSettingsPatch": [{
|
|
54423
|
+
name: "deviceId",
|
|
54424
|
+
form: "single",
|
|
54425
|
+
optional: false
|
|
54426
|
+
}],
|
|
54427
|
+
"detectionPipeline.getDeviceLiveContribution": [{
|
|
54428
|
+
name: "deviceId",
|
|
54429
|
+
form: "single",
|
|
54430
|
+
optional: false
|
|
54431
|
+
}],
|
|
54432
|
+
"detectionPipeline.getDeviceSettingsContribution": [{
|
|
54433
|
+
name: "deviceId",
|
|
54434
|
+
form: "single",
|
|
54435
|
+
optional: false
|
|
54436
|
+
}],
|
|
54318
54437
|
"deviceAdminLink.getAdminLink": [{
|
|
54319
54438
|
name: "deviceId",
|
|
54320
54439
|
form: "single",
|
|
54321
54440
|
optional: false
|
|
54322
54441
|
}],
|
|
54442
|
+
"deviceAdoption.getStatus": [{
|
|
54443
|
+
name: "deviceId",
|
|
54444
|
+
form: "single",
|
|
54445
|
+
optional: false
|
|
54446
|
+
}],
|
|
54323
54447
|
"deviceAdoption.release": [{
|
|
54324
54448
|
name: "camDeviceId",
|
|
54325
54449
|
form: "single",
|
|
@@ -54335,6 +54459,11 @@ Object.freeze({
|
|
|
54335
54459
|
form: "single",
|
|
54336
54460
|
optional: false
|
|
54337
54461
|
}],
|
|
54462
|
+
"deviceDiscovery.getStatus": [{
|
|
54463
|
+
name: "deviceId",
|
|
54464
|
+
form: "single",
|
|
54465
|
+
optional: false
|
|
54466
|
+
}],
|
|
54338
54467
|
"deviceDiscovery.listDiscovered": [{
|
|
54339
54468
|
name: "deviceId",
|
|
54340
54469
|
form: "single",
|
|
@@ -54354,6 +54483,21 @@ Object.freeze({
|
|
|
54354
54483
|
form: "single",
|
|
54355
54484
|
optional: false
|
|
54356
54485
|
}],
|
|
54486
|
+
"deviceExport.applyDeviceSettingsPatch": [{
|
|
54487
|
+
name: "deviceId",
|
|
54488
|
+
form: "single",
|
|
54489
|
+
optional: false
|
|
54490
|
+
}],
|
|
54491
|
+
"deviceExport.getDeviceLiveContribution": [{
|
|
54492
|
+
name: "deviceId",
|
|
54493
|
+
form: "single",
|
|
54494
|
+
optional: false
|
|
54495
|
+
}],
|
|
54496
|
+
"deviceExport.getDeviceSettingsContribution": [{
|
|
54497
|
+
name: "deviceId",
|
|
54498
|
+
form: "single",
|
|
54499
|
+
optional: false
|
|
54500
|
+
}],
|
|
54357
54501
|
"deviceExtension.listCandidates": [{
|
|
54358
54502
|
name: "deviceId",
|
|
54359
54503
|
form: "single",
|
|
@@ -54702,6 +54846,26 @@ Object.freeze({
|
|
|
54702
54846
|
form: "single",
|
|
54703
54847
|
optional: false
|
|
54704
54848
|
}],
|
|
54849
|
+
"deviceStatus.getStatus": [{
|
|
54850
|
+
name: "deviceId",
|
|
54851
|
+
form: "single",
|
|
54852
|
+
optional: false
|
|
54853
|
+
}],
|
|
54854
|
+
"doorbell.getStatus": [{
|
|
54855
|
+
name: "deviceId",
|
|
54856
|
+
form: "single",
|
|
54857
|
+
optional: false
|
|
54858
|
+
}],
|
|
54859
|
+
"enumSensor.getStatus": [{
|
|
54860
|
+
name: "deviceId",
|
|
54861
|
+
form: "single",
|
|
54862
|
+
optional: false
|
|
54863
|
+
}],
|
|
54864
|
+
"eventEmitter.getStatus": [{
|
|
54865
|
+
name: "deviceId",
|
|
54866
|
+
form: "single",
|
|
54867
|
+
optional: false
|
|
54868
|
+
}],
|
|
54705
54869
|
"faceGallery.getFaceByTrack": [{
|
|
54706
54870
|
name: "deviceId",
|
|
54707
54871
|
form: "single",
|
|
@@ -54716,6 +54880,11 @@ Object.freeze({
|
|
|
54716
54880
|
form: "array",
|
|
54717
54881
|
optional: true
|
|
54718
54882
|
}],
|
|
54883
|
+
"fanControl.getStatus": [{
|
|
54884
|
+
name: "deviceId",
|
|
54885
|
+
form: "single",
|
|
54886
|
+
optional: false
|
|
54887
|
+
}],
|
|
54719
54888
|
"fanControl.setDirection": [{
|
|
54720
54889
|
name: "deviceId",
|
|
54721
54890
|
form: "single",
|
|
@@ -54736,6 +54905,26 @@ Object.freeze({
|
|
|
54736
54905
|
form: "single",
|
|
54737
54906
|
optional: false
|
|
54738
54907
|
}],
|
|
54908
|
+
"featureProbe.getStatus": [{
|
|
54909
|
+
name: "deviceId",
|
|
54910
|
+
form: "single",
|
|
54911
|
+
optional: false
|
|
54912
|
+
}],
|
|
54913
|
+
"flood.getStatus": [{
|
|
54914
|
+
name: "deviceId",
|
|
54915
|
+
form: "single",
|
|
54916
|
+
optional: false
|
|
54917
|
+
}],
|
|
54918
|
+
"gas.getStatus": [{
|
|
54919
|
+
name: "deviceId",
|
|
54920
|
+
form: "single",
|
|
54921
|
+
optional: false
|
|
54922
|
+
}],
|
|
54923
|
+
"humidifier.getStatus": [{
|
|
54924
|
+
name: "deviceId",
|
|
54925
|
+
form: "single",
|
|
54926
|
+
optional: false
|
|
54927
|
+
}],
|
|
54739
54928
|
"humidifier.setMode": [{
|
|
54740
54929
|
name: "deviceId",
|
|
54741
54930
|
form: "single",
|
|
@@ -54751,11 +54940,26 @@ Object.freeze({
|
|
|
54751
54940
|
form: "single",
|
|
54752
54941
|
optional: false
|
|
54753
54942
|
}],
|
|
54943
|
+
"humiditySensor.getStatus": [{
|
|
54944
|
+
name: "deviceId",
|
|
54945
|
+
form: "single",
|
|
54946
|
+
optional: false
|
|
54947
|
+
}],
|
|
54948
|
+
"image.getStatus": [{
|
|
54949
|
+
name: "deviceId",
|
|
54950
|
+
form: "single",
|
|
54951
|
+
optional: false
|
|
54952
|
+
}],
|
|
54754
54953
|
"imageSettings.getOptions": [{
|
|
54755
54954
|
name: "deviceId",
|
|
54756
54955
|
form: "single",
|
|
54757
54956
|
optional: false
|
|
54758
54957
|
}],
|
|
54958
|
+
"imageSettings.getStatus": [{
|
|
54959
|
+
name: "deviceId",
|
|
54960
|
+
form: "single",
|
|
54961
|
+
optional: false
|
|
54962
|
+
}],
|
|
54759
54963
|
"imageSettings.setSettings": [{
|
|
54760
54964
|
name: "deviceId",
|
|
54761
54965
|
form: "single",
|
|
@@ -54766,6 +54970,11 @@ Object.freeze({
|
|
|
54766
54970
|
form: "single",
|
|
54767
54971
|
optional: false
|
|
54768
54972
|
}],
|
|
54973
|
+
"intercom.getStatus": [{
|
|
54974
|
+
name: "deviceId",
|
|
54975
|
+
form: "single",
|
|
54976
|
+
optional: false
|
|
54977
|
+
}],
|
|
54769
54978
|
"intercom.handleAnswer": [{
|
|
54770
54979
|
name: "deviceId",
|
|
54771
54980
|
form: "single",
|
|
@@ -54796,6 +55005,11 @@ Object.freeze({
|
|
|
54796
55005
|
form: "single",
|
|
54797
55006
|
optional: false
|
|
54798
55007
|
}],
|
|
55008
|
+
"lawnMowerControl.getStatus": [{
|
|
55009
|
+
name: "deviceId",
|
|
55010
|
+
form: "single",
|
|
55011
|
+
optional: false
|
|
55012
|
+
}],
|
|
54799
55013
|
"lawnMowerControl.pause": [{
|
|
54800
55014
|
name: "deviceId",
|
|
54801
55015
|
form: "single",
|
|
@@ -54806,6 +55020,11 @@ Object.freeze({
|
|
|
54806
55020
|
form: "single",
|
|
54807
55021
|
optional: false
|
|
54808
55022
|
}],
|
|
55023
|
+
"lockControl.getStatus": [{
|
|
55024
|
+
name: "deviceId",
|
|
55025
|
+
form: "single",
|
|
55026
|
+
optional: false
|
|
55027
|
+
}],
|
|
54809
55028
|
"lockControl.lock": [{
|
|
54810
55029
|
name: "deviceId",
|
|
54811
55030
|
form: "single",
|
|
@@ -54821,6 +55040,11 @@ Object.freeze({
|
|
|
54821
55040
|
form: "single",
|
|
54822
55041
|
optional: false
|
|
54823
55042
|
}],
|
|
55043
|
+
"mediaPlayer.getStatus": [{
|
|
55044
|
+
name: "deviceId",
|
|
55045
|
+
form: "single",
|
|
55046
|
+
optional: false
|
|
55047
|
+
}],
|
|
54824
55048
|
"mediaPlayer.next": [{
|
|
54825
55049
|
name: "deviceId",
|
|
54826
55050
|
form: "single",
|
|
@@ -54881,6 +55105,11 @@ Object.freeze({
|
|
|
54881
55105
|
form: "single",
|
|
54882
55106
|
optional: false
|
|
54883
55107
|
}],
|
|
55108
|
+
"motion.getStatus": [{
|
|
55109
|
+
name: "deviceId",
|
|
55110
|
+
form: "single",
|
|
55111
|
+
optional: false
|
|
55112
|
+
}],
|
|
54884
55113
|
"motion.isDetected": [{
|
|
54885
55114
|
name: "deviceId",
|
|
54886
55115
|
form: "single",
|
|
@@ -54891,11 +55120,31 @@ Object.freeze({
|
|
|
54891
55120
|
form: "single",
|
|
54892
55121
|
optional: false
|
|
54893
55122
|
}],
|
|
55123
|
+
"motionDetection.applyDeviceSettingsPatch": [{
|
|
55124
|
+
name: "deviceId",
|
|
55125
|
+
form: "single",
|
|
55126
|
+
optional: false
|
|
55127
|
+
}],
|
|
55128
|
+
"motionDetection.getDeviceLiveContribution": [{
|
|
55129
|
+
name: "deviceId",
|
|
55130
|
+
form: "single",
|
|
55131
|
+
optional: false
|
|
55132
|
+
}],
|
|
55133
|
+
"motionDetection.getDeviceSettingsContribution": [{
|
|
55134
|
+
name: "deviceId",
|
|
55135
|
+
form: "single",
|
|
55136
|
+
optional: false
|
|
55137
|
+
}],
|
|
54894
55138
|
"motionDetection.removeCamera": [{
|
|
54895
55139
|
name: "deviceId",
|
|
54896
55140
|
form: "single",
|
|
54897
55141
|
optional: false
|
|
54898
55142
|
}],
|
|
55143
|
+
"motionTrigger.getStatus": [{
|
|
55144
|
+
name: "deviceId",
|
|
55145
|
+
form: "single",
|
|
55146
|
+
optional: false
|
|
55147
|
+
}],
|
|
54899
55148
|
"motionTrigger.setMotionTrigger": [{
|
|
54900
55149
|
name: "deviceId",
|
|
54901
55150
|
form: "single",
|
|
@@ -54906,6 +55155,11 @@ Object.freeze({
|
|
|
54906
55155
|
form: "single",
|
|
54907
55156
|
optional: false
|
|
54908
55157
|
}],
|
|
55158
|
+
"motionZones.getStatus": [{
|
|
55159
|
+
name: "deviceId",
|
|
55160
|
+
form: "single",
|
|
55161
|
+
optional: false
|
|
55162
|
+
}],
|
|
54909
55163
|
"motionZones.setZone": [{
|
|
54910
55164
|
name: "deviceId",
|
|
54911
55165
|
form: "single",
|
|
@@ -54916,6 +55170,11 @@ Object.freeze({
|
|
|
54916
55170
|
form: "single",
|
|
54917
55171
|
optional: false
|
|
54918
55172
|
}],
|
|
55173
|
+
"nativeObjectDetection.getStatus": [{
|
|
55174
|
+
name: "deviceId",
|
|
55175
|
+
form: "single",
|
|
55176
|
+
optional: false
|
|
55177
|
+
}],
|
|
54919
55178
|
"nativeObjectDetection.setEnabled": [{
|
|
54920
55179
|
name: "deviceId",
|
|
54921
55180
|
form: "single",
|
|
@@ -54931,6 +55190,11 @@ Object.freeze({
|
|
|
54931
55190
|
form: "single",
|
|
54932
55191
|
optional: false
|
|
54933
55192
|
}],
|
|
55193
|
+
"navigation.getStatus": [{
|
|
55194
|
+
name: "deviceId",
|
|
55195
|
+
form: "single",
|
|
55196
|
+
optional: false
|
|
55197
|
+
}],
|
|
54934
55198
|
"navigation.goToPoint": [{
|
|
54935
55199
|
name: "deviceId",
|
|
54936
55200
|
form: "single",
|
|
@@ -54976,6 +55240,11 @@ Object.freeze({
|
|
|
54976
55240
|
form: "single",
|
|
54977
55241
|
optional: false
|
|
54978
55242
|
}],
|
|
55243
|
+
"networkLink.getStatus": [{
|
|
55244
|
+
name: "deviceId",
|
|
55245
|
+
form: "single",
|
|
55246
|
+
optional: false
|
|
55247
|
+
}],
|
|
54979
55248
|
"networkQuality.getDeviceStats": [{
|
|
54980
55249
|
name: "deviceId",
|
|
54981
55250
|
form: "single",
|
|
@@ -55001,11 +55270,26 @@ Object.freeze({
|
|
|
55001
55270
|
form: "single",
|
|
55002
55271
|
optional: false
|
|
55003
55272
|
}],
|
|
55273
|
+
"notifier.getStatus": [{
|
|
55274
|
+
name: "deviceId",
|
|
55275
|
+
form: "single",
|
|
55276
|
+
optional: false
|
|
55277
|
+
}],
|
|
55004
55278
|
"notifier.send": [{
|
|
55005
55279
|
name: "deviceId",
|
|
55006
55280
|
form: "single",
|
|
55007
55281
|
optional: false
|
|
55008
55282
|
}],
|
|
55283
|
+
"numericSensor.getStatus": [{
|
|
55284
|
+
name: "deviceId",
|
|
55285
|
+
form: "single",
|
|
55286
|
+
optional: false
|
|
55287
|
+
}],
|
|
55288
|
+
"osd.getStatus": [{
|
|
55289
|
+
name: "deviceId",
|
|
55290
|
+
form: "single",
|
|
55291
|
+
optional: false
|
|
55292
|
+
}],
|
|
55009
55293
|
"osd.setOverlay": [{
|
|
55010
55294
|
name: "deviceId",
|
|
55011
55295
|
form: "single",
|
|
@@ -55065,6 +55349,11 @@ Object.freeze({
|
|
|
55065
55349
|
form: "single",
|
|
55066
55350
|
optional: false
|
|
55067
55351
|
}],
|
|
55352
|
+
"petFeeder.getStatus": [{
|
|
55353
|
+
name: "deviceId",
|
|
55354
|
+
form: "single",
|
|
55355
|
+
optional: false
|
|
55356
|
+
}],
|
|
55068
55357
|
"petFeeder.markFoodReplenished": [{
|
|
55069
55358
|
name: "deviceId",
|
|
55070
55359
|
form: "single",
|
|
@@ -55100,6 +55389,11 @@ Object.freeze({
|
|
|
55100
55389
|
form: "single",
|
|
55101
55390
|
optional: false
|
|
55102
55391
|
}],
|
|
55392
|
+
"pipelineAnalytics.applyDeviceSettingsPatch": [{
|
|
55393
|
+
name: "deviceId",
|
|
55394
|
+
form: "single",
|
|
55395
|
+
optional: false
|
|
55396
|
+
}],
|
|
55103
55397
|
"pipelineAnalytics.clearTrackRelation": [{
|
|
55104
55398
|
name: "deviceId",
|
|
55105
55399
|
form: "single",
|
|
@@ -55140,6 +55434,16 @@ Object.freeze({
|
|
|
55140
55434
|
form: "single",
|
|
55141
55435
|
optional: false
|
|
55142
55436
|
}],
|
|
55437
|
+
"pipelineAnalytics.getDeviceLiveContribution": [{
|
|
55438
|
+
name: "deviceId",
|
|
55439
|
+
form: "single",
|
|
55440
|
+
optional: false
|
|
55441
|
+
}],
|
|
55442
|
+
"pipelineAnalytics.getDeviceSettingsContribution": [{
|
|
55443
|
+
name: "deviceId",
|
|
55444
|
+
form: "single",
|
|
55445
|
+
optional: false
|
|
55446
|
+
}],
|
|
55143
55447
|
"pipelineAnalytics.getEventDensity": [{
|
|
55144
55448
|
name: "deviceId",
|
|
55145
55449
|
form: "single",
|
|
@@ -55355,6 +55659,11 @@ Object.freeze({
|
|
|
55355
55659
|
form: "single",
|
|
55356
55660
|
optional: true
|
|
55357
55661
|
}],
|
|
55662
|
+
"pipelineOrchestrator.applyDeviceSettingsPatch": [{
|
|
55663
|
+
name: "deviceId",
|
|
55664
|
+
form: "single",
|
|
55665
|
+
optional: false
|
|
55666
|
+
}],
|
|
55358
55667
|
"pipelineOrchestrator.assignAudio": [{
|
|
55359
55668
|
name: "deviceId",
|
|
55360
55669
|
form: "single",
|
|
@@ -55400,6 +55709,16 @@ Object.freeze({
|
|
|
55400
55709
|
form: "single",
|
|
55401
55710
|
optional: false
|
|
55402
55711
|
}],
|
|
55712
|
+
"pipelineOrchestrator.getDeviceLiveContribution": [{
|
|
55713
|
+
name: "deviceId",
|
|
55714
|
+
form: "single",
|
|
55715
|
+
optional: false
|
|
55716
|
+
}],
|
|
55717
|
+
"pipelineOrchestrator.getDeviceSettingsContribution": [{
|
|
55718
|
+
name: "deviceId",
|
|
55719
|
+
form: "single",
|
|
55720
|
+
optional: false
|
|
55721
|
+
}],
|
|
55403
55722
|
"pipelineOrchestrator.getPipelineAssignment": [{
|
|
55404
55723
|
name: "deviceId",
|
|
55405
55724
|
form: "single",
|
|
@@ -55520,11 +55839,31 @@ Object.freeze({
|
|
|
55520
55839
|
form: "single",
|
|
55521
55840
|
optional: true
|
|
55522
55841
|
}],
|
|
55842
|
+
"powerMeter.getStatus": [{
|
|
55843
|
+
name: "deviceId",
|
|
55844
|
+
form: "single",
|
|
55845
|
+
optional: false
|
|
55846
|
+
}],
|
|
55847
|
+
"presence.getStatus": [{
|
|
55848
|
+
name: "deviceId",
|
|
55849
|
+
form: "single",
|
|
55850
|
+
optional: false
|
|
55851
|
+
}],
|
|
55852
|
+
"pressureSensor.getStatus": [{
|
|
55853
|
+
name: "deviceId",
|
|
55854
|
+
form: "single",
|
|
55855
|
+
optional: false
|
|
55856
|
+
}],
|
|
55523
55857
|
"privacyMask.getOptions": [{
|
|
55524
55858
|
name: "deviceId",
|
|
55525
55859
|
form: "single",
|
|
55526
55860
|
optional: false
|
|
55527
55861
|
}],
|
|
55862
|
+
"privacyMask.getStatus": [{
|
|
55863
|
+
name: "deviceId",
|
|
55864
|
+
form: "single",
|
|
55865
|
+
optional: false
|
|
55866
|
+
}],
|
|
55528
55867
|
"privacyMask.setAudioEnabled": [{
|
|
55529
55868
|
name: "deviceId",
|
|
55530
55869
|
form: "single",
|
|
@@ -55575,6 +55914,11 @@ Object.freeze({
|
|
|
55575
55914
|
form: "single",
|
|
55576
55915
|
optional: false
|
|
55577
55916
|
}],
|
|
55917
|
+
"ptz.getStatus": [{
|
|
55918
|
+
name: "deviceId",
|
|
55919
|
+
form: "single",
|
|
55920
|
+
optional: false
|
|
55921
|
+
}],
|
|
55578
55922
|
"ptz.goHome": [{
|
|
55579
55923
|
name: "deviceId",
|
|
55580
55924
|
form: "single",
|
|
@@ -55665,6 +56009,11 @@ Object.freeze({
|
|
|
55665
56009
|
form: "single",
|
|
55666
56010
|
optional: false
|
|
55667
56011
|
}],
|
|
56012
|
+
"recordingArchive.applyDeviceSettingsPatch": [{
|
|
56013
|
+
name: "deviceId",
|
|
56014
|
+
form: "single",
|
|
56015
|
+
optional: false
|
|
56016
|
+
}],
|
|
55668
56017
|
"recordingArchive.deleteFootprint": [{
|
|
55669
56018
|
name: "deviceId",
|
|
55670
56019
|
form: "single",
|
|
@@ -55685,6 +56034,21 @@ Object.freeze({
|
|
|
55685
56034
|
form: "single",
|
|
55686
56035
|
optional: false
|
|
55687
56036
|
}],
|
|
56037
|
+
"recordingArchive.getDeviceLiveContribution": [{
|
|
56038
|
+
name: "deviceId",
|
|
56039
|
+
form: "single",
|
|
56040
|
+
optional: false
|
|
56041
|
+
}],
|
|
56042
|
+
"recordingArchive.getDeviceSettingsContribution": [{
|
|
56043
|
+
name: "deviceId",
|
|
56044
|
+
form: "single",
|
|
56045
|
+
optional: false
|
|
56046
|
+
}],
|
|
56047
|
+
"recordingArchive.getStatus": [{
|
|
56048
|
+
name: "deviceId",
|
|
56049
|
+
form: "single",
|
|
56050
|
+
optional: false
|
|
56051
|
+
}],
|
|
55688
56052
|
"recordingArchive.listOpsLog": [{
|
|
55689
56053
|
name: "deviceId",
|
|
55690
56054
|
form: "single",
|
|
@@ -55770,6 +56134,11 @@ Object.freeze({
|
|
|
55770
56134
|
form: "single",
|
|
55771
56135
|
optional: false
|
|
55772
56136
|
}],
|
|
56137
|
+
"recordingOnboard.getStatus": [{
|
|
56138
|
+
name: "deviceId",
|
|
56139
|
+
form: "single",
|
|
56140
|
+
optional: false
|
|
56141
|
+
}],
|
|
55773
56142
|
"recordingOnboard.setSettings": [{
|
|
55774
56143
|
name: "deviceId",
|
|
55775
56144
|
form: "single",
|
|
@@ -55800,6 +56169,11 @@ Object.freeze({
|
|
|
55800
56169
|
form: "single",
|
|
55801
56170
|
optional: false
|
|
55802
56171
|
}],
|
|
56172
|
+
"sceneMonitor.getStatus": [{
|
|
56173
|
+
name: "deviceId",
|
|
56174
|
+
form: "single",
|
|
56175
|
+
optional: false
|
|
56176
|
+
}],
|
|
55803
56177
|
"sceneMonitor.listScenes": [{
|
|
55804
56178
|
name: "deviceId",
|
|
55805
56179
|
form: "single",
|
|
@@ -55825,6 +56199,11 @@ Object.freeze({
|
|
|
55825
56199
|
form: "single",
|
|
55826
56200
|
optional: false
|
|
55827
56201
|
}],
|
|
56202
|
+
"scriptRunner.getStatus": [{
|
|
56203
|
+
name: "deviceId",
|
|
56204
|
+
form: "single",
|
|
56205
|
+
optional: false
|
|
56206
|
+
}],
|
|
55828
56207
|
"scriptRunner.run": [{
|
|
55829
56208
|
name: "deviceId",
|
|
55830
56209
|
form: "single",
|
|
@@ -55835,11 +56214,31 @@ Object.freeze({
|
|
|
55835
56214
|
form: "single",
|
|
55836
56215
|
optional: false
|
|
55837
56216
|
}],
|
|
56217
|
+
"smoke.getStatus": [{
|
|
56218
|
+
name: "deviceId",
|
|
56219
|
+
form: "single",
|
|
56220
|
+
optional: false
|
|
56221
|
+
}],
|
|
56222
|
+
"snapshot.applyDeviceSettingsPatch": [{
|
|
56223
|
+
name: "deviceId",
|
|
56224
|
+
form: "single",
|
|
56225
|
+
optional: false
|
|
56226
|
+
}],
|
|
55838
56227
|
"snapshot.getDebugState": [{
|
|
55839
56228
|
name: "deviceId",
|
|
55840
56229
|
form: "single",
|
|
55841
56230
|
optional: false
|
|
55842
56231
|
}],
|
|
56232
|
+
"snapshot.getDeviceLiveContribution": [{
|
|
56233
|
+
name: "deviceId",
|
|
56234
|
+
form: "single",
|
|
56235
|
+
optional: false
|
|
56236
|
+
}],
|
|
56237
|
+
"snapshot.getDeviceSettingsContribution": [{
|
|
56238
|
+
name: "deviceId",
|
|
56239
|
+
form: "single",
|
|
56240
|
+
optional: false
|
|
56241
|
+
}],
|
|
55843
56242
|
"snapshot.getSnapshot": [{
|
|
55844
56243
|
name: "deviceId",
|
|
55845
56244
|
form: "single",
|
|
@@ -55856,6 +56255,11 @@ Object.freeze({
|
|
|
55856
56255
|
form: "array",
|
|
55857
56256
|
optional: false
|
|
55858
56257
|
}],
|
|
56258
|
+
"snapshot.getStatus": [{
|
|
56259
|
+
name: "deviceId",
|
|
56260
|
+
form: "single",
|
|
56261
|
+
optional: false
|
|
56262
|
+
}],
|
|
55859
56263
|
"snapshot.invalidateCache": [{
|
|
55860
56264
|
name: "deviceId",
|
|
55861
56265
|
form: "single",
|
|
@@ -55866,6 +56270,11 @@ Object.freeze({
|
|
|
55866
56270
|
form: "single",
|
|
55867
56271
|
optional: false
|
|
55868
56272
|
}],
|
|
56273
|
+
"streamBroker.applyDeviceSettingsPatch": [{
|
|
56274
|
+
name: "deviceId",
|
|
56275
|
+
form: "single",
|
|
56276
|
+
optional: false
|
|
56277
|
+
}],
|
|
55869
56278
|
"streamBroker.assignProfile": [{
|
|
55870
56279
|
name: "deviceId",
|
|
55871
56280
|
form: "single",
|
|
@@ -55881,6 +56290,16 @@ Object.freeze({
|
|
|
55881
56290
|
form: "single",
|
|
55882
56291
|
optional: false
|
|
55883
56292
|
}],
|
|
56293
|
+
"streamBroker.getDeviceLiveContribution": [{
|
|
56294
|
+
name: "deviceId",
|
|
56295
|
+
form: "single",
|
|
56296
|
+
optional: false
|
|
56297
|
+
}],
|
|
56298
|
+
"streamBroker.getDeviceSettingsContribution": [{
|
|
56299
|
+
name: "deviceId",
|
|
56300
|
+
form: "single",
|
|
56301
|
+
optional: false
|
|
56302
|
+
}],
|
|
55884
56303
|
"streamBroker.getStreamWithCodec": [{
|
|
55885
56304
|
name: "deviceId",
|
|
55886
56305
|
form: "single",
|
|
@@ -55941,16 +56360,46 @@ Object.freeze({
|
|
|
55941
56360
|
form: "single",
|
|
55942
56361
|
optional: false
|
|
55943
56362
|
}],
|
|
56363
|
+
"streamParams.getStatus": [{
|
|
56364
|
+
name: "deviceId",
|
|
56365
|
+
form: "single",
|
|
56366
|
+
optional: false
|
|
56367
|
+
}],
|
|
55944
56368
|
"streamParams.setProfile": [{
|
|
55945
56369
|
name: "deviceId",
|
|
55946
56370
|
form: "single",
|
|
55947
56371
|
optional: false
|
|
55948
56372
|
}],
|
|
56373
|
+
"switch.getStatus": [{
|
|
56374
|
+
name: "deviceId",
|
|
56375
|
+
form: "single",
|
|
56376
|
+
optional: false
|
|
56377
|
+
}],
|
|
55949
56378
|
"switch.setState": [{
|
|
55950
56379
|
name: "deviceId",
|
|
55951
56380
|
form: "single",
|
|
55952
56381
|
optional: false
|
|
55953
56382
|
}],
|
|
56383
|
+
"tamper.getStatus": [{
|
|
56384
|
+
name: "deviceId",
|
|
56385
|
+
form: "single",
|
|
56386
|
+
optional: false
|
|
56387
|
+
}],
|
|
56388
|
+
"temperatureSensor.getStatus": [{
|
|
56389
|
+
name: "deviceId",
|
|
56390
|
+
form: "single",
|
|
56391
|
+
optional: false
|
|
56392
|
+
}],
|
|
56393
|
+
"update.getStatus": [{
|
|
56394
|
+
name: "deviceId",
|
|
56395
|
+
form: "single",
|
|
56396
|
+
optional: false
|
|
56397
|
+
}],
|
|
56398
|
+
"vacuumControl.getStatus": [{
|
|
56399
|
+
name: "deviceId",
|
|
56400
|
+
form: "single",
|
|
56401
|
+
optional: false
|
|
56402
|
+
}],
|
|
55954
56403
|
"vacuumControl.locate": [{
|
|
55955
56404
|
name: "deviceId",
|
|
55956
56405
|
form: "single",
|
|
@@ -55986,6 +56435,11 @@ Object.freeze({
|
|
|
55986
56435
|
form: "single",
|
|
55987
56436
|
optional: false
|
|
55988
56437
|
}],
|
|
56438
|
+
"valve.getStatus": [{
|
|
56439
|
+
name: "deviceId",
|
|
56440
|
+
form: "single",
|
|
56441
|
+
optional: false
|
|
56442
|
+
}],
|
|
55989
56443
|
"valve.open": [{
|
|
55990
56444
|
name: "deviceId",
|
|
55991
56445
|
form: "single",
|
|
@@ -56001,6 +56455,11 @@ Object.freeze({
|
|
|
56001
56455
|
form: "single",
|
|
56002
56456
|
optional: false
|
|
56003
56457
|
}],
|
|
56458
|
+
"vibration.getStatus": [{
|
|
56459
|
+
name: "deviceId",
|
|
56460
|
+
form: "single",
|
|
56461
|
+
optional: false
|
|
56462
|
+
}],
|
|
56004
56463
|
"videoclips.dialClipStream": [{
|
|
56005
56464
|
name: "deviceId",
|
|
56006
56465
|
form: "single",
|
|
@@ -56036,6 +56495,11 @@ Object.freeze({
|
|
|
56036
56495
|
form: "single",
|
|
56037
56496
|
optional: false
|
|
56038
56497
|
}],
|
|
56498
|
+
"waterHeater.getStatus": [{
|
|
56499
|
+
name: "deviceId",
|
|
56500
|
+
form: "single",
|
|
56501
|
+
optional: false
|
|
56502
|
+
}],
|
|
56039
56503
|
"waterHeater.setAway": [{
|
|
56040
56504
|
name: "deviceId",
|
|
56041
56505
|
form: "single",
|
|
@@ -56051,6 +56515,11 @@ Object.freeze({
|
|
|
56051
56515
|
form: "single",
|
|
56052
56516
|
optional: false
|
|
56053
56517
|
}],
|
|
56518
|
+
"weather.getStatus": [{
|
|
56519
|
+
name: "deviceId",
|
|
56520
|
+
form: "single",
|
|
56521
|
+
optional: false
|
|
56522
|
+
}],
|
|
56054
56523
|
"webrtcSession.addIceCandidate": [{
|
|
56055
56524
|
name: "deviceId",
|
|
56056
56525
|
form: "single",
|
|
@@ -56868,7 +57337,7 @@ var PreviewTextField = string().max(200);
|
|
|
56868
57337
|
* Whether the notification's preview is a STILL or a short animation.
|
|
56869
57338
|
*
|
|
56870
57339
|
* The operator's ask, verbatim: *"inviato come gif o video (come per le altre
|
|
56871
|
-
* rule)"* — the other rules already offer an animated preview, and a ten-hour
|
|
57340
|
+
* rule)"* [sent as a gif or video (as for the other rules)] — the other rules already offer an animated preview, and a ten-hour
|
|
56872
57341
|
* night reads better as three seconds of motion than as one frame of it. Both
|
|
56873
57342
|
* modes get the SAME treatment (blurred frame, large centred title); `'gif'`
|
|
56874
57343
|
* simply applies it to a dozen frames sampled across the render and assembles
|