@camstack/addon-provider-rtsp 1.2.141 → 1.2.143
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addon.js +116 -73
- package/dist/addon.mjs +116 -73
- package/i18n/en.json +2 -4
- package/i18n/it.json +2 -4
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -23,7 +23,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
23
23
|
//#endregion
|
|
24
24
|
let node_net = require("node:net");
|
|
25
25
|
node_net = __toESM(node_net);
|
|
26
|
-
//#region ../types/dist/event-category-
|
|
26
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
27
27
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
28
28
|
EventCategory["SystemBoot"] = "system.boot";
|
|
29
29
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -340,6 +340,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
340
340
|
*/
|
|
341
341
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
342
342
|
/**
|
|
343
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
344
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
345
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
346
|
+
* {@link PipelineMotionCalm}.
|
|
347
|
+
*/
|
|
348
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
349
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
350
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
351
|
+
/**
|
|
343
352
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
344
353
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
345
354
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -5446,7 +5455,7 @@ var ZodIssueCode = {
|
|
|
5446
5455
|
var ZodFirstPartyTypeKind;
|
|
5447
5456
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5448
5457
|
//#endregion
|
|
5449
|
-
//#region ../types/dist/sleep-
|
|
5458
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5450
5459
|
/**
|
|
5451
5460
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5452
5461
|
* window to float samples (D455).
|
|
@@ -7975,7 +7984,7 @@ var EntryDescriptorSchema = object({
|
|
|
7975
7984
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
7976
7985
|
fields: record(string(), unknown())
|
|
7977
7986
|
}).strict();
|
|
7978
|
-
/** What crosses the wire
|
|
7987
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
7979
7988
|
var RecordKindDeclarationSchema = object({
|
|
7980
7989
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
7981
7990
|
class: _enum(RECORD_CLASSES),
|
|
@@ -7994,14 +8003,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
7994
8003
|
secretPaths: array(string().min(1)).default([]),
|
|
7995
8004
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
7996
8005
|
secretArrayKeys: record(string(), string()).default({}),
|
|
7997
|
-
/**
|
|
7998
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
7999
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
8000
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
8001
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
8002
|
-
* removal still sends it. Never set it.
|
|
8003
|
-
*/
|
|
8004
|
-
adoptsFrom: string().min(1).optional(),
|
|
8005
8006
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
8006
8007
|
transactFamily: string().min(1).optional(),
|
|
8007
8008
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -12800,17 +12801,6 @@ object({
|
|
|
12800
12801
|
createdAt: number(),
|
|
12801
12802
|
updatedAt: number()
|
|
12802
12803
|
});
|
|
12803
|
-
object({
|
|
12804
|
-
id: string(),
|
|
12805
|
-
label: string(),
|
|
12806
|
-
isAdmin: boolean().default(false),
|
|
12807
|
-
allowedProviders: AllowedProviderSchema,
|
|
12808
|
-
allowedDevices: AllowedDevicesSchema,
|
|
12809
|
-
tokenHash: string(),
|
|
12810
|
-
tokenPrefix: string(),
|
|
12811
|
-
createdAt: number(),
|
|
12812
|
-
lastUsedAt: number().optional()
|
|
12813
|
-
});
|
|
12814
12804
|
object({
|
|
12815
12805
|
id: string(),
|
|
12816
12806
|
userId: string(),
|
|
@@ -16792,16 +16782,36 @@ var RecordKindStateSchema = _enum([
|
|
|
16792
16782
|
var DeclareKindResultSchema = object({
|
|
16793
16783
|
kindId: number().int(),
|
|
16794
16784
|
state: RecordKindStateSchema,
|
|
16795
|
-
createdIndexes: array(string())
|
|
16796
|
-
/**
|
|
16797
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
16798
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
16799
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
16800
|
-
*/
|
|
16801
|
-
adoptionPending: _null()
|
|
16785
|
+
createdIndexes: array(string())
|
|
16802
16786
|
});
|
|
16803
16787
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
16804
16788
|
var SecretRefsList = array(string());
|
|
16789
|
+
/**
|
|
16790
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
16791
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
16792
|
+
*/
|
|
16793
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
16794
|
+
object({
|
|
16795
|
+
op: literal("put"),
|
|
16796
|
+
kind: RecordKindNameSchema,
|
|
16797
|
+
record: RecordInputSchema,
|
|
16798
|
+
ifRev: number().int().min(0).optional()
|
|
16799
|
+
}),
|
|
16800
|
+
object({
|
|
16801
|
+
op: literal("patch"),
|
|
16802
|
+
kind: RecordKindNameSchema,
|
|
16803
|
+
id: RecordIdSchema,
|
|
16804
|
+
data: RecordBodySchema,
|
|
16805
|
+
at: number().int().nullable().optional(),
|
|
16806
|
+
expiresAt: number().int().nullable().optional(),
|
|
16807
|
+
ifRev: number().int().min(1).optional()
|
|
16808
|
+
}),
|
|
16809
|
+
object({
|
|
16810
|
+
op: literal("delete"),
|
|
16811
|
+
kind: RecordKindNameSchema,
|
|
16812
|
+
id: RecordIdSchema
|
|
16813
|
+
})
|
|
16814
|
+
]);
|
|
16805
16815
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
16806
16816
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
16807
16817
|
kind: "mutation",
|
|
@@ -16908,6 +16918,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
16908
16918
|
}), {
|
|
16909
16919
|
kind: "mutation",
|
|
16910
16920
|
auth: "admin"
|
|
16921
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
16922
|
+
results: array(object({
|
|
16923
|
+
rev: number().int().nullable(),
|
|
16924
|
+
deleted: boolean()
|
|
16925
|
+
})),
|
|
16926
|
+
releasedRefs: SecretRefsList,
|
|
16927
|
+
secretRefs: SecretRefsList
|
|
16928
|
+
}), {
|
|
16929
|
+
kind: "mutation",
|
|
16930
|
+
auth: "admin"
|
|
16911
16931
|
}), method(object({
|
|
16912
16932
|
deviceId: number().int(),
|
|
16913
16933
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42502,9 +42522,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42502
42522
|
"node-updating",
|
|
42503
42523
|
"node-inference-unavailable",
|
|
42504
42524
|
"detection-blind",
|
|
42525
|
+
"motion-noisy",
|
|
42526
|
+
"motion-calm",
|
|
42505
42527
|
"recording-stalled",
|
|
42506
42528
|
"recording-healthy",
|
|
42507
42529
|
"recording-degraded",
|
|
42530
|
+
"device-attention-required",
|
|
42531
|
+
"device-attention-resolved",
|
|
42508
42532
|
"storage-location-low",
|
|
42509
42533
|
"storage-location-critical",
|
|
42510
42534
|
"storage-location-ok",
|
|
@@ -48065,7 +48089,6 @@ var RecommendationReasonSchema = discriminatedUnion("kind", [
|
|
|
48065
48089
|
modelId: string()
|
|
48066
48090
|
}),
|
|
48067
48091
|
object({ kind: literal("cpu-device") }),
|
|
48068
|
-
object({ kind: literal("coral-untouched") }),
|
|
48069
48092
|
object({ kind: literal("device-disabled") }),
|
|
48070
48093
|
object({ kind: literal("device-unavailable") }),
|
|
48071
48094
|
object({ kind: literal("node-offline") }),
|
|
@@ -48163,11 +48186,6 @@ var AutoTuneWarningSchema = discriminatedUnion("kind", [
|
|
|
48163
48186
|
kind: literal("detector-store-unreadable"),
|
|
48164
48187
|
error: string()
|
|
48165
48188
|
}),
|
|
48166
|
-
object({
|
|
48167
|
-
kind: literal("coral-enabled"),
|
|
48168
|
-
nodeId: string(),
|
|
48169
|
-
deviceKey: string()
|
|
48170
|
-
}),
|
|
48171
48189
|
object({
|
|
48172
48190
|
kind: literal("custom-pin-kept"),
|
|
48173
48191
|
nodeId: string(),
|
|
@@ -55940,6 +55958,16 @@ var DishwasherStatusSchema = object({
|
|
|
55940
55958
|
powerState: string().nullable(),
|
|
55941
55959
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55942
55960
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55961
|
+
/**
|
|
55962
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
55963
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
55964
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
55965
|
+
*/
|
|
55966
|
+
filterCleaningDue: boolean().nullable(),
|
|
55967
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
55968
|
+
machineCareDue: boolean().nullable(),
|
|
55969
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
55970
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
55943
55971
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55944
55972
|
halfLoad: boolean().nullable(),
|
|
55945
55973
|
hygienePlus: boolean().nullable(),
|
|
@@ -64590,16 +64618,6 @@ var UpdateUserInputSchema = object({
|
|
|
64590
64618
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64591
64619
|
scopes: array(TokenScopeSchema).optional()
|
|
64592
64620
|
});
|
|
64593
|
-
var ApiKeySummarySchema = object({
|
|
64594
|
-
id: string(),
|
|
64595
|
-
label: string(),
|
|
64596
|
-
isAdmin: boolean().default(false),
|
|
64597
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
64598
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64599
|
-
tokenPrefix: string(),
|
|
64600
|
-
createdAt: number(),
|
|
64601
|
-
lastUsedAt: number().optional()
|
|
64602
|
-
});
|
|
64603
64621
|
var OauthSessionSummarySchema = object({
|
|
64604
64622
|
id: string(),
|
|
64605
64623
|
userId: string(),
|
|
@@ -64621,8 +64639,7 @@ var TotpStatusSchema = object({
|
|
|
64621
64639
|
confirmedAt: number().nullable()
|
|
64622
64640
|
});
|
|
64623
64641
|
/**
|
|
64624
|
-
* user-management — singleton capability for user accounts
|
|
64625
|
-
* legacy API-key rows.
|
|
64642
|
+
* user-management — singleton capability for user accounts.
|
|
64626
64643
|
*
|
|
64627
64644
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
64628
64645
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -64678,10 +64695,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
64678
64695
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
64679
64696
|
kind: "mutation",
|
|
64680
64697
|
access: "view"
|
|
64681
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
64682
|
-
kind: "mutation",
|
|
64683
|
-
auth: "admin",
|
|
64684
|
-
access: "delete"
|
|
64685
64698
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
64686
64699
|
kind: "mutation",
|
|
64687
64700
|
auth: "admin",
|
|
@@ -74137,6 +74150,12 @@ Object.freeze({
|
|
|
74137
74150
|
addonId: null,
|
|
74138
74151
|
access: "view"
|
|
74139
74152
|
},
|
|
74153
|
+
"records.transact": {
|
|
74154
|
+
capName: "records",
|
|
74155
|
+
capScope: "system",
|
|
74156
|
+
addonId: null,
|
|
74157
|
+
access: "create"
|
|
74158
|
+
},
|
|
74140
74159
|
"sceneMonitor.captureReference": {
|
|
74141
74160
|
capName: "scene-monitor",
|
|
74142
74161
|
capScope: "device",
|
|
@@ -75469,12 +75488,6 @@ Object.freeze({
|
|
|
75469
75488
|
addonId: null,
|
|
75470
75489
|
access: "view"
|
|
75471
75490
|
},
|
|
75472
|
-
"userManagement.listApiKeys": {
|
|
75473
|
-
capName: "user-management",
|
|
75474
|
-
capScope: "system",
|
|
75475
|
-
addonId: null,
|
|
75476
|
-
access: "view"
|
|
75477
|
-
},
|
|
75478
75491
|
"userManagement.listExternalIdentities": {
|
|
75479
75492
|
capName: "user-management",
|
|
75480
75493
|
capScope: "system",
|
|
@@ -75529,12 +75542,6 @@ Object.freeze({
|
|
|
75529
75542
|
addonId: null,
|
|
75530
75543
|
access: "create"
|
|
75531
75544
|
},
|
|
75532
|
-
"userManagement.revokeApiKey": {
|
|
75533
|
-
capName: "user-management",
|
|
75534
|
-
capScope: "system",
|
|
75535
|
-
addonId: null,
|
|
75536
|
-
access: "delete"
|
|
75537
|
-
},
|
|
75538
75545
|
"userManagement.revokeOauthSession": {
|
|
75539
75546
|
capName: "user-management",
|
|
75540
75547
|
capScope: "system",
|
|
@@ -78965,9 +78972,13 @@ new Map(Object.entries({
|
|
|
78965
78972
|
"stream-online": "device-events",
|
|
78966
78973
|
"stream-offline": "device-events",
|
|
78967
78974
|
"detection-blind": "device-events",
|
|
78975
|
+
"motion-noisy": "device-events",
|
|
78976
|
+
"motion-calm": "device-events",
|
|
78968
78977
|
"recording-stalled": "device-events",
|
|
78969
78978
|
"recording-healthy": "device-events",
|
|
78970
78979
|
"recording-degraded": "device-events",
|
|
78980
|
+
"device-attention-required": "device-events",
|
|
78981
|
+
"device-attention-resolved": "device-events",
|
|
78971
78982
|
"node-online": "system",
|
|
78972
78983
|
"node-offline": "system",
|
|
78973
78984
|
"node-restarting": "system",
|
|
@@ -79050,6 +79061,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79050
79061
|
label: "Detecting nothing",
|
|
79051
79062
|
kinds: ["detection-blind"]
|
|
79052
79063
|
},
|
|
79064
|
+
{
|
|
79065
|
+
id: "motion-noise",
|
|
79066
|
+
family: "device-events",
|
|
79067
|
+
label: "Motion without a subject",
|
|
79068
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
79069
|
+
},
|
|
79053
79070
|
{
|
|
79054
79071
|
id: "recording",
|
|
79055
79072
|
family: "device-events",
|
|
@@ -79060,6 +79077,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79060
79077
|
"recording-degraded"
|
|
79061
79078
|
]
|
|
79062
79079
|
},
|
|
79080
|
+
{
|
|
79081
|
+
id: "device-attention",
|
|
79082
|
+
family: "device-events",
|
|
79083
|
+
label: "Needs attention",
|
|
79084
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
79085
|
+
},
|
|
79063
79086
|
{
|
|
79064
79087
|
id: "nodes",
|
|
79065
79088
|
family: "system",
|
|
@@ -79199,6 +79222,7 @@ var ALERT_EPISODE = [
|
|
|
79199
79222
|
"alert-error",
|
|
79200
79223
|
"alert-critical-resolved"
|
|
79201
79224
|
];
|
|
79225
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
79202
79226
|
var UPDATES = [
|
|
79203
79227
|
"addon-update-available",
|
|
79204
79228
|
"server-update-available",
|
|
@@ -79228,9 +79252,12 @@ var DEVICE_EVENTS = [
|
|
|
79228
79252
|
"stream-online",
|
|
79229
79253
|
"stream-offline",
|
|
79230
79254
|
"detection-blind",
|
|
79255
|
+
"motion-noisy",
|
|
79256
|
+
"motion-calm",
|
|
79231
79257
|
"recording-stalled",
|
|
79232
79258
|
"recording-healthy",
|
|
79233
79259
|
"recording-degraded",
|
|
79260
|
+
...DEVICE_ATTENTION,
|
|
79234
79261
|
...ALARM
|
|
79235
79262
|
];
|
|
79236
79263
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -79398,7 +79425,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
79398
79425
|
[...RULE_TEXT],
|
|
79399
79426
|
[...RULE_TEXT],
|
|
79400
79427
|
[...RULE_TEXT],
|
|
79401
|
-
|
|
79428
|
+
[...RULE_TEXT],
|
|
79429
|
+
[...RULE_TEXT],
|
|
79430
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79402
79431
|
[...RULE_TEXT],
|
|
79403
79432
|
[...RULE_TEXT],
|
|
79404
79433
|
[...RULE_TEXT],
|
|
@@ -79420,11 +79449,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
79420
79449
|
[...RULE_TEXT],
|
|
79421
79450
|
[...RULE_TEXT],
|
|
79422
79451
|
[...RULE_TEXT],
|
|
79452
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79423
79453
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79454
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79424
79455
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79425
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79426
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79427
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79456
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79428
79457
|
[...RULE_TEXT],
|
|
79429
79458
|
[...RULE_TEXT],
|
|
79430
79459
|
[...RULE_TEXT],
|
|
@@ -79500,6 +79529,15 @@ new Map([
|
|
|
79500
79529
|
snapshotLabel: "Tanks low or full now",
|
|
79501
79530
|
snapshotSection: "tanks"
|
|
79502
79531
|
},
|
|
79532
|
+
{
|
|
79533
|
+
id: "motion-noise",
|
|
79534
|
+
family: "device-events",
|
|
79535
|
+
label: "Motion without a subject (constant / calm again)",
|
|
79536
|
+
bad: ["motion-noisy"],
|
|
79537
|
+
recovery: ["motion-calm"],
|
|
79538
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
79539
|
+
snapshotSection: null
|
|
79540
|
+
},
|
|
79503
79541
|
{
|
|
79504
79542
|
id: "recording-health",
|
|
79505
79543
|
family: "device-events",
|
|
@@ -79509,6 +79547,15 @@ new Map([
|
|
|
79509
79547
|
snapshotLabel: "Recordings stalled now",
|
|
79510
79548
|
snapshotSection: null
|
|
79511
79549
|
},
|
|
79550
|
+
{
|
|
79551
|
+
id: "device-attention",
|
|
79552
|
+
family: "device-events",
|
|
79553
|
+
label: "Device needs attention (raised / resolved)",
|
|
79554
|
+
bad: ["device-attention-required"],
|
|
79555
|
+
recovery: ["device-attention-resolved"],
|
|
79556
|
+
snapshotLabel: "Devices needing attention now",
|
|
79557
|
+
snapshotSection: null
|
|
79558
|
+
},
|
|
79512
79559
|
{
|
|
79513
79560
|
id: "node-connectivity",
|
|
79514
79561
|
family: "system",
|
|
@@ -80328,7 +80375,7 @@ var RtspCamera = class RtspCamera extends BaseDevice {
|
|
|
80328
80375
|
id: "streams",
|
|
80329
80376
|
title: "RTSP Streams",
|
|
80330
80377
|
titleKey: "provider-rtsp:schema.s_streams.title",
|
|
80331
|
-
description: "
|
|
80378
|
+
description: "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
80332
80379
|
descriptionKey: "provider-rtsp:schema.s_streams.description",
|
|
80333
80380
|
columns: 1,
|
|
80334
80381
|
fields: [{
|
|
@@ -80358,8 +80405,6 @@ var RtspCamera = class RtspCamera extends BaseDevice {
|
|
|
80358
80405
|
key: "snapshotUrl",
|
|
80359
80406
|
label: "Snapshot URL",
|
|
80360
80407
|
labelKey: "provider-rtsp:schema.s_snapshot.snapshotUrl.label",
|
|
80361
|
-
description: "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
80362
|
-
descriptionKey: "provider-rtsp:schema.s_snapshot.snapshotUrl.description",
|
|
80363
80408
|
placeholder: "http://host/ISAPI/Streaming/channels/101/picture",
|
|
80364
80409
|
inputType: "url"
|
|
80365
80410
|
}]
|
|
@@ -80613,7 +80658,7 @@ function buildCreationFormSchema() {
|
|
|
80613
80658
|
id: "streams",
|
|
80614
80659
|
title: "RTSP Streams",
|
|
80615
80660
|
titleKey: "provider-rtsp:creation.s_streams.title",
|
|
80616
|
-
description: "
|
|
80661
|
+
description: "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
80617
80662
|
descriptionKey: "provider-rtsp:creation.s_streams.description",
|
|
80618
80663
|
columns: 1,
|
|
80619
80664
|
fields: [{
|
|
@@ -80643,8 +80688,6 @@ function buildCreationFormSchema() {
|
|
|
80643
80688
|
key: "snapshotUrl",
|
|
80644
80689
|
label: "Snapshot URL",
|
|
80645
80690
|
labelKey: "provider-rtsp:creation.s_snapshot.snapshotUrl.label",
|
|
80646
|
-
description: "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
80647
|
-
descriptionKey: "provider-rtsp:creation.s_snapshot.snapshotUrl.description",
|
|
80648
80691
|
placeholder: "http://host/ISAPI/Streaming/channels/101/picture",
|
|
80649
80692
|
inputType: "url"
|
|
80650
80693
|
}]
|
package/dist/addon.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import net from "node:net";
|
|
2
|
-
//#region ../types/dist/event-category-
|
|
2
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
3
3
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4
4
|
EventCategory["SystemBoot"] = "system.boot";
|
|
5
5
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -316,6 +316,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
316
316
|
*/
|
|
317
317
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
318
318
|
/**
|
|
319
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
320
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
321
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
322
|
+
* {@link PipelineMotionCalm}.
|
|
323
|
+
*/
|
|
324
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
325
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
326
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
327
|
+
/**
|
|
319
328
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
320
329
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
321
330
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -5422,7 +5431,7 @@ var ZodIssueCode = {
|
|
|
5422
5431
|
var ZodFirstPartyTypeKind;
|
|
5423
5432
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5424
5433
|
//#endregion
|
|
5425
|
-
//#region ../types/dist/sleep-
|
|
5434
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5426
5435
|
/**
|
|
5427
5436
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5428
5437
|
* window to float samples (D455).
|
|
@@ -7951,7 +7960,7 @@ var EntryDescriptorSchema = object({
|
|
|
7951
7960
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
7952
7961
|
fields: record(string(), unknown())
|
|
7953
7962
|
}).strict();
|
|
7954
|
-
/** What crosses the wire
|
|
7963
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
7955
7964
|
var RecordKindDeclarationSchema = object({
|
|
7956
7965
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
7957
7966
|
class: _enum(RECORD_CLASSES),
|
|
@@ -7970,14 +7979,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
7970
7979
|
secretPaths: array(string().min(1)).default([]),
|
|
7971
7980
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
7972
7981
|
secretArrayKeys: record(string(), string()).default({}),
|
|
7973
|
-
/**
|
|
7974
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
7975
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
7976
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
7977
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
7978
|
-
* removal still sends it. Never set it.
|
|
7979
|
-
*/
|
|
7980
|
-
adoptsFrom: string().min(1).optional(),
|
|
7981
7982
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
7982
7983
|
transactFamily: string().min(1).optional(),
|
|
7983
7984
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -12776,17 +12777,6 @@ object({
|
|
|
12776
12777
|
createdAt: number(),
|
|
12777
12778
|
updatedAt: number()
|
|
12778
12779
|
});
|
|
12779
|
-
object({
|
|
12780
|
-
id: string(),
|
|
12781
|
-
label: string(),
|
|
12782
|
-
isAdmin: boolean().default(false),
|
|
12783
|
-
allowedProviders: AllowedProviderSchema,
|
|
12784
|
-
allowedDevices: AllowedDevicesSchema,
|
|
12785
|
-
tokenHash: string(),
|
|
12786
|
-
tokenPrefix: string(),
|
|
12787
|
-
createdAt: number(),
|
|
12788
|
-
lastUsedAt: number().optional()
|
|
12789
|
-
});
|
|
12790
12780
|
object({
|
|
12791
12781
|
id: string(),
|
|
12792
12782
|
userId: string(),
|
|
@@ -16768,16 +16758,36 @@ var RecordKindStateSchema = _enum([
|
|
|
16768
16758
|
var DeclareKindResultSchema = object({
|
|
16769
16759
|
kindId: number().int(),
|
|
16770
16760
|
state: RecordKindStateSchema,
|
|
16771
|
-
createdIndexes: array(string())
|
|
16772
|
-
/**
|
|
16773
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
16774
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
16775
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
16776
|
-
*/
|
|
16777
|
-
adoptionPending: _null()
|
|
16761
|
+
createdIndexes: array(string())
|
|
16778
16762
|
});
|
|
16779
16763
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
16780
16764
|
var SecretRefsList = array(string());
|
|
16765
|
+
/**
|
|
16766
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
16767
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
16768
|
+
*/
|
|
16769
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
16770
|
+
object({
|
|
16771
|
+
op: literal("put"),
|
|
16772
|
+
kind: RecordKindNameSchema,
|
|
16773
|
+
record: RecordInputSchema,
|
|
16774
|
+
ifRev: number().int().min(0).optional()
|
|
16775
|
+
}),
|
|
16776
|
+
object({
|
|
16777
|
+
op: literal("patch"),
|
|
16778
|
+
kind: RecordKindNameSchema,
|
|
16779
|
+
id: RecordIdSchema,
|
|
16780
|
+
data: RecordBodySchema,
|
|
16781
|
+
at: number().int().nullable().optional(),
|
|
16782
|
+
expiresAt: number().int().nullable().optional(),
|
|
16783
|
+
ifRev: number().int().min(1).optional()
|
|
16784
|
+
}),
|
|
16785
|
+
object({
|
|
16786
|
+
op: literal("delete"),
|
|
16787
|
+
kind: RecordKindNameSchema,
|
|
16788
|
+
id: RecordIdSchema
|
|
16789
|
+
})
|
|
16790
|
+
]);
|
|
16781
16791
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
16782
16792
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
16783
16793
|
kind: "mutation",
|
|
@@ -16884,6 +16894,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
16884
16894
|
}), {
|
|
16885
16895
|
kind: "mutation",
|
|
16886
16896
|
auth: "admin"
|
|
16897
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
16898
|
+
results: array(object({
|
|
16899
|
+
rev: number().int().nullable(),
|
|
16900
|
+
deleted: boolean()
|
|
16901
|
+
})),
|
|
16902
|
+
releasedRefs: SecretRefsList,
|
|
16903
|
+
secretRefs: SecretRefsList
|
|
16904
|
+
}), {
|
|
16905
|
+
kind: "mutation",
|
|
16906
|
+
auth: "admin"
|
|
16887
16907
|
}), method(object({
|
|
16888
16908
|
deviceId: number().int(),
|
|
16889
16909
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42478,9 +42498,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42478
42498
|
"node-updating",
|
|
42479
42499
|
"node-inference-unavailable",
|
|
42480
42500
|
"detection-blind",
|
|
42501
|
+
"motion-noisy",
|
|
42502
|
+
"motion-calm",
|
|
42481
42503
|
"recording-stalled",
|
|
42482
42504
|
"recording-healthy",
|
|
42483
42505
|
"recording-degraded",
|
|
42506
|
+
"device-attention-required",
|
|
42507
|
+
"device-attention-resolved",
|
|
42484
42508
|
"storage-location-low",
|
|
42485
42509
|
"storage-location-critical",
|
|
42486
42510
|
"storage-location-ok",
|
|
@@ -48041,7 +48065,6 @@ var RecommendationReasonSchema = discriminatedUnion("kind", [
|
|
|
48041
48065
|
modelId: string()
|
|
48042
48066
|
}),
|
|
48043
48067
|
object({ kind: literal("cpu-device") }),
|
|
48044
|
-
object({ kind: literal("coral-untouched") }),
|
|
48045
48068
|
object({ kind: literal("device-disabled") }),
|
|
48046
48069
|
object({ kind: literal("device-unavailable") }),
|
|
48047
48070
|
object({ kind: literal("node-offline") }),
|
|
@@ -48139,11 +48162,6 @@ var AutoTuneWarningSchema = discriminatedUnion("kind", [
|
|
|
48139
48162
|
kind: literal("detector-store-unreadable"),
|
|
48140
48163
|
error: string()
|
|
48141
48164
|
}),
|
|
48142
|
-
object({
|
|
48143
|
-
kind: literal("coral-enabled"),
|
|
48144
|
-
nodeId: string(),
|
|
48145
|
-
deviceKey: string()
|
|
48146
|
-
}),
|
|
48147
48165
|
object({
|
|
48148
48166
|
kind: literal("custom-pin-kept"),
|
|
48149
48167
|
nodeId: string(),
|
|
@@ -55916,6 +55934,16 @@ var DishwasherStatusSchema = object({
|
|
|
55916
55934
|
powerState: string().nullable(),
|
|
55917
55935
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55918
55936
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55937
|
+
/**
|
|
55938
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
55939
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
55940
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
55941
|
+
*/
|
|
55942
|
+
filterCleaningDue: boolean().nullable(),
|
|
55943
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
55944
|
+
machineCareDue: boolean().nullable(),
|
|
55945
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
55946
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
55919
55947
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55920
55948
|
halfLoad: boolean().nullable(),
|
|
55921
55949
|
hygienePlus: boolean().nullable(),
|
|
@@ -64566,16 +64594,6 @@ var UpdateUserInputSchema = object({
|
|
|
64566
64594
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64567
64595
|
scopes: array(TokenScopeSchema).optional()
|
|
64568
64596
|
});
|
|
64569
|
-
var ApiKeySummarySchema = object({
|
|
64570
|
-
id: string(),
|
|
64571
|
-
label: string(),
|
|
64572
|
-
isAdmin: boolean().default(false),
|
|
64573
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
64574
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
64575
|
-
tokenPrefix: string(),
|
|
64576
|
-
createdAt: number(),
|
|
64577
|
-
lastUsedAt: number().optional()
|
|
64578
|
-
});
|
|
64579
64597
|
var OauthSessionSummarySchema = object({
|
|
64580
64598
|
id: string(),
|
|
64581
64599
|
userId: string(),
|
|
@@ -64597,8 +64615,7 @@ var TotpStatusSchema = object({
|
|
|
64597
64615
|
confirmedAt: number().nullable()
|
|
64598
64616
|
});
|
|
64599
64617
|
/**
|
|
64600
|
-
* user-management — singleton capability for user accounts
|
|
64601
|
-
* legacy API-key rows.
|
|
64618
|
+
* user-management — singleton capability for user accounts.
|
|
64602
64619
|
*
|
|
64603
64620
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
64604
64621
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -64654,10 +64671,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
64654
64671
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
64655
64672
|
kind: "mutation",
|
|
64656
64673
|
access: "view"
|
|
64657
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
64658
|
-
kind: "mutation",
|
|
64659
|
-
auth: "admin",
|
|
64660
|
-
access: "delete"
|
|
64661
64674
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
64662
64675
|
kind: "mutation",
|
|
64663
64676
|
auth: "admin",
|
|
@@ -74113,6 +74126,12 @@ Object.freeze({
|
|
|
74113
74126
|
addonId: null,
|
|
74114
74127
|
access: "view"
|
|
74115
74128
|
},
|
|
74129
|
+
"records.transact": {
|
|
74130
|
+
capName: "records",
|
|
74131
|
+
capScope: "system",
|
|
74132
|
+
addonId: null,
|
|
74133
|
+
access: "create"
|
|
74134
|
+
},
|
|
74116
74135
|
"sceneMonitor.captureReference": {
|
|
74117
74136
|
capName: "scene-monitor",
|
|
74118
74137
|
capScope: "device",
|
|
@@ -75445,12 +75464,6 @@ Object.freeze({
|
|
|
75445
75464
|
addonId: null,
|
|
75446
75465
|
access: "view"
|
|
75447
75466
|
},
|
|
75448
|
-
"userManagement.listApiKeys": {
|
|
75449
|
-
capName: "user-management",
|
|
75450
|
-
capScope: "system",
|
|
75451
|
-
addonId: null,
|
|
75452
|
-
access: "view"
|
|
75453
|
-
},
|
|
75454
75467
|
"userManagement.listExternalIdentities": {
|
|
75455
75468
|
capName: "user-management",
|
|
75456
75469
|
capScope: "system",
|
|
@@ -75505,12 +75518,6 @@ Object.freeze({
|
|
|
75505
75518
|
addonId: null,
|
|
75506
75519
|
access: "create"
|
|
75507
75520
|
},
|
|
75508
|
-
"userManagement.revokeApiKey": {
|
|
75509
|
-
capName: "user-management",
|
|
75510
|
-
capScope: "system",
|
|
75511
|
-
addonId: null,
|
|
75512
|
-
access: "delete"
|
|
75513
|
-
},
|
|
75514
75521
|
"userManagement.revokeOauthSession": {
|
|
75515
75522
|
capName: "user-management",
|
|
75516
75523
|
capScope: "system",
|
|
@@ -78941,9 +78948,13 @@ new Map(Object.entries({
|
|
|
78941
78948
|
"stream-online": "device-events",
|
|
78942
78949
|
"stream-offline": "device-events",
|
|
78943
78950
|
"detection-blind": "device-events",
|
|
78951
|
+
"motion-noisy": "device-events",
|
|
78952
|
+
"motion-calm": "device-events",
|
|
78944
78953
|
"recording-stalled": "device-events",
|
|
78945
78954
|
"recording-healthy": "device-events",
|
|
78946
78955
|
"recording-degraded": "device-events",
|
|
78956
|
+
"device-attention-required": "device-events",
|
|
78957
|
+
"device-attention-resolved": "device-events",
|
|
78947
78958
|
"node-online": "system",
|
|
78948
78959
|
"node-offline": "system",
|
|
78949
78960
|
"node-restarting": "system",
|
|
@@ -79026,6 +79037,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79026
79037
|
label: "Detecting nothing",
|
|
79027
79038
|
kinds: ["detection-blind"]
|
|
79028
79039
|
},
|
|
79040
|
+
{
|
|
79041
|
+
id: "motion-noise",
|
|
79042
|
+
family: "device-events",
|
|
79043
|
+
label: "Motion without a subject",
|
|
79044
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
79045
|
+
},
|
|
79029
79046
|
{
|
|
79030
79047
|
id: "recording",
|
|
79031
79048
|
family: "device-events",
|
|
@@ -79036,6 +79053,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
79036
79053
|
"recording-degraded"
|
|
79037
79054
|
]
|
|
79038
79055
|
},
|
|
79056
|
+
{
|
|
79057
|
+
id: "device-attention",
|
|
79058
|
+
family: "device-events",
|
|
79059
|
+
label: "Needs attention",
|
|
79060
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
79061
|
+
},
|
|
79039
79062
|
{
|
|
79040
79063
|
id: "nodes",
|
|
79041
79064
|
family: "system",
|
|
@@ -79175,6 +79198,7 @@ var ALERT_EPISODE = [
|
|
|
79175
79198
|
"alert-error",
|
|
79176
79199
|
"alert-critical-resolved"
|
|
79177
79200
|
];
|
|
79201
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
79178
79202
|
var UPDATES = [
|
|
79179
79203
|
"addon-update-available",
|
|
79180
79204
|
"server-update-available",
|
|
@@ -79204,9 +79228,12 @@ var DEVICE_EVENTS = [
|
|
|
79204
79228
|
"stream-online",
|
|
79205
79229
|
"stream-offline",
|
|
79206
79230
|
"detection-blind",
|
|
79231
|
+
"motion-noisy",
|
|
79232
|
+
"motion-calm",
|
|
79207
79233
|
"recording-stalled",
|
|
79208
79234
|
"recording-healthy",
|
|
79209
79235
|
"recording-degraded",
|
|
79236
|
+
...DEVICE_ATTENTION,
|
|
79210
79237
|
...ALARM
|
|
79211
79238
|
];
|
|
79212
79239
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -79374,7 +79401,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
79374
79401
|
[...RULE_TEXT],
|
|
79375
79402
|
[...RULE_TEXT],
|
|
79376
79403
|
[...RULE_TEXT],
|
|
79377
|
-
|
|
79404
|
+
[...RULE_TEXT],
|
|
79405
|
+
[...RULE_TEXT],
|
|
79406
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79378
79407
|
[...RULE_TEXT],
|
|
79379
79408
|
[...RULE_TEXT],
|
|
79380
79409
|
[...RULE_TEXT],
|
|
@@ -79396,11 +79425,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
79396
79425
|
[...RULE_TEXT],
|
|
79397
79426
|
[...RULE_TEXT],
|
|
79398
79427
|
[...RULE_TEXT],
|
|
79428
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79399
79429
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79430
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79400
79431
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79401
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79402
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79403
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79432
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
79404
79433
|
[...RULE_TEXT],
|
|
79405
79434
|
[...RULE_TEXT],
|
|
79406
79435
|
[...RULE_TEXT],
|
|
@@ -79476,6 +79505,15 @@ new Map([
|
|
|
79476
79505
|
snapshotLabel: "Tanks low or full now",
|
|
79477
79506
|
snapshotSection: "tanks"
|
|
79478
79507
|
},
|
|
79508
|
+
{
|
|
79509
|
+
id: "motion-noise",
|
|
79510
|
+
family: "device-events",
|
|
79511
|
+
label: "Motion without a subject (constant / calm again)",
|
|
79512
|
+
bad: ["motion-noisy"],
|
|
79513
|
+
recovery: ["motion-calm"],
|
|
79514
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
79515
|
+
snapshotSection: null
|
|
79516
|
+
},
|
|
79479
79517
|
{
|
|
79480
79518
|
id: "recording-health",
|
|
79481
79519
|
family: "device-events",
|
|
@@ -79485,6 +79523,15 @@ new Map([
|
|
|
79485
79523
|
snapshotLabel: "Recordings stalled now",
|
|
79486
79524
|
snapshotSection: null
|
|
79487
79525
|
},
|
|
79526
|
+
{
|
|
79527
|
+
id: "device-attention",
|
|
79528
|
+
family: "device-events",
|
|
79529
|
+
label: "Device needs attention (raised / resolved)",
|
|
79530
|
+
bad: ["device-attention-required"],
|
|
79531
|
+
recovery: ["device-attention-resolved"],
|
|
79532
|
+
snapshotLabel: "Devices needing attention now",
|
|
79533
|
+
snapshotSection: null
|
|
79534
|
+
},
|
|
79488
79535
|
{
|
|
79489
79536
|
id: "node-connectivity",
|
|
79490
79537
|
family: "system",
|
|
@@ -80304,7 +80351,7 @@ var RtspCamera = class RtspCamera extends BaseDevice {
|
|
|
80304
80351
|
id: "streams",
|
|
80305
80352
|
title: "RTSP Streams",
|
|
80306
80353
|
titleKey: "provider-rtsp:schema.s_streams.title",
|
|
80307
|
-
description: "
|
|
80354
|
+
description: "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
80308
80355
|
descriptionKey: "provider-rtsp:schema.s_streams.description",
|
|
80309
80356
|
columns: 1,
|
|
80310
80357
|
fields: [{
|
|
@@ -80334,8 +80381,6 @@ var RtspCamera = class RtspCamera extends BaseDevice {
|
|
|
80334
80381
|
key: "snapshotUrl",
|
|
80335
80382
|
label: "Snapshot URL",
|
|
80336
80383
|
labelKey: "provider-rtsp:schema.s_snapshot.snapshotUrl.label",
|
|
80337
|
-
description: "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
80338
|
-
descriptionKey: "provider-rtsp:schema.s_snapshot.snapshotUrl.description",
|
|
80339
80384
|
placeholder: "http://host/ISAPI/Streaming/channels/101/picture",
|
|
80340
80385
|
inputType: "url"
|
|
80341
80386
|
}]
|
|
@@ -80589,7 +80634,7 @@ function buildCreationFormSchema() {
|
|
|
80589
80634
|
id: "streams",
|
|
80590
80635
|
title: "RTSP Streams",
|
|
80591
80636
|
titleKey: "provider-rtsp:creation.s_streams.title",
|
|
80592
|
-
description: "
|
|
80637
|
+
description: "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
80593
80638
|
descriptionKey: "provider-rtsp:creation.s_streams.description",
|
|
80594
80639
|
columns: 1,
|
|
80595
80640
|
fields: [{
|
|
@@ -80619,8 +80664,6 @@ function buildCreationFormSchema() {
|
|
|
80619
80664
|
key: "snapshotUrl",
|
|
80620
80665
|
label: "Snapshot URL",
|
|
80621
80666
|
labelKey: "provider-rtsp:creation.s_snapshot.snapshotUrl.label",
|
|
80622
|
-
description: "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
80623
|
-
descriptionKey: "provider-rtsp:creation.s_snapshot.snapshotUrl.description",
|
|
80624
80667
|
placeholder: "http://host/ISAPI/Streaming/channels/101/picture",
|
|
80625
80668
|
inputType: "url"
|
|
80626
80669
|
}]
|
package/i18n/en.json
CHANGED
|
@@ -2,21 +2,19 @@
|
|
|
2
2
|
"creation.s_identity.title": "Camera",
|
|
3
3
|
"creation.s_identity.name.label": "Name",
|
|
4
4
|
"creation.s_streams.title": "RTSP Streams",
|
|
5
|
-
"creation.s_streams.description": "
|
|
5
|
+
"creation.s_streams.description": "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
6
6
|
"creation.s_streams.streams.label": "RTSP stream URL",
|
|
7
7
|
"creation.s_snapshot.title": "Snapshot",
|
|
8
8
|
"creation.s_snapshot.snapshotUrl.label": "Snapshot URL",
|
|
9
|
-
"creation.s_snapshot.snapshotUrl.description": "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
10
9
|
"creation.s_credentials.title": "Credentials",
|
|
11
10
|
"creation.s_credentials.description": "Optional. If the RTSP URL already contains user:pass@ you can leave these empty.",
|
|
12
11
|
"creation.s_credentials.username.label": "Username",
|
|
13
12
|
"creation.s_credentials.password.label": "Password",
|
|
14
13
|
"schema.s_streams.title": "RTSP Streams",
|
|
15
|
-
"schema.s_streams.description": "
|
|
14
|
+
"schema.s_streams.description": "1–3 RTSP URLs; the broker assigns the high / mid / low profiles by resolution.",
|
|
16
15
|
"schema.s_streams.streams.label": "RTSP stream URL",
|
|
17
16
|
"schema.s_snapshot.title": "Snapshot",
|
|
18
17
|
"schema.s_snapshot.snapshotUrl.label": "Snapshot URL",
|
|
19
|
-
"schema.s_snapshot.snapshotUrl.description": "Optional HTTP(S) endpoint that returns a JPEG still.",
|
|
20
18
|
"schema.s_credentials.title": "Credentials",
|
|
21
19
|
"schema.s_credentials.description": "Optional. If the RTSP URL already contains user:pass@ you can leave these empty.",
|
|
22
20
|
"schema.s_credentials.username.label": "Username",
|
package/i18n/it.json
CHANGED
|
@@ -2,21 +2,19 @@
|
|
|
2
2
|
"creation.s_identity.title": "Telecamera",
|
|
3
3
|
"creation.s_identity.name.label": "Nome",
|
|
4
4
|
"creation.s_streams.title": "Flussi RTSP",
|
|
5
|
-
"creation.s_streams.description": "
|
|
5
|
+
"creation.s_streams.description": "1–3 URL RTSP; il broker assegna i profili high / mid / low in base alla risoluzione.",
|
|
6
6
|
"creation.s_streams.streams.label": "URL del flusso RTSP",
|
|
7
7
|
"creation.s_snapshot.title": "Snapshot",
|
|
8
8
|
"creation.s_snapshot.snapshotUrl.label": "URL dello snapshot",
|
|
9
|
-
"creation.s_snapshot.snapshotUrl.description": "Endpoint HTTP(S) facoltativo che restituisce un'immagine JPEG fissa.",
|
|
10
9
|
"creation.s_credentials.title": "Credenziali",
|
|
11
10
|
"creation.s_credentials.description": "Facoltativo. Se l'URL RTSP contiene già utente:password@ puoi lasciare questi campi vuoti.",
|
|
12
11
|
"creation.s_credentials.username.label": "Nome utente",
|
|
13
12
|
"creation.s_credentials.password.label": "Password",
|
|
14
13
|
"schema.s_streams.title": "Flussi RTSP",
|
|
15
|
-
"schema.s_streams.description": "
|
|
14
|
+
"schema.s_streams.description": "1–3 URL RTSP; il broker assegna i profili high / mid / low in base alla risoluzione.",
|
|
16
15
|
"schema.s_streams.streams.label": "URL del flusso RTSP",
|
|
17
16
|
"schema.s_snapshot.title": "Snapshot",
|
|
18
17
|
"schema.s_snapshot.snapshotUrl.label": "URL dello snapshot",
|
|
19
|
-
"schema.s_snapshot.snapshotUrl.description": "Endpoint HTTP(S) facoltativo che restituisce un'immagine JPEG fissa.",
|
|
20
18
|
"schema.s_credentials.title": "Credenziali",
|
|
21
19
|
"schema.s_credentials.description": "Facoltativo. Se l'URL RTSP contiene già utente:password@ puoi lasciare questi campi vuoti.",
|
|
22
20
|
"schema.s_credentials.username.label": "Nome utente",
|