@camstack/addon-provider-reolink 1.2.202 → 1.2.204
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 +150 -186
- package/dist/addon.mjs +150 -186
- package/i18n/en.json +30 -70
- package/i18n/it.json +30 -70
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -36,7 +36,7 @@ let node_os = require("node:os");
|
|
|
36
36
|
node_os = require_chunk.__toESM(node_os, 1);
|
|
37
37
|
let node_fs = require("node:fs");
|
|
38
38
|
node_fs = require_chunk.__toESM(node_fs, 1);
|
|
39
|
-
//#region ../types/dist/event-category-
|
|
39
|
+
//#region ../types/dist/event-category-BfJwUd2S.mjs
|
|
40
40
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
41
41
|
EventCategory["SystemBoot"] = "system.boot";
|
|
42
42
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -353,6 +353,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
353
353
|
*/
|
|
354
354
|
EventCategory["PipelineDetectionBlind"] = "pipeline.detection-blind";
|
|
355
355
|
/**
|
|
356
|
+
* A camera's motion source has fired constantly with no subject for an hour
|
|
357
|
+
* (motion duty or session count over the bar, zero detections) — it is not
|
|
358
|
+
* blind, its motion zones or sensitivity want tuning (D907). Paired with
|
|
359
|
+
* {@link PipelineMotionCalm}.
|
|
360
|
+
*/
|
|
361
|
+
EventCategory["PipelineMotionNoisy"] = "pipeline.motion-noisy";
|
|
362
|
+
/** The recovery edge of {@link PipelineMotionNoisy}: the motion fell back, or a detection arrived. */
|
|
363
|
+
EventCategory["PipelineMotionCalm"] = "pipeline.motion-calm";
|
|
364
|
+
/**
|
|
356
365
|
* Per-camera pipeline config was mutated by the orchestrator
|
|
357
366
|
* (3-level settings change via `setAgentAddonDefaults` /
|
|
358
367
|
* `setCameraStepToggle` / `setCameraPipelineForAgent` or a
|
|
@@ -5459,7 +5468,7 @@ var ZodIssueCode = {
|
|
|
5459
5468
|
var ZodFirstPartyTypeKind;
|
|
5460
5469
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5461
5470
|
//#endregion
|
|
5462
|
-
//#region ../types/dist/sleep-
|
|
5471
|
+
//#region ../types/dist/sleep-DJFUfKvA.mjs
|
|
5463
5472
|
/**
|
|
5464
5473
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5465
5474
|
* window to float samples (D455).
|
|
@@ -7992,7 +8001,7 @@ var EntryDescriptorSchema = object({
|
|
|
7992
8001
|
/** JSON Schema of the entry body; `secret: true` marks a password field. */
|
|
7993
8002
|
fields: record(string(), unknown())
|
|
7994
8003
|
}).strict();
|
|
7995
|
-
/** What crosses the wire
|
|
8004
|
+
/** What crosses the wire from an addon: JSON only, no Zod. An unknown key is refused. */
|
|
7996
8005
|
var RecordKindDeclarationSchema = object({
|
|
7997
8006
|
database: _enum(RECORD_DATABASES).default("settings"),
|
|
7998
8007
|
class: _enum(RECORD_CLASSES),
|
|
@@ -8011,14 +8020,6 @@ var RecordKindDeclarationSchema = object({
|
|
|
8011
8020
|
secretPaths: array(string().min(1)).default([]),
|
|
8012
8021
|
/** The id key of each array that carries a secret (`{ headers: 'name' }`). */
|
|
8013
8022
|
secretArrayKeys: record(string(), string()).default({}),
|
|
8014
|
-
/**
|
|
8015
|
-
* RETIRED (D900): the legacy table a kind adopted from during the records
|
|
8016
|
-
* migration. Nothing declares it any more and nothing reads it; the schema
|
|
8017
|
-
* still ACCEPTS it because the catalog rows the migration wrote carry it
|
|
8018
|
-
* (an orphaned kind is never redeclared) and an addon built before the
|
|
8019
|
-
* removal still sends it. Never set it.
|
|
8020
|
-
*/
|
|
8021
|
-
adoptsFrom: string().min(1).optional(),
|
|
8022
8023
|
/** Kinds that must agree through `transact` sit in one file under one family name. */
|
|
8023
8024
|
transactFamily: string().min(1).optional(),
|
|
8024
8025
|
entry: EntryDescriptorSchema.optional()
|
|
@@ -13310,17 +13311,6 @@ object({
|
|
|
13310
13311
|
createdAt: number(),
|
|
13311
13312
|
updatedAt: number()
|
|
13312
13313
|
});
|
|
13313
|
-
object({
|
|
13314
|
-
id: string(),
|
|
13315
|
-
label: string(),
|
|
13316
|
-
isAdmin: boolean().default(false),
|
|
13317
|
-
allowedProviders: AllowedProviderSchema,
|
|
13318
|
-
allowedDevices: AllowedDevicesSchema,
|
|
13319
|
-
tokenHash: string(),
|
|
13320
|
-
tokenPrefix: string(),
|
|
13321
|
-
createdAt: number(),
|
|
13322
|
-
lastUsedAt: number().optional()
|
|
13323
|
-
});
|
|
13324
13314
|
object({
|
|
13325
13315
|
id: string(),
|
|
13326
13316
|
userId: string(),
|
|
@@ -17302,16 +17292,36 @@ var RecordKindStateSchema = _enum([
|
|
|
17302
17292
|
var DeclareKindResultSchema = object({
|
|
17303
17293
|
kindId: number().int(),
|
|
17304
17294
|
state: RecordKindStateSchema,
|
|
17305
|
-
createdIndexes: array(string())
|
|
17306
|
-
/**
|
|
17307
|
-
* RETIRED (D900): always `null`. It carried the records-migration boot guard;
|
|
17308
|
-
* it stays on the wire, null, because an addon built before the removal reads
|
|
17309
|
-
* an ABSENT field as "adoption pending" and refuses to start.
|
|
17310
|
-
*/
|
|
17311
|
-
adoptionPending: _null()
|
|
17295
|
+
createdIndexes: array(string())
|
|
17312
17296
|
});
|
|
17313
17297
|
/** Keychain refs a write released (the old marker is gone from the row): the owner deletes the values. */
|
|
17314
17298
|
var SecretRefsList = array(string());
|
|
17299
|
+
/**
|
|
17300
|
+
* One op of a `transact`: the single-row writes, each on a kind of the caller.
|
|
17301
|
+
* All ops of one call share ONE database file and ONE `transactFamily`.
|
|
17302
|
+
*/
|
|
17303
|
+
var RecordTransactOpSchema = discriminatedUnion("op", [
|
|
17304
|
+
object({
|
|
17305
|
+
op: literal("put"),
|
|
17306
|
+
kind: RecordKindNameSchema,
|
|
17307
|
+
record: RecordInputSchema,
|
|
17308
|
+
ifRev: number().int().min(0).optional()
|
|
17309
|
+
}),
|
|
17310
|
+
object({
|
|
17311
|
+
op: literal("patch"),
|
|
17312
|
+
kind: RecordKindNameSchema,
|
|
17313
|
+
id: RecordIdSchema,
|
|
17314
|
+
data: RecordBodySchema,
|
|
17315
|
+
at: number().int().nullable().optional(),
|
|
17316
|
+
expiresAt: number().int().nullable().optional(),
|
|
17317
|
+
ifRev: number().int().min(1).optional()
|
|
17318
|
+
}),
|
|
17319
|
+
object({
|
|
17320
|
+
op: literal("delete"),
|
|
17321
|
+
kind: RecordKindNameSchema,
|
|
17322
|
+
id: RecordIdSchema
|
|
17323
|
+
})
|
|
17324
|
+
]);
|
|
17315
17325
|
var RecordSecretRefsSchema = record(string(), record(string(), string()));
|
|
17316
17326
|
method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema) }), object({ kinds: record(string(), DeclareKindResultSchema) }), {
|
|
17317
17327
|
kind: "mutation",
|
|
@@ -17418,6 +17428,16 @@ method(object({ kinds: record(RecordKindNameSchema, RecordKindDeclarationSchema)
|
|
|
17418
17428
|
}), {
|
|
17419
17429
|
kind: "mutation",
|
|
17420
17430
|
auth: "admin"
|
|
17431
|
+
}), method(object({ ops: array(RecordTransactOpSchema).min(1).max(RECORD_BATCH_MAX) }), object({
|
|
17432
|
+
results: array(object({
|
|
17433
|
+
rev: number().int().nullable(),
|
|
17434
|
+
deleted: boolean()
|
|
17435
|
+
})),
|
|
17436
|
+
releasedRefs: SecretRefsList,
|
|
17437
|
+
secretRefs: SecretRefsList
|
|
17438
|
+
}), {
|
|
17439
|
+
kind: "mutation",
|
|
17440
|
+
auth: "admin"
|
|
17421
17441
|
}), method(object({
|
|
17422
17442
|
deviceId: number().int(),
|
|
17423
17443
|
kinds: array(RecordKindNameSchema).optional()
|
|
@@ -43165,9 +43185,13 @@ var NcSystemEventKindSchema = _enum([
|
|
|
43165
43185
|
"node-updating",
|
|
43166
43186
|
"node-inference-unavailable",
|
|
43167
43187
|
"detection-blind",
|
|
43188
|
+
"motion-noisy",
|
|
43189
|
+
"motion-calm",
|
|
43168
43190
|
"recording-stalled",
|
|
43169
43191
|
"recording-healthy",
|
|
43170
43192
|
"recording-degraded",
|
|
43193
|
+
"device-attention-required",
|
|
43194
|
+
"device-attention-resolved",
|
|
43171
43195
|
"storage-location-low",
|
|
43172
43196
|
"storage-location-critical",
|
|
43173
43197
|
"storage-location-ok",
|
|
@@ -48728,7 +48752,6 @@ var RecommendationReasonSchema = discriminatedUnion("kind", [
|
|
|
48728
48752
|
modelId: string()
|
|
48729
48753
|
}),
|
|
48730
48754
|
object({ kind: literal("cpu-device") }),
|
|
48731
|
-
object({ kind: literal("coral-untouched") }),
|
|
48732
48755
|
object({ kind: literal("device-disabled") }),
|
|
48733
48756
|
object({ kind: literal("device-unavailable") }),
|
|
48734
48757
|
object({ kind: literal("node-offline") }),
|
|
@@ -48826,11 +48849,6 @@ var AutoTuneWarningSchema = discriminatedUnion("kind", [
|
|
|
48826
48849
|
kind: literal("detector-store-unreadable"),
|
|
48827
48850
|
error: string()
|
|
48828
48851
|
}),
|
|
48829
|
-
object({
|
|
48830
|
-
kind: literal("coral-enabled"),
|
|
48831
|
-
nodeId: string(),
|
|
48832
|
-
deviceKey: string()
|
|
48833
|
-
}),
|
|
48834
48852
|
object({
|
|
48835
48853
|
kind: literal("custom-pin-kept"),
|
|
48836
48854
|
nodeId: string(),
|
|
@@ -57013,6 +57031,16 @@ var DishwasherStatusSchema = object({
|
|
|
57013
57031
|
powerState: string().nullable(),
|
|
57014
57032
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
57015
57033
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
57034
|
+
/**
|
|
57035
|
+
* True while the appliance asks for its filter to be cleaned (smart-filter, filter-system or
|
|
57036
|
+
* combined care-and-filter reminder raised); false when every such reminder reads clear; null
|
|
57037
|
+
* when none is reported. A cleared reminder is not an unknown one.
|
|
57038
|
+
*/
|
|
57039
|
+
filterCleaningDue: boolean().nullable(),
|
|
57040
|
+
/** True while the machine-care (descaling / cleaning-program) reminder is raised; false when clear; null when not reported. */
|
|
57041
|
+
machineCareDue: boolean().nullable(),
|
|
57042
|
+
/** Program runs left before the machine-care reminder is due; null when the appliance does not say. */
|
|
57043
|
+
machineCareRemainingRuns: number().int().nonnegative().nullable(),
|
|
57016
57044
|
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
57017
57045
|
halfLoad: boolean().nullable(),
|
|
57018
57046
|
hygienePlus: boolean().nullable(),
|
|
@@ -66233,16 +66261,6 @@ var UpdateUserInputSchema = object({
|
|
|
66233
66261
|
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
66234
66262
|
scopes: array(TokenScopeSchema).optional()
|
|
66235
66263
|
});
|
|
66236
|
-
var ApiKeySummarySchema = object({
|
|
66237
|
-
id: string(),
|
|
66238
|
-
label: string(),
|
|
66239
|
-
isAdmin: boolean().default(false),
|
|
66240
|
-
allowedProviders: union([array(string()), literal("*")]).optional(),
|
|
66241
|
-
allowedDevices: record(string(), union([array(string()), literal("*")])).optional(),
|
|
66242
|
-
tokenPrefix: string(),
|
|
66243
|
-
createdAt: number(),
|
|
66244
|
-
lastUsedAt: number().optional()
|
|
66245
|
-
});
|
|
66246
66264
|
var OauthSessionSummarySchema = object({
|
|
66247
66265
|
id: string(),
|
|
66248
66266
|
userId: string(),
|
|
@@ -66264,8 +66282,7 @@ var TotpStatusSchema = object({
|
|
|
66264
66282
|
confirmedAt: number().nullable()
|
|
66265
66283
|
});
|
|
66266
66284
|
/**
|
|
66267
|
-
* user-management — singleton capability for user accounts
|
|
66268
|
-
* legacy API-key rows.
|
|
66285
|
+
* user-management — singleton capability for user accounts.
|
|
66269
66286
|
*
|
|
66270
66287
|
* v2 model: every method gated by `auth: 'admin'`. Admin-only delegation
|
|
66271
66288
|
* — the subset check on `setUserScopes` is moot
|
|
@@ -66321,10 +66338,6 @@ method(_void(), array(UserSummarySchema), { auth: "admin" }), method(CreateUserI
|
|
|
66321
66338
|
}), UserSummarySchema.extend({ passwordHash: string() }).nullable(), {
|
|
66322
66339
|
kind: "mutation",
|
|
66323
66340
|
access: "view"
|
|
66324
|
-
}), method(_void(), array(ApiKeySummarySchema), { auth: "admin" }), method(object({ id: string() }), object({ success: literal(true) }), {
|
|
66325
|
-
kind: "mutation",
|
|
66326
|
-
auth: "admin",
|
|
66327
|
-
access: "delete"
|
|
66328
66341
|
}), method(object({ userId: string() }), TotpSetupResultSchema, {
|
|
66329
66342
|
kind: "mutation",
|
|
66330
66343
|
auth: "admin",
|
|
@@ -75795,6 +75808,12 @@ Object.freeze({
|
|
|
75795
75808
|
addonId: null,
|
|
75796
75809
|
access: "view"
|
|
75797
75810
|
},
|
|
75811
|
+
"records.transact": {
|
|
75812
|
+
capName: "records",
|
|
75813
|
+
capScope: "system",
|
|
75814
|
+
addonId: null,
|
|
75815
|
+
access: "create"
|
|
75816
|
+
},
|
|
75798
75817
|
"sceneMonitor.captureReference": {
|
|
75799
75818
|
capName: "scene-monitor",
|
|
75800
75819
|
capScope: "device",
|
|
@@ -77127,12 +77146,6 @@ Object.freeze({
|
|
|
77127
77146
|
addonId: null,
|
|
77128
77147
|
access: "view"
|
|
77129
77148
|
},
|
|
77130
|
-
"userManagement.listApiKeys": {
|
|
77131
|
-
capName: "user-management",
|
|
77132
|
-
capScope: "system",
|
|
77133
|
-
addonId: null,
|
|
77134
|
-
access: "view"
|
|
77135
|
-
},
|
|
77136
77149
|
"userManagement.listExternalIdentities": {
|
|
77137
77150
|
capName: "user-management",
|
|
77138
77151
|
capScope: "system",
|
|
@@ -77187,12 +77200,6 @@ Object.freeze({
|
|
|
77187
77200
|
addonId: null,
|
|
77188
77201
|
access: "create"
|
|
77189
77202
|
},
|
|
77190
|
-
"userManagement.revokeApiKey": {
|
|
77191
|
-
capName: "user-management",
|
|
77192
|
-
capScope: "system",
|
|
77193
|
-
addonId: null,
|
|
77194
|
-
access: "delete"
|
|
77195
|
-
},
|
|
77196
77203
|
"userManagement.revokeOauthSession": {
|
|
77197
77204
|
capName: "user-management",
|
|
77198
77205
|
capScope: "system",
|
|
@@ -80709,9 +80716,13 @@ new Map(Object.entries({
|
|
|
80709
80716
|
"stream-online": "device-events",
|
|
80710
80717
|
"stream-offline": "device-events",
|
|
80711
80718
|
"detection-blind": "device-events",
|
|
80719
|
+
"motion-noisy": "device-events",
|
|
80720
|
+
"motion-calm": "device-events",
|
|
80712
80721
|
"recording-stalled": "device-events",
|
|
80713
80722
|
"recording-healthy": "device-events",
|
|
80714
80723
|
"recording-degraded": "device-events",
|
|
80724
|
+
"device-attention-required": "device-events",
|
|
80725
|
+
"device-attention-resolved": "device-events",
|
|
80715
80726
|
"node-online": "system",
|
|
80716
80727
|
"node-offline": "system",
|
|
80717
80728
|
"node-restarting": "system",
|
|
@@ -80794,6 +80805,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
80794
80805
|
label: "Detecting nothing",
|
|
80795
80806
|
kinds: ["detection-blind"]
|
|
80796
80807
|
},
|
|
80808
|
+
{
|
|
80809
|
+
id: "motion-noise",
|
|
80810
|
+
family: "device-events",
|
|
80811
|
+
label: "Motion without a subject",
|
|
80812
|
+
kinds: ["motion-noisy", "motion-calm"]
|
|
80813
|
+
},
|
|
80797
80814
|
{
|
|
80798
80815
|
id: "recording",
|
|
80799
80816
|
family: "device-events",
|
|
@@ -80804,6 +80821,12 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
80804
80821
|
"recording-degraded"
|
|
80805
80822
|
]
|
|
80806
80823
|
},
|
|
80824
|
+
{
|
|
80825
|
+
id: "device-attention",
|
|
80826
|
+
family: "device-events",
|
|
80827
|
+
label: "Needs attention",
|
|
80828
|
+
kinds: ["device-attention-required", "device-attention-resolved"]
|
|
80829
|
+
},
|
|
80807
80830
|
{
|
|
80808
80831
|
id: "nodes",
|
|
80809
80832
|
family: "system",
|
|
@@ -80943,6 +80966,7 @@ var ALERT_EPISODE = [
|
|
|
80943
80966
|
"alert-error",
|
|
80944
80967
|
"alert-critical-resolved"
|
|
80945
80968
|
];
|
|
80969
|
+
var DEVICE_ATTENTION = ["device-attention-required", "device-attention-resolved"];
|
|
80946
80970
|
var UPDATES = [
|
|
80947
80971
|
"addon-update-available",
|
|
80948
80972
|
"server-update-available",
|
|
@@ -80972,9 +80996,12 @@ var DEVICE_EVENTS = [
|
|
|
80972
80996
|
"stream-online",
|
|
80973
80997
|
"stream-offline",
|
|
80974
80998
|
"detection-blind",
|
|
80999
|
+
"motion-noisy",
|
|
81000
|
+
"motion-calm",
|
|
80975
81001
|
"recording-stalled",
|
|
80976
81002
|
"recording-healthy",
|
|
80977
81003
|
"recording-degraded",
|
|
81004
|
+
...DEVICE_ATTENTION,
|
|
80978
81005
|
...ALARM
|
|
80979
81006
|
];
|
|
80980
81007
|
/** Every kind a summary may speak about — the two summarisable families. */
|
|
@@ -81142,7 +81169,9 @@ var STATE_SUMMARY_VARS = [
|
|
|
81142
81169
|
[...RULE_TEXT],
|
|
81143
81170
|
[...RULE_TEXT],
|
|
81144
81171
|
[...RULE_TEXT],
|
|
81145
|
-
|
|
81172
|
+
[...RULE_TEXT],
|
|
81173
|
+
[...RULE_TEXT],
|
|
81174
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
81146
81175
|
[...RULE_TEXT],
|
|
81147
81176
|
[...RULE_TEXT],
|
|
81148
81177
|
[...RULE_TEXT],
|
|
@@ -81164,11 +81193,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
81164
81193
|
[...RULE_TEXT],
|
|
81165
81194
|
[...RULE_TEXT],
|
|
81166
81195
|
[...RULE_TEXT],
|
|
81196
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
81167
81197
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
81198
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
81168
81199
|
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
81169
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
81170
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
81171
|
-
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
81200
|
+
([...RULE_TEXT], [...DEVICE_ATTENTION, ...ALERT_EPISODE]),
|
|
81172
81201
|
[...RULE_TEXT],
|
|
81173
81202
|
[...RULE_TEXT],
|
|
81174
81203
|
[...RULE_TEXT],
|
|
@@ -81244,6 +81273,15 @@ new Map([
|
|
|
81244
81273
|
snapshotLabel: "Tanks low or full now",
|
|
81245
81274
|
snapshotSection: "tanks"
|
|
81246
81275
|
},
|
|
81276
|
+
{
|
|
81277
|
+
id: "motion-noise",
|
|
81278
|
+
family: "device-events",
|
|
81279
|
+
label: "Motion without a subject (constant / calm again)",
|
|
81280
|
+
bad: ["motion-noisy"],
|
|
81281
|
+
recovery: ["motion-calm"],
|
|
81282
|
+
snapshotLabel: "Cameras with constant motion now",
|
|
81283
|
+
snapshotSection: null
|
|
81284
|
+
},
|
|
81247
81285
|
{
|
|
81248
81286
|
id: "recording-health",
|
|
81249
81287
|
family: "device-events",
|
|
@@ -81253,6 +81291,15 @@ new Map([
|
|
|
81253
81291
|
snapshotLabel: "Recordings stalled now",
|
|
81254
81292
|
snapshotSection: null
|
|
81255
81293
|
},
|
|
81294
|
+
{
|
|
81295
|
+
id: "device-attention",
|
|
81296
|
+
family: "device-events",
|
|
81297
|
+
label: "Device needs attention (raised / resolved)",
|
|
81298
|
+
bad: ["device-attention-required"],
|
|
81299
|
+
recovery: ["device-attention-resolved"],
|
|
81300
|
+
snapshotLabel: "Devices needing attention now",
|
|
81301
|
+
snapshotSection: null
|
|
81302
|
+
},
|
|
81256
81303
|
{
|
|
81257
81304
|
id: "node-connectivity",
|
|
81258
81305
|
family: "system",
|
|
@@ -188577,8 +188624,8 @@ var CLIP_REFRESH_SECTION_ID = "clip-catalog-refresh";
|
|
|
188577
188624
|
* settings nobody could reason about. So the difference is in the operator's
|
|
188578
188625
|
* own text, at both levels, not only in a record.
|
|
188579
188626
|
*/
|
|
188580
|
-
var CLIP_CATALOG_REFRESH_MINUTES_DESCRIPTION = "
|
|
188581
|
-
var CLIP_CATALOG_FORCED_WAKE_DESCRIPTION = "Let the
|
|
188627
|
+
var CLIP_CATALOG_REFRESH_MINUTES_DESCRIPTION = "On a standalone battery camera the timer only marks the catalog as ageing; it never wakes the camera. 0 turns it off.";
|
|
188628
|
+
var CLIP_CATALOG_FORCED_WAKE_DESCRIPTION = "Let the timer wake a standalone battery camera: one wake per interval, at the battery’s cost. No effect on hub children or mains cameras.";
|
|
188582
188629
|
/**
|
|
188583
188630
|
* The addon-level (global) default. Per-camera overrides live on the device,
|
|
188584
188631
|
* under the SAME key, and a device that sets nothing — or resets — resolves to
|
|
@@ -188588,7 +188635,7 @@ function buildClipRefreshSettingsSchema() {
|
|
|
188588
188635
|
return { sections: [{
|
|
188589
188636
|
id: CLIP_REFRESH_SECTION_ID,
|
|
188590
188637
|
title: "Clip catalog refresh",
|
|
188591
|
-
description: "
|
|
188638
|
+
description: "Default for every camera; a camera can override it in its Recording settings.",
|
|
188592
188639
|
columns: 1,
|
|
188593
188640
|
fields: [{
|
|
188594
188641
|
type: "number",
|
|
@@ -188618,7 +188665,7 @@ function buildClipRefreshDeviceSection(input) {
|
|
|
188618
188665
|
id: CLIP_REFRESH_SECTION_ID,
|
|
188619
188666
|
tab: "recording",
|
|
188620
188667
|
title: "Clip catalog refresh",
|
|
188621
|
-
description: "
|
|
188668
|
+
description: "Leave the interval empty to use the default from the Reolink addon settings.",
|
|
188622
188669
|
columns: 1,
|
|
188623
188670
|
fields: [{
|
|
188624
188671
|
type: "number",
|
|
@@ -188897,7 +188944,7 @@ function buildSnapshotFreshnessSection(cache, opts) {
|
|
|
188897
188944
|
tab: "advanced",
|
|
188898
188945
|
title: "Snapshot freshness",
|
|
188899
188946
|
titleKey: "provider-reolink:snapshotFreshnessSection.s_snapshotFreshness.title",
|
|
188900
|
-
description: "
|
|
188947
|
+
description: "Groups without a stamp are of unknown age, not fresh.",
|
|
188901
188948
|
descriptionKey: "provider-reolink:snapshotFreshnessSection.s_snapshotFreshness.description",
|
|
188902
188949
|
columns: 1,
|
|
188903
188950
|
fields: [{
|
|
@@ -189928,7 +189975,7 @@ var BatteryHourlyRefresh = class {
|
|
|
189928
189975
|
//#endregion
|
|
189929
189976
|
//#region src/battery-refresh-settings.ts
|
|
189930
189977
|
var BATTERY_REFRESH_SECTION_ID = "battery-refresh";
|
|
189931
|
-
var BATTERY_REFRESH_MINUTES_DESCRIPTION =
|
|
189978
|
+
var BATTERY_REFRESH_MINUTES_DESCRIPTION = "A camera that slept the whole window is woken once to refresh. 0 turns the scheduled refresh off.";
|
|
189932
189979
|
/** Battery cameras only: a mains camera keeps its facts fresh on its own socket. */
|
|
189933
189980
|
function buildBatteryRefreshDeviceSection(input) {
|
|
189934
189981
|
if (!input.isBattery) return [];
|
|
@@ -189936,7 +189983,6 @@ function buildBatteryRefreshDeviceSection(input) {
|
|
|
189936
189983
|
id: BATTERY_REFRESH_SECTION_ID,
|
|
189937
189984
|
tab: "general",
|
|
189938
189985
|
title: "Scheduled refresh",
|
|
189939
|
-
description: "How often this battery camera is guaranteed to have been read, so a battery level never goes stale unseen.",
|
|
189940
189986
|
columns: 1,
|
|
189941
189987
|
fields: [{
|
|
189942
189988
|
type: "number",
|
|
@@ -190030,7 +190076,7 @@ async function refreshSnapshotCacheOnce(input) {
|
|
|
190030
190076
|
*/
|
|
190031
190077
|
var CH_BAICHUAN = declareLogChannel({
|
|
190032
190078
|
name: "provider-reolink.baichuan",
|
|
190033
|
-
description: "Every Baichuan protocol frame this camera sends and receives
|
|
190079
|
+
description: "Every Baichuan protocol frame this camera sends and receives. Loud: arm it for one camera and a short window.",
|
|
190034
190080
|
defaultLevel: "info",
|
|
190035
190081
|
perDevice: true
|
|
190036
190082
|
});
|
|
@@ -190045,7 +190091,7 @@ var CH_BAICHUAN = declareLogChannel({
|
|
|
190045
190091
|
*/
|
|
190046
190092
|
var CH_HANDSHAKE = declareLogChannel({
|
|
190047
190093
|
name: "provider-reolink.handshake",
|
|
190048
|
-
description: "Login and socket lifecycle for this camera
|
|
190094
|
+
description: "Login and socket lifecycle for this camera. Arm it when a camera looks present but answers nothing.",
|
|
190049
190095
|
defaultLevel: "info",
|
|
190050
190096
|
perDevice: true
|
|
190051
190097
|
});
|
|
@@ -190454,7 +190500,7 @@ function buildOsdSection(snapshot, values, opts) {
|
|
|
190454
190500
|
tab: "image",
|
|
190455
190501
|
title: "OSD overlay",
|
|
190456
190502
|
titleKey: "provider-reolink:osdSection.s_osd.title",
|
|
190457
|
-
description: "
|
|
190503
|
+
description: "An overlay the camera holds somewhere else keeps that placement unless a corner is chosen.",
|
|
190458
190504
|
descriptionKey: "provider-reolink:osdSection.s_osd.description",
|
|
190459
190505
|
columns: 2,
|
|
190460
190506
|
fields: [
|
|
@@ -190466,8 +190512,6 @@ function buildOsdSection(snapshot, values, opts) {
|
|
|
190466
190512
|
key: "osdChannelName",
|
|
190467
190513
|
label: "Channel name",
|
|
190468
190514
|
labelKey: "provider-reolink:fields.osdChannelName.label",
|
|
190469
|
-
description: "Text shown in the channel-name overlay.",
|
|
190470
|
-
descriptionKey: "provider-reolink:fields.osdChannelName.description",
|
|
190471
190515
|
default: values.osdChannelName,
|
|
190472
190516
|
placeholder: "Front door"
|
|
190473
190517
|
},
|
|
@@ -190951,7 +190995,7 @@ var SirenAccessory = class extends BaseDevice {
|
|
|
190951
190995
|
id: "siren",
|
|
190952
190996
|
title: "Siren",
|
|
190953
190997
|
titleKey: "provider-reolink:schema.s_siren.title",
|
|
190954
|
-
description: "
|
|
190998
|
+
description: "0 = play until turned off.",
|
|
190955
190999
|
descriptionKey: "provider-reolink:schema.s_siren.description",
|
|
190956
191000
|
columns: 1,
|
|
190957
191001
|
fields: [{
|
|
@@ -190959,8 +191003,6 @@ var SirenAccessory = class extends BaseDevice {
|
|
|
190959
191003
|
key: "sirenDurationS",
|
|
190960
191004
|
label: "Default duration (seconds)",
|
|
190961
191005
|
labelKey: "provider-reolink:schema.s_siren.sirenDurationS.label",
|
|
190962
|
-
description: "Forwarded to `setSiren(on=true, duration)` (cmd_id 30) when the operator flips the switch.",
|
|
190963
|
-
descriptionKey: "provider-reolink:schema.s_siren.sirenDurationS.description",
|
|
190964
191006
|
default: 0,
|
|
190965
191007
|
min: 0,
|
|
190966
191008
|
max: 300,
|
|
@@ -190970,16 +191012,12 @@ var SirenAccessory = class extends BaseDevice {
|
|
|
190970
191012
|
id: "motion-siren",
|
|
190971
191013
|
title: "Motion-triggered siren",
|
|
190972
191014
|
titleKey: "provider-reolink:schema.s_motion-siren.title",
|
|
190973
|
-
description: "Detection classes that fire the siren when \"Trigger on motion\" is armed. Forwarded as a `typeScheduleList` to `setSirenOnMotion` (cmd_id 231). Saved values re-apply on every motion-trigger flip.",
|
|
190974
|
-
descriptionKey: "provider-reolink:schema.s_motion-siren.description",
|
|
190975
191015
|
columns: 1,
|
|
190976
191016
|
fields: [{
|
|
190977
191017
|
type: "select",
|
|
190978
191018
|
key: "motionSirenDetectType",
|
|
190979
191019
|
label: "Detection classes",
|
|
190980
191020
|
labelKey: "provider-reolink:schema.s_motion-siren.motionSirenDetectType.label",
|
|
190981
|
-
description: "Object/motion classes that arm the siren. `MD` = generic motion detection.",
|
|
190982
|
-
descriptionKey: "provider-reolink:schema.s_motion-siren.motionSirenDetectType.description",
|
|
190983
191021
|
options: SIREN_DETECT_TYPE_CHOICES.map((v) => ({
|
|
190984
191022
|
value: v,
|
|
190985
191023
|
label: v.replace(/,/g, " + ").replace(/_/g, "+")
|
|
@@ -191443,16 +191481,12 @@ var FloodlightAccessory = class extends BaseDevice {
|
|
|
191443
191481
|
id: "motion-floodlight",
|
|
191444
191482
|
title: "Motion-triggered floodlight",
|
|
191445
191483
|
titleKey: "provider-reolink:schema.s_motion-floodlight.title",
|
|
191446
|
-
description: "Pushed to the camera (`FloodlightTask`) when the \"Trigger on motion\" toggle is armed. Saved values also re-apply on every motion-trigger flip so the firmware always honours your preference.",
|
|
191447
|
-
descriptionKey: "provider-reolink:schema.s_motion-floodlight.description",
|
|
191448
191484
|
columns: 2,
|
|
191449
191485
|
fields: [{
|
|
191450
191486
|
type: "number",
|
|
191451
191487
|
key: "motionLightDurationS",
|
|
191452
191488
|
label: "Light duration (s)",
|
|
191453
191489
|
labelKey: "provider-reolink:schema.s_motion-floodlight.motionLightDurationS.label",
|
|
191454
|
-
description: "Seconds the floodlight stays lit after a motion event. Reolink range 1..600s.",
|
|
191455
|
-
descriptionKey: "provider-reolink:schema.s_motion-floodlight.motionLightDurationS.description",
|
|
191456
191490
|
min: 1,
|
|
191457
191491
|
max: 600,
|
|
191458
191492
|
step: 1,
|
|
@@ -191462,8 +191496,6 @@ var FloodlightAccessory = class extends BaseDevice {
|
|
|
191462
191496
|
key: "motionLightDetectType",
|
|
191463
191497
|
label: "Detection classes",
|
|
191464
191498
|
labelKey: "provider-reolink:schema.s_motion-floodlight.motionLightDetectType.label",
|
|
191465
|
-
description: "Object classes that turn the floodlight on. Composed values (e.g. \"people,vehicle\") fire when ANY listed class detects.",
|
|
191466
|
-
descriptionKey: "provider-reolink:schema.s_motion-floodlight.motionLightDetectType.description",
|
|
191467
191499
|
options: FLOODLIGHT_DETECT_TYPE_CHOICES.map((v) => ({
|
|
191468
191500
|
value: v,
|
|
191469
191501
|
label: v.replace(/,/g, " + ").replace(/_/g, "+")
|
|
@@ -191703,8 +191735,6 @@ var PirAccessory = class extends BaseDevice {
|
|
|
191703
191735
|
id: "pir",
|
|
191704
191736
|
title: "PIR sensor",
|
|
191705
191737
|
titleKey: "provider-reolink:schema.s_pir.title",
|
|
191706
|
-
description: "Hardware passive-infrared trigger configuration. Pushed via cmd_id 153 (SetPirInfo).",
|
|
191707
|
-
descriptionKey: "provider-reolink:schema.s_pir.description",
|
|
191708
191738
|
columns: 2,
|
|
191709
191739
|
fields: [
|
|
191710
191740
|
{
|
|
@@ -191712,8 +191742,6 @@ var PirAccessory = class extends BaseDevice {
|
|
|
191712
191742
|
key: "pirSensitive",
|
|
191713
191743
|
label: "Sensitivity",
|
|
191714
191744
|
labelKey: "provider-reolink:schema.s_pir.pirSensitive.label",
|
|
191715
|
-
description: "Higher value → triggers on smaller motion. Most cameras max at 100.",
|
|
191716
|
-
descriptionKey: "provider-reolink:schema.s_pir.pirSensitive.description",
|
|
191717
191745
|
min: 1,
|
|
191718
191746
|
max: 100,
|
|
191719
191747
|
step: 1,
|
|
@@ -191725,7 +191753,6 @@ var PirAccessory = class extends BaseDevice {
|
|
|
191725
191753
|
key: "pirIntervalS",
|
|
191726
191754
|
label: "Cooldown (seconds)",
|
|
191727
191755
|
labelKey: "provider-reolink:schema.s_pir.pirIntervalS.label",
|
|
191728
|
-
description: `Minimum delay between consecutive PIR triggers. Reolink app range 5..${intervalMax}s; firmware clamps on push.`,
|
|
191729
191756
|
min: 5,
|
|
191730
191757
|
max: intervalMax,
|
|
191731
191758
|
step: 1,
|
|
@@ -191738,8 +191765,6 @@ var PirAccessory = class extends BaseDevice {
|
|
|
191738
191765
|
key: "pirReduceAlarm",
|
|
191739
191766
|
label: "Reduce false alarms",
|
|
191740
191767
|
labelKey: "provider-reolink:schema.s_pir.pirReduceAlarm.label",
|
|
191741
|
-
description: "Trades detection range for fewer false positives. Maps to firmware `reduceAlarm` flag.",
|
|
191742
|
-
descriptionKey: "provider-reolink:schema.s_pir.pirReduceAlarm.description",
|
|
191743
191768
|
...typeof reduceAlarm === "boolean" ? { default: reduceAlarm } : {},
|
|
191744
191769
|
style: "switch",
|
|
191745
191770
|
span: 2
|
|
@@ -193288,8 +193313,6 @@ function buildSessionsTabSections(snap, opts) {
|
|
|
193288
193313
|
return [{
|
|
193289
193314
|
id: "sessions-status",
|
|
193290
193315
|
title: opts.title ?? "Sessions",
|
|
193291
|
-
description: "Diagnostics for the Baichuan control channel. Auto-refreshes when older than 1 minute; click Refresh to force.",
|
|
193292
|
-
descriptionKey: "provider-reolink:sessionsTabSections.s_sessions-status.description",
|
|
193293
193316
|
tab: opts.tabId,
|
|
193294
193317
|
order: 0,
|
|
193295
193318
|
columns: 1,
|
|
@@ -193307,8 +193330,6 @@ function buildSessionsTabSections(snap, opts) {
|
|
|
193307
193330
|
key: "sessionsOnlineUsers",
|
|
193308
193331
|
label: "Online users (firmware)",
|
|
193309
193332
|
labelKey: "provider-reolink:sessionsTabSections.s_sessions-status.sessionsOnlineUsers.label",
|
|
193310
|
-
description: "Active user sessions reported by the device (cmd_id 145). Includes other admins, mobile app, NVR linkups.",
|
|
193311
|
-
descriptionKey: "provider-reolink:sessionsTabSections.s_sessions-status.sessionsOnlineUsers.description",
|
|
193312
193333
|
columns: [
|
|
193313
193334
|
{
|
|
193314
193335
|
key: "userName",
|
|
@@ -193351,8 +193372,6 @@ function buildSessionsTabSections(snap, opts) {
|
|
|
193351
193372
|
key: "sessionsSocketPool",
|
|
193352
193373
|
label: "Our socket pool",
|
|
193353
193374
|
labelKey: "provider-reolink:sessionsTabSections.s_sessions-status.sessionsSocketPool.label",
|
|
193354
|
-
description: "Open Baichuan TCP/UDP sockets this process holds for the device. One row per pool tag.",
|
|
193355
|
-
descriptionKey: "provider-reolink:sessionsTabSections.s_sessions-status.sessionsSocketPool.description",
|
|
193356
193375
|
columns: [{
|
|
193357
193376
|
key: "tag",
|
|
193358
193377
|
label: "Tag",
|
|
@@ -193373,8 +193392,6 @@ function buildSessionsTabSections(snap, opts) {
|
|
|
193373
193392
|
key: "sessionsDedicated",
|
|
193374
193393
|
label: "Dedicated lib sessions",
|
|
193375
193394
|
labelKey: "provider-reolink:sessionsTabSections.s_sessions-status.sessionsDedicated.label",
|
|
193376
|
-
description: "Internal lib-side dedicated sessions (streaming/talk channels). Older lib versions leave this list empty.",
|
|
193377
|
-
descriptionKey: "provider-reolink:sessionsTabSections.s_sessions-status.sessionsDedicated.description",
|
|
193378
193395
|
columns: [{
|
|
193379
193396
|
key: "key",
|
|
193380
193397
|
label: "Session key",
|
|
@@ -195759,7 +195776,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
195759
195776
|
tab: "motion",
|
|
195760
195777
|
title: "Battery motion (sleep push)",
|
|
195761
195778
|
titleKey: "provider-reolink:emailPushSection.s_sleep-push.title",
|
|
195762
|
-
description: "
|
|
195779
|
+
description: "Prefer the HaCfg webhook when the firmware supports it; arm only one path.",
|
|
195763
195780
|
descriptionKey: "provider-reolink:emailPushSection.s_sleep-push.description",
|
|
195764
195781
|
columns: 1,
|
|
195765
195782
|
fields: [
|
|
@@ -195825,7 +195842,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
195825
195842
|
tab: "email",
|
|
195826
195843
|
title: "SMTP server",
|
|
195827
195844
|
titleKey: "provider-reolink:emailTabSections.s_email-smtp.title",
|
|
195828
|
-
description: "
|
|
195845
|
+
description: "Leave the password blank to keep the current one.",
|
|
195829
195846
|
descriptionKey: "provider-reolink:emailTabSections.s_email-smtp.description",
|
|
195830
195847
|
columns: 2,
|
|
195831
195848
|
fields: [
|
|
@@ -195880,8 +195897,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
195880
195897
|
tab: "email",
|
|
195881
195898
|
title: "Recipients",
|
|
195882
195899
|
titleKey: "provider-reolink:emailTabSections.s_email-recipients.title",
|
|
195883
|
-
description: "Up to three recipient addresses the camera sends motion mail to.",
|
|
195884
|
-
descriptionKey: "provider-reolink:emailTabSections.s_email-recipients.description",
|
|
195885
195900
|
columns: 1,
|
|
195886
195901
|
fields: [
|
|
195887
195902
|
{
|
|
@@ -195910,8 +195925,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
195910
195925
|
tab: "email",
|
|
195911
195926
|
title: "Alarm schedule",
|
|
195912
195927
|
titleKey: "provider-reolink:emailTabSections.s_email-schedule.title",
|
|
195913
|
-
description: "Master enable for the camera's email alarm schedule (EmailTask).",
|
|
195914
|
-
descriptionKey: "provider-reolink:emailTabSections.s_email-schedule.description",
|
|
195915
195928
|
columns: 1,
|
|
195916
195929
|
fields: [{
|
|
195917
195930
|
type: "boolean",
|
|
@@ -199787,7 +199800,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
199787
199800
|
tab: "general",
|
|
199788
199801
|
title: "Camera data",
|
|
199789
199802
|
titleKey: "provider-reolink:schema.s_driver-refresh.title",
|
|
199790
|
-
description: "
|
|
199803
|
+
description: "Wakes a sleeping camera and re-reads everything; no other read here wakes it.",
|
|
199791
199804
|
descriptionKey: "provider-reolink:schema.s_driver-refresh.description",
|
|
199792
199805
|
columns: 1,
|
|
199793
199806
|
fields: [{
|
|
@@ -199806,8 +199819,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
199806
199819
|
tab: "general",
|
|
199807
199820
|
title: "Connection",
|
|
199808
199821
|
titleKey: "provider-reolink:schema.s_connection.title",
|
|
199809
|
-
description: "Baichuan protocol connection settings.",
|
|
199810
|
-
descriptionKey: "provider-reolink:schema.s_connection.description",
|
|
199811
199822
|
columns: 2,
|
|
199812
199823
|
fields: [
|
|
199813
199824
|
{
|
|
@@ -199850,7 +199861,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
199850
199861
|
tab: "network",
|
|
199851
199862
|
title: "Service ports",
|
|
199852
199863
|
titleKey: "provider-reolink:schema.s_network-ports.title",
|
|
199853
|
-
description: "
|
|
199864
|
+
description: "Changing a port breaks existing URLs for that protocol.",
|
|
199854
199865
|
descriptionKey: "provider-reolink:schema.s_network-ports.description",
|
|
199855
199866
|
columns: 2,
|
|
199856
199867
|
fields: [
|
|
@@ -199951,8 +199962,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
199951
199962
|
tab: "network",
|
|
199952
199963
|
title: "Time / NTP",
|
|
199953
199964
|
titleKey: "provider-reolink:schema.s_time-ntp.title",
|
|
199954
|
-
description: "Network time synchronisation. The camera-side push goes through the native Baichuan NTP commands; until those land in the driver lib the values persist to the driver config and apply on the next lib update.",
|
|
199955
|
-
descriptionKey: "provider-reolink:schema.s_time-ntp.description",
|
|
199956
199965
|
columns: 2,
|
|
199957
199966
|
fields: [
|
|
199958
199967
|
{
|
|
@@ -199960,8 +199969,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
199960
199969
|
key: "timeZoneId",
|
|
199961
199970
|
label: "Timezone",
|
|
199962
199971
|
labelKey: "provider-reolink:schema.s_time-ntp.timeZoneId.label",
|
|
199963
|
-
description: "Camera timezone. Selecting a zone pushes its standard UTC offset (Baichuan `SetSystemGeneral`, cmd 105) and DST rule (`SetDst`, cmd 107) to the camera — DST is handled automatically by the chosen zone, so summer/winter clocks track correctly without a separate toggle.",
|
|
199964
|
-
descriptionKey: "provider-reolink:schema.s_time-ntp.timeZoneId.description",
|
|
199965
199972
|
default: this.config.get("timeZoneId") ?? reolinkTimeZoneToIana(this.config.get("deviceCache")?.systemGeneralSnapshot?.timeZone) ?? "",
|
|
199966
199973
|
span: 2
|
|
199967
199974
|
},
|
|
@@ -200010,16 +200017,12 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200010
200017
|
tab: "motion",
|
|
200011
200018
|
title: "On-camera motion (MdAlarm)",
|
|
200012
200019
|
titleKey: "provider-reolink:schema.s_motion.title",
|
|
200013
|
-
description: "Camera-side motion detection master switch + sensitivity. Pushed via Baichuan `SetMdAlarm` (cmd_id 47). Range 1..50 matches the Reolink mobile app + web UI; the driver inverts to the camera-side raw value (`51 - value`) before push.",
|
|
200014
|
-
descriptionKey: "provider-reolink:schema.s_motion.description",
|
|
200015
200020
|
columns: 2,
|
|
200016
200021
|
fields: [{
|
|
200017
200022
|
type: "boolean",
|
|
200018
200023
|
key: "motionEnabled",
|
|
200019
200024
|
label: "Motion detection",
|
|
200020
200025
|
labelKey: "provider-reolink:schema.s_motion.motionEnabled.label",
|
|
200021
|
-
description: "Master switch for the camera's on-board motion detector. Disabling stops the camera from emitting motion events on the alarm channel.",
|
|
200022
|
-
descriptionKey: "provider-reolink:schema.s_motion.motionEnabled.description",
|
|
200023
200026
|
default: motionSnap.enabled ?? true,
|
|
200024
200027
|
style: "switch",
|
|
200025
200028
|
span: 2
|
|
@@ -200028,8 +200031,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200028
200031
|
key: "motionSensitivity",
|
|
200029
200032
|
label: "Sensitivity",
|
|
200030
200033
|
labelKey: "provider-reolink:schema.s_motion.motionSensitivity.label",
|
|
200031
|
-
description: "Higher = triggers on smaller motion. Reolink user-facing range 1..50.",
|
|
200032
|
-
descriptionKey: "provider-reolink:schema.s_motion.motionSensitivity.description",
|
|
200033
200034
|
min: 1,
|
|
200034
200035
|
max: 50,
|
|
200035
200036
|
step: 1,
|
|
@@ -200044,8 +200045,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200044
200045
|
tab: "motion",
|
|
200045
200046
|
title: "AI detection sensitivity",
|
|
200046
200047
|
titleKey: "provider-reolink:schema.s_ai-sensitivity.title",
|
|
200047
|
-
description: "Per-class on-camera AI sensitivity, stay time (dwell) + min/max target-size gates. Pushed via `SetAiAlarm` (cmd_id 343) in one consolidated write. Sensitivity range 0..100; stay time is the seconds the camera keeps the alarm asserted after the object leaves; target-size gates are the fraction of the frame (0..1) an object must occupy to be considered. Each group appears only when the camera advertises the corresponding detector.",
|
|
200048
|
-
descriptionKey: "provider-reolink:schema.s_ai-sensitivity.description",
|
|
200049
200048
|
columns: 2,
|
|
200050
200049
|
fields: [
|
|
200051
200050
|
[
|
|
@@ -200114,7 +200113,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200114
200113
|
type: "slider",
|
|
200115
200114
|
key: stayKey,
|
|
200116
200115
|
label: `${label} stay time (s)`,
|
|
200117
|
-
description: "Seconds the camera keeps the AI alarm asserted after the object leaves frame.",
|
|
200118
200116
|
min: 0,
|
|
200119
200117
|
max: 600,
|
|
200120
200118
|
step: 1,
|
|
@@ -200177,8 +200175,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200177
200175
|
tab: "image",
|
|
200178
200176
|
title: "Image",
|
|
200179
200177
|
titleKey: "provider-reolink:schema.s_image.title",
|
|
200180
|
-
description: "Core image settings pushed via Baichuan `SetImage` (cmd_id 25). Each slider rearms the camera on save; defaults seed from a `GetVideoInput` probe at boot (refreshed on every `applySettingsPatch`). Range 0..255 — most Reolink models clamp to 0..100 internally.",
|
|
200181
|
-
descriptionKey: "provider-reolink:schema.s_image.description",
|
|
200182
200178
|
columns: 2,
|
|
200183
200179
|
fields: [
|
|
200184
200180
|
{
|
|
@@ -200249,24 +200245,18 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200249
200245
|
tab: "image",
|
|
200250
200246
|
title: "Advanced (ISP)",
|
|
200251
200247
|
titleKey: "provider-reolink:schema.s_isp.title",
|
|
200252
|
-
description: "Day/Night + exposure + HDR. Pushed via `SetIsp` (cmd_id 25). The day/night threshold uses cmd_id 297 (DayNightThreshold).",
|
|
200253
|
-
descriptionKey: "provider-reolink:schema.s_isp.description",
|
|
200254
200248
|
columns: 2,
|
|
200255
200249
|
fields: [{
|
|
200256
200250
|
type: "text",
|
|
200257
200251
|
key: "ispDayNight",
|
|
200258
200252
|
label: "Day/Night mode",
|
|
200259
200253
|
labelKey: "provider-reolink:schema.s_isp.ispDayNight.label",
|
|
200260
|
-
description: "Camera-specific values — common: `auto`, `color`, `blackAndWhite`. The driver normalizes case before push.",
|
|
200261
|
-
descriptionKey: "provider-reolink:schema.s_isp.ispDayNight.description",
|
|
200262
200254
|
default: imgSnap.dayNight ?? "auto"
|
|
200263
200255
|
}, {
|
|
200264
200256
|
type: "text",
|
|
200265
200257
|
key: "ispExposure",
|
|
200266
200258
|
label: "Exposure",
|
|
200267
200259
|
labelKey: "provider-reolink:schema.s_isp.ispExposure.label",
|
|
200268
|
-
description: "Common values: `auto`, `manual`. Lowercased before push.",
|
|
200269
|
-
descriptionKey: "provider-reolink:schema.s_isp.ispExposure.description",
|
|
200270
200260
|
default: "auto"
|
|
200271
200261
|
}]
|
|
200272
200262
|
}] : [],
|
|
@@ -200275,8 +200265,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200275
200265
|
tab: "image",
|
|
200276
200266
|
title: "IR + status LED",
|
|
200277
200267
|
titleKey: "provider-reolink:schema.s_ir-lights.title",
|
|
200278
|
-
description: "IR LED control + per-camera IR brightness. Pushed via `SetIrLights` (cmd_id 209). State `Auto` lets the camera switch IR on automatically at low light; `Off` forces colour-only mode.",
|
|
200279
|
-
descriptionKey: "provider-reolink:schema.s_ir-lights.description",
|
|
200280
200268
|
columns: 2,
|
|
200281
200269
|
fields: [
|
|
200282
200270
|
{
|
|
@@ -200308,7 +200296,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200308
200296
|
key: "irLightsBrightness",
|
|
200309
200297
|
label: "IR brightness",
|
|
200310
200298
|
labelKey: "provider-reolink:schema.s_ir-lights.irLightsBrightness.label",
|
|
200311
|
-
description: "Only applied when the camera
|
|
200299
|
+
description: "Only applied when the camera supports adjustable IR brightness.",
|
|
200312
200300
|
descriptionKey: "provider-reolink:schema.s_ir-lights.irLightsBrightness.description",
|
|
200313
200301
|
min: 0,
|
|
200314
200302
|
max: 255,
|
|
@@ -200322,8 +200310,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200322
200310
|
key: "statusLedEnabled",
|
|
200323
200311
|
label: "Status LED",
|
|
200324
200312
|
labelKey: "provider-reolink:schema.s_ir-lights.statusLedEnabled.label",
|
|
200325
|
-
description: "The visible status/power LED on the camera body. Pushed via `SetIrLights` (cmd_id 209) as `lightState`.",
|
|
200326
|
-
descriptionKey: "provider-reolink:schema.s_ir-lights.statusLedEnabled.description",
|
|
200327
200313
|
default: cache?.ledSnapshot?.statusEnabled ?? true,
|
|
200328
200314
|
style: "switch",
|
|
200329
200315
|
span: cache?.ledSnapshot?.doorbellSupported === true ? 1 : 2
|
|
@@ -200333,8 +200319,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200333
200319
|
key: "doorbellLedEnabled",
|
|
200334
200320
|
label: "Doorbell LED",
|
|
200335
200321
|
labelKey: "provider-reolink:schema.s_ir-lights.doorbellLedEnabled.label",
|
|
200336
|
-
description: "The doorbell button ring LED. Pushed via `SetIrLights` (cmd_id 209) as `doorbellLightState`.",
|
|
200337
|
-
descriptionKey: "provider-reolink:schema.s_ir-lights.doorbellLedEnabled.description",
|
|
200338
200322
|
default: cache?.ledSnapshot?.doorbellEnabled ?? true,
|
|
200339
200323
|
style: "switch"
|
|
200340
200324
|
}] : []
|
|
@@ -200349,7 +200333,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200349
200333
|
tab: "image",
|
|
200350
200334
|
title: "Auto focus",
|
|
200351
200335
|
titleKey: "provider-reolink:schema.s_auto-focus.title",
|
|
200352
|
-
description: "
|
|
200336
|
+
description: "Disabling locks the lens at its current focus.",
|
|
200353
200337
|
descriptionKey: "provider-reolink:schema.s_auto-focus.description",
|
|
200354
200338
|
columns: 1,
|
|
200355
200339
|
fields: [{
|
|
@@ -200366,8 +200350,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200366
200350
|
tab: "audio",
|
|
200367
200351
|
title: "Audio output",
|
|
200368
200352
|
titleKey: "provider-reolink:schema.s_audio.title",
|
|
200369
|
-
description: "Speaker volumes pushed via `SetAudioCfg` (cmd_id 265). All ranges 0..100. Doorbell models expose the visitor / talkAndReply channels — non-doorbell cameras ignore those without erroring.",
|
|
200370
|
-
descriptionKey: "provider-reolink:schema.s_audio.description",
|
|
200371
200353
|
columns: 2,
|
|
200372
200354
|
fields: [
|
|
200373
200355
|
{
|
|
@@ -200387,7 +200369,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200387
200369
|
key: "audioTalkAndReplyVolume",
|
|
200388
200370
|
label: "Talk + reply volume",
|
|
200389
200371
|
labelKey: "provider-reolink:schema.s_audio.audioTalkAndReplyVolume.label",
|
|
200390
|
-
description: "
|
|
200372
|
+
description: "Doorbell models only.",
|
|
200391
200373
|
descriptionKey: "provider-reolink:schema.s_audio.audioTalkAndReplyVolume.description",
|
|
200392
200374
|
min: 0,
|
|
200393
200375
|
max: 100,
|
|
@@ -200401,7 +200383,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200401
200383
|
key: "audioVisitorVolume",
|
|
200402
200384
|
label: "Visitor volume",
|
|
200403
200385
|
labelKey: "provider-reolink:schema.s_audio.audioVisitorVolume.label",
|
|
200404
|
-
description: "
|
|
200386
|
+
description: "Doorbell models only.",
|
|
200405
200387
|
descriptionKey: "provider-reolink:schema.s_audio.audioVisitorVolume.description",
|
|
200406
200388
|
min: 0,
|
|
200407
200389
|
max: 100,
|
|
@@ -200418,8 +200400,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200418
200400
|
tab: "audio",
|
|
200419
200401
|
title: "Audio noise reduction",
|
|
200420
200402
|
titleKey: "provider-reolink:schema.s_audio-noise.title",
|
|
200421
|
-
description: "On-camera AI denoise applied to the encoded audio track. Pushed via `SetAudioNoise` (cmd_id 440). 0 disables; 1..3 maps to the Reolink mobile app levels (low / mid / high).",
|
|
200422
|
-
descriptionKey: "provider-reolink:schema.s_audio-noise.description",
|
|
200423
200403
|
columns: 1,
|
|
200424
200404
|
fields: [{
|
|
200425
200405
|
type: "slider",
|
|
@@ -200441,7 +200421,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200441
200421
|
tab: "audio",
|
|
200442
200422
|
title: "Intercom",
|
|
200443
200423
|
titleKey: "provider-reolink:schema.s_intercom.title",
|
|
200444
|
-
description: "
|
|
200424
|
+
description: "Changes apply to the next talk session.",
|
|
200445
200425
|
descriptionKey: "provider-reolink:schema.s_intercom.description",
|
|
200446
200426
|
columns: 2,
|
|
200447
200427
|
fields: [
|
|
@@ -200450,7 +200430,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200450
200430
|
key: "intercomBlocksPerPayload",
|
|
200451
200431
|
label: "Blocks per payload",
|
|
200452
200432
|
labelKey: "provider-reolink:schema.s_intercom.intercomBlocksPerPayload.label",
|
|
200453
|
-
description: "Lower
|
|
200433
|
+
description: "Lower is lower latency, higher is fewer calls. Range 1..8.",
|
|
200454
200434
|
descriptionKey: "provider-reolink:schema.s_intercom.intercomBlocksPerPayload.description",
|
|
200455
200435
|
min: 1,
|
|
200456
200436
|
max: 8,
|
|
@@ -200464,7 +200444,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200464
200444
|
key: "intercomMaxBacklogMs",
|
|
200465
200445
|
label: "Max backlog (ms)",
|
|
200466
200446
|
labelKey: "provider-reolink:schema.s_intercom.intercomMaxBacklogMs.label",
|
|
200467
|
-
description: "
|
|
200447
|
+
description: "Higher is more stable on slow systems but adds latency. Range 20..5000.",
|
|
200468
200448
|
descriptionKey: "provider-reolink:schema.s_intercom.intercomMaxBacklogMs.description",
|
|
200469
200449
|
min: 20,
|
|
200470
200450
|
max: 5e3,
|
|
@@ -200478,7 +200458,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200478
200458
|
key: "intercomGain",
|
|
200479
200459
|
label: "Output gain",
|
|
200480
200460
|
labelKey: "provider-reolink:schema.s_intercom.intercomGain.label",
|
|
200481
|
-
description: "
|
|
200461
|
+
description: "1.0 = neutral, 2.0 ≈ +6 dB, 0.5 ≈ -6 dB.",
|
|
200482
200462
|
descriptionKey: "provider-reolink:schema.s_intercom.intercomGain.description",
|
|
200483
200463
|
min: .1,
|
|
200484
200464
|
max: 10,
|
|
@@ -200495,7 +200475,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200495
200475
|
tab: "advanced",
|
|
200496
200476
|
title: "Keyframe interval (GOP)",
|
|
200497
200477
|
titleKey: "provider-reolink:schema.s_keyframe-gop.title",
|
|
200498
|
-
description: "
|
|
200478
|
+
description: "Lower = more keyframes (faster recovery, higher bitrate).",
|
|
200499
200479
|
descriptionKey: "provider-reolink:schema.s_keyframe-gop.description",
|
|
200500
200480
|
columns: 1,
|
|
200501
200481
|
fields: [{
|
|
@@ -200516,8 +200496,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200516
200496
|
tab: "advanced",
|
|
200517
200497
|
title: "PIR detection",
|
|
200518
200498
|
titleKey: "provider-reolink:schema.s_pir-reduce-alarm.title",
|
|
200519
|
-
description: "Passive-infrared false-alarm filter. Pushed via `SetPirInfo` (cmd_id 213) as `reduceAlarm`. Enabling makes the camera require a stronger/longer PIR signal before triggering, cutting false motion alerts from heat/light flicker.",
|
|
200520
|
-
descriptionKey: "provider-reolink:schema.s_pir-reduce-alarm.description",
|
|
200521
200499
|
columns: 1,
|
|
200522
200500
|
fields: [{
|
|
200523
200501
|
type: "boolean",
|
|
@@ -200533,8 +200511,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200533
200511
|
tab: "advanced",
|
|
200534
200512
|
title: "Auto reboot",
|
|
200535
200513
|
titleKey: "provider-reolink:schema.s_auto-reboot.title",
|
|
200536
|
-
description: "Scheduled automatic reboot. Pushed via `SetAutoReboot` (cmd_id 100). Useful for long-uptime stability. Choose a day (or every day) + time; the camera reboots once per matching window.",
|
|
200537
|
-
descriptionKey: "provider-reolink:schema.s_auto-reboot.description",
|
|
200538
200514
|
columns: 2,
|
|
200539
200515
|
fields: [
|
|
200540
200516
|
{
|
|
@@ -200623,7 +200599,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200623
200599
|
tab: "advanced",
|
|
200624
200600
|
title: "Debug",
|
|
200625
200601
|
titleKey: "provider-reolink:schema.s_debug.title",
|
|
200626
|
-
description: "
|
|
200602
|
+
description: "Debug logging adds log volume; use it temporarily.",
|
|
200627
200603
|
descriptionKey: "provider-reolink:schema.s_debug.description",
|
|
200628
200604
|
columns: 1,
|
|
200629
200605
|
fields: [{
|
|
@@ -200631,8 +200607,6 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200631
200607
|
key: "debugGeneral",
|
|
200632
200608
|
label: "General debug logs",
|
|
200633
200609
|
labelKey: "provider-reolink:schema.s_debug.debugGeneral.label",
|
|
200634
|
-
description: "Forwards `DebugOptions.general=true` — verbose lib protocol logs.",
|
|
200635
|
-
descriptionKey: "provider-reolink:schema.s_debug.debugGeneral.description",
|
|
200636
200610
|
default: false,
|
|
200637
200611
|
style: "switch"
|
|
200638
200612
|
}, {
|
|
@@ -200640,7 +200614,7 @@ var ReolinkCamera = class ReolinkCamera extends BaseDevice {
|
|
|
200640
200614
|
key: "debugSocketLogs",
|
|
200641
200615
|
label: "Socket trace categories",
|
|
200642
200616
|
labelKey: "provider-reolink:schema.s_debug.debugSocketLogs.label",
|
|
200643
|
-
description: "
|
|
200617
|
+
description: "Each area adds log volume.",
|
|
200644
200618
|
descriptionKey: "provider-reolink:schema.s_debug.debugSocketLogs.description",
|
|
200645
200619
|
default: [],
|
|
200646
200620
|
options: [
|
|
@@ -202211,7 +202185,7 @@ var ReolinkHub = class ReolinkHub extends BaseDevice {
|
|
|
202211
202185
|
tab: "general",
|
|
202212
202186
|
title: "Connection",
|
|
202213
202187
|
titleKey: "provider-reolink:hub.s_connection.title",
|
|
202214
|
-
description: "
|
|
202188
|
+
description: "Child cameras inherit these credentials.",
|
|
202215
202189
|
descriptionKey: "provider-reolink:hub.s_connection.description",
|
|
202216
202190
|
columns: 2,
|
|
202217
202191
|
fields: [
|
|
@@ -202255,8 +202229,6 @@ var ReolinkHub = class ReolinkHub extends BaseDevice {
|
|
|
202255
202229
|
tab: "general",
|
|
202256
202230
|
title: "Hub identity",
|
|
202257
202231
|
titleKey: "provider-reolink:hub.s_identity.title",
|
|
202258
|
-
description: "Read-only summary from the autodetect probe. Channel count and model are persisted at first contact so the panel renders without re-probing.",
|
|
202259
|
-
descriptionKey: "provider-reolink:hub.s_identity.description",
|
|
202260
202232
|
columns: 2,
|
|
202261
202233
|
fields: [{
|
|
202262
202234
|
type: "text",
|
|
@@ -202279,7 +202251,7 @@ var ReolinkHub = class ReolinkHub extends BaseDevice {
|
|
|
202279
202251
|
tab: "advanced",
|
|
202280
202252
|
title: "Debug",
|
|
202281
202253
|
titleKey: "provider-reolink:hub.s_debug.title",
|
|
202282
|
-
description: "
|
|
202254
|
+
description: "Debug logging adds log volume; use it temporarily.",
|
|
202283
202255
|
descriptionKey: "provider-reolink:hub.s_debug.description",
|
|
202284
202256
|
columns: 1,
|
|
202285
202257
|
fields: [{
|
|
@@ -202287,8 +202259,6 @@ var ReolinkHub = class ReolinkHub extends BaseDevice {
|
|
|
202287
202259
|
key: "debugGeneral",
|
|
202288
202260
|
label: "General debug logs",
|
|
202289
202261
|
labelKey: "provider-reolink:hub.s_debug.debugGeneral.label",
|
|
202290
|
-
description: "Forwards `DebugOptions.general=true` — verbose lib protocol logs.",
|
|
202291
|
-
descriptionKey: "provider-reolink:hub.s_debug.debugGeneral.description",
|
|
202292
202262
|
default: false,
|
|
202293
202263
|
style: "switch"
|
|
202294
202264
|
}, {
|
|
@@ -202296,7 +202266,7 @@ var ReolinkHub = class ReolinkHub extends BaseDevice {
|
|
|
202296
202266
|
key: "debugSocketLogs",
|
|
202297
202267
|
label: "Socket trace categories",
|
|
202298
202268
|
labelKey: "provider-reolink:hub.s_debug.debugSocketLogs.label",
|
|
202299
|
-
description: "
|
|
202269
|
+
description: "Each area adds log volume.",
|
|
202300
202270
|
descriptionKey: "provider-reolink:hub.s_debug.debugSocketLogs.description",
|
|
202301
202271
|
default: [],
|
|
202302
202272
|
options: [
|
|
@@ -203059,7 +203029,7 @@ function buildDiscoveryParamsFormSchema() {
|
|
|
203059
203029
|
id: "credentials",
|
|
203060
203030
|
title: "Credentials",
|
|
203061
203031
|
titleKey: "provider-reolink:discoveryParams.s_credentials.title",
|
|
203062
|
-
description: "
|
|
203032
|
+
description: "Assumes all cameras share these credentials.",
|
|
203063
203033
|
descriptionKey: "provider-reolink:discoveryParams.s_credentials.description",
|
|
203064
203034
|
columns: 2,
|
|
203065
203035
|
fields: [{
|
|
@@ -203081,7 +203051,7 @@ function buildDiscoveryParamsFormSchema() {
|
|
|
203081
203051
|
id: "scan",
|
|
203082
203052
|
title: "Scan options",
|
|
203083
203053
|
titleKey: "provider-reolink:discoveryParams.s_scan.title",
|
|
203084
|
-
description: "Leave
|
|
203054
|
+
description: "Leave blank to scan the local subnet; for another subnet enter its CIDR (e.g. 192.168.20.0/24).",
|
|
203085
203055
|
descriptionKey: "provider-reolink:discoveryParams.s_scan.description",
|
|
203086
203056
|
columns: 1,
|
|
203087
203057
|
fields: [
|
|
@@ -203132,8 +203102,6 @@ function buildCreationFormSchema() {
|
|
|
203132
203102
|
id: "credentials",
|
|
203133
203103
|
title: "Credentials",
|
|
203134
203104
|
titleKey: "provider-reolink:creation.s_credentials.title",
|
|
203135
|
-
description: "Required for the autodetect probe — entered before the host so Test can run immediately.",
|
|
203136
|
-
descriptionKey: "provider-reolink:creation.s_credentials.description",
|
|
203137
203105
|
columns: 2,
|
|
203138
203106
|
fields: [{
|
|
203139
203107
|
type: "text",
|
|
@@ -203155,8 +203123,6 @@ function buildCreationFormSchema() {
|
|
|
203155
203123
|
id: "connection",
|
|
203156
203124
|
title: "Connection",
|
|
203157
203125
|
titleKey: "provider-reolink:creation.s_connection.title",
|
|
203158
|
-
description: "Click Test to auto-detect the device type (regular camera / NVR / battery / UDP-only). The detected type is then used at save time.",
|
|
203159
|
-
descriptionKey: "provider-reolink:creation.s_connection.description",
|
|
203160
203126
|
columns: 2,
|
|
203161
203127
|
fields: [
|
|
203162
203128
|
{
|
|
@@ -203165,7 +203131,7 @@ function buildCreationFormSchema() {
|
|
|
203165
203131
|
label: "Connection mode",
|
|
203166
203132
|
labelKey: "provider-reolink:creation.s_connection.transport.label",
|
|
203167
203133
|
default: "auto",
|
|
203168
|
-
description: "Auto
|
|
203134
|
+
description: "Auto tries TCP, then UDP. Battery cameras behind NAT need UDP.",
|
|
203169
203135
|
descriptionKey: "provider-reolink:creation.s_connection.transport.description",
|
|
203170
203136
|
options: [
|
|
203171
203137
|
{
|
|
@@ -203192,7 +203158,7 @@ function buildCreationFormSchema() {
|
|
|
203192
203158
|
labelKey: "provider-reolink:creation.s_connection.host.label",
|
|
203193
203159
|
required: true,
|
|
203194
203160
|
placeholder: "192.168.10.100",
|
|
203195
|
-
description: "
|
|
203161
|
+
description: "In UDP-only mode leave blank and use the UID below.",
|
|
203196
203162
|
descriptionKey: "provider-reolink:creation.s_connection.host.description",
|
|
203197
203163
|
inputType: "text"
|
|
203198
203164
|
},
|
|
@@ -203205,8 +203171,6 @@ function buildCreationFormSchema() {
|
|
|
203205
203171
|
min: 1,
|
|
203206
203172
|
max: 65535,
|
|
203207
203173
|
step: 1,
|
|
203208
|
-
description: "Baichuan port. Default 9000 — applies to TCP. Ignored for UDP transport.",
|
|
203209
|
-
descriptionKey: "provider-reolink:creation.s_connection.port.description",
|
|
203210
203174
|
showWhen: {
|
|
203211
203175
|
field: "transport",
|
|
203212
203176
|
notEquals: "udp"
|
|
@@ -203218,7 +203182,7 @@ function buildCreationFormSchema() {
|
|
|
203218
203182
|
label: "Device UID",
|
|
203219
203183
|
labelKey: "provider-reolink:creation.s_connection.uid.label",
|
|
203220
203184
|
placeholder: "9527000XXXXXXXX",
|
|
203221
|
-
description: "
|
|
203185
|
+
description: "Needed for battery / UDP cameras that are not on the same LAN.",
|
|
203222
203186
|
descriptionKey: "provider-reolink:creation.s_connection.uid.description",
|
|
203223
203187
|
showWhen: {
|
|
203224
203188
|
field: "transport",
|
|
@@ -203759,7 +203723,7 @@ function buildEmailPushSettingsSchema(recommendedHost) {
|
|
|
203759
203723
|
id: "email-push",
|
|
203760
203724
|
title: "Battery-cam Motion (Email/SMTP Push)",
|
|
203761
203725
|
titleKey: "provider-reolink:emailPushSettings.s_email-push.title",
|
|
203762
|
-
description: "
|
|
203726
|
+
description: "Lets battery cameras report motion by email without being woken.",
|
|
203763
203727
|
descriptionKey: "provider-reolink:emailPushSettings.s_email-push.description",
|
|
203764
203728
|
columns: 2,
|
|
203765
203729
|
fields: [
|
|
@@ -203799,7 +203763,7 @@ function buildEmailPushSettingsSchema(recommendedHost) {
|
|
|
203799
203763
|
id: "email-push-auth",
|
|
203800
203764
|
title: "Email Push Authentication",
|
|
203801
203765
|
titleKey: "provider-reolink:emailPushSettings.s_email-push-auth.title",
|
|
203802
|
-
description: "
|
|
203766
|
+
description: "Random values are generated on first boot; re-run Auto-configure on cameras after changing them.",
|
|
203803
203767
|
descriptionKey: "provider-reolink:emailPushSettings.s_email-push-auth.description",
|
|
203804
203768
|
columns: 2,
|
|
203805
203769
|
fields: [
|
|
@@ -204008,7 +203972,7 @@ function buildBaichuanWebhookSettingsSchema(recommendedHost) {
|
|
|
204008
203972
|
id: "baichuan-webhook",
|
|
204009
203973
|
title: "Battery-cam Motion (HaCfg Webhook)",
|
|
204010
203974
|
titleKey: "provider-reolink:baichuanWebhookSettings.s_baichuan-webhook.title",
|
|
204011
|
-
description: "
|
|
203975
|
+
description: "Preferred over email push when the camera firmware supports it.",
|
|
204012
203976
|
descriptionKey: "provider-reolink:baichuanWebhookSettings.s_baichuan-webhook.description",
|
|
204013
203977
|
columns: 2,
|
|
204014
203978
|
fields: [
|