@camstack/addon-provider-amcrest 0.2.152 → 0.2.154
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 +120 -83
- package/dist/addon.mjs +120 -83
- package/i18n/en.json +6 -11
- package/i18n/it.json +6 -11
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -35,7 +35,7 @@ let node_stream_promises = require("node:stream/promises");
|
|
|
35
35
|
let node_child_process = require("node:child_process");
|
|
36
36
|
require("node:zlib");
|
|
37
37
|
let node_os = require("node:os");
|
|
38
|
-
//#region ../types/dist/event-category-
|
|
38
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
39
39
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
40
40
|
EventCategory["SystemBoot"] = "system.boot";
|
|
41
41
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -352,6 +352,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
352
352
|
*/
|
|
353
353
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
354
354
|
/**
|
|
355
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
356
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
357
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
358
|
+
* {@link PipelineMotionCalm}.
|
|
359
|
+
*/
|
|
360
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
361
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
362
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
363
|
+
/**
|
|
355
364
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
356
365
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
357
366
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -5458,7 +5467,7 @@ var ZodIssueCode = {
|
|
|
5458
5467
|
var ZodFirstPartyTypeKind;
|
|
5459
5468
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5460
5469
|
//#endregion
|
|
5461
|
-
//#region ../types/dist/sleep-
|
|
5470
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5462
5471
|
/**
|
|
5463
5472
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5464
5473
|
* window to float samples (D455).
|
|
@@ -7987,7 +7996,7 @@ var EntryDescriptorSchema = object({
|
|
|
7987
7996
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
7988
7997
|
fields: record(string(), unknown())
|
|
7989
7998
|
}).strict();
|
|
7990
|
-
/** What crosses the wire
|
|
7999
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
7991
8000
|
var RecordKindDeclarationSchema = object({
|
|
7992
8001
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
7993
8002
|
class: _enum(RECORD_CLASSES),
|
|
@@ -8006,14 +8015,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
8006
8015
|
secretPaths: array(string().min(1)).default([]),
|
|
8007
8016
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
8008
8017
|
secretArrayKeys: record(string(), string()).default({}),
|
|
8009
|
-
/**
|
|
8010
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
8011
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
8012
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
8013
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
8014
|
-
* removal still sends it. Never set it.
|
|
8015
|
-
*/
|
|
8016
|
-
adoptsFrom: string().min(1).optional(),
|
|
8017
8018
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
8018
8019
|
transactFamily: string().min(1).optional(),
|
|
8019
8020
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -12715,17 +12716,6 @@ object({
|
|
|
12715
12716
|
createdAt: number(),
|
|
12716
12717
|
updatedAt: number()
|
|
12717
12718
|
});
|
|
12718
|
-
object({
|
|
12719
|
-
id: string(),
|
|
12720
|
-
label: string(),
|
|
12721
|
-
isAdmin: boolean().default(false),
|
|
12722
|
-
allowedProviders: AllowedProviderSchema,
|
|
12723
|
-
allowedDevices: AllowedDevicesSchema,
|
|
12724
|
-
tokenHash: string(),
|
|
12725
|
-
tokenPrefix: string(),
|
|
12726
|
-
createdAt: number(),
|
|
12727
|
-
lastUsedAt: number().optional()
|
|
12728
|
-
});
|
|
12729
12719
|
object({
|
|
12730
12720
|
id: string(),
|
|
12731
12721
|
userId: string(),
|
|
@@ -16707,16 +16697,36 @@ var RecordKindStateSchema = _enum([
|
|
|
16707
16697
|
var DeclareKindResultSchema = object({
|
|
16708
16698
|
kindId: number().int(),
|
|
16709
16699
|
state: RecordKindStateSchema,
|
|
16710
|
-
createdIndexes: array(string())
|
|
16711
|
-
/**
|
|
16712
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
16713
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
16714
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
16715
|
-
*/
|
|
16716
|
-
adoptionPending: _null()
|
|
16700
|
+
createdIndexes: array(string())
|
|
16717
16701
|
});
|
|
16718
16702
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
16719
16703
|
var SecretRefsList = array(string());
|
|
16704
|
+
/**
|
|
16705
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
16706
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
16707
|
+
*/
|
|
16708
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
16709
|
+
object({
|
|
16710
|
+
op: literal("put"),
|
|
16711
|
+
kind: RecordKindNameSchema,
|
|
16712
|
+
record: RecordInputSchema,
|
|
16713
|
+
ifRev: number().int().min(0).optional()
|
|
16714
|
+
}),
|
|
16715
|
+
object({
|
|
16716
|
+
op: literal("patch"),
|
|
16717
|
+
kind: RecordKindNameSchema,
|
|
16718
|
+
id: RecordIdSchema,
|
|
16719
|
+
data: RecordBodySchema,
|
|
16720
|
+
at: number().int().nullable().optional(),
|
|
16721
|
+
expiresAt: number().int().nullable().optional(),
|
|
16722
|
+
ifRev: number().int().min(1).optional()
|
|
16723
|
+
}),
|
|
16724
|
+
object({
|
|
16725
|
+
op: literal("delete"),
|
|
16726
|
+
kind: RecordKindNameSchema,
|
|
16727
|
+
id: RecordIdSchema
|
|
16728
|
+
})
|
|
16729
|
+
]);
|
|
16720
16730
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
16721
16731
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
16722
16732
|
kind: "mutation",
|
|
@@ -16823,6 +16833,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
16823
16833
|
}), {
|
|
16824
16834
|
kind: "mutation",
|
|
16825
16835
|
auth: "admin"
|
|
16836
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
16837
|
+
results: array(object({
|
|
16838
|
+
rev: number().int().nullable(),
|
|
16839
|
+
deleted: boolean()
|
|
16840
|
+
})),
|
|
16841
|
+
releasedRefs: SecretRefsList,
|
|
16842
|
+
secretRefs: SecretRefsList
|
|
16843
|
+
}), {
|
|
16844
|
+
kind: "mutation",
|
|
16845
|
+
auth: "admin"
|
|
16826
16846
|
}), method(object({
|
|
16827
16847
|
deviceId: number().int(),
|
|
16828
16848
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42530,9 +42550,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42530
42550
|
"node-updating",
|
|
42531
42551
|
"node-inference-unavailable",
|
|
42532
42552
|
"detection-blind",
|
|
42553
|
+
"motion-noisy",
|
|
42554
|
+
"motion-calm",
|
|
42533
42555
|
"recording-stalled",
|
|
42534
42556
|
"recording-healthy",
|
|
42535
42557
|
"recording-degraded",
|
|
42558
|
+
"device-attention-required",
|
|
42559
|
+
"device-attention-resolved",
|
|
42536
42560
|
"storage-location-low",
|
|
42537
42561
|
"storage-location-critical",
|
|
42538
42562
|
"storage-location-ok",
|
|
@@ -48093,7 +48117,6 @@ var RecommendationReasonSchema = discriminatedUnion("kind", [
|
|
|
48093
48117
|
modelId: string()
|
|
48094
48118
|
}),
|
|
48095
48119
|
object({ kind: literal("cpu-device") }),
|
|
48096
|
-
object({ kind: literal("coral-untouched") }),
|
|
48097
48120
|
object({ kind: literal("device-disabled") }),
|
|
48098
48121
|
object({ kind: literal("device-unavailable") }),
|
|
48099
48122
|
object({ kind: literal("node-offline") }),
|
|
@@ -48191,11 +48214,6 @@ var AutoTuneWarningSchema = discriminatedUnion("kind", [
|
|
|
48191
48214
|
kind: literal("detector-store-unreadable"),
|
|
48192
48215
|
error: string()
|
|
48193
48216
|
}),
|
|
48194
|
-
object({
|
|
48195
|
-
kind: literal("coral-enabled"),
|
|
48196
|
-
nodeId: string(),
|
|
48197
|
-
deviceKey: string()
|
|
48198
|
-
}),
|
|
48199
48217
|
object({
|
|
48200
48218
|
kind: literal("custom-pin-kept"),
|
|
48201
48219
|
nodeId: string(),
|
|
@@ -56369,6 +56387,16 @@ var DishwasherStatusSchema = object({
|
|
|
56369
56387
|
powerState: string().nullable(),
|
|
56370
56388
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
56371
56389
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
56390
|
+
/**
|
|
56391
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
56392
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
56393
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
56394
|
+
*/
|
|
56395
|
+
filterCleaningDue: boolean().nullable(),
|
|
56396
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
56397
|
+
machineCareDue: boolean().nullable(),
|
|
56398
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
56399
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
56372
56400
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
56373
56401
|
halfLoad: boolean().nullable(),
|
|
56374
56402
|
hygienePlus: boolean().nullable(),
|
|
@@ -65481,16 +65509,6 @@ var UpdateUserInputSchema = object({
|
|
|
65481
65509
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
65482
65510
|
scopes: array(TokenScopeSchema).optional()
|
|
65483
65511
|
});
|
|
65484
|
-
var ApiKeySummarySchema = object({
|
|
65485
|
-
id: string(),
|
|
65486
|
-
label: string(),
|
|
65487
|
-
isAdmin: boolean().default(false),
|
|
65488
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
65489
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
65490
|
-
tokenPrefix: string(),
|
|
65491
|
-
createdAt: number(),
|
|
65492
|
-
lastUsedAt: number().optional()
|
|
65493
|
-
});
|
|
65494
65512
|
var OauthSessionSummarySchema = object({
|
|
65495
65513
|
id: string(),
|
|
65496
65514
|
userId: string(),
|
|
@@ -65512,8 +65530,7 @@ var TotpStatusSchema = object({
|
|
|
65512
65530
|
confirmedAt: number().nullable()
|
|
65513
65531
|
});
|
|
65514
65532
|
/**
|
|
65515
|
-
* user-management — singleton capability for user accounts
|
|
65516
|
-
* legacy API-key rows.
|
|
65533
|
+
* user-management — singleton capability for user accounts.
|
|
65517
65534
|
*
|
|
65518
65535
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
65519
65536
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -65569,10 +65586,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
65569
65586
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
65570
65587
|
kind: "mutation",
|
|
65571
65588
|
access: "view"
|
|
65572
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
65573
|
-
kind: "mutation",
|
|
65574
|
-
auth: "admin",
|
|
65575
|
-
access: "delete"
|
|
65576
65589
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
65577
65590
|
kind: "mutation",
|
|
65578
65591
|
auth: "admin",
|
|
@@ -75032,6 +75045,12 @@ Object.freeze({
|
|
|
75032
75045
|
addonId: null,
|
|
75033
75046
|
access: "view"
|
|
75034
75047
|
},
|
|
75048
|
+
"records.transact": {
|
|
75049
|
+
capName: "records",
|
|
75050
|
+
capScope: "system",
|
|
75051
|
+
addonId: null,
|
|
75052
|
+
access: "create"
|
|
75053
|
+
},
|
|
75035
75054
|
"sceneMonitor.captureReference": {
|
|
75036
75055
|
capName: "scene-monitor",
|
|
75037
75056
|
capScope: "device",
|
|
@@ -76364,12 +76383,6 @@ Object.freeze({
|
|
|
76364
76383
|
addonId: null,
|
|
76365
76384
|
access: "view"
|
|
76366
76385
|
},
|
|
76367
|
-
"userManagement.listApiKeys": {
|
|
76368
|
-
capName: "user-management",
|
|
76369
|
-
capScope: "system",
|
|
76370
|
-
addonId: null,
|
|
76371
|
-
access: "view"
|
|
76372
|
-
},
|
|
76373
76386
|
"userManagement.listExternalIdentities": {
|
|
76374
76387
|
capName: "user-management",
|
|
76375
76388
|
capScope: "system",
|
|
@@ -76424,12 +76437,6 @@ Object.freeze({
|
|
|
76424
76437
|
addonId: null,
|
|
76425
76438
|
access: "create"
|
|
76426
76439
|
},
|
|
76427
|
-
"userManagement.revokeApiKey": {
|
|
76428
|
-
capName: "user-management",
|
|
76429
|
-
capScope: "system",
|
|
76430
|
-
addonId: null,
|
|
76431
|
-
access: "delete"
|
|
76432
|
-
},
|
|
76433
76440
|
"userManagement.revokeOauthSession": {
|
|
76434
76441
|
capName: "user-management",
|
|
76435
76442
|
capScope: "system",
|
|
@@ -80000,9 +80007,13 @@ new Map(Object.entries({
|
|
|
80000
80007
|
"stream-online": "device-events",
|
|
80001
80008
|
"stream-offline": "device-events",
|
|
80002
80009
|
"detection-blind": "device-events",
|
|
80010
|
+
"motion-noisy": "device-events",
|
|
80011
|
+
"motion-calm": "device-events",
|
|
80003
80012
|
"recording-stalled": "device-events",
|
|
80004
80013
|
"recording-healthy": "device-events",
|
|
80005
80014
|
"recording-degraded": "device-events",
|
|
80015
|
+
"device-attention-required": "device-events",
|
|
80016
|
+
"device-attention-resolved": "device-events",
|
|
80006
80017
|
"node-online": "system",
|
|
80007
80018
|
"node-offline": "system",
|
|
80008
80019
|
"node-restarting": "system",
|
|
@@ -80085,6 +80096,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
80085
80096
|
label: "Detecting nothing",
|
|
80086
80097
|
kinds: ["detection-blind"]
|
|
80087
80098
|
},
|
|
80099
|
+
{
|
|
80100
|
+
id: "motion-noise",
|
|
80101
|
+
family: "device-events",
|
|
80102
|
+
label: "Motion without a subject",
|
|
80103
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
80104
|
+
},
|
|
80088
80105
|
{
|
|
80089
80106
|
id: "recording",
|
|
80090
80107
|
family: "device-events",
|
|
@@ -80095,6 +80112,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
80095
80112
|
"recording-degraded"
|
|
80096
80113
|
]
|
|
80097
80114
|
},
|
|
80115
|
+
{
|
|
80116
|
+
id: "device-attention",
|
|
80117
|
+
family: "device-events",
|
|
80118
|
+
label: "Needs attention",
|
|
80119
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
80120
|
+
},
|
|
80098
80121
|
{
|
|
80099
80122
|
id: "nodes",
|
|
80100
80123
|
family: "system",
|
|
@@ -80234,6 +80257,7 @@ var ALERT_EPISODE = [
|
|
|
80234
80257
|
"alert-error",
|
|
80235
80258
|
"alert-critical-resolved"
|
|
80236
80259
|
];
|
|
80260
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
80237
80261
|
var UPDATES = [
|
|
80238
80262
|
"addon-update-available",
|
|
80239
80263
|
"server-update-available",
|
|
@@ -80263,9 +80287,12 @@ var DEVICE_EVENTS = [
|
|
|
80263
80287
|
"stream-online",
|
|
80264
80288
|
"stream-offline",
|
|
80265
80289
|
"detection-blind",
|
|
80290
|
+
"motion-noisy",
|
|
80291
|
+
"motion-calm",
|
|
80266
80292
|
"recording-stalled",
|
|
80267
80293
|
"recording-healthy",
|
|
80268
80294
|
"recording-degraded",
|
|
80295
|
+
...DEVICE_ATTENTION,
|
|
80269
80296
|
...ALARM
|
|
80270
80297
|
];
|
|
80271
80298
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -80433,7 +80460,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
80433
80460
|
[...RULE_TEXT],
|
|
80434
80461
|
[...RULE_TEXT],
|
|
80435
80462
|
[...RULE_TEXT],
|
|
80436
|
-
|
|
80463
|
+
[...RULE_TEXT],
|
|
80464
|
+
[...RULE_TEXT],
|
|
80465
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
80437
80466
|
[...RULE_TEXT],
|
|
80438
80467
|
[...RULE_TEXT],
|
|
80439
80468
|
[...RULE_TEXT],
|
|
@@ -80455,11 +80484,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
80455
80484
|
[...RULE_TEXT],
|
|
80456
80485
|
[...RULE_TEXT],
|
|
80457
80486
|
[...RULE_TEXT],
|
|
80487
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
80458
80488
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80489
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
80459
80490
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80460
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80461
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80462
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80491
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
80463
80492
|
[...RULE_TEXT],
|
|
80464
80493
|
[...RULE_TEXT],
|
|
80465
80494
|
[...RULE_TEXT],
|
|
@@ -80535,6 +80564,15 @@ new Map([
|
|
|
80535
80564
|
snapshotLabel: "Tanks low or full now",
|
|
80536
80565
|
snapshotSection: "tanks"
|
|
80537
80566
|
},
|
|
80567
|
+
{
|
|
80568
|
+
id: "motion-noise",
|
|
80569
|
+
family: "device-events",
|
|
80570
|
+
label: "Motion without a subject (constant / calm again)",
|
|
80571
|
+
bad: ["motion-noisy"],
|
|
80572
|
+
recovery: ["motion-calm"],
|
|
80573
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
80574
|
+
snapshotSection: null
|
|
80575
|
+
},
|
|
80538
80576
|
{
|
|
80539
80577
|
id: "recording-health",
|
|
80540
80578
|
family: "device-events",
|
|
@@ -80544,6 +80582,15 @@ new Map([
|
|
|
80544
80582
|
snapshotLabel: "Recordings stalled now",
|
|
80545
80583
|
snapshotSection: null
|
|
80546
80584
|
},
|
|
80585
|
+
{
|
|
80586
|
+
id: "device-attention",
|
|
80587
|
+
family: "device-events",
|
|
80588
|
+
label: "Device needs attention (raised / resolved)",
|
|
80589
|
+
bad: ["device-attention-required"],
|
|
80590
|
+
recovery: ["device-attention-resolved"],
|
|
80591
|
+
snapshotLabel: "Devices needing attention now",
|
|
80592
|
+
snapshotSection: null
|
|
80593
|
+
},
|
|
80547
80594
|
{
|
|
80548
80595
|
id: "node-connectivity",
|
|
80549
80596
|
family: "system",
|
|
@@ -82801,7 +82848,7 @@ function buildExtrasSections(snap) {
|
|
|
82801
82848
|
tab: "image",
|
|
82802
82849
|
title: "IR + status LED",
|
|
82803
82850
|
titleKey: "provider-amcrest:extrasSections.s_ir-lights.title",
|
|
82804
|
-
description: "
|
|
82851
|
+
description: "`Auto` follows ambient light; `Manual` forces the LEDs on at the set brightness.",
|
|
82805
82852
|
descriptionKey: "provider-amcrest:extrasSections.s_ir-lights.description",
|
|
82806
82853
|
columns: 2,
|
|
82807
82854
|
fields: [
|
|
@@ -82834,8 +82881,6 @@ function buildExtrasSections(snap) {
|
|
|
82834
82881
|
key: "irLightBrightness",
|
|
82835
82882
|
label: "IR brightness",
|
|
82836
82883
|
labelKey: "provider-amcrest:extrasSections.s_ir-lights.irLightBrightness.label",
|
|
82837
|
-
description: "IR LED output (`MiddleLight[0].Light`, 0–100). Applied in Auto and Manual modes.",
|
|
82838
|
-
descriptionKey: "provider-amcrest:extrasSections.s_ir-lights.irLightBrightness.description",
|
|
82839
82884
|
min: 0,
|
|
82840
82885
|
max: 100,
|
|
82841
82886
|
step: 5,
|
|
@@ -82848,8 +82893,6 @@ function buildExtrasSections(snap) {
|
|
|
82848
82893
|
key: "statusLedEnabled",
|
|
82849
82894
|
label: "Status LED",
|
|
82850
82895
|
labelKey: "provider-amcrest:extrasSections.s_ir-lights.statusLedEnabled.label",
|
|
82851
|
-
description: "The visible indicator LED on the camera body (`LightGlobal[0].Enable`).",
|
|
82852
|
-
descriptionKey: "provider-amcrest:extrasSections.s_ir-lights.statusLedEnabled.description",
|
|
82853
82896
|
default: snap.statusLedEnabled ?? true,
|
|
82854
82897
|
style: "switch",
|
|
82855
82898
|
span: 2
|
|
@@ -82861,7 +82904,7 @@ function buildExtrasSections(snap) {
|
|
|
82861
82904
|
tab: "network",
|
|
82862
82905
|
title: "Time / NTP",
|
|
82863
82906
|
titleKey: "provider-amcrest:extrasSections.s_time-ntp.title",
|
|
82864
|
-
description: "
|
|
82907
|
+
description: "With NTP disabled this camera's clock drifts badly.",
|
|
82865
82908
|
descriptionKey: "provider-amcrest:extrasSections.s_time-ntp.description",
|
|
82866
82909
|
columns: 2,
|
|
82867
82910
|
fields: [
|
|
@@ -82908,7 +82951,7 @@ function buildExtrasSections(snap) {
|
|
|
82908
82951
|
key: "ntpTimeZoneIndex",
|
|
82909
82952
|
label: "Timezone index (Dahua, 0–33)",
|
|
82910
82953
|
labelKey: "provider-amcrest:extrasSections.s_time-ntp.ntpTimeZoneIndex.label",
|
|
82911
|
-
description: "
|
|
82954
|
+
description: "Dahua numeric index (0–33) from the camera web UI timezone list, not an IANA zone. 26 = GMT+8.",
|
|
82912
82955
|
descriptionKey: "provider-amcrest:extrasSections.s_time-ntp.ntpTimeZoneIndex.description",
|
|
82913
82956
|
default: snap.ntpTimeZoneIndex ?? 26,
|
|
82914
82957
|
min: 0,
|
|
@@ -82923,8 +82966,6 @@ function buildExtrasSections(snap) {
|
|
|
82923
82966
|
tab: "advanced",
|
|
82924
82967
|
title: "Auto reboot",
|
|
82925
82968
|
titleKey: "provider-amcrest:extrasSections.s_auto-reboot.title",
|
|
82926
|
-
description: "Scheduled automatic reboot (`AutoMaintain.AutoReboot*`). Choose a day (or every day) + time; the camera reboots once per matching window.",
|
|
82927
|
-
descriptionKey: "provider-amcrest:extrasSections.s_auto-reboot.description",
|
|
82928
82969
|
columns: 2,
|
|
82929
82970
|
fields: [
|
|
82930
82971
|
{
|
|
@@ -83579,8 +83620,6 @@ var AmcrestCamera = class AmcrestCamera extends BaseDevice {
|
|
|
83579
83620
|
tab: "general",
|
|
83580
83621
|
title: "Connection",
|
|
83581
83622
|
titleKey: "provider-amcrest:schema.s_connection.title",
|
|
83582
|
-
description: "Dahua CGI HTTP(S) endpoint + Digest credentials. RTSP is always port 554.",
|
|
83583
|
-
descriptionKey: "provider-amcrest:schema.s_connection.description",
|
|
83584
83623
|
columns: 2,
|
|
83585
83624
|
fields: [
|
|
83586
83625
|
{
|
|
@@ -97868,8 +97907,6 @@ function buildCreationFormSchema() {
|
|
|
97868
97907
|
id: "credentials",
|
|
97869
97908
|
title: "Credentials",
|
|
97870
97909
|
titleKey: "provider-amcrest:creation.s_credentials.title",
|
|
97871
|
-
description: "Dahua CGI uses HTTP Digest auth — no plaintext password on the wire even over HTTP. Required for the host probe.",
|
|
97872
|
-
descriptionKey: "provider-amcrest:creation.s_credentials.description",
|
|
97873
97910
|
columns: 2,
|
|
97874
97911
|
fields: [{
|
|
97875
97912
|
type: "text",
|
|
@@ -97891,7 +97928,7 @@ function buildCreationFormSchema() {
|
|
|
97891
97928
|
id: "connection",
|
|
97892
97929
|
title: "Connection",
|
|
97893
97930
|
titleKey: "provider-amcrest:creation.s_connection.title",
|
|
97894
|
-
description: "
|
|
97931
|
+
description: "Use 443 with HTTPS for cameras with TLS enabled.",
|
|
97895
97932
|
descriptionKey: "provider-amcrest:creation.s_connection.description",
|
|
97896
97933
|
columns: 2,
|
|
97897
97934
|
fields: [
|
|
@@ -97937,7 +97974,7 @@ function buildDiscoveryParamsFormSchema() {
|
|
|
97937
97974
|
id: "credentials",
|
|
97938
97975
|
title: "Credentials",
|
|
97939
97976
|
titleKey: "provider-amcrest:discoveryParams.s_credentials.title",
|
|
97940
|
-
description: "
|
|
97977
|
+
description: "Assumes all cameras share these credentials.",
|
|
97941
97978
|
descriptionKey: "provider-amcrest:discoveryParams.s_credentials.description",
|
|
97942
97979
|
columns: 2,
|
|
97943
97980
|
fields: [{
|
|
@@ -97959,7 +97996,7 @@ function buildDiscoveryParamsFormSchema() {
|
|
|
97959
97996
|
id: "scan",
|
|
97960
97997
|
title: "Scan options",
|
|
97961
97998
|
titleKey: "provider-amcrest:discoveryParams.s_scan.title",
|
|
97962
|
-
description: "
|
|
97999
|
+
description: "Leave blank to scan the hub's own subnet; enter the CIDR if the cameras are on another one (e.g. 192.168.60.0/24).",
|
|
97963
98000
|
descriptionKey: "provider-amcrest:discoveryParams.s_scan.description",
|
|
97964
98001
|
columns: 1,
|
|
97965
98002
|
fields: [{
|
package/dist/addon.mjs
CHANGED
|
@@ -14,7 +14,7 @@ import { networkInterfaces } from "node:os";
|
|
|
14
14
|
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
|
|
15
15
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
16
16
|
//#endregion
|
|
17
|
-
//#region ../types/dist/event-category-
|
|
17
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
18
18
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
19
19
|
EventCategory["SystemBoot"] = "system.boot";
|
|
20
20
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -331,6 +331,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
331
331
|
*/
|
|
332
332
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
333
333
|
/**
|
|
334
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
335
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
336
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
337
|
+
* {@link PipelineMotionCalm}.
|
|
338
|
+
*/
|
|
339
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
340
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
341
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
342
|
+
/**
|
|
334
343
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
335
344
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
336
345
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -5437,7 +5446,7 @@ var ZodIssueCode = {
|
|
|
5437
5446
|
var ZodFirstPartyTypeKind;
|
|
5438
5447
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5439
5448
|
//#endregion
|
|
5440
|
-
//#region ../types/dist/sleep-
|
|
5449
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5441
5450
|
/**
|
|
5442
5451
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5443
5452
|
* window to float samples (D455).
|
|
@@ -7966,7 +7975,7 @@ var EntryDescriptorSchema = object({
|
|
|
7966
7975
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
7967
7976
|
fields: record(string(), unknown())
|
|
7968
7977
|
}).strict();
|
|
7969
|
-
/** What crosses the wire
|
|
7978
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
7970
7979
|
var RecordKindDeclarationSchema = object({
|
|
7971
7980
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
7972
7981
|
class: _enum(RECORD_CLASSES),
|
|
@@ -7985,14 +7994,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
7985
7994
|
secretPaths: array(string().min(1)).default([]),
|
|
7986
7995
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
7987
7996
|
secretArrayKeys: record(string(), string()).default({}),
|
|
7988
|
-
/**
|
|
7989
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
7990
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
7991
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
7992
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
7993
|
-
* removal still sends it. Never set it.
|
|
7994
|
-
*/
|
|
7995
|
-
adoptsFrom: string().min(1).optional(),
|
|
7996
7997
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
7997
7998
|
transactFamily: string().min(1).optional(),
|
|
7998
7999
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -12694,17 +12695,6 @@ object({
|
|
|
12694
12695
|
createdAt: number(),
|
|
12695
12696
|
updatedAt: number()
|
|
12696
12697
|
});
|
|
12697
|
-
object({
|
|
12698
|
-
id: string(),
|
|
12699
|
-
label: string(),
|
|
12700
|
-
isAdmin: boolean().default(false),
|
|
12701
|
-
allowedProviders: AllowedProviderSchema,
|
|
12702
|
-
allowedDevices: AllowedDevicesSchema,
|
|
12703
|
-
tokenHash: string(),
|
|
12704
|
-
tokenPrefix: string(),
|
|
12705
|
-
createdAt: number(),
|
|
12706
|
-
lastUsedAt: number().optional()
|
|
12707
|
-
});
|
|
12708
12698
|
object({
|
|
12709
12699
|
id: string(),
|
|
12710
12700
|
userId: string(),
|
|
@@ -16686,16 +16676,36 @@ var RecordKindStateSchema = _enum([
|
|
|
16686
16676
|
var DeclareKindResultSchema = object({
|
|
16687
16677
|
kindId: number().int(),
|
|
16688
16678
|
state: RecordKindStateSchema,
|
|
16689
|
-
createdIndexes: array(string())
|
|
16690
|
-
/**
|
|
16691
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
16692
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
16693
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
16694
|
-
*/
|
|
16695
|
-
adoptionPending: _null()
|
|
16679
|
+
createdIndexes: array(string())
|
|
16696
16680
|
});
|
|
16697
16681
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
16698
16682
|
var SecretRefsList = array(string());
|
|
16683
|
+
/**
|
|
16684
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
16685
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
16686
|
+
*/
|
|
16687
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
16688
|
+
object({
|
|
16689
|
+
op: literal("put"),
|
|
16690
|
+
kind: RecordKindNameSchema,
|
|
16691
|
+
record: RecordInputSchema,
|
|
16692
|
+
ifRev: number().int().min(0).optional()
|
|
16693
|
+
}),
|
|
16694
|
+
object({
|
|
16695
|
+
op: literal("patch"),
|
|
16696
|
+
kind: RecordKindNameSchema,
|
|
16697
|
+
id: RecordIdSchema,
|
|
16698
|
+
data: RecordBodySchema,
|
|
16699
|
+
at: number().int().nullable().optional(),
|
|
16700
|
+
expiresAt: number().int().nullable().optional(),
|
|
16701
|
+
ifRev: number().int().min(1).optional()
|
|
16702
|
+
}),
|
|
16703
|
+
object({
|
|
16704
|
+
op: literal("delete"),
|
|
16705
|
+
kind: RecordKindNameSchema,
|
|
16706
|
+
id: RecordIdSchema
|
|
16707
|
+
})
|
|
16708
|
+
]);
|
|
16699
16709
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
16700
16710
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
16701
16711
|
kind: "mutation",
|
|
@@ -16802,6 +16812,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
16802
16812
|
}), {
|
|
16803
16813
|
kind: "mutation",
|
|
16804
16814
|
auth: "admin"
|
|
16815
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
16816
|
+
results: array(object({
|
|
16817
|
+
rev: number().int().nullable(),
|
|
16818
|
+
deleted: boolean()
|
|
16819
|
+
})),
|
|
16820
|
+
releasedRefs: SecretRefsList,
|
|
16821
|
+
secretRefs: SecretRefsList
|
|
16822
|
+
}), {
|
|
16823
|
+
kind: "mutation",
|
|
16824
|
+
auth: "admin"
|
|
16805
16825
|
}), method(object({
|
|
16806
16826
|
deviceId: number().int(),
|
|
16807
16827
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -42509,9 +42529,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42509
42529
|
"node-updating",
|
|
42510
42530
|
"node-inference-unavailable",
|
|
42511
42531
|
"detection-blind",
|
|
42532
|
+
"motion-noisy",
|
|
42533
|
+
"motion-calm",
|
|
42512
42534
|
"recording-stalled",
|
|
42513
42535
|
"recording-healthy",
|
|
42514
42536
|
"recording-degraded",
|
|
42537
|
+
"device-attention-required",
|
|
42538
|
+
"device-attention-resolved",
|
|
42515
42539
|
"storage-location-low",
|
|
42516
42540
|
"storage-location-critical",
|
|
42517
42541
|
"storage-location-ok",
|
|
@@ -48072,7 +48096,6 @@ var RecommendationReasonSchema = discriminatedUnion("kind", [
|
|
|
48072
48096
|
modelId: string()
|
|
48073
48097
|
}),
|
|
48074
48098
|
object({ kind: literal("cpu-device") }),
|
|
48075
|
-
object({ kind: literal("coral-untouched") }),
|
|
48076
48099
|
object({ kind: literal("device-disabled") }),
|
|
48077
48100
|
object({ kind: literal("device-unavailable") }),
|
|
48078
48101
|
object({ kind: literal("node-offline") }),
|
|
@@ -48170,11 +48193,6 @@ var AutoTuneWarningSchema = discriminatedUnion("kind", [
|
|
|
48170
48193
|
kind: literal("detector-store-unreadable"),
|
|
48171
48194
|
error: string()
|
|
48172
48195
|
}),
|
|
48173
|
-
object({
|
|
48174
|
-
kind: literal("coral-enabled"),
|
|
48175
|
-
nodeId: string(),
|
|
48176
|
-
deviceKey: string()
|
|
48177
|
-
}),
|
|
48178
48196
|
object({
|
|
48179
48197
|
kind: literal("custom-pin-kept"),
|
|
48180
48198
|
nodeId: string(),
|
|
@@ -56348,6 +56366,16 @@ var DishwasherStatusSchema = object({
|
|
|
56348
56366
|
powerState: string().nullable(),
|
|
56349
56367
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
56350
56368
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
56369
|
+
/**
|
|
56370
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
56371
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
56372
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
56373
|
+
*/
|
|
56374
|
+
filterCleaningDue: boolean().nullable(),
|
|
56375
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
56376
|
+
machineCareDue: boolean().nullable(),
|
|
56377
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
56378
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
56351
56379
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
56352
56380
|
halfLoad: boolean().nullable(),
|
|
56353
56381
|
hygienePlus: boolean().nullable(),
|
|
@@ -65460,16 +65488,6 @@ var UpdateUserInputSchema = object({
|
|
|
65460
65488
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
65461
65489
|
scopes: array(TokenScopeSchema).optional()
|
|
65462
65490
|
});
|
|
65463
|
-
var ApiKeySummarySchema = object({
|
|
65464
|
-
id: string(),
|
|
65465
|
-
label: string(),
|
|
65466
|
-
isAdmin: boolean().default(false),
|
|
65467
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
65468
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
65469
|
-
tokenPrefix: string(),
|
|
65470
|
-
createdAt: number(),
|
|
65471
|
-
lastUsedAt: number().optional()
|
|
65472
|
-
});
|
|
65473
65491
|
var OauthSessionSummarySchema = object({
|
|
65474
65492
|
id: string(),
|
|
65475
65493
|
userId: string(),
|
|
@@ -65491,8 +65509,7 @@ var TotpStatusSchema = object({
|
|
|
65491
65509
|
confirmedAt: number().nullable()
|
|
65492
65510
|
});
|
|
65493
65511
|
/**
|
|
65494
|
-
* user-management — singleton capability for user accounts
|
|
65495
|
-
* legacy API-key rows.
|
|
65512
|
+
* user-management — singleton capability for user accounts.
|
|
65496
65513
|
*
|
|
65497
65514
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
65498
65515
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -65548,10 +65565,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
65548
65565
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
65549
65566
|
kind: "mutation",
|
|
65550
65567
|
access: "view"
|
|
65551
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
65552
|
-
kind: "mutation",
|
|
65553
|
-
auth: "admin",
|
|
65554
|
-
access: "delete"
|
|
65555
65568
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
65556
65569
|
kind: "mutation",
|
|
65557
65570
|
auth: "admin",
|
|
@@ -75011,6 +75024,12 @@ Object.freeze({
|
|
|
75011
75024
|
addonId: null,
|
|
75012
75025
|
access: "view"
|
|
75013
75026
|
},
|
|
75027
|
+
"records.transact": {
|
|
75028
|
+
capName: "records",
|
|
75029
|
+
capScope: "system",
|
|
75030
|
+
addonId: null,
|
|
75031
|
+
access: "create"
|
|
75032
|
+
},
|
|
75014
75033
|
"sceneMonitor.captureReference": {
|
|
75015
75034
|
capName: "scene-monitor",
|
|
75016
75035
|
capScope: "device",
|
|
@@ -76343,12 +76362,6 @@ Object.freeze({
|
|
|
76343
76362
|
addonId: null,
|
|
76344
76363
|
access: "view"
|
|
76345
76364
|
},
|
|
76346
|
-
"userManagement.listApiKeys": {
|
|
76347
|
-
capName: "user-management",
|
|
76348
|
-
capScope: "system",
|
|
76349
|
-
addonId: null,
|
|
76350
|
-
access: "view"
|
|
76351
|
-
},
|
|
76352
76365
|
"userManagement.listExternalIdentities": {
|
|
76353
76366
|
capName: "user-management",
|
|
76354
76367
|
capScope: "system",
|
|
@@ -76403,12 +76416,6 @@ Object.freeze({
|
|
|
76403
76416
|
addonId: null,
|
|
76404
76417
|
access: "create"
|
|
76405
76418
|
},
|
|
76406
|
-
"userManagement.revokeApiKey": {
|
|
76407
|
-
capName: "user-management",
|
|
76408
|
-
capScope: "system",
|
|
76409
|
-
addonId: null,
|
|
76410
|
-
access: "delete"
|
|
76411
|
-
},
|
|
76412
76419
|
"userManagement.revokeOauthSession": {
|
|
76413
76420
|
capName: "user-management",
|
|
76414
76421
|
capScope: "system",
|
|
@@ -79979,9 +79986,13 @@ new Map(Object.entries({
|
|
|
79979
79986
|
"stream-online": "device-events",
|
|
79980
79987
|
"stream-offline": "device-events",
|
|
79981
79988
|
"detection-blind": "device-events",
|
|
79989
|
+
"motion-noisy": "device-events",
|
|
79990
|
+
"motion-calm": "device-events",
|
|
79982
79991
|
"recording-stalled": "device-events",
|
|
79983
79992
|
"recording-healthy": "device-events",
|
|
79984
79993
|
"recording-degraded": "device-events",
|
|
79994
|
+
"device-attention-required": "device-events",
|
|
79995
|
+
"device-attention-resolved": "device-events",
|
|
79985
79996
|
"node-online": "system",
|
|
79986
79997
|
"node-offline": "system",
|
|
79987
79998
|
"node-restarting": "system",
|
|
@@ -80064,6 +80075,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
80064
80075
|
label: "Detecting nothing",
|
|
80065
80076
|
kinds: ["detection-blind"]
|
|
80066
80077
|
},
|
|
80078
|
+
{
|
|
80079
|
+
id: "motion-noise",
|
|
80080
|
+
family: "device-events",
|
|
80081
|
+
label: "Motion without a subject",
|
|
80082
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
80083
|
+
},
|
|
80067
80084
|
{
|
|
80068
80085
|
id: "recording",
|
|
80069
80086
|
family: "device-events",
|
|
@@ -80074,6 +80091,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
80074
80091
|
"recording-degraded"
|
|
80075
80092
|
]
|
|
80076
80093
|
},
|
|
80094
|
+
{
|
|
80095
|
+
id: "device-attention",
|
|
80096
|
+
family: "device-events",
|
|
80097
|
+
label: "Needs attention",
|
|
80098
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
80099
|
+
},
|
|
80077
80100
|
{
|
|
80078
80101
|
id: "nodes",
|
|
80079
80102
|
family: "system",
|
|
@@ -80213,6 +80236,7 @@ var ALERT_EPISODE = [
|
|
|
80213
80236
|
"alert-error",
|
|
80214
80237
|
"alert-critical-resolved"
|
|
80215
80238
|
];
|
|
80239
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
80216
80240
|
var UPDATES = [
|
|
80217
80241
|
"addon-update-available",
|
|
80218
80242
|
"server-update-available",
|
|
@@ -80242,9 +80266,12 @@ var DEVICE_EVENTS = [
|
|
|
80242
80266
|
"stream-online",
|
|
80243
80267
|
"stream-offline",
|
|
80244
80268
|
"detection-blind",
|
|
80269
|
+
"motion-noisy",
|
|
80270
|
+
"motion-calm",
|
|
80245
80271
|
"recording-stalled",
|
|
80246
80272
|
"recording-healthy",
|
|
80247
80273
|
"recording-degraded",
|
|
80274
|
+
...DEVICE_ATTENTION,
|
|
80248
80275
|
...ALARM
|
|
80249
80276
|
];
|
|
80250
80277
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -80412,7 +80439,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
80412
80439
|
[...RULE_TEXT],
|
|
80413
80440
|
[...RULE_TEXT],
|
|
80414
80441
|
[...RULE_TEXT],
|
|
80415
|
-
|
|
80442
|
+
[...RULE_TEXT],
|
|
80443
|
+
[...RULE_TEXT],
|
|
80444
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
80416
80445
|
[...RULE_TEXT],
|
|
80417
80446
|
[...RULE_TEXT],
|
|
80418
80447
|
[...RULE_TEXT],
|
|
@@ -80434,11 +80463,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
80434
80463
|
[...RULE_TEXT],
|
|
80435
80464
|
[...RULE_TEXT],
|
|
80436
80465
|
[...RULE_TEXT],
|
|
80466
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
80437
80467
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80468
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
80438
80469
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80439
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80440
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80441
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80470
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
80442
80471
|
[...RULE_TEXT],
|
|
80443
80472
|
[...RULE_TEXT],
|
|
80444
80473
|
[...RULE_TEXT],
|
|
@@ -80514,6 +80543,15 @@ new Map([
|
|
|
80514
80543
|
snapshotLabel: "Tanks low or full now",
|
|
80515
80544
|
snapshotSection: "tanks"
|
|
80516
80545
|
},
|
|
80546
|
+
{
|
|
80547
|
+
id: "motion-noise",
|
|
80548
|
+
family: "device-events",
|
|
80549
|
+
label: "Motion without a subject (constant / calm again)",
|
|
80550
|
+
bad: ["motion-noisy"],
|
|
80551
|
+
recovery: ["motion-calm"],
|
|
80552
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
80553
|
+
snapshotSection: null
|
|
80554
|
+
},
|
|
80517
80555
|
{
|
|
80518
80556
|
id: "recording-health",
|
|
80519
80557
|
family: "device-events",
|
|
@@ -80523,6 +80561,15 @@ new Map([
|
|
|
80523
80561
|
snapshotLabel: "Recordings stalled now",
|
|
80524
80562
|
snapshotSection: null
|
|
80525
80563
|
},
|
|
80564
|
+
{
|
|
80565
|
+
id: "device-attention",
|
|
80566
|
+
family: "device-events",
|
|
80567
|
+
label: "Device needs attention (raised / resolved)",
|
|
80568
|
+
bad: ["device-attention-required"],
|
|
80569
|
+
recovery: ["device-attention-resolved"],
|
|
80570
|
+
snapshotLabel: "Devices needing attention now",
|
|
80571
|
+
snapshotSection: null
|
|
80572
|
+
},
|
|
80526
80573
|
{
|
|
80527
80574
|
id: "node-connectivity",
|
|
80528
80575
|
family: "system",
|
|
@@ -82780,7 +82827,7 @@ function buildExtrasSections(snap) {
|
|
|
82780
82827
|
tab: "image",
|
|
82781
82828
|
title: "IR + status LED",
|
|
82782
82829
|
titleKey: "provider-amcrest:extrasSections.s_ir-lights.title",
|
|
82783
|
-
description: "
|
|
82830
|
+
description: "`Auto` follows ambient light; `Manual` forces the LEDs on at the set brightness.",
|
|
82784
82831
|
descriptionKey: "provider-amcrest:extrasSections.s_ir-lights.description",
|
|
82785
82832
|
columns: 2,
|
|
82786
82833
|
fields: [
|
|
@@ -82813,8 +82860,6 @@ function buildExtrasSections(snap) {
|
|
|
82813
82860
|
key: "irLightBrightness",
|
|
82814
82861
|
label: "IR brightness",
|
|
82815
82862
|
labelKey: "provider-amcrest:extrasSections.s_ir-lights.irLightBrightness.label",
|
|
82816
|
-
description: "IR LED output (`MiddleLight[0].Light`, 0–100). Applied in Auto and Manual modes.",
|
|
82817
|
-
descriptionKey: "provider-amcrest:extrasSections.s_ir-lights.irLightBrightness.description",
|
|
82818
82863
|
min: 0,
|
|
82819
82864
|
max: 100,
|
|
82820
82865
|
step: 5,
|
|
@@ -82827,8 +82872,6 @@ function buildExtrasSections(snap) {
|
|
|
82827
82872
|
key: "statusLedEnabled",
|
|
82828
82873
|
label: "Status LED",
|
|
82829
82874
|
labelKey: "provider-amcrest:extrasSections.s_ir-lights.statusLedEnabled.label",
|
|
82830
|
-
description: "The visible indicator LED on the camera body (`LightGlobal[0].Enable`).",
|
|
82831
|
-
descriptionKey: "provider-amcrest:extrasSections.s_ir-lights.statusLedEnabled.description",
|
|
82832
82875
|
default: snap.statusLedEnabled ?? true,
|
|
82833
82876
|
style: "switch",
|
|
82834
82877
|
span: 2
|
|
@@ -82840,7 +82883,7 @@ function buildExtrasSections(snap) {
|
|
|
82840
82883
|
tab: "network",
|
|
82841
82884
|
title: "Time / NTP",
|
|
82842
82885
|
titleKey: "provider-amcrest:extrasSections.s_time-ntp.title",
|
|
82843
|
-
description: "
|
|
82886
|
+
description: "With NTP disabled this camera's clock drifts badly.",
|
|
82844
82887
|
descriptionKey: "provider-amcrest:extrasSections.s_time-ntp.description",
|
|
82845
82888
|
columns: 2,
|
|
82846
82889
|
fields: [
|
|
@@ -82887,7 +82930,7 @@ function buildExtrasSections(snap) {
|
|
|
82887
82930
|
key: "ntpTimeZoneIndex",
|
|
82888
82931
|
label: "Timezone index (Dahua, 0–33)",
|
|
82889
82932
|
labelKey: "provider-amcrest:extrasSections.s_time-ntp.ntpTimeZoneIndex.label",
|
|
82890
|
-
description: "
|
|
82933
|
+
description: "Dahua numeric index (0–33) from the camera web UI timezone list, not an IANA zone. 26 = GMT+8.",
|
|
82891
82934
|
descriptionKey: "provider-amcrest:extrasSections.s_time-ntp.ntpTimeZoneIndex.description",
|
|
82892
82935
|
default: snap.ntpTimeZoneIndex ?? 26,
|
|
82893
82936
|
min: 0,
|
|
@@ -82902,8 +82945,6 @@ function buildExtrasSections(snap) {
|
|
|
82902
82945
|
tab: "advanced",
|
|
82903
82946
|
title: "Auto reboot",
|
|
82904
82947
|
titleKey: "provider-amcrest:extrasSections.s_auto-reboot.title",
|
|
82905
|
-
description: "Scheduled automatic reboot (`AutoMaintain.AutoReboot*`). Choose a day (or every day) + time; the camera reboots once per matching window.",
|
|
82906
|
-
descriptionKey: "provider-amcrest:extrasSections.s_auto-reboot.description",
|
|
82907
82948
|
columns: 2,
|
|
82908
82949
|
fields: [
|
|
82909
82950
|
{
|
|
@@ -83558,8 +83599,6 @@ var AmcrestCamera = class AmcrestCamera extends BaseDevice {
|
|
|
83558
83599
|
tab: "general",
|
|
83559
83600
|
title: "Connection",
|
|
83560
83601
|
titleKey: "provider-amcrest:schema.s_connection.title",
|
|
83561
|
-
description: "Dahua CGI HTTP(S) endpoint + Digest credentials. RTSP is always port 554.",
|
|
83562
|
-
descriptionKey: "provider-amcrest:schema.s_connection.description",
|
|
83563
83602
|
columns: 2,
|
|
83564
83603
|
fields: [
|
|
83565
83604
|
{
|
|
@@ -97847,8 +97886,6 @@ function buildCreationFormSchema() {
|
|
|
97847
97886
|
id: "credentials",
|
|
97848
97887
|
title: "Credentials",
|
|
97849
97888
|
titleKey: "provider-amcrest:creation.s_credentials.title",
|
|
97850
|
-
description: "Dahua CGI uses HTTP Digest auth — no plaintext password on the wire even over HTTP. Required for the host probe.",
|
|
97851
|
-
descriptionKey: "provider-amcrest:creation.s_credentials.description",
|
|
97852
97889
|
columns: 2,
|
|
97853
97890
|
fields: [{
|
|
97854
97891
|
type: "text",
|
|
@@ -97870,7 +97907,7 @@ function buildCreationFormSchema() {
|
|
|
97870
97907
|
id: "connection",
|
|
97871
97908
|
title: "Connection",
|
|
97872
97909
|
titleKey: "provider-amcrest:creation.s_connection.title",
|
|
97873
|
-
description: "
|
|
97910
|
+
description: "Use 443 with HTTPS for cameras with TLS enabled.",
|
|
97874
97911
|
descriptionKey: "provider-amcrest:creation.s_connection.description",
|
|
97875
97912
|
columns: 2,
|
|
97876
97913
|
fields: [
|
|
@@ -97916,7 +97953,7 @@ function buildDiscoveryParamsFormSchema() {
|
|
|
97916
97953
|
id: "credentials",
|
|
97917
97954
|
title: "Credentials",
|
|
97918
97955
|
titleKey: "provider-amcrest:discoveryParams.s_credentials.title",
|
|
97919
|
-
description: "
|
|
97956
|
+
description: "Assumes all cameras share these credentials.",
|
|
97920
97957
|
descriptionKey: "provider-amcrest:discoveryParams.s_credentials.description",
|
|
97921
97958
|
columns: 2,
|
|
97922
97959
|
fields: [{
|
|
@@ -97938,7 +97975,7 @@ function buildDiscoveryParamsFormSchema() {
|
|
|
97938
97975
|
id: "scan",
|
|
97939
97976
|
title: "Scan options",
|
|
97940
97977
|
titleKey: "provider-amcrest:discoveryParams.s_scan.title",
|
|
97941
|
-
description: "
|
|
97978
|
+
description: "Leave blank to scan the hub's own subnet; enter the CIDR if the cameras are on another one (e.g. 192.168.60.0/24).",
|
|
97942
97979
|
descriptionKey: "provider-amcrest:discoveryParams.s_scan.description",
|
|
97943
97980
|
columns: 1,
|
|
97944
97981
|
fields: [{
|
package/i18n/en.json
CHANGED
|
@@ -2,24 +2,22 @@
|
|
|
2
2
|
"creation.s_identity.title": "Camera",
|
|
3
3
|
"creation.s_identity.name.label": "Name",
|
|
4
4
|
"creation.s_credentials.title": "Credentials",
|
|
5
|
-
"creation.s_credentials.description": "Dahua CGI uses HTTP Digest auth — no plaintext password on the wire even over HTTP. Required for the host probe.",
|
|
6
5
|
"creation.s_credentials.username.label": "Username",
|
|
7
6
|
"creation.s_credentials.password.label": "Password",
|
|
8
7
|
"creation.s_connection.title": "Connection",
|
|
9
|
-
"creation.s_connection.description": "
|
|
8
|
+
"creation.s_connection.description": "Use 443 with HTTPS for cameras with TLS enabled.",
|
|
10
9
|
"creation.s_connection.host.label": "Camera IP",
|
|
11
10
|
"creation.s_connection.port.label": "Port",
|
|
12
11
|
"creation.s_connection.https.label": "Use HTTPS",
|
|
13
12
|
"discoveryParams.s_credentials.title": "Credentials",
|
|
14
|
-
"discoveryParams.s_credentials.description": "
|
|
13
|
+
"discoveryParams.s_credentials.description": "Assumes all cameras share these credentials.",
|
|
15
14
|
"discoveryParams.s_credentials.username.label": "Username",
|
|
16
15
|
"discoveryParams.s_credentials.password.label": "Password",
|
|
17
16
|
"discoveryParams.s_scan.title": "Scan options",
|
|
18
|
-
"discoveryParams.s_scan.description": "
|
|
17
|
+
"discoveryParams.s_scan.description": "Leave blank to scan the hub's own subnet; enter the CIDR if the cameras are on another one (e.g. 192.168.60.0/24).",
|
|
19
18
|
"discoveryParams.s_scan.networkCidr.label": "Network (CIDR) — required if cameras are on a different subnet than the hub",
|
|
20
19
|
"discoveryParams.s_scan.timeoutMs.label": "WS-Discovery timeout (ms)",
|
|
21
20
|
"schema.s_connection.title": "Connection",
|
|
22
|
-
"schema.s_connection.description": "Dahua CGI HTTP(S) endpoint + Digest credentials. RTSP is always port 554.",
|
|
23
21
|
"schema.s_connection.host.label": "Camera IP",
|
|
24
22
|
"schema.s_connection.port.label": "Port",
|
|
25
23
|
"schema.s_connection.https.label": "Use HTTPS",
|
|
@@ -27,25 +25,22 @@
|
|
|
27
25
|
"schema.s_connection.username.label": "Username",
|
|
28
26
|
"schema.s_connection.password.label": "Password",
|
|
29
27
|
"extrasSections.s_ir-lights.title": "IR + status LED",
|
|
30
|
-
"extrasSections.s_ir-lights.description": "
|
|
28
|
+
"extrasSections.s_ir-lights.description": "`Auto` follows ambient light; `Manual` forces the LEDs on at the set brightness.",
|
|
31
29
|
"extrasSections.s_ir-lights.irLightMode.label": "IR illuminator",
|
|
32
30
|
"extrasSections.s_ir-lights.irLightMode.o_Auto.label": "Auto (camera decides)",
|
|
33
31
|
"extrasSections.s_ir-lights.irLightMode.o_Manual.label": "Always on",
|
|
34
32
|
"extrasSections.s_ir-lights.irLightMode.o_Off.label": "Always off",
|
|
35
33
|
"extrasSections.s_ir-lights.irLightBrightness.label": "IR brightness",
|
|
36
|
-
"extrasSections.s_ir-lights.irLightBrightness.description": "IR LED output (`MiddleLight[0].Light`, 0–100). Applied in Auto and Manual modes.",
|
|
37
34
|
"extrasSections.s_ir-lights.statusLedEnabled.label": "Status LED",
|
|
38
|
-
"extrasSections.s_ir-lights.statusLedEnabled.description": "The visible indicator LED on the camera body (`LightGlobal[0].Enable`).",
|
|
39
35
|
"extrasSections.s_time-ntp.title": "Time / NTP",
|
|
40
|
-
"extrasSections.s_time-ntp.description": "
|
|
36
|
+
"extrasSections.s_time-ntp.description": "With NTP disabled this camera's clock drifts badly.",
|
|
41
37
|
"extrasSections.s_time-ntp.ntpEnabled.label": "NTP sync",
|
|
42
38
|
"extrasSections.s_time-ntp.ntpServer.label": "NTP server",
|
|
43
39
|
"extrasSections.s_time-ntp.ntpPort.label": "NTP port",
|
|
44
40
|
"extrasSections.s_time-ntp.ntpUpdatePeriodMin.label": "Sync interval (min)",
|
|
45
41
|
"extrasSections.s_time-ntp.ntpTimeZoneIndex.label": "Timezone index (Dahua, 0–33)",
|
|
46
|
-
"extrasSections.s_time-ntp.ntpTimeZoneIndex.description": "
|
|
42
|
+
"extrasSections.s_time-ntp.ntpTimeZoneIndex.description": "Dahua numeric index (0–33) from the camera web UI timezone list, not an IANA zone. 26 = GMT+8.",
|
|
47
43
|
"extrasSections.s_auto-reboot.title": "Auto reboot",
|
|
48
|
-
"extrasSections.s_auto-reboot.description": "Scheduled automatic reboot (`AutoMaintain.AutoReboot*`). Choose a day (or every day) + time; the camera reboots once per matching window.",
|
|
49
44
|
"extrasSections.s_auto-reboot.autoRebootEnabled.label": "Auto reboot",
|
|
50
45
|
"extrasSections.s_auto-reboot.autoRebootDay.label": "Day",
|
|
51
46
|
"extrasSections.s_auto-reboot.autoRebootDay.o_7.label": "Every day",
|
package/i18n/it.json
CHANGED
|
@@ -2,24 +2,22 @@
|
|
|
2
2
|
"creation.s_identity.title": "Telecamera",
|
|
3
3
|
"creation.s_identity.name.label": "Nome",
|
|
4
4
|
"creation.s_credentials.title": "Credenziali",
|
|
5
|
-
"creation.s_credentials.description": "Dahua CGI usa l'autenticazione HTTP Digest: nessuna password in chiaro sulla rete, anche su HTTP. Necessaria per il probe dell'host.",
|
|
6
5
|
"creation.s_credentials.username.label": "Nome utente",
|
|
7
6
|
"creation.s_credentials.password.label": "Password",
|
|
8
7
|
"creation.s_connection.title": "Connessione",
|
|
9
|
-
"creation.s_connection.description": "
|
|
8
|
+
"creation.s_connection.description": "Usa 443 con HTTPS per le camere con TLS attivo.",
|
|
10
9
|
"creation.s_connection.host.label": "IP della telecamera",
|
|
11
10
|
"creation.s_connection.port.label": "Porta",
|
|
12
11
|
"creation.s_connection.https.label": "Usa HTTPS",
|
|
13
12
|
"discoveryParams.s_credentials.title": "Credenziali",
|
|
14
|
-
"discoveryParams.s_credentials.description": "
|
|
13
|
+
"discoveryParams.s_credentials.description": "Presuppone che tutte le camere abbiano le stesse credenziali.",
|
|
15
14
|
"discoveryParams.s_credentials.username.label": "Nome utente",
|
|
16
15
|
"discoveryParams.s_credentials.password.label": "Password",
|
|
17
16
|
"discoveryParams.s_scan.title": "Opzioni di scansione",
|
|
18
|
-
"discoveryParams.s_scan.description": "
|
|
17
|
+
"discoveryParams.s_scan.description": "Lascia vuoto per scansionare la subnet dell'hub; inserisci il CIDR se le camere sono su un'altra subnet (es. 192.168.60.0/24).",
|
|
19
18
|
"discoveryParams.s_scan.networkCidr.label": "Rete (CIDR): obbligatoria se le telecamere sono su una sottorete diversa dall'hub",
|
|
20
19
|
"discoveryParams.s_scan.timeoutMs.label": "Timeout WS-Discovery (ms)",
|
|
21
20
|
"schema.s_connection.title": "Connessione",
|
|
22
|
-
"schema.s_connection.description": "Endpoint HTTP(S) Dahua CGI + credenziali Digest. RTSP usa sempre la porta 554.",
|
|
23
21
|
"schema.s_connection.host.label": "IP della telecamera",
|
|
24
22
|
"schema.s_connection.port.label": "Porta",
|
|
25
23
|
"schema.s_connection.https.label": "Usa HTTPS",
|
|
@@ -27,25 +25,22 @@
|
|
|
27
25
|
"schema.s_connection.username.label": "Nome utente",
|
|
28
26
|
"schema.s_connection.password.label": "Password",
|
|
29
27
|
"extrasSections.s_ir-lights.title": "IR + LED di stato",
|
|
30
|
-
"extrasSections.s_ir-lights.description": "
|
|
28
|
+
"extrasSections.s_ir-lights.description": "`Auto` segue la luce ambientale; `Manual` accende i LED alla luminosità impostata.",
|
|
31
29
|
"extrasSections.s_ir-lights.irLightMode.label": "Illuminatore IR",
|
|
32
30
|
"extrasSections.s_ir-lights.irLightMode.o_Auto.label": "Automatico (decide la telecamera)",
|
|
33
31
|
"extrasSections.s_ir-lights.irLightMode.o_Manual.label": "Sempre acceso",
|
|
34
32
|
"extrasSections.s_ir-lights.irLightMode.o_Off.label": "Sempre spento",
|
|
35
33
|
"extrasSections.s_ir-lights.irLightBrightness.label": "Luminosità IR",
|
|
36
|
-
"extrasSections.s_ir-lights.irLightBrightness.description": "Potenza dei LED IR (`MiddleLight[0].Light`, 0–100). Applicata nelle modalità Automatico e Manuale.",
|
|
37
34
|
"extrasSections.s_ir-lights.statusLedEnabled.label": "LED di stato",
|
|
38
|
-
"extrasSections.s_ir-lights.statusLedEnabled.description": "L'indicatore visibile sul corpo della telecamera (`LightGlobal[0].Enable`).",
|
|
39
35
|
"extrasSections.s_time-ntp.title": "Ora / NTP",
|
|
40
|
-
"extrasSections.s_time-ntp.description": "
|
|
36
|
+
"extrasSections.s_time-ntp.description": "Con NTP disattivato l'orologio di questa camera va fuori sincrono.",
|
|
41
37
|
"extrasSections.s_time-ntp.ntpEnabled.label": "Sincronizzazione NTP",
|
|
42
38
|
"extrasSections.s_time-ntp.ntpServer.label": "Server NTP",
|
|
43
39
|
"extrasSections.s_time-ntp.ntpPort.label": "Porta NTP",
|
|
44
40
|
"extrasSections.s_time-ntp.ntpUpdatePeriodMin.label": "Intervallo di sincronizzazione (min)",
|
|
45
41
|
"extrasSections.s_time-ntp.ntpTimeZoneIndex.label": "Indice del fuso orario (Dahua, 0–33)",
|
|
46
|
-
"extrasSections.s_time-ntp.ntpTimeZoneIndex.description": "Indice numerico
|
|
42
|
+
"extrasSections.s_time-ntp.ntpTimeZoneIndex.description": "Indice numerico Dahua (0–33) dalla lista dei fusi orari della web UI della camera, non una zona IANA. 26 = GMT+8.",
|
|
47
43
|
"extrasSections.s_auto-reboot.title": "Riavvio automatico",
|
|
48
|
-
"extrasSections.s_auto-reboot.description": "Riavvio automatico programmato (`AutoMaintain.AutoReboot*`). Scegli un giorno (o ogni giorno) e un orario; la telecamera si riavvia una volta per ogni finestra corrispondente.",
|
|
49
44
|
"extrasSections.s_auto-reboot.autoRebootEnabled.label": "Riavvio automatico",
|
|
50
45
|
"extrasSections.s_auto-reboot.autoRebootDay.label": "Giorno",
|
|
51
46
|
"extrasSections.s_auto-reboot.autoRebootDay.o_7.label": "Ogni giorno",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-amcrest",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.154",
|
|
4
4
|
"description": "Amcrest/Dahua camera device provider addon for CamStack — Dahua CGI over HTTP(S) with digest auth (snapshot, RTSP catalog, PTZ, image/day-night config)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|