camstack 1.2.177 → 1.2.179
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.
|
@@ -17774,11 +17774,11 @@ var ModelVariantGroupSchema = external_exports.object({
|
|
|
17774
17774
|
/** Quantization axis. Omit ⇒ the fp32 base build. */
|
|
17775
17775
|
precision: external_exports.enum(["fp32", "int8"]).optional(),
|
|
17776
17776
|
/**
|
|
17777
|
-
*
|
|
17778
|
-
*
|
|
17779
|
-
*
|
|
17777
|
+
* Training / latency-variant axis. Omit ⇒ the standard build. `test` marks
|
|
17778
|
+
* an alternate training of the same family (Scrypted `relu_test`); chip
|
|
17779
|
+
* label is "Test".
|
|
17780
17780
|
*/
|
|
17781
|
-
optimization: external_exports.enum(["standard", "
|
|
17781
|
+
optimization: external_exports.enum(["standard", "test"]).optional(),
|
|
17782
17782
|
/**
|
|
17783
17783
|
* Input-resolution axis (square input side, px). Omit ⇒ the family's native
|
|
17784
17784
|
* resolution (640 for yolo26). Reduced-input builds (320 / 256) are a big,
|
|
@@ -25333,7 +25333,7 @@ var modelConvertCapability = {
|
|
|
25333
25333
|
}) }
|
|
25334
25334
|
};
|
|
25335
25335
|
var ModelDistributeInputSchema = external_exports.object({
|
|
25336
|
-
|
|
25336
|
+
targetNodeId: external_exports.string(),
|
|
25337
25337
|
modelId: external_exports.string(),
|
|
25338
25338
|
format: external_exports.enum(MODEL_FORMATS),
|
|
25339
25339
|
entry: ModelCatalogEntrySchema
|
|
@@ -27316,6 +27316,7 @@ var NcStateSummarySectionIdSchema = external_exports.enum([
|
|
|
27316
27316
|
"detection-blind",
|
|
27317
27317
|
"nodes",
|
|
27318
27318
|
"addons",
|
|
27319
|
+
"addon-updates",
|
|
27319
27320
|
"updates"
|
|
27320
27321
|
]);
|
|
27321
27322
|
var NcStateSummaryPreviewSectionSchema = external_exports.object({
|
|
@@ -27702,7 +27703,19 @@ var NcAlarmModeDelaysSchema = external_exports.object({
|
|
|
27702
27703
|
* When this mode may be armed. Absent / null = always allowed (same as a
|
|
27703
27704
|
* rule with no `schedule`). Evaluated with {@link isScheduleActive}.
|
|
27704
27705
|
*/
|
|
27705
|
-
schedule: NcScheduleSchema.optional()
|
|
27706
|
+
schedule: NcScheduleSchema.optional(),
|
|
27707
|
+
/**
|
|
27708
|
+
* D706: while this mode's ENTRY DELAY runs, do the alarm rules' own pushes go out (as an
|
|
27709
|
+
* intrusion naming the locations)? Absent = false — the entry-delay notification is the
|
|
27710
|
+
* only one, and the matches ride the triggered notification's mosaic (D705).
|
|
27711
|
+
*/
|
|
27712
|
+
notifyDuringEntryDelay: external_exports.boolean().optional(),
|
|
27713
|
+
/**
|
|
27714
|
+
* D706: notify "watched again" when a sensor this arm bypassed closes and opens again.
|
|
27715
|
+
* Absent = false (logged, not sent). Even when true it is not sent when that same sensor
|
|
27716
|
+
* is the one that starts the entry delay — the entry-delay notification already names it.
|
|
27717
|
+
*/
|
|
27718
|
+
notifySensorRewatched: external_exports.boolean().optional()
|
|
27706
27719
|
});
|
|
27707
27720
|
var NcAlarmModeDelaysListSchema = external_exports.array(NcAlarmModeDelaysSchema).max(8).refine(uniqueModes, { message: "modeDelays: at most one entry per arm mode" });
|
|
27708
27721
|
var NcAlarmModeDelaysEditSchema = external_exports.object({
|
|
@@ -27712,7 +27725,11 @@ var NcAlarmModeDelaysEditSchema = external_exports.object({
|
|
|
27712
27725
|
triggeredDurationSec: NcAlarmTriggeredSecSchema.nullable().optional(),
|
|
27713
27726
|
postTriggeredAction: NcAlarmPostTriggeredActionSchema.nullable().optional(),
|
|
27714
27727
|
/** Set a schedule, or `null` to clear (mode always allowed again). */
|
|
27715
|
-
schedule: NcScheduleSchema.nullable().optional()
|
|
27728
|
+
schedule: NcScheduleSchema.nullable().optional(),
|
|
27729
|
+
/** D706: set the switch, or `null` to clear it (back to the default, false). */
|
|
27730
|
+
notifyDuringEntryDelay: external_exports.boolean().nullable().optional(),
|
|
27731
|
+
/** D706: set the switch, or `null` to clear it (back to the default, false). */
|
|
27732
|
+
notifySensorRewatched: external_exports.boolean().nullable().optional()
|
|
27716
27733
|
});
|
|
27717
27734
|
var NcAlarmModeDelaysEditListSchema = external_exports.array(NcAlarmModeDelaysEditSchema).max(8).refine(uniqueModes, { message: "modeDelays: at most one edit per arm mode" });
|
|
27718
27735
|
var NcAlarmNonBlockingEditSchema = external_exports.object({
|
|
@@ -28552,39 +28569,19 @@ var CLUSTER_MODEL_SCOPED_STEPS = [{
|
|
|
28552
28569
|
label: "Face recognition model",
|
|
28553
28570
|
defaultModelId: "auraface-r100",
|
|
28554
28571
|
indexName: "the enrolled face gallery",
|
|
28555
|
-
options: [
|
|
28556
|
-
|
|
28557
|
-
|
|
28558
|
-
|
|
28559
|
-
},
|
|
28560
|
-
{
|
|
28561
|
-
id: "arcface-r100",
|
|
28562
|
-
label: "ArcFace (ResNet34)"
|
|
28563
|
-
},
|
|
28564
|
-
{
|
|
28565
|
-
id: "inception-resnet-v1",
|
|
28566
|
-
label: "Inception ResNet V1"
|
|
28567
|
-
}
|
|
28568
|
-
]
|
|
28572
|
+
options: [{
|
|
28573
|
+
id: "auraface-r100",
|
|
28574
|
+
label: "AuraFace R100"
|
|
28575
|
+
}]
|
|
28569
28576
|
}, {
|
|
28570
28577
|
stepId: "clip-embedding",
|
|
28571
28578
|
label: "Semantic search model",
|
|
28572
|
-
defaultModelId: "
|
|
28579
|
+
defaultModelId: "siglip2-b16-224",
|
|
28573
28580
|
indexName: "the object semantic-search index",
|
|
28574
|
-
options: [
|
|
28575
|
-
|
|
28576
|
-
|
|
28577
|
-
|
|
28578
|
-
},
|
|
28579
|
-
{
|
|
28580
|
-
id: "mobileclip-s2",
|
|
28581
|
-
label: "MobileCLIP S2"
|
|
28582
|
-
},
|
|
28583
|
-
{
|
|
28584
|
-
id: "siglip2-b16-224",
|
|
28585
|
-
label: "SigLIP2 B/16 (Apache-2.0)"
|
|
28586
|
-
}
|
|
28587
|
-
]
|
|
28581
|
+
options: [{
|
|
28582
|
+
id: "siglip2-b16-224",
|
|
28583
|
+
label: "SigLIP2 B/16 (Apache-2.0)"
|
|
28584
|
+
}]
|
|
28588
28585
|
}];
|
|
28589
28586
|
var DEFAULT_CLUSTER_STEP_MODELS = Object.freeze(Object.fromEntries(CLUSTER_MODEL_SCOPED_STEPS.map((s) => [s.stepId, s.defaultModelId])));
|
|
28590
28587
|
var CLUSTER_STEP_SETTING_FIELDS = [{
|
|
@@ -31704,6 +31701,11 @@ var MotionSourceEnum = external_exports.enum([
|
|
|
31704
31701
|
"analyzer",
|
|
31705
31702
|
"device-activity"
|
|
31706
31703
|
]);
|
|
31704
|
+
var SessionTriggerSchema = external_exports.object({
|
|
31705
|
+
source: MotionSourceEnum,
|
|
31706
|
+
triggeredBy: MotionTriggeredBySchema,
|
|
31707
|
+
sensorName: external_exports.string().optional()
|
|
31708
|
+
});
|
|
31707
31709
|
var MotionSourcesSchema = external_exports.array(MotionSourceEnum);
|
|
31708
31710
|
var MOTION_SOURCE_LABELS = {
|
|
31709
31711
|
analyzer: "Frame-diff Analyzer (motion addon)",
|
|
@@ -31851,6 +31853,14 @@ var RunnerCameraConfigSchema = external_exports.object({
|
|
|
31851
31853
|
*/
|
|
31852
31854
|
motionSources: MotionSourcesSchema.default(["analyzer"]),
|
|
31853
31855
|
/**
|
|
31856
|
+
* What opened this attach, on a SESSION attach only (see
|
|
31857
|
+
* {@link SessionTriggerSchema}). OPTIONAL with no default: absent on a
|
|
31858
|
+
* standing attach, an occupancy burst, a re-dispatch with no motion event
|
|
31859
|
+
* behind it, and every attach from an orchestrator older than the field — the
|
|
31860
|
+
* runner then names no source on the phase event.
|
|
31861
|
+
*/
|
|
31862
|
+
sessionTrigger: SessionTriggerSchema.optional(),
|
|
31863
|
+
/**
|
|
31854
31864
|
* WHICH root detector runs for this camera. The detection counterpart of
|
|
31855
31865
|
* {@link motionSources}, same shape and same discipline: a per-camera list
|
|
31856
31866
|
* of sources the system understands, vendor-agnostic, owned here.
|
|
@@ -39608,7 +39618,7 @@ var LocalInterfaceSchema = external_exports.object({
|
|
|
39608
39618
|
name: external_exports.string(),
|
|
39609
39619
|
family: external_exports.enum(["IPv4", "IPv6"]),
|
|
39610
39620
|
address: external_exports.string(),
|
|
39611
|
-
/** CIDR shorthand (e.g. `192.168.
|
|
39621
|
+
/** CIDR shorthand (e.g. `192.168.10.10/24`). Empty when OS doesn't expose. */
|
|
39612
39622
|
cidr: external_exports.string(),
|
|
39613
39623
|
/** OS netmask. Stable across calls so the SDK can hash on it. */
|
|
39614
39624
|
netmask: external_exports.string(),
|
|
@@ -39657,7 +39667,8 @@ var ConnectionEndpointSchema = external_exports.object({
|
|
|
39657
39667
|
"lan-ipv4",
|
|
39658
39668
|
"lan-ipv6",
|
|
39659
39669
|
"public",
|
|
39660
|
-
"loopback"
|
|
39670
|
+
"loopback",
|
|
39671
|
+
"app-link"
|
|
39661
39672
|
]),
|
|
39662
39673
|
/**
|
|
39663
39674
|
* Originating-interface kind — `lan`/`wifi`/`docker`/`vpn`/`other`/
|
|
@@ -39722,8 +39733,20 @@ var GetConnectionEndpointsResultSchema = external_exports.object({
|
|
|
39722
39733
|
var NotificationEndpointSchema = external_exports.object({
|
|
39723
39734
|
/** The operator's explicit choice, or null for AUTO. */
|
|
39724
39735
|
baseUrl: external_exports.string().nullable(),
|
|
39725
|
-
/**
|
|
39726
|
-
|
|
39736
|
+
/**
|
|
39737
|
+
* The effective flagged address: the explicit choice, else (AUTO) the
|
|
39738
|
+
* CamStack app link `https://camstack.zentik.app` (D709). A pre-D709 hub
|
|
39739
|
+
* answered the public tunnel / mesh here, or null.
|
|
39740
|
+
*/
|
|
39741
|
+
resolved: external_exports.string().nullable(),
|
|
39742
|
+
/**
|
|
39743
|
+
* The hub origin an app link carries as `hub=` (D709): the hub's best
|
|
39744
|
+
* public HTTPS address — the tunnel, then the mesh (Tailscale MagicDNS) —
|
|
39745
|
+
* picked from this cap's own palette by `pickAppLinkHub`. `null` when the
|
|
39746
|
+
* hub advertises neither; the app link is then minted without `hub=`.
|
|
39747
|
+
* Absent on a pre-D709 hub.
|
|
39748
|
+
*/
|
|
39749
|
+
appLinkHub: external_exports.string().nullable()
|
|
39727
39750
|
});
|
|
39728
39751
|
var ViewerEndpointsSchema = external_exports.object({
|
|
39729
39752
|
/** The operator's explicit race set, or empty for AUTO. */
|
|
@@ -39787,7 +39810,7 @@ var localNetworkCapability = {
|
|
|
39787
39810
|
* every client a second authority on a socket only the hub binds. A viewer
|
|
39788
39811
|
* configured with a port-less public URL (`https://camstack.example.top`)
|
|
39789
39812
|
* infers 443 from the scheme, asks with 443, and was handed
|
|
39790
|
-
* `https://192.168.
|
|
39813
|
+
* `https://192.168.10.9:443` for a hub listening on 4443. That candidate
|
|
39791
39814
|
* cannot ever answer, and losing its race reads in the log exactly like
|
|
39792
39815
|
* "the LAN was tried and it was slower" — so an operator sitting on his own
|
|
39793
39816
|
* WiFi stayed on the public tunnel for weeks, with the LAN candidate born
|
|
@@ -39820,13 +39843,21 @@ var localNetworkCapability = {
|
|
|
39820
39843
|
* Pass `'https'` when the caller is itself loaded over HTTPS
|
|
39821
39844
|
* to avoid mixed-content blocks in the browser. The public
|
|
39822
39845
|
* tunnel always emits `https://` regardless. */
|
|
39823
|
-
scheme: external_exports.enum(["http", "https"]).optional()
|
|
39846
|
+
scheme: external_exports.enum(["http", "https"]).optional(),
|
|
39847
|
+
/** Append the CamStack app link entry (`kind: 'app-link'`, D709) —
|
|
39848
|
+
* an address notification links can be flagged with, not a hub
|
|
39849
|
+
* route. Default `false`: racers and rankers never see it. */
|
|
39850
|
+
includeAppLink: external_exports.boolean().optional()
|
|
39824
39851
|
}), GetConnectionEndpointsResultSchema),
|
|
39825
39852
|
/**
|
|
39826
|
-
* The
|
|
39827
|
-
*
|
|
39828
|
-
*
|
|
39829
|
-
*
|
|
39853
|
+
* The address notification links are flagged with. `baseUrl: null` means
|
|
39854
|
+
* AUTO, which is the CamStack app link (D709): viewer taps go through
|
|
39855
|
+
* `https://camstack.zentik.app/…?hub=<appLinkHub>` and open the app. Any
|
|
39856
|
+
* hub address the palette lists can be flagged instead; then viewer taps,
|
|
39857
|
+
* attachment links and action buttons all use it. Signed media and
|
|
39858
|
+
* buttons never use the app link — with it flagged (or AUTO) they keep
|
|
39859
|
+
* the ranked hub ladder (a configured origin, a connected tunnel, then
|
|
39860
|
+
* the LAN), never loopback.
|
|
39830
39861
|
*
|
|
39831
39862
|
* Why an explicit marker: the automatic ranking cannot know which of
|
|
39832
39863
|
* several reachable addresses the RECIPIENT can actually open. A link is
|
|
@@ -40185,7 +40216,7 @@ var MeshPeerSchema = external_exports.object({
|
|
|
40185
40216
|
tags: external_exports.array(external_exports.string()).readonly(),
|
|
40186
40217
|
/** True when the peer advertises itself as an exit-node candidate. */
|
|
40187
40218
|
exitNodeOption: external_exports.boolean(),
|
|
40188
|
-
/** Subnet routes the peer advertises (e.g. `["192.168.
|
|
40219
|
+
/** Subnet routes the peer advertises (e.g. `["192.168.10.0/24"]`). */
|
|
40189
40220
|
advertisedRoutes: external_exports.array(external_exports.string()).readonly(),
|
|
40190
40221
|
/** Owner account login (e.g. `foo@example.com`). Null for tagged peers. */
|
|
40191
40222
|
userLogin: external_exports.string().nullable(),
|
|
@@ -41335,7 +41366,13 @@ var OsdOverlaySchema = external_exports.object({
|
|
|
41335
41366
|
*/
|
|
41336
41367
|
availablePositions: external_exports.array(OsdPositionEnum).readonly(),
|
|
41337
41368
|
/** Firmware does not allow editing the `text` field (e.g. timestamp). */
|
|
41338
|
-
readOnly: external_exports.boolean().optional()
|
|
41369
|
+
readOnly: external_exports.boolean().optional(),
|
|
41370
|
+
/**
|
|
41371
|
+
* Firmware text ceiling for this overlay. Absent = no known limit.
|
|
41372
|
+
* The OSD manager truncates here on every write — never stores its own
|
|
41373
|
+
* copy on the binding.
|
|
41374
|
+
*/
|
|
41375
|
+
maxCharacters: external_exports.number().int().positive().optional()
|
|
41339
41376
|
});
|
|
41340
41377
|
var OsdStatusSchema = external_exports.object({ overlays: external_exports.array(OsdOverlaySchema).readonly() });
|
|
41341
41378
|
var OsdOverlayPatchSchema = external_exports.object({
|
|
@@ -41423,7 +41460,9 @@ var OsdTemplateBindingSchema = external_exports.object({
|
|
|
41423
41460
|
valuePath: external_exports.string().min(1).max(64),
|
|
41424
41461
|
/** Convert TO this unit at render (`tryConvertUnit`). Absent = source unit. */
|
|
41425
41462
|
displayUnit: external_exports.string().max(16).optional(),
|
|
41426
|
-
maxDecimals: external_exports.number().int().min(0).max(4).default(1)
|
|
41463
|
+
maxDecimals: external_exports.number().int().min(0).max(4).default(1),
|
|
41464
|
+
/** Raw value → display text (same shape as slot binding). Empty string hides. */
|
|
41465
|
+
valueMap: external_exports.record(external_exports.string(), external_exports.string()).optional()
|
|
41427
41466
|
});
|
|
41428
41467
|
var OsdNamedTemplateSchema = external_exports.object({
|
|
41429
41468
|
id: external_exports.string().min(1).max(64),
|
|
@@ -41468,18 +41507,11 @@ var OsdSlotBindingSchema = external_exports.object({
|
|
|
41468
41507
|
source: OsdSourceSchema,
|
|
41469
41508
|
/** `${value}` and `${unit}` are substituted; every occurrence. */
|
|
41470
41509
|
template: external_exports.string().max(96).default("${value}"),
|
|
41471
|
-
/** Truncate with an ellipsis past this length. Absent = no limit. */
|
|
41472
|
-
maxCharacters: external_exports.number().int().min(4).max(64).optional(),
|
|
41473
41510
|
/**
|
|
41474
41511
|
* Decimal places for a numeric value. `0` yields an integer — the
|
|
41475
41512
|
* documented workaround for firmwares that reject `.` in overlay text.
|
|
41476
41513
|
*/
|
|
41477
41514
|
maxDecimals: external_exports.number().int().min(0).max(4).default(1),
|
|
41478
|
-
/**
|
|
41479
|
-
* Appended via `${unit}` when no unit conversion produces a label.
|
|
41480
|
-
* Prefer `source.displayUnit` for converted device-state values.
|
|
41481
|
-
*/
|
|
41482
|
-
unitLabel: external_exports.string().max(8).optional(),
|
|
41483
41515
|
/** Raw value → display text, e.g. `{"true":"MOTION","false":""}`. */
|
|
41484
41516
|
valueMap: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
41485
41517
|
/** Time windows in which the slot is shown. Absent = always. */
|
|
@@ -41488,9 +41520,7 @@ var OsdSlotBindingSchema = external_exports.object({
|
|
|
41488
41520
|
* Display gate, in the notification centre's condition vocabulary.
|
|
41489
41521
|
* Only the keys reported by `getConditionSupport` are accepted.
|
|
41490
41522
|
*/
|
|
41491
|
-
conditions: NcConditionsSchema.optional()
|
|
41492
|
-
/** Rendered when the gate is closed or the value unreadable. Empty = hide. */
|
|
41493
|
-
fallbackText: external_exports.string().max(64).default("")
|
|
41523
|
+
conditions: NcConditionsSchema.optional()
|
|
41494
41524
|
});
|
|
41495
41525
|
var OsdSlotViewSchema = external_exports.object({
|
|
41496
41526
|
slotId: external_exports.string(),
|
|
@@ -57812,12 +57842,14 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
57812
57842
|
{
|
|
57813
57843
|
id: "addons",
|
|
57814
57844
|
family: "system",
|
|
57815
|
-
label: "Addons",
|
|
57816
|
-
kinds: [
|
|
57817
|
-
|
|
57818
|
-
|
|
57819
|
-
|
|
57820
|
-
|
|
57845
|
+
label: "Addons stopped",
|
|
57846
|
+
kinds: ["addon-crash-loop"]
|
|
57847
|
+
},
|
|
57848
|
+
{
|
|
57849
|
+
id: "addon-updates",
|
|
57850
|
+
family: "system",
|
|
57851
|
+
label: "Addon updates",
|
|
57852
|
+
kinds: ["addon-update-available", "addon-updated"]
|
|
57821
57853
|
},
|
|
57822
57854
|
{
|
|
57823
57855
|
id: "updates",
|
|
@@ -57951,13 +57983,15 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
57951
57983
|
},
|
|
57952
57984
|
{
|
|
57953
57985
|
name: "summaryAddons",
|
|
57954
|
-
label: "Summary: addons",
|
|
57955
|
-
example: "
|
|
57956
|
-
kinds: [
|
|
57957
|
-
|
|
57958
|
-
|
|
57959
|
-
|
|
57960
|
-
|
|
57986
|
+
label: "Summary: addons stopped",
|
|
57987
|
+
example: "hub \u2014 recorder stopped after repeated crashes",
|
|
57988
|
+
kinds: ["addon-crash-loop"]
|
|
57989
|
+
},
|
|
57990
|
+
{
|
|
57991
|
+
name: "summaryAddonUpdates",
|
|
57992
|
+
label: "Summary: addon updates",
|
|
57993
|
+
example: "hub:\n\u2022 @camstack/addon-recorder 1.2.3 \u2192 1.2.4",
|
|
57994
|
+
kinds: ["addon-update-available", "addon-updated"]
|
|
57961
57995
|
},
|
|
57962
57996
|
{
|
|
57963
57997
|
name: "summaryUpdates",
|
|
@@ -58298,6 +58332,16 @@ var NC_TEMPLATE_VARS = [
|
|
|
58298
58332
|
kinds: ["system"],
|
|
58299
58333
|
systemEventKinds: [...DEVICE_EVENTS]
|
|
58300
58334
|
},
|
|
58335
|
+
{
|
|
58336
|
+
name: "locations",
|
|
58337
|
+
label: "Intrusion locations",
|
|
58338
|
+
example: "Ingresso, Corridoio, Salone",
|
|
58339
|
+
group: "system",
|
|
58340
|
+
families: ["rule"],
|
|
58341
|
+
fields: [...RULE_TEXT],
|
|
58342
|
+
kinds: ["system"],
|
|
58343
|
+
systemEventKinds: [...COMBINED_ALARM]
|
|
58344
|
+
},
|
|
58301
58345
|
{
|
|
58302
58346
|
name: "deviceId",
|
|
58303
58347
|
label: "Device id",
|
|
@@ -58387,7 +58431,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
58387
58431
|
{
|
|
58388
58432
|
name: "devices",
|
|
58389
58433
|
label: "Devices",
|
|
58390
|
-
description: "node-inference-unavailable: the affected cameras, comma-joined. Alarm arm / refusal: HOW MANY devices are armed (or open).",
|
|
58434
|
+
description: "node-inference-unavailable: the affected cameras, comma-joined. Alarm arm / arming / refusal: HOW MANY devices are armed (or open).",
|
|
58391
58435
|
example: "Ingresso, Garage",
|
|
58392
58436
|
group: "system",
|
|
58393
58437
|
families: ["rule"],
|
|
@@ -58396,6 +58440,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
58396
58440
|
systemEventKinds: [
|
|
58397
58441
|
"node-inference-unavailable",
|
|
58398
58442
|
"alarm-armed",
|
|
58443
|
+
"alarm-arming",
|
|
58399
58444
|
"alarm-arm-refused"
|
|
58400
58445
|
]
|
|
58401
58446
|
},
|
|
@@ -58616,18 +58661,18 @@ var NC_TEMPLATE_VARS = [
|
|
|
58616
58661
|
{
|
|
58617
58662
|
name: "rules",
|
|
58618
58663
|
label: "Covering rules",
|
|
58619
|
-
description: "How many enabled rules the armed mode gates.",
|
|
58664
|
+
description: "How many enabled rules the armed / arming mode gates.",
|
|
58620
58665
|
example: "2",
|
|
58621
58666
|
group: "system",
|
|
58622
58667
|
families: ["rule"],
|
|
58623
58668
|
fields: [...RULE_TEXT],
|
|
58624
58669
|
kinds: ["system"],
|
|
58625
|
-
systemEventKinds: ["alarm-armed"]
|
|
58670
|
+
systemEventKinds: ["alarm-armed", "alarm-arming"]
|
|
58626
58671
|
},
|
|
58627
58672
|
{
|
|
58628
58673
|
name: "names",
|
|
58629
58674
|
label: "Device names",
|
|
58630
|
-
description: "Armed: the devices
|
|
58675
|
+
description: "Armed / arming: the Active devices (or every skipped name when none are Active). Refusal: the open sensors.",
|
|
58631
58676
|
example: "Ingresso, Garage",
|
|
58632
58677
|
group: "system",
|
|
58633
58678
|
families: ["rule"],
|
|
@@ -58648,7 +58693,29 @@ var NC_TEMPLATE_VARS = [
|
|
|
58648
58693
|
families: ["rule"],
|
|
58649
58694
|
fields: [...RULE_TEXT],
|
|
58650
58695
|
kinds: ["system"],
|
|
58651
|
-
systemEventKinds: ["alarm-armed"]
|
|
58696
|
+
systemEventKinds: ["alarm-armed", "alarm-arming"]
|
|
58697
|
+
},
|
|
58698
|
+
{
|
|
58699
|
+
name: "active",
|
|
58700
|
+
label: "Active count",
|
|
58701
|
+
description: "How many named devices the armed / arming mode is watching (title: n attivi / n active).",
|
|
58702
|
+
example: "3",
|
|
58703
|
+
group: "system",
|
|
58704
|
+
families: ["rule"],
|
|
58705
|
+
fields: [...RULE_TEXT],
|
|
58706
|
+
kinds: ["system"],
|
|
58707
|
+
systemEventKinds: ["alarm-armed", "alarm-arming"]
|
|
58708
|
+
},
|
|
58709
|
+
{
|
|
58710
|
+
name: "skipped",
|
|
58711
|
+
label: "Skipped count",
|
|
58712
|
+
description: "How many named devices the mode cannot arm \u2014 muted, detection off, offline (title: m saltati).",
|
|
58713
|
+
example: "1",
|
|
58714
|
+
group: "system",
|
|
58715
|
+
families: ["rule"],
|
|
58716
|
+
fields: [...RULE_TEXT],
|
|
58717
|
+
kinds: ["system"],
|
|
58718
|
+
systemEventKinds: ["alarm-armed", "alarm-arming"]
|
|
58652
58719
|
},
|
|
58653
58720
|
{
|
|
58654
58721
|
name: "bypassedNames",
|