@camstack/addon-provider-amcrest 0.2.158 → 0.2.159
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/assets/icon.svg +1 -1
- package/dist/addon.js +2086 -58
- package/dist/addon.mjs +2086 -58
- package/package.json +1 -1
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-DHXxB8t9.mjs
|
|
18
18
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
19
19
|
EventCategory["SystemBoot"] = "system.boot";
|
|
20
20
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -310,7 +310,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
310
310
|
* TRANSITION into that state (never per dispatch), and the node is dropped
|
|
311
311
|
* from the placement candidate set for as long as it holds.
|
|
312
312
|
*
|
|
313
|
-
* This exists because the state was previously invisible:
|
|
313
|
+
* This exists because the state was previously invisible: agent-a
|
|
314
314
|
* absorbed 283k inference errors in a day while still being handed cameras,
|
|
315
315
|
* and nothing in the system said so.
|
|
316
316
|
*
|
|
@@ -5449,7 +5449,7 @@ var ZodIssueCode = {
|
|
|
5449
5449
|
var ZodFirstPartyTypeKind;
|
|
5450
5450
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5451
5451
|
//#endregion
|
|
5452
|
-
//#region ../types/dist/sleep-
|
|
5452
|
+
//#region ../types/dist/sleep-BErAxhul.mjs
|
|
5453
5453
|
/**
|
|
5454
5454
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5455
5455
|
* window to float samples (D455).
|
|
@@ -8472,6 +8472,1980 @@ method(object({ deviceId: number() }), array(StreamSourceEntrySchema)), method(o
|
|
|
8472
8472
|
kind: "mutation",
|
|
8473
8473
|
auth: "admin"
|
|
8474
8474
|
}), method(object({ deviceId: number() }), unknown().nullable()), method(object({ deviceId: number() }), RawStateResultSchema.nullable(), { auth: "protected" });
|
|
8475
|
+
Object.freeze({ "doorbell": "lastPressedAt" });
|
|
8476
|
+
/** Every capability name, so addon code can check a name without the schema graph. */
|
|
8477
|
+
var CAP_NAMES = Object.freeze([
|
|
8478
|
+
"accessories",
|
|
8479
|
+
"addon-pages",
|
|
8480
|
+
"addon-pages-source",
|
|
8481
|
+
"addon-routes",
|
|
8482
|
+
"addon-settings",
|
|
8483
|
+
"addon-widgets",
|
|
8484
|
+
"addon-widgets-source",
|
|
8485
|
+
"addons",
|
|
8486
|
+
"admin-ui",
|
|
8487
|
+
"air-quality-sensor",
|
|
8488
|
+
"alarm-panel",
|
|
8489
|
+
"alerts",
|
|
8490
|
+
"ambient-light-sensor",
|
|
8491
|
+
"audio-analysis",
|
|
8492
|
+
"audio-analyzer",
|
|
8493
|
+
"audio-codec",
|
|
8494
|
+
"audio-metrics",
|
|
8495
|
+
"auth-provider",
|
|
8496
|
+
"automation-control",
|
|
8497
|
+
"backup",
|
|
8498
|
+
"battery",
|
|
8499
|
+
"binary",
|
|
8500
|
+
"brightness",
|
|
8501
|
+
"broker",
|
|
8502
|
+
"button",
|
|
8503
|
+
"calendar-source",
|
|
8504
|
+
"calendars",
|
|
8505
|
+
"camera-credentials",
|
|
8506
|
+
"camera-grid-layout",
|
|
8507
|
+
"camera-pipeline-config",
|
|
8508
|
+
"camera-streams",
|
|
8509
|
+
"carbon-monoxide",
|
|
8510
|
+
"climate-control",
|
|
8511
|
+
"color",
|
|
8512
|
+
"composer",
|
|
8513
|
+
"connection-test",
|
|
8514
|
+
"connectivity",
|
|
8515
|
+
"consumables",
|
|
8516
|
+
"contact",
|
|
8517
|
+
"control",
|
|
8518
|
+
"core-blocks",
|
|
8519
|
+
"cover",
|
|
8520
|
+
"custom-model-registry",
|
|
8521
|
+
"data-store-provider",
|
|
8522
|
+
"database-snapshot",
|
|
8523
|
+
"day-night",
|
|
8524
|
+
"decoder",
|
|
8525
|
+
"detection-pipeline",
|
|
8526
|
+
"device-admin-link",
|
|
8527
|
+
"device-adoption",
|
|
8528
|
+
"device-credentials",
|
|
8529
|
+
"device-discovery",
|
|
8530
|
+
"device-export",
|
|
8531
|
+
"device-extension",
|
|
8532
|
+
"device-history",
|
|
8533
|
+
"device-manager",
|
|
8534
|
+
"device-ops",
|
|
8535
|
+
"device-provider",
|
|
8536
|
+
"device-removal-hook",
|
|
8537
|
+
"device-state",
|
|
8538
|
+
"device-status",
|
|
8539
|
+
"dishwasher",
|
|
8540
|
+
"display-palette",
|
|
8541
|
+
"doorbell",
|
|
8542
|
+
"embedding-encoder",
|
|
8543
|
+
"enum-sensor",
|
|
8544
|
+
"event-emitter",
|
|
8545
|
+
"face-gallery",
|
|
8546
|
+
"failure-contribution",
|
|
8547
|
+
"fan-control",
|
|
8548
|
+
"feature-probe",
|
|
8549
|
+
"filesystem-browse",
|
|
8550
|
+
"flood",
|
|
8551
|
+
"gas",
|
|
8552
|
+
"heating-valve",
|
|
8553
|
+
"humidifier",
|
|
8554
|
+
"humidity-sensor",
|
|
8555
|
+
"image",
|
|
8556
|
+
"image-settings",
|
|
8557
|
+
"integrations",
|
|
8558
|
+
"intercom",
|
|
8559
|
+
"keychain",
|
|
8560
|
+
"keychain-admin",
|
|
8561
|
+
"lawn-mower-control",
|
|
8562
|
+
"llm",
|
|
8563
|
+
"llm-runtime",
|
|
8564
|
+
"load-contribution",
|
|
8565
|
+
"local-network",
|
|
8566
|
+
"lock-control",
|
|
8567
|
+
"log-channels",
|
|
8568
|
+
"log-destination",
|
|
8569
|
+
"login-method",
|
|
8570
|
+
"media-player",
|
|
8571
|
+
"mesh-network",
|
|
8572
|
+
"metrics-provider",
|
|
8573
|
+
"model-convert",
|
|
8574
|
+
"model-distributor",
|
|
8575
|
+
"motion",
|
|
8576
|
+
"motion-detection",
|
|
8577
|
+
"motion-trigger",
|
|
8578
|
+
"motion-zones",
|
|
8579
|
+
"mqtt-broker",
|
|
8580
|
+
"native-object-detection",
|
|
8581
|
+
"navigation",
|
|
8582
|
+
"network-access",
|
|
8583
|
+
"network-link",
|
|
8584
|
+
"network-quality",
|
|
8585
|
+
"node-certificates",
|
|
8586
|
+
"nodes",
|
|
8587
|
+
"notification-output",
|
|
8588
|
+
"notification-rules",
|
|
8589
|
+
"notifier",
|
|
8590
|
+
"numeric-sensor",
|
|
8591
|
+
"oauth-integration",
|
|
8592
|
+
"oidc-connections",
|
|
8593
|
+
"osd",
|
|
8594
|
+
"osd-manager",
|
|
8595
|
+
"pet-feeder",
|
|
8596
|
+
"pipeline-analytics",
|
|
8597
|
+
"pipeline-executor",
|
|
8598
|
+
"pipeline-orchestrator",
|
|
8599
|
+
"pipeline-runner",
|
|
8600
|
+
"plate-gallery",
|
|
8601
|
+
"platform-probe",
|
|
8602
|
+
"power-meter",
|
|
8603
|
+
"presence",
|
|
8604
|
+
"pressure-sensor",
|
|
8605
|
+
"privacy-mask",
|
|
8606
|
+
"ptz",
|
|
8607
|
+
"ptz-autotrack",
|
|
8608
|
+
"reboot",
|
|
8609
|
+
"record-entries",
|
|
8610
|
+
"recording",
|
|
8611
|
+
"recording-archive",
|
|
8612
|
+
"recording-export",
|
|
8613
|
+
"recording-onboard",
|
|
8614
|
+
"recording-signal",
|
|
8615
|
+
"records",
|
|
8616
|
+
"running-state",
|
|
8617
|
+
"scene-monitor",
|
|
8618
|
+
"script-runner",
|
|
8619
|
+
"server-management",
|
|
8620
|
+
"settings-store",
|
|
8621
|
+
"smoke",
|
|
8622
|
+
"smtp-provider",
|
|
8623
|
+
"snapshot",
|
|
8624
|
+
"sso-bridge",
|
|
8625
|
+
"storage",
|
|
8626
|
+
"storage-admin",
|
|
8627
|
+
"storage-evictable",
|
|
8628
|
+
"storage-migration",
|
|
8629
|
+
"storage-occupancy",
|
|
8630
|
+
"storage-provider",
|
|
8631
|
+
"stream-broker",
|
|
8632
|
+
"stream-catalog",
|
|
8633
|
+
"stream-params",
|
|
8634
|
+
"stream-signals",
|
|
8635
|
+
"switch",
|
|
8636
|
+
"system",
|
|
8637
|
+
"tamper",
|
|
8638
|
+
"temperature-sensor",
|
|
8639
|
+
"terminal-session",
|
|
8640
|
+
"toast",
|
|
8641
|
+
"training",
|
|
8642
|
+
"training-provider",
|
|
8643
|
+
"turn-provider",
|
|
8644
|
+
"update",
|
|
8645
|
+
"user-management",
|
|
8646
|
+
"user-passkeys",
|
|
8647
|
+
"vacuum-control",
|
|
8648
|
+
"valve",
|
|
8649
|
+
"vector-store",
|
|
8650
|
+
"vibration",
|
|
8651
|
+
"videoclips",
|
|
8652
|
+
"viewer-ui",
|
|
8653
|
+
"water-heater",
|
|
8654
|
+
"weather",
|
|
8655
|
+
"webrtc-session",
|
|
8656
|
+
"zone-analytics",
|
|
8657
|
+
"zone-rules",
|
|
8658
|
+
"zones"
|
|
8659
|
+
]);
|
|
8660
|
+
Object.freeze({
|
|
8661
|
+
"air-quality-sensor": [
|
|
8662
|
+
{
|
|
8663
|
+
"path": "co2Ppm",
|
|
8664
|
+
"valueType": "number"
|
|
8665
|
+
},
|
|
8666
|
+
{
|
|
8667
|
+
"path": "vocPpb",
|
|
8668
|
+
"valueType": "number"
|
|
8669
|
+
},
|
|
8670
|
+
{
|
|
8671
|
+
"path": "pm25",
|
|
8672
|
+
"valueType": "number"
|
|
8673
|
+
},
|
|
8674
|
+
{
|
|
8675
|
+
"path": "pm10",
|
|
8676
|
+
"valueType": "number"
|
|
8677
|
+
},
|
|
8678
|
+
{
|
|
8679
|
+
"path": "aqi",
|
|
8680
|
+
"valueType": "number"
|
|
8681
|
+
},
|
|
8682
|
+
{
|
|
8683
|
+
"path": "unit",
|
|
8684
|
+
"valueType": "string"
|
|
8685
|
+
},
|
|
8686
|
+
{
|
|
8687
|
+
"path": "precision",
|
|
8688
|
+
"valueType": "number"
|
|
8689
|
+
}
|
|
8690
|
+
],
|
|
8691
|
+
"alarm-panel": [
|
|
8692
|
+
{
|
|
8693
|
+
"path": "state",
|
|
8694
|
+
"valueType": "enum",
|
|
8695
|
+
"enumValues": [
|
|
8696
|
+
"disarmed",
|
|
8697
|
+
"armed_home",
|
|
8698
|
+
"armed_away",
|
|
8699
|
+
"armed_night",
|
|
8700
|
+
"armed_vacation",
|
|
8701
|
+
"armed_custom_bypass",
|
|
8702
|
+
"arming",
|
|
8703
|
+
"disarming",
|
|
8704
|
+
"pending",
|
|
8705
|
+
"triggered"
|
|
8706
|
+
]
|
|
8707
|
+
},
|
|
8708
|
+
{
|
|
8709
|
+
"path": "targetMode",
|
|
8710
|
+
"valueType": "enum",
|
|
8711
|
+
"enumValues": [
|
|
8712
|
+
"home",
|
|
8713
|
+
"away",
|
|
8714
|
+
"night",
|
|
8715
|
+
"vacation",
|
|
8716
|
+
"custom_bypass"
|
|
8717
|
+
]
|
|
8718
|
+
},
|
|
8719
|
+
{
|
|
8720
|
+
"path": "requiresCode",
|
|
8721
|
+
"valueType": "boolean"
|
|
8722
|
+
}
|
|
8723
|
+
],
|
|
8724
|
+
"ambient-light-sensor": [
|
|
8725
|
+
{
|
|
8726
|
+
"path": "lux",
|
|
8727
|
+
"valueType": "number"
|
|
8728
|
+
},
|
|
8729
|
+
{
|
|
8730
|
+
"path": "unit",
|
|
8731
|
+
"valueType": "string"
|
|
8732
|
+
},
|
|
8733
|
+
{
|
|
8734
|
+
"path": "precision",
|
|
8735
|
+
"valueType": "number"
|
|
8736
|
+
}
|
|
8737
|
+
],
|
|
8738
|
+
"audio-metrics": [
|
|
8739
|
+
{
|
|
8740
|
+
"path": "ts",
|
|
8741
|
+
"valueType": "number"
|
|
8742
|
+
},
|
|
8743
|
+
{
|
|
8744
|
+
"path": "windowSec",
|
|
8745
|
+
"valueType": "number"
|
|
8746
|
+
},
|
|
8747
|
+
{
|
|
8748
|
+
"path": "level.rms",
|
|
8749
|
+
"valueType": "number"
|
|
8750
|
+
},
|
|
8751
|
+
{
|
|
8752
|
+
"path": "level.dbfs",
|
|
8753
|
+
"valueType": "number"
|
|
8754
|
+
},
|
|
8755
|
+
{
|
|
8756
|
+
"path": "peakDbfs",
|
|
8757
|
+
"valueType": "number"
|
|
8758
|
+
},
|
|
8759
|
+
{
|
|
8760
|
+
"path": "avgDbfs",
|
|
8761
|
+
"valueType": "number"
|
|
8762
|
+
},
|
|
8763
|
+
{
|
|
8764
|
+
"path": "current.className",
|
|
8765
|
+
"valueType": "string"
|
|
8766
|
+
},
|
|
8767
|
+
{
|
|
8768
|
+
"path": "current.score",
|
|
8769
|
+
"valueType": "number"
|
|
8770
|
+
},
|
|
8771
|
+
{
|
|
8772
|
+
"path": "current.timestamp",
|
|
8773
|
+
"valueType": "number"
|
|
8774
|
+
}
|
|
8775
|
+
],
|
|
8776
|
+
"automation-control": [
|
|
8777
|
+
{
|
|
8778
|
+
"path": "enabled",
|
|
8779
|
+
"valueType": "boolean"
|
|
8780
|
+
},
|
|
8781
|
+
{
|
|
8782
|
+
"path": "isRunning",
|
|
8783
|
+
"valueType": "boolean"
|
|
8784
|
+
},
|
|
8785
|
+
{
|
|
8786
|
+
"path": "lastTriggeredAt",
|
|
8787
|
+
"valueType": "number"
|
|
8788
|
+
},
|
|
8789
|
+
{
|
|
8790
|
+
"path": "lastError",
|
|
8791
|
+
"valueType": "string"
|
|
8792
|
+
}
|
|
8793
|
+
],
|
|
8794
|
+
"battery": [
|
|
8795
|
+
{
|
|
8796
|
+
"path": "percentage",
|
|
8797
|
+
"valueType": "number"
|
|
8798
|
+
},
|
|
8799
|
+
{
|
|
8800
|
+
"path": "charging",
|
|
8801
|
+
"valueType": "enum",
|
|
8802
|
+
"enumValues": [
|
|
8803
|
+
"dc",
|
|
8804
|
+
"solar",
|
|
8805
|
+
"none",
|
|
8806
|
+
"unknown"
|
|
8807
|
+
]
|
|
8808
|
+
},
|
|
8809
|
+
{
|
|
8810
|
+
"path": "sleeping",
|
|
8811
|
+
"valueType": "boolean"
|
|
8812
|
+
},
|
|
8813
|
+
{
|
|
8814
|
+
"path": "lastUpdated",
|
|
8815
|
+
"valueType": "number"
|
|
8816
|
+
},
|
|
8817
|
+
{
|
|
8818
|
+
"path": "lastContactAt",
|
|
8819
|
+
"valueType": "number"
|
|
8820
|
+
},
|
|
8821
|
+
{
|
|
8822
|
+
"path": "lastFullRefreshAt",
|
|
8823
|
+
"valueType": "number"
|
|
8824
|
+
},
|
|
8825
|
+
{
|
|
8826
|
+
"path": "binary",
|
|
8827
|
+
"valueType": "boolean"
|
|
8828
|
+
}
|
|
8829
|
+
],
|
|
8830
|
+
"binary": [{
|
|
8831
|
+
"path": "on",
|
|
8832
|
+
"valueType": "boolean"
|
|
8833
|
+
}],
|
|
8834
|
+
"brightness": [{
|
|
8835
|
+
"path": "percentage",
|
|
8836
|
+
"valueType": "number"
|
|
8837
|
+
}],
|
|
8838
|
+
"broker": [{
|
|
8839
|
+
"path": "brokerCount",
|
|
8840
|
+
"valueType": "number"
|
|
8841
|
+
}, {
|
|
8842
|
+
"path": "connectedCount",
|
|
8843
|
+
"valueType": "number"
|
|
8844
|
+
}],
|
|
8845
|
+
"camera-credentials": [
|
|
8846
|
+
{
|
|
8847
|
+
"path": "host",
|
|
8848
|
+
"valueType": "string"
|
|
8849
|
+
},
|
|
8850
|
+
{
|
|
8851
|
+
"path": "port",
|
|
8852
|
+
"valueType": "number"
|
|
8853
|
+
},
|
|
8854
|
+
{
|
|
8855
|
+
"path": "onvifPort",
|
|
8856
|
+
"valueType": "number"
|
|
8857
|
+
},
|
|
8858
|
+
{
|
|
8859
|
+
"path": "rtspPort",
|
|
8860
|
+
"valueType": "number"
|
|
8861
|
+
},
|
|
8862
|
+
{
|
|
8863
|
+
"path": "https",
|
|
8864
|
+
"valueType": "boolean"
|
|
8865
|
+
},
|
|
8866
|
+
{
|
|
8867
|
+
"path": "hasUsername",
|
|
8868
|
+
"valueType": "boolean"
|
|
8869
|
+
},
|
|
8870
|
+
{
|
|
8871
|
+
"path": "hasPassword",
|
|
8872
|
+
"valueType": "boolean"
|
|
8873
|
+
},
|
|
8874
|
+
{
|
|
8875
|
+
"path": "onvifProfile",
|
|
8876
|
+
"valueType": "string"
|
|
8877
|
+
}
|
|
8878
|
+
],
|
|
8879
|
+
"camera-streams": [
|
|
8880
|
+
{
|
|
8881
|
+
"path": "online",
|
|
8882
|
+
"valueType": "boolean"
|
|
8883
|
+
},
|
|
8884
|
+
{
|
|
8885
|
+
"path": "slotStatuses.high",
|
|
8886
|
+
"valueType": "enum",
|
|
8887
|
+
"enumValues": [
|
|
8888
|
+
"unassigned",
|
|
8889
|
+
"idle",
|
|
8890
|
+
"connecting",
|
|
8891
|
+
"streaming",
|
|
8892
|
+
"error"
|
|
8893
|
+
]
|
|
8894
|
+
},
|
|
8895
|
+
{
|
|
8896
|
+
"path": "slotStatuses.mid",
|
|
8897
|
+
"valueType": "enum",
|
|
8898
|
+
"enumValues": [
|
|
8899
|
+
"unassigned",
|
|
8900
|
+
"idle",
|
|
8901
|
+
"connecting",
|
|
8902
|
+
"streaming",
|
|
8903
|
+
"error"
|
|
8904
|
+
]
|
|
8905
|
+
},
|
|
8906
|
+
{
|
|
8907
|
+
"path": "slotStatuses.low",
|
|
8908
|
+
"valueType": "enum",
|
|
8909
|
+
"enumValues": [
|
|
8910
|
+
"unassigned",
|
|
8911
|
+
"idle",
|
|
8912
|
+
"connecting",
|
|
8913
|
+
"streaming",
|
|
8914
|
+
"error"
|
|
8915
|
+
]
|
|
8916
|
+
},
|
|
8917
|
+
{
|
|
8918
|
+
"path": "slotErrors.high",
|
|
8919
|
+
"valueType": "string"
|
|
8920
|
+
},
|
|
8921
|
+
{
|
|
8922
|
+
"path": "slotErrors.mid",
|
|
8923
|
+
"valueType": "string"
|
|
8924
|
+
},
|
|
8925
|
+
{
|
|
8926
|
+
"path": "slotErrors.low",
|
|
8927
|
+
"valueType": "string"
|
|
8928
|
+
}
|
|
8929
|
+
],
|
|
8930
|
+
"carbon-monoxide": [{
|
|
8931
|
+
"path": "detected",
|
|
8932
|
+
"valueType": "boolean"
|
|
8933
|
+
}],
|
|
8934
|
+
"climate-control": [
|
|
8935
|
+
{
|
|
8936
|
+
"path": "mode",
|
|
8937
|
+
"valueType": "enum",
|
|
8938
|
+
"enumValues": [
|
|
8939
|
+
"off",
|
|
8940
|
+
"heat",
|
|
8941
|
+
"cool",
|
|
8942
|
+
"auto",
|
|
8943
|
+
"heat_cool",
|
|
8944
|
+
"fan_only",
|
|
8945
|
+
"dry"
|
|
8946
|
+
]
|
|
8947
|
+
},
|
|
8948
|
+
{
|
|
8949
|
+
"path": "fanMode",
|
|
8950
|
+
"valueType": "string"
|
|
8951
|
+
},
|
|
8952
|
+
{
|
|
8953
|
+
"path": "preset",
|
|
8954
|
+
"valueType": "string"
|
|
8955
|
+
},
|
|
8956
|
+
{
|
|
8957
|
+
"path": "target",
|
|
8958
|
+
"valueType": "number"
|
|
8959
|
+
},
|
|
8960
|
+
{
|
|
8961
|
+
"path": "targetHigh",
|
|
8962
|
+
"valueType": "number"
|
|
8963
|
+
},
|
|
8964
|
+
{
|
|
8965
|
+
"path": "targetLow",
|
|
8966
|
+
"valueType": "number"
|
|
8967
|
+
},
|
|
8968
|
+
{
|
|
8969
|
+
"path": "targetHumidity",
|
|
8970
|
+
"valueType": "number"
|
|
8971
|
+
},
|
|
8972
|
+
{
|
|
8973
|
+
"path": "currentTemp",
|
|
8974
|
+
"valueType": "number"
|
|
8975
|
+
},
|
|
8976
|
+
{
|
|
8977
|
+
"path": "currentHumidity",
|
|
8978
|
+
"valueType": "number"
|
|
8979
|
+
},
|
|
8980
|
+
{
|
|
8981
|
+
"path": "swingVertical",
|
|
8982
|
+
"valueType": "boolean"
|
|
8983
|
+
},
|
|
8984
|
+
{
|
|
8985
|
+
"path": "swingHorizontal",
|
|
8986
|
+
"valueType": "boolean"
|
|
8987
|
+
},
|
|
8988
|
+
{
|
|
8989
|
+
"path": "minTemp",
|
|
8990
|
+
"valueType": "number"
|
|
8991
|
+
},
|
|
8992
|
+
{
|
|
8993
|
+
"path": "maxTemp",
|
|
8994
|
+
"valueType": "number"
|
|
8995
|
+
},
|
|
8996
|
+
{
|
|
8997
|
+
"path": "tempStep",
|
|
8998
|
+
"valueType": "number"
|
|
8999
|
+
}
|
|
9000
|
+
],
|
|
9001
|
+
"color": [
|
|
9002
|
+
{
|
|
9003
|
+
"path": "mode",
|
|
9004
|
+
"valueType": "enum",
|
|
9005
|
+
"enumValues": [
|
|
9006
|
+
"rgb",
|
|
9007
|
+
"hsv",
|
|
9008
|
+
"mired"
|
|
9009
|
+
]
|
|
9010
|
+
},
|
|
9011
|
+
{
|
|
9012
|
+
"path": "rgb.r",
|
|
9013
|
+
"valueType": "number"
|
|
9014
|
+
},
|
|
9015
|
+
{
|
|
9016
|
+
"path": "rgb.g",
|
|
9017
|
+
"valueType": "number"
|
|
9018
|
+
},
|
|
9019
|
+
{
|
|
9020
|
+
"path": "rgb.b",
|
|
9021
|
+
"valueType": "number"
|
|
9022
|
+
},
|
|
9023
|
+
{
|
|
9024
|
+
"path": "hsv.h",
|
|
9025
|
+
"valueType": "number"
|
|
9026
|
+
},
|
|
9027
|
+
{
|
|
9028
|
+
"path": "hsv.s",
|
|
9029
|
+
"valueType": "number"
|
|
9030
|
+
},
|
|
9031
|
+
{
|
|
9032
|
+
"path": "hsv.v",
|
|
9033
|
+
"valueType": "number"
|
|
9034
|
+
},
|
|
9035
|
+
{
|
|
9036
|
+
"path": "mireds",
|
|
9037
|
+
"valueType": "number"
|
|
9038
|
+
}
|
|
9039
|
+
],
|
|
9040
|
+
"connectivity": [{
|
|
9041
|
+
"path": "connected",
|
|
9042
|
+
"valueType": "boolean"
|
|
9043
|
+
}],
|
|
9044
|
+
"contact": [{
|
|
9045
|
+
"path": "entryOpen",
|
|
9046
|
+
"valueType": "boolean"
|
|
9047
|
+
}],
|
|
9048
|
+
"control": [
|
|
9049
|
+
{
|
|
9050
|
+
"path": "kind",
|
|
9051
|
+
"valueType": "enum",
|
|
9052
|
+
"enumValues": [
|
|
9053
|
+
"numeric",
|
|
9054
|
+
"select",
|
|
9055
|
+
"text",
|
|
9056
|
+
"datetime"
|
|
9057
|
+
]
|
|
9058
|
+
},
|
|
9059
|
+
{
|
|
9060
|
+
"path": "unit",
|
|
9061
|
+
"valueType": "string"
|
|
9062
|
+
},
|
|
9063
|
+
{
|
|
9064
|
+
"path": "min",
|
|
9065
|
+
"valueType": "number"
|
|
9066
|
+
},
|
|
9067
|
+
{
|
|
9068
|
+
"path": "max",
|
|
9069
|
+
"valueType": "number"
|
|
9070
|
+
},
|
|
9071
|
+
{
|
|
9072
|
+
"path": "step",
|
|
9073
|
+
"valueType": "number"
|
|
9074
|
+
},
|
|
9075
|
+
{
|
|
9076
|
+
"path": "precision",
|
|
9077
|
+
"valueType": "number"
|
|
9078
|
+
},
|
|
9079
|
+
{
|
|
9080
|
+
"path": "format",
|
|
9081
|
+
"valueType": "enum",
|
|
9082
|
+
"enumValues": [
|
|
9083
|
+
"date",
|
|
9084
|
+
"time",
|
|
9085
|
+
"datetime"
|
|
9086
|
+
]
|
|
9087
|
+
}
|
|
9088
|
+
],
|
|
9089
|
+
"cover": [
|
|
9090
|
+
{
|
|
9091
|
+
"path": "state",
|
|
9092
|
+
"valueType": "enum",
|
|
9093
|
+
"enumValues": [
|
|
9094
|
+
"open",
|
|
9095
|
+
"opening",
|
|
9096
|
+
"closing",
|
|
9097
|
+
"closed",
|
|
9098
|
+
"stopped"
|
|
9099
|
+
]
|
|
9100
|
+
},
|
|
9101
|
+
{
|
|
9102
|
+
"path": "position",
|
|
9103
|
+
"valueType": "number"
|
|
9104
|
+
},
|
|
9105
|
+
{
|
|
9106
|
+
"path": "tiltPosition",
|
|
9107
|
+
"valueType": "number"
|
|
9108
|
+
}
|
|
9109
|
+
],
|
|
9110
|
+
"day-night": [
|
|
9111
|
+
{
|
|
9112
|
+
"path": "mode",
|
|
9113
|
+
"valueType": "enum",
|
|
9114
|
+
"enumValues": [
|
|
9115
|
+
"auto",
|
|
9116
|
+
"day",
|
|
9117
|
+
"night",
|
|
9118
|
+
"schedule"
|
|
9119
|
+
]
|
|
9120
|
+
},
|
|
9121
|
+
{
|
|
9122
|
+
"path": "sensitivity",
|
|
9123
|
+
"valueType": "number"
|
|
9124
|
+
},
|
|
9125
|
+
{
|
|
9126
|
+
"path": "switchDelaySec",
|
|
9127
|
+
"valueType": "number"
|
|
9128
|
+
}
|
|
9129
|
+
],
|
|
9130
|
+
"device-adoption": [
|
|
9131
|
+
{
|
|
9132
|
+
"path": "lastDiscoveryAt",
|
|
9133
|
+
"valueType": "number"
|
|
9134
|
+
},
|
|
9135
|
+
{
|
|
9136
|
+
"path": "candidateCount",
|
|
9137
|
+
"valueType": "number"
|
|
9138
|
+
},
|
|
9139
|
+
{
|
|
9140
|
+
"path": "adoptedCount",
|
|
9141
|
+
"valueType": "number"
|
|
9142
|
+
},
|
|
9143
|
+
{
|
|
9144
|
+
"path": "lastError",
|
|
9145
|
+
"valueType": "string"
|
|
9146
|
+
}
|
|
9147
|
+
],
|
|
9148
|
+
"device-discovery": [{
|
|
9149
|
+
"path": "lastDiscoveryAt",
|
|
9150
|
+
"valueType": "number"
|
|
9151
|
+
}, {
|
|
9152
|
+
"path": "lastError",
|
|
9153
|
+
"valueType": "string"
|
|
9154
|
+
}],
|
|
9155
|
+
"device-export": [
|
|
9156
|
+
{
|
|
9157
|
+
"path": "linkState",
|
|
9158
|
+
"valueType": "enum",
|
|
9159
|
+
"enumValues": [
|
|
9160
|
+
"unlinked",
|
|
9161
|
+
"linked",
|
|
9162
|
+
"error"
|
|
9163
|
+
]
|
|
9164
|
+
},
|
|
9165
|
+
{
|
|
9166
|
+
"path": "exposedDeviceCount",
|
|
9167
|
+
"valueType": "number"
|
|
9168
|
+
},
|
|
9169
|
+
{
|
|
9170
|
+
"path": "error",
|
|
9171
|
+
"valueType": "string"
|
|
9172
|
+
},
|
|
9173
|
+
{
|
|
9174
|
+
"path": "setup.qr",
|
|
9175
|
+
"valueType": "string"
|
|
9176
|
+
},
|
|
9177
|
+
{
|
|
9178
|
+
"path": "setup.note",
|
|
9179
|
+
"valueType": "string"
|
|
9180
|
+
}
|
|
9181
|
+
],
|
|
9182
|
+
"device-status": [{
|
|
9183
|
+
"path": "online",
|
|
9184
|
+
"valueType": "boolean"
|
|
9185
|
+
}],
|
|
9186
|
+
"dishwasher": [
|
|
9187
|
+
{
|
|
9188
|
+
"path": "availability",
|
|
9189
|
+
"valueType": "enum",
|
|
9190
|
+
"enumValues": [
|
|
9191
|
+
"available",
|
|
9192
|
+
"offline",
|
|
9193
|
+
"description-missing"
|
|
9194
|
+
]
|
|
9195
|
+
},
|
|
9196
|
+
{
|
|
9197
|
+
"path": "state",
|
|
9198
|
+
"valueType": "enum",
|
|
9199
|
+
"enumValues": [
|
|
9200
|
+
"idle",
|
|
9201
|
+
"running",
|
|
9202
|
+
"paused",
|
|
9203
|
+
"finished",
|
|
9204
|
+
"error",
|
|
9205
|
+
"unavailable"
|
|
9206
|
+
]
|
|
9207
|
+
},
|
|
9208
|
+
{
|
|
9209
|
+
"path": "operationState",
|
|
9210
|
+
"valueType": "enum",
|
|
9211
|
+
"enumValues": [
|
|
9212
|
+
"Inactive",
|
|
9213
|
+
"Ready",
|
|
9214
|
+
"DelayedStart",
|
|
9215
|
+
"Run",
|
|
9216
|
+
"Pause",
|
|
9217
|
+
"ActionRequired",
|
|
9218
|
+
"Finished",
|
|
9219
|
+
"Error",
|
|
9220
|
+
"Aborting"
|
|
9221
|
+
]
|
|
9222
|
+
},
|
|
9223
|
+
{
|
|
9224
|
+
"path": "program",
|
|
9225
|
+
"valueType": "string"
|
|
9226
|
+
},
|
|
9227
|
+
{
|
|
9228
|
+
"path": "selectedProgram",
|
|
9229
|
+
"valueType": "string"
|
|
9230
|
+
},
|
|
9231
|
+
{
|
|
9232
|
+
"path": "remainingSeconds",
|
|
9233
|
+
"valueType": "number"
|
|
9234
|
+
},
|
|
9235
|
+
{
|
|
9236
|
+
"path": "delayedStartSeconds",
|
|
9237
|
+
"valueType": "number"
|
|
9238
|
+
},
|
|
9239
|
+
{
|
|
9240
|
+
"path": "progressPercent",
|
|
9241
|
+
"valueType": "number"
|
|
9242
|
+
},
|
|
9243
|
+
{
|
|
9244
|
+
"path": "doorOpen",
|
|
9245
|
+
"valueType": "boolean"
|
|
9246
|
+
},
|
|
9247
|
+
{
|
|
9248
|
+
"path": "doorLocked",
|
|
9249
|
+
"valueType": "boolean"
|
|
9250
|
+
},
|
|
9251
|
+
{
|
|
9252
|
+
"path": "remoteStartAllowed",
|
|
9253
|
+
"valueType": "boolean"
|
|
9254
|
+
},
|
|
9255
|
+
{
|
|
9256
|
+
"path": "remoteControlActive",
|
|
9257
|
+
"valueType": "boolean"
|
|
9258
|
+
},
|
|
9259
|
+
{
|
|
9260
|
+
"path": "localControlActive",
|
|
9261
|
+
"valueType": "boolean"
|
|
9262
|
+
},
|
|
9263
|
+
{
|
|
9264
|
+
"path": "powerOn",
|
|
9265
|
+
"valueType": "boolean"
|
|
9266
|
+
},
|
|
9267
|
+
{
|
|
9268
|
+
"path": "powerState",
|
|
9269
|
+
"valueType": "string"
|
|
9270
|
+
},
|
|
9271
|
+
{
|
|
9272
|
+
"path": "filterCleaningDue",
|
|
9273
|
+
"valueType": "boolean"
|
|
9274
|
+
},
|
|
9275
|
+
{
|
|
9276
|
+
"path": "machineCareDue",
|
|
9277
|
+
"valueType": "boolean"
|
|
9278
|
+
},
|
|
9279
|
+
{
|
|
9280
|
+
"path": "machineCareRemainingRuns",
|
|
9281
|
+
"valueType": "number"
|
|
9282
|
+
},
|
|
9283
|
+
{
|
|
9284
|
+
"path": "halfLoad",
|
|
9285
|
+
"valueType": "boolean"
|
|
9286
|
+
},
|
|
9287
|
+
{
|
|
9288
|
+
"path": "hygienePlus",
|
|
9289
|
+
"valueType": "boolean"
|
|
9290
|
+
},
|
|
9291
|
+
{
|
|
9292
|
+
"path": "extraDry",
|
|
9293
|
+
"valueType": "boolean"
|
|
9294
|
+
},
|
|
9295
|
+
{
|
|
9296
|
+
"path": "intensiveZone",
|
|
9297
|
+
"valueType": "boolean"
|
|
9298
|
+
},
|
|
9299
|
+
{
|
|
9300
|
+
"path": "varioSpeedPlus",
|
|
9301
|
+
"valueType": "boolean"
|
|
9302
|
+
},
|
|
9303
|
+
{
|
|
9304
|
+
"path": "childLock",
|
|
9305
|
+
"valueType": "boolean"
|
|
9306
|
+
},
|
|
9307
|
+
{
|
|
9308
|
+
"path": "errorCode",
|
|
9309
|
+
"valueType": "number"
|
|
9310
|
+
},
|
|
9311
|
+
{
|
|
9312
|
+
"path": "errorLabel",
|
|
9313
|
+
"valueType": "string"
|
|
9314
|
+
}
|
|
9315
|
+
],
|
|
9316
|
+
"doorbell": [{
|
|
9317
|
+
"path": "lastPressedAt",
|
|
9318
|
+
"valueType": "number"
|
|
9319
|
+
}, {
|
|
9320
|
+
"path": "pressCountSinceStart",
|
|
9321
|
+
"valueType": "number"
|
|
9322
|
+
}],
|
|
9323
|
+
"enum-sensor": [{
|
|
9324
|
+
"path": "value",
|
|
9325
|
+
"valueType": "string"
|
|
9326
|
+
}, {
|
|
9327
|
+
"path": "format",
|
|
9328
|
+
"valueType": "enum",
|
|
9329
|
+
"enumValues": [
|
|
9330
|
+
"date",
|
|
9331
|
+
"time",
|
|
9332
|
+
"datetime"
|
|
9333
|
+
]
|
|
9334
|
+
}],
|
|
9335
|
+
"event-emitter": [
|
|
9336
|
+
{
|
|
9337
|
+
"path": "lastEvent.deviceId",
|
|
9338
|
+
"valueType": "number"
|
|
9339
|
+
},
|
|
9340
|
+
{
|
|
9341
|
+
"path": "lastEvent.eventType",
|
|
9342
|
+
"valueType": "string"
|
|
9343
|
+
},
|
|
9344
|
+
{
|
|
9345
|
+
"path": "lastEvent.timestamp",
|
|
9346
|
+
"valueType": "number"
|
|
9347
|
+
},
|
|
9348
|
+
{
|
|
9349
|
+
"path": "lastEvent.seq",
|
|
9350
|
+
"valueType": "number"
|
|
9351
|
+
},
|
|
9352
|
+
{
|
|
9353
|
+
"path": "eventCountSinceStart",
|
|
9354
|
+
"valueType": "number"
|
|
9355
|
+
}
|
|
9356
|
+
],
|
|
9357
|
+
"fan-control": [
|
|
9358
|
+
{
|
|
9359
|
+
"path": "percentage",
|
|
9360
|
+
"valueType": "number"
|
|
9361
|
+
},
|
|
9362
|
+
{
|
|
9363
|
+
"path": "percentageStep",
|
|
9364
|
+
"valueType": "number"
|
|
9365
|
+
},
|
|
9366
|
+
{
|
|
9367
|
+
"path": "preset",
|
|
9368
|
+
"valueType": "string"
|
|
9369
|
+
},
|
|
9370
|
+
{
|
|
9371
|
+
"path": "direction",
|
|
9372
|
+
"valueType": "enum",
|
|
9373
|
+
"enumValues": ["forward", "reverse"]
|
|
9374
|
+
},
|
|
9375
|
+
{
|
|
9376
|
+
"path": "oscillating",
|
|
9377
|
+
"valueType": "boolean"
|
|
9378
|
+
}
|
|
9379
|
+
],
|
|
9380
|
+
"feature-probe": [
|
|
9381
|
+
{
|
|
9382
|
+
"path": "deviceType",
|
|
9383
|
+
"valueType": "string"
|
|
9384
|
+
},
|
|
9385
|
+
{
|
|
9386
|
+
"path": "model",
|
|
9387
|
+
"valueType": "string"
|
|
9388
|
+
},
|
|
9389
|
+
{
|
|
9390
|
+
"path": "channelCount",
|
|
9391
|
+
"valueType": "number"
|
|
9392
|
+
},
|
|
9393
|
+
{
|
|
9394
|
+
"path": "lastProbedAt",
|
|
9395
|
+
"valueType": "number"
|
|
9396
|
+
}
|
|
9397
|
+
],
|
|
9398
|
+
"flood": [{
|
|
9399
|
+
"path": "flooded",
|
|
9400
|
+
"valueType": "boolean"
|
|
9401
|
+
}],
|
|
9402
|
+
"gas": [{
|
|
9403
|
+
"path": "detected",
|
|
9404
|
+
"valueType": "boolean"
|
|
9405
|
+
}],
|
|
9406
|
+
"heating-valve": [{
|
|
9407
|
+
"path": "position",
|
|
9408
|
+
"valueType": "number"
|
|
9409
|
+
}],
|
|
9410
|
+
"humidifier": [
|
|
9411
|
+
{
|
|
9412
|
+
"path": "on",
|
|
9413
|
+
"valueType": "boolean"
|
|
9414
|
+
},
|
|
9415
|
+
{
|
|
9416
|
+
"path": "currentHumidity",
|
|
9417
|
+
"valueType": "number"
|
|
9418
|
+
},
|
|
9419
|
+
{
|
|
9420
|
+
"path": "targetHumidity",
|
|
9421
|
+
"valueType": "number"
|
|
9422
|
+
},
|
|
9423
|
+
{
|
|
9424
|
+
"path": "mode",
|
|
9425
|
+
"valueType": "string"
|
|
9426
|
+
},
|
|
9427
|
+
{
|
|
9428
|
+
"path": "action",
|
|
9429
|
+
"valueType": "string"
|
|
9430
|
+
},
|
|
9431
|
+
{
|
|
9432
|
+
"path": "minHumidity",
|
|
9433
|
+
"valueType": "number"
|
|
9434
|
+
},
|
|
9435
|
+
{
|
|
9436
|
+
"path": "maxHumidity",
|
|
9437
|
+
"valueType": "number"
|
|
9438
|
+
}
|
|
9439
|
+
],
|
|
9440
|
+
"humidity-sensor": [
|
|
9441
|
+
{
|
|
9442
|
+
"path": "percent",
|
|
9443
|
+
"valueType": "number"
|
|
9444
|
+
},
|
|
9445
|
+
{
|
|
9446
|
+
"path": "unit",
|
|
9447
|
+
"valueType": "string"
|
|
9448
|
+
},
|
|
9449
|
+
{
|
|
9450
|
+
"path": "precision",
|
|
9451
|
+
"valueType": "number"
|
|
9452
|
+
}
|
|
9453
|
+
],
|
|
9454
|
+
"image": [{
|
|
9455
|
+
"path": "url",
|
|
9456
|
+
"valueType": "string"
|
|
9457
|
+
}, {
|
|
9458
|
+
"path": "lastUpdated",
|
|
9459
|
+
"valueType": "number"
|
|
9460
|
+
}],
|
|
9461
|
+
"image-settings": [
|
|
9462
|
+
{
|
|
9463
|
+
"path": "brightness",
|
|
9464
|
+
"valueType": "number"
|
|
9465
|
+
},
|
|
9466
|
+
{
|
|
9467
|
+
"path": "contrast",
|
|
9468
|
+
"valueType": "number"
|
|
9469
|
+
},
|
|
9470
|
+
{
|
|
9471
|
+
"path": "saturation",
|
|
9472
|
+
"valueType": "number"
|
|
9473
|
+
},
|
|
9474
|
+
{
|
|
9475
|
+
"path": "sharpness",
|
|
9476
|
+
"valueType": "number"
|
|
9477
|
+
},
|
|
9478
|
+
{
|
|
9479
|
+
"path": "mirror",
|
|
9480
|
+
"valueType": "boolean"
|
|
9481
|
+
},
|
|
9482
|
+
{
|
|
9483
|
+
"path": "flip",
|
|
9484
|
+
"valueType": "boolean"
|
|
9485
|
+
},
|
|
9486
|
+
{
|
|
9487
|
+
"path": "rotate",
|
|
9488
|
+
"valueType": "enum",
|
|
9489
|
+
"enumValues": [
|
|
9490
|
+
"0",
|
|
9491
|
+
"90",
|
|
9492
|
+
"180",
|
|
9493
|
+
"270"
|
|
9494
|
+
]
|
|
9495
|
+
},
|
|
9496
|
+
{
|
|
9497
|
+
"path": "whiteBalance",
|
|
9498
|
+
"valueType": "enum",
|
|
9499
|
+
"enumValues": ["auto", "manual"]
|
|
9500
|
+
},
|
|
9501
|
+
{
|
|
9502
|
+
"path": "warmth",
|
|
9503
|
+
"valueType": "number"
|
|
9504
|
+
},
|
|
9505
|
+
{
|
|
9506
|
+
"path": "exposureMode",
|
|
9507
|
+
"valueType": "enum",
|
|
9508
|
+
"enumValues": ["auto", "manual"]
|
|
9509
|
+
},
|
|
9510
|
+
{
|
|
9511
|
+
"path": "backlightMode",
|
|
9512
|
+
"valueType": "enum",
|
|
9513
|
+
"enumValues": [
|
|
9514
|
+
"off",
|
|
9515
|
+
"blc",
|
|
9516
|
+
"wdr",
|
|
9517
|
+
"hlc"
|
|
9518
|
+
]
|
|
9519
|
+
}
|
|
9520
|
+
],
|
|
9521
|
+
"intercom": [
|
|
9522
|
+
{
|
|
9523
|
+
"path": "talking",
|
|
9524
|
+
"valueType": "boolean"
|
|
9525
|
+
},
|
|
9526
|
+
{
|
|
9527
|
+
"path": "lastSessionAt",
|
|
9528
|
+
"valueType": "number"
|
|
9529
|
+
},
|
|
9530
|
+
{
|
|
9531
|
+
"path": "ability.sampleRate",
|
|
9532
|
+
"valueType": "number"
|
|
9533
|
+
},
|
|
9534
|
+
{
|
|
9535
|
+
"path": "ability.duplex",
|
|
9536
|
+
"valueType": "enum",
|
|
9537
|
+
"enumValues": ["half", "full"]
|
|
9538
|
+
},
|
|
9539
|
+
{
|
|
9540
|
+
"path": "ability.maxBacklogMs",
|
|
9541
|
+
"valueType": "number"
|
|
9542
|
+
}
|
|
9543
|
+
],
|
|
9544
|
+
"lawn-mower-control": [
|
|
9545
|
+
{
|
|
9546
|
+
"path": "activity",
|
|
9547
|
+
"valueType": "enum",
|
|
9548
|
+
"enumValues": [
|
|
9549
|
+
"idle",
|
|
9550
|
+
"mowing",
|
|
9551
|
+
"paused",
|
|
9552
|
+
"docked",
|
|
9553
|
+
"error"
|
|
9554
|
+
]
|
|
9555
|
+
},
|
|
9556
|
+
{
|
|
9557
|
+
"path": "batteryLevel",
|
|
9558
|
+
"valueType": "number"
|
|
9559
|
+
},
|
|
9560
|
+
{
|
|
9561
|
+
"path": "progressPercent",
|
|
9562
|
+
"valueType": "number"
|
|
9563
|
+
},
|
|
9564
|
+
{
|
|
9565
|
+
"path": "currentCode",
|
|
9566
|
+
"valueType": "number"
|
|
9567
|
+
},
|
|
9568
|
+
{
|
|
9569
|
+
"path": "currentCodeLabel",
|
|
9570
|
+
"valueType": "string"
|
|
9571
|
+
},
|
|
9572
|
+
{
|
|
9573
|
+
"path": "severity",
|
|
9574
|
+
"valueType": "enum",
|
|
9575
|
+
"enumValues": [
|
|
9576
|
+
"info",
|
|
9577
|
+
"warning",
|
|
9578
|
+
"error"
|
|
9579
|
+
]
|
|
9580
|
+
}
|
|
9581
|
+
],
|
|
9582
|
+
"lock-control": [{
|
|
9583
|
+
"path": "state",
|
|
9584
|
+
"valueType": "enum",
|
|
9585
|
+
"enumValues": [
|
|
9586
|
+
"locked",
|
|
9587
|
+
"unlocked",
|
|
9588
|
+
"locking",
|
|
9589
|
+
"unlocking",
|
|
9590
|
+
"jammed"
|
|
9591
|
+
]
|
|
9592
|
+
}],
|
|
9593
|
+
"media-player": [
|
|
9594
|
+
{
|
|
9595
|
+
"path": "state",
|
|
9596
|
+
"valueType": "enum",
|
|
9597
|
+
"enumValues": [
|
|
9598
|
+
"off",
|
|
9599
|
+
"on",
|
|
9600
|
+
"idle",
|
|
9601
|
+
"playing",
|
|
9602
|
+
"paused",
|
|
9603
|
+
"buffering",
|
|
9604
|
+
"standby"
|
|
9605
|
+
]
|
|
9606
|
+
},
|
|
9607
|
+
{
|
|
9608
|
+
"path": "volumeLevel",
|
|
9609
|
+
"valueType": "number"
|
|
9610
|
+
},
|
|
9611
|
+
{
|
|
9612
|
+
"path": "isMuted",
|
|
9613
|
+
"valueType": "boolean"
|
|
9614
|
+
},
|
|
9615
|
+
{
|
|
9616
|
+
"path": "source",
|
|
9617
|
+
"valueType": "string"
|
|
9618
|
+
},
|
|
9619
|
+
{
|
|
9620
|
+
"path": "currentMedia.type",
|
|
9621
|
+
"valueType": "string"
|
|
9622
|
+
},
|
|
9623
|
+
{
|
|
9624
|
+
"path": "currentMedia.title",
|
|
9625
|
+
"valueType": "string"
|
|
9626
|
+
},
|
|
9627
|
+
{
|
|
9628
|
+
"path": "currentMedia.artist",
|
|
9629
|
+
"valueType": "string"
|
|
9630
|
+
},
|
|
9631
|
+
{
|
|
9632
|
+
"path": "currentMedia.album",
|
|
9633
|
+
"valueType": "string"
|
|
9634
|
+
},
|
|
9635
|
+
{
|
|
9636
|
+
"path": "currentMedia.imageUrl",
|
|
9637
|
+
"valueType": "string"
|
|
9638
|
+
},
|
|
9639
|
+
{
|
|
9640
|
+
"path": "positionMs",
|
|
9641
|
+
"valueType": "number"
|
|
9642
|
+
},
|
|
9643
|
+
{
|
|
9644
|
+
"path": "durationMs",
|
|
9645
|
+
"valueType": "number"
|
|
9646
|
+
},
|
|
9647
|
+
{
|
|
9648
|
+
"path": "shuffle",
|
|
9649
|
+
"valueType": "boolean"
|
|
9650
|
+
},
|
|
9651
|
+
{
|
|
9652
|
+
"path": "repeat",
|
|
9653
|
+
"valueType": "enum",
|
|
9654
|
+
"enumValues": [
|
|
9655
|
+
"off",
|
|
9656
|
+
"all",
|
|
9657
|
+
"one"
|
|
9658
|
+
]
|
|
9659
|
+
}
|
|
9660
|
+
],
|
|
9661
|
+
"motion": [
|
|
9662
|
+
{
|
|
9663
|
+
"path": "detected",
|
|
9664
|
+
"valueType": "boolean"
|
|
9665
|
+
},
|
|
9666
|
+
{
|
|
9667
|
+
"path": "lastDetectedAt",
|
|
9668
|
+
"valueType": "number"
|
|
9669
|
+
},
|
|
9670
|
+
{
|
|
9671
|
+
"path": "autoClearAfterMs",
|
|
9672
|
+
"valueType": "number"
|
|
9673
|
+
}
|
|
9674
|
+
],
|
|
9675
|
+
"motion-trigger": [{
|
|
9676
|
+
"path": "enabled",
|
|
9677
|
+
"valueType": "boolean"
|
|
9678
|
+
}],
|
|
9679
|
+
"motion-zones": [{
|
|
9680
|
+
"path": "enabled",
|
|
9681
|
+
"valueType": "boolean"
|
|
9682
|
+
}, {
|
|
9683
|
+
"path": "sensitivity",
|
|
9684
|
+
"valueType": "number"
|
|
9685
|
+
}],
|
|
9686
|
+
"mqtt-broker": [{
|
|
9687
|
+
"path": "brokerCount",
|
|
9688
|
+
"valueType": "number"
|
|
9689
|
+
}, {
|
|
9690
|
+
"path": "embeddedRunning",
|
|
9691
|
+
"valueType": "boolean"
|
|
9692
|
+
}],
|
|
9693
|
+
"native-object-detection": [{
|
|
9694
|
+
"path": "enabled",
|
|
9695
|
+
"valueType": "boolean"
|
|
9696
|
+
}],
|
|
9697
|
+
"navigation": [
|
|
9698
|
+
{
|
|
9699
|
+
"path": "mode",
|
|
9700
|
+
"valueType": "enum",
|
|
9701
|
+
"enumValues": [
|
|
9702
|
+
"idle",
|
|
9703
|
+
"cleaning",
|
|
9704
|
+
"spot",
|
|
9705
|
+
"following",
|
|
9706
|
+
"goto",
|
|
9707
|
+
"returning",
|
|
9708
|
+
"paused",
|
|
9709
|
+
"unknown"
|
|
9710
|
+
]
|
|
9711
|
+
},
|
|
9712
|
+
{
|
|
9713
|
+
"path": "following",
|
|
9714
|
+
"valueType": "boolean"
|
|
9715
|
+
},
|
|
9716
|
+
{
|
|
9717
|
+
"path": "flash",
|
|
9718
|
+
"valueType": "boolean"
|
|
9719
|
+
},
|
|
9720
|
+
{
|
|
9721
|
+
"path": "lightMode",
|
|
9722
|
+
"valueType": "enum",
|
|
9723
|
+
"enumValues": ["auto", "manual"]
|
|
9724
|
+
},
|
|
9725
|
+
{
|
|
9726
|
+
"path": "lightLevel",
|
|
9727
|
+
"valueType": "number"
|
|
9728
|
+
}
|
|
9729
|
+
],
|
|
9730
|
+
"network-link": [
|
|
9731
|
+
{
|
|
9732
|
+
"path": "type",
|
|
9733
|
+
"valueType": "enum",
|
|
9734
|
+
"enumValues": [
|
|
9735
|
+
"wifi",
|
|
9736
|
+
"ethernet",
|
|
9737
|
+
"cellular",
|
|
9738
|
+
"unknown"
|
|
9739
|
+
]
|
|
9740
|
+
},
|
|
9741
|
+
{
|
|
9742
|
+
"path": "signalPercent",
|
|
9743
|
+
"valueType": "number"
|
|
9744
|
+
},
|
|
9745
|
+
{
|
|
9746
|
+
"path": "rssiDbm",
|
|
9747
|
+
"valueType": "number"
|
|
9748
|
+
},
|
|
9749
|
+
{
|
|
9750
|
+
"path": "ssid",
|
|
9751
|
+
"valueType": "string"
|
|
9752
|
+
},
|
|
9753
|
+
{
|
|
9754
|
+
"path": "lastUpdated",
|
|
9755
|
+
"valueType": "number"
|
|
9756
|
+
}
|
|
9757
|
+
],
|
|
9758
|
+
"notifier": [
|
|
9759
|
+
{
|
|
9760
|
+
"path": "lastSentAt",
|
|
9761
|
+
"valueType": "number"
|
|
9762
|
+
},
|
|
9763
|
+
{
|
|
9764
|
+
"path": "lastError",
|
|
9765
|
+
"valueType": "string"
|
|
9766
|
+
},
|
|
9767
|
+
{
|
|
9768
|
+
"path": "queueDepth",
|
|
9769
|
+
"valueType": "number"
|
|
9770
|
+
},
|
|
9771
|
+
{
|
|
9772
|
+
"path": "supports.image",
|
|
9773
|
+
"valueType": "boolean"
|
|
9774
|
+
},
|
|
9775
|
+
{
|
|
9776
|
+
"path": "supports.priority",
|
|
9777
|
+
"valueType": "boolean"
|
|
9778
|
+
},
|
|
9779
|
+
{
|
|
9780
|
+
"path": "supports.data",
|
|
9781
|
+
"valueType": "boolean"
|
|
9782
|
+
},
|
|
9783
|
+
{
|
|
9784
|
+
"path": "supports.actions",
|
|
9785
|
+
"valueType": "boolean"
|
|
9786
|
+
},
|
|
9787
|
+
{
|
|
9788
|
+
"path": "supports.recipients",
|
|
9789
|
+
"valueType": "boolean"
|
|
9790
|
+
}
|
|
9791
|
+
],
|
|
9792
|
+
"numeric-sensor": [
|
|
9793
|
+
{
|
|
9794
|
+
"path": "value",
|
|
9795
|
+
"valueType": "number"
|
|
9796
|
+
},
|
|
9797
|
+
{
|
|
9798
|
+
"path": "unit",
|
|
9799
|
+
"valueType": "string"
|
|
9800
|
+
},
|
|
9801
|
+
{
|
|
9802
|
+
"path": "precision",
|
|
9803
|
+
"valueType": "number"
|
|
9804
|
+
}
|
|
9805
|
+
],
|
|
9806
|
+
"pet-feeder": [
|
|
9807
|
+
{
|
|
9808
|
+
"path": "foodLevel",
|
|
9809
|
+
"valueType": "number"
|
|
9810
|
+
},
|
|
9811
|
+
{
|
|
9812
|
+
"path": "food1",
|
|
9813
|
+
"valueType": "number"
|
|
9814
|
+
},
|
|
9815
|
+
{
|
|
9816
|
+
"path": "food2",
|
|
9817
|
+
"valueType": "number"
|
|
9818
|
+
},
|
|
9819
|
+
{
|
|
9820
|
+
"path": "lowFood",
|
|
9821
|
+
"valueType": "boolean"
|
|
9822
|
+
},
|
|
9823
|
+
{
|
|
9824
|
+
"path": "batteryPower",
|
|
9825
|
+
"valueType": "number"
|
|
9826
|
+
},
|
|
9827
|
+
{
|
|
9828
|
+
"path": "desiccantLeftDays",
|
|
9829
|
+
"valueType": "number"
|
|
9830
|
+
},
|
|
9831
|
+
{
|
|
9832
|
+
"path": "feeding",
|
|
9833
|
+
"valueType": "boolean"
|
|
9834
|
+
},
|
|
9835
|
+
{
|
|
9836
|
+
"path": "status",
|
|
9837
|
+
"valueType": "enum",
|
|
9838
|
+
"enumValues": [
|
|
9839
|
+
"normal",
|
|
9840
|
+
"offline",
|
|
9841
|
+
"on_batteries"
|
|
9842
|
+
]
|
|
9843
|
+
},
|
|
9844
|
+
{
|
|
9845
|
+
"path": "error",
|
|
9846
|
+
"valueType": "string"
|
|
9847
|
+
},
|
|
9848
|
+
{
|
|
9849
|
+
"path": "errorCode",
|
|
9850
|
+
"valueType": "number"
|
|
9851
|
+
},
|
|
9852
|
+
{
|
|
9853
|
+
"path": "isDualHopper",
|
|
9854
|
+
"valueType": "boolean"
|
|
9855
|
+
},
|
|
9856
|
+
{
|
|
9857
|
+
"path": "childLock",
|
|
9858
|
+
"valueType": "boolean"
|
|
9859
|
+
},
|
|
9860
|
+
{
|
|
9861
|
+
"path": "indicatorLight",
|
|
9862
|
+
"valueType": "boolean"
|
|
9863
|
+
},
|
|
9864
|
+
{
|
|
9865
|
+
"path": "feedSound",
|
|
9866
|
+
"valueType": "boolean"
|
|
9867
|
+
},
|
|
9868
|
+
{
|
|
9869
|
+
"path": "volume",
|
|
9870
|
+
"valueType": "number"
|
|
9871
|
+
}
|
|
9872
|
+
],
|
|
9873
|
+
"power-meter": [
|
|
9874
|
+
{
|
|
9875
|
+
"path": "watts",
|
|
9876
|
+
"valueType": "number"
|
|
9877
|
+
},
|
|
9878
|
+
{
|
|
9879
|
+
"path": "kwhTotal",
|
|
9880
|
+
"valueType": "number"
|
|
9881
|
+
},
|
|
9882
|
+
{
|
|
9883
|
+
"path": "volts",
|
|
9884
|
+
"valueType": "number"
|
|
9885
|
+
},
|
|
9886
|
+
{
|
|
9887
|
+
"path": "amps",
|
|
9888
|
+
"valueType": "number"
|
|
9889
|
+
},
|
|
9890
|
+
{
|
|
9891
|
+
"path": "va",
|
|
9892
|
+
"valueType": "number"
|
|
9893
|
+
},
|
|
9894
|
+
{
|
|
9895
|
+
"path": "powerFactor",
|
|
9896
|
+
"valueType": "number"
|
|
9897
|
+
},
|
|
9898
|
+
{
|
|
9899
|
+
"path": "unit",
|
|
9900
|
+
"valueType": "string"
|
|
9901
|
+
},
|
|
9902
|
+
{
|
|
9903
|
+
"path": "precision",
|
|
9904
|
+
"valueType": "number"
|
|
9905
|
+
}
|
|
9906
|
+
],
|
|
9907
|
+
"presence": [
|
|
9908
|
+
{
|
|
9909
|
+
"path": "state",
|
|
9910
|
+
"valueType": "string"
|
|
9911
|
+
},
|
|
9912
|
+
{
|
|
9913
|
+
"path": "location",
|
|
9914
|
+
"valueType": "string"
|
|
9915
|
+
},
|
|
9916
|
+
{
|
|
9917
|
+
"path": "gps.latitude",
|
|
9918
|
+
"valueType": "number"
|
|
9919
|
+
},
|
|
9920
|
+
{
|
|
9921
|
+
"path": "gps.longitude",
|
|
9922
|
+
"valueType": "number"
|
|
9923
|
+
},
|
|
9924
|
+
{
|
|
9925
|
+
"path": "gps.accuracyMeters",
|
|
9926
|
+
"valueType": "number"
|
|
9927
|
+
},
|
|
9928
|
+
{
|
|
9929
|
+
"path": "batteryPercent",
|
|
9930
|
+
"valueType": "number"
|
|
9931
|
+
}
|
|
9932
|
+
],
|
|
9933
|
+
"pressure-sensor": [
|
|
9934
|
+
{
|
|
9935
|
+
"path": "hpa",
|
|
9936
|
+
"valueType": "number"
|
|
9937
|
+
},
|
|
9938
|
+
{
|
|
9939
|
+
"path": "unit",
|
|
9940
|
+
"valueType": "string"
|
|
9941
|
+
},
|
|
9942
|
+
{
|
|
9943
|
+
"path": "precision",
|
|
9944
|
+
"valueType": "number"
|
|
9945
|
+
}
|
|
9946
|
+
],
|
|
9947
|
+
"privacy-mask": [{
|
|
9948
|
+
"path": "enabled",
|
|
9949
|
+
"valueType": "boolean"
|
|
9950
|
+
}, {
|
|
9951
|
+
"path": "audioEnabled",
|
|
9952
|
+
"valueType": "boolean"
|
|
9953
|
+
}],
|
|
9954
|
+
"ptz": [
|
|
9955
|
+
{
|
|
9956
|
+
"path": "pan",
|
|
9957
|
+
"valueType": "number"
|
|
9958
|
+
},
|
|
9959
|
+
{
|
|
9960
|
+
"path": "tilt",
|
|
9961
|
+
"valueType": "number"
|
|
9962
|
+
},
|
|
9963
|
+
{
|
|
9964
|
+
"path": "zoom",
|
|
9965
|
+
"valueType": "number"
|
|
9966
|
+
},
|
|
9967
|
+
{
|
|
9968
|
+
"path": "autofocus",
|
|
9969
|
+
"valueType": "boolean"
|
|
9970
|
+
}
|
|
9971
|
+
],
|
|
9972
|
+
"ptz-autotrack": [
|
|
9973
|
+
{
|
|
9974
|
+
"path": "enabled",
|
|
9975
|
+
"valueType": "boolean"
|
|
9976
|
+
},
|
|
9977
|
+
{
|
|
9978
|
+
"path": "currentSettings.targetType",
|
|
9979
|
+
"valueType": "string"
|
|
9980
|
+
},
|
|
9981
|
+
{
|
|
9982
|
+
"path": "currentSettings.stopDelaySeconds",
|
|
9983
|
+
"valueType": "number"
|
|
9984
|
+
},
|
|
9985
|
+
{
|
|
9986
|
+
"path": "currentSettings.disappearDelaySeconds",
|
|
9987
|
+
"valueType": "number"
|
|
9988
|
+
}
|
|
9989
|
+
],
|
|
9990
|
+
"recording-archive": [
|
|
9991
|
+
{
|
|
9992
|
+
"path": "deviceId",
|
|
9993
|
+
"valueType": "number"
|
|
9994
|
+
},
|
|
9995
|
+
{
|
|
9996
|
+
"path": "enabled",
|
|
9997
|
+
"valueType": "boolean"
|
|
9998
|
+
},
|
|
9999
|
+
{
|
|
10000
|
+
"path": "activeMode",
|
|
10001
|
+
"valueType": "enum",
|
|
10002
|
+
"enumValues": [
|
|
10003
|
+
"off",
|
|
10004
|
+
"events",
|
|
10005
|
+
"continuous",
|
|
10006
|
+
"on-device-decision"
|
|
10007
|
+
]
|
|
10008
|
+
},
|
|
10009
|
+
{
|
|
10010
|
+
"path": "nodeId",
|
|
10011
|
+
"valueType": "string"
|
|
10012
|
+
},
|
|
10013
|
+
{
|
|
10014
|
+
"path": "storageBytes",
|
|
10015
|
+
"valueType": "number"
|
|
10016
|
+
}
|
|
10017
|
+
],
|
|
10018
|
+
"recording-onboard": [
|
|
10019
|
+
{
|
|
10020
|
+
"path": "primaryTrackId",
|
|
10021
|
+
"valueType": "string"
|
|
10022
|
+
},
|
|
10023
|
+
{
|
|
10024
|
+
"path": "enabled",
|
|
10025
|
+
"valueType": "boolean"
|
|
10026
|
+
},
|
|
10027
|
+
{
|
|
10028
|
+
"path": "overwriteWhenFull",
|
|
10029
|
+
"valueType": "boolean"
|
|
10030
|
+
},
|
|
10031
|
+
{
|
|
10032
|
+
"path": "preRecordSec",
|
|
10033
|
+
"valueType": "number"
|
|
10034
|
+
},
|
|
10035
|
+
{
|
|
10036
|
+
"path": "postRecordSec",
|
|
10037
|
+
"valueType": "number"
|
|
10038
|
+
},
|
|
10039
|
+
{
|
|
10040
|
+
"path": "segmentMinutes",
|
|
10041
|
+
"valueType": "number"
|
|
10042
|
+
},
|
|
10043
|
+
{
|
|
10044
|
+
"path": "unreadableWindows",
|
|
10045
|
+
"valueType": "number"
|
|
10046
|
+
},
|
|
10047
|
+
{
|
|
10048
|
+
"path": "recordingToNowhere",
|
|
10049
|
+
"valueType": "boolean"
|
|
10050
|
+
}
|
|
10051
|
+
],
|
|
10052
|
+
"recording-signal": [{
|
|
10053
|
+
"path": "active",
|
|
10054
|
+
"valueType": "boolean"
|
|
10055
|
+
}, {
|
|
10056
|
+
"path": "reason",
|
|
10057
|
+
"valueType": "string"
|
|
10058
|
+
}],
|
|
10059
|
+
"running-state": [
|
|
10060
|
+
{
|
|
10061
|
+
"path": "running",
|
|
10062
|
+
"valueType": "boolean"
|
|
10063
|
+
},
|
|
10064
|
+
{
|
|
10065
|
+
"path": "since",
|
|
10066
|
+
"valueType": "number"
|
|
10067
|
+
},
|
|
10068
|
+
{
|
|
10069
|
+
"path": "source",
|
|
10070
|
+
"valueType": "enum",
|
|
10071
|
+
"enumValues": ["native", "assigned"]
|
|
10072
|
+
},
|
|
10073
|
+
{
|
|
10074
|
+
"path": "phase",
|
|
10075
|
+
"valueType": "string"
|
|
10076
|
+
}
|
|
10077
|
+
],
|
|
10078
|
+
"script-runner": [
|
|
10079
|
+
{
|
|
10080
|
+
"path": "isRunning",
|
|
10081
|
+
"valueType": "boolean"
|
|
10082
|
+
},
|
|
10083
|
+
{
|
|
10084
|
+
"path": "lastRunAt",
|
|
10085
|
+
"valueType": "number"
|
|
10086
|
+
},
|
|
10087
|
+
{
|
|
10088
|
+
"path": "lastRunSuccess",
|
|
10089
|
+
"valueType": "boolean"
|
|
10090
|
+
},
|
|
10091
|
+
{
|
|
10092
|
+
"path": "lastError",
|
|
10093
|
+
"valueType": "string"
|
|
10094
|
+
}
|
|
10095
|
+
],
|
|
10096
|
+
"smoke": [{
|
|
10097
|
+
"path": "detected",
|
|
10098
|
+
"valueType": "boolean"
|
|
10099
|
+
}],
|
|
10100
|
+
"snapshot": [
|
|
10101
|
+
{
|
|
10102
|
+
"path": "lastCapturedAt",
|
|
10103
|
+
"valueType": "number"
|
|
10104
|
+
},
|
|
10105
|
+
{
|
|
10106
|
+
"path": "cacheAgeMs",
|
|
10107
|
+
"valueType": "number"
|
|
10108
|
+
},
|
|
10109
|
+
{
|
|
10110
|
+
"path": "lastBytes",
|
|
10111
|
+
"valueType": "number"
|
|
10112
|
+
},
|
|
10113
|
+
{
|
|
10114
|
+
"path": "lastStreamId",
|
|
10115
|
+
"valueType": "string"
|
|
10116
|
+
}
|
|
10117
|
+
],
|
|
10118
|
+
"stream-params": [
|
|
10119
|
+
{
|
|
10120
|
+
"path": "main.width",
|
|
10121
|
+
"valueType": "number"
|
|
10122
|
+
},
|
|
10123
|
+
{
|
|
10124
|
+
"path": "main.height",
|
|
10125
|
+
"valueType": "number"
|
|
10126
|
+
},
|
|
10127
|
+
{
|
|
10128
|
+
"path": "main.codec",
|
|
10129
|
+
"valueType": "enum",
|
|
10130
|
+
"enumValues": ["h264", "h265"]
|
|
10131
|
+
},
|
|
10132
|
+
{
|
|
10133
|
+
"path": "main.framerate",
|
|
10134
|
+
"valueType": "number"
|
|
10135
|
+
},
|
|
10136
|
+
{
|
|
10137
|
+
"path": "main.bitrate",
|
|
10138
|
+
"valueType": "number"
|
|
10139
|
+
},
|
|
10140
|
+
{
|
|
10141
|
+
"path": "main.bitrateMode",
|
|
10142
|
+
"valueType": "enum",
|
|
10143
|
+
"enumValues": ["vbr", "cbr"]
|
|
10144
|
+
},
|
|
10145
|
+
{
|
|
10146
|
+
"path": "main.encoderProfile",
|
|
10147
|
+
"valueType": "enum",
|
|
10148
|
+
"enumValues": [
|
|
10149
|
+
"high",
|
|
10150
|
+
"main",
|
|
10151
|
+
"baseline"
|
|
10152
|
+
]
|
|
10153
|
+
},
|
|
10154
|
+
{
|
|
10155
|
+
"path": "main.gop",
|
|
10156
|
+
"valueType": "number"
|
|
10157
|
+
},
|
|
10158
|
+
{
|
|
10159
|
+
"path": "main.audio",
|
|
10160
|
+
"valueType": "boolean"
|
|
10161
|
+
},
|
|
10162
|
+
{
|
|
10163
|
+
"path": "sub.width",
|
|
10164
|
+
"valueType": "number"
|
|
10165
|
+
},
|
|
10166
|
+
{
|
|
10167
|
+
"path": "sub.height",
|
|
10168
|
+
"valueType": "number"
|
|
10169
|
+
},
|
|
10170
|
+
{
|
|
10171
|
+
"path": "sub.codec",
|
|
10172
|
+
"valueType": "enum",
|
|
10173
|
+
"enumValues": ["h264", "h265"]
|
|
10174
|
+
},
|
|
10175
|
+
{
|
|
10176
|
+
"path": "sub.framerate",
|
|
10177
|
+
"valueType": "number"
|
|
10178
|
+
},
|
|
10179
|
+
{
|
|
10180
|
+
"path": "sub.bitrate",
|
|
10181
|
+
"valueType": "number"
|
|
10182
|
+
},
|
|
10183
|
+
{
|
|
10184
|
+
"path": "sub.bitrateMode",
|
|
10185
|
+
"valueType": "enum",
|
|
10186
|
+
"enumValues": ["vbr", "cbr"]
|
|
10187
|
+
},
|
|
10188
|
+
{
|
|
10189
|
+
"path": "sub.encoderProfile",
|
|
10190
|
+
"valueType": "enum",
|
|
10191
|
+
"enumValues": [
|
|
10192
|
+
"high",
|
|
10193
|
+
"main",
|
|
10194
|
+
"baseline"
|
|
10195
|
+
]
|
|
10196
|
+
},
|
|
10197
|
+
{
|
|
10198
|
+
"path": "sub.gop",
|
|
10199
|
+
"valueType": "number"
|
|
10200
|
+
},
|
|
10201
|
+
{
|
|
10202
|
+
"path": "sub.audio",
|
|
10203
|
+
"valueType": "boolean"
|
|
10204
|
+
},
|
|
10205
|
+
{
|
|
10206
|
+
"path": "ext.width",
|
|
10207
|
+
"valueType": "number"
|
|
10208
|
+
},
|
|
10209
|
+
{
|
|
10210
|
+
"path": "ext.height",
|
|
10211
|
+
"valueType": "number"
|
|
10212
|
+
},
|
|
10213
|
+
{
|
|
10214
|
+
"path": "ext.codec",
|
|
10215
|
+
"valueType": "enum",
|
|
10216
|
+
"enumValues": ["h264", "h265"]
|
|
10217
|
+
},
|
|
10218
|
+
{
|
|
10219
|
+
"path": "ext.framerate",
|
|
10220
|
+
"valueType": "number"
|
|
10221
|
+
},
|
|
10222
|
+
{
|
|
10223
|
+
"path": "ext.bitrate",
|
|
10224
|
+
"valueType": "number"
|
|
10225
|
+
},
|
|
10226
|
+
{
|
|
10227
|
+
"path": "ext.bitrateMode",
|
|
10228
|
+
"valueType": "enum",
|
|
10229
|
+
"enumValues": ["vbr", "cbr"]
|
|
10230
|
+
},
|
|
10231
|
+
{
|
|
10232
|
+
"path": "ext.encoderProfile",
|
|
10233
|
+
"valueType": "enum",
|
|
10234
|
+
"enumValues": [
|
|
10235
|
+
"high",
|
|
10236
|
+
"main",
|
|
10237
|
+
"baseline"
|
|
10238
|
+
]
|
|
10239
|
+
},
|
|
10240
|
+
{
|
|
10241
|
+
"path": "ext.gop",
|
|
10242
|
+
"valueType": "number"
|
|
10243
|
+
},
|
|
10244
|
+
{
|
|
10245
|
+
"path": "ext.audio",
|
|
10246
|
+
"valueType": "boolean"
|
|
10247
|
+
}
|
|
10248
|
+
],
|
|
10249
|
+
"switch": [{
|
|
10250
|
+
"path": "on",
|
|
10251
|
+
"valueType": "boolean"
|
|
10252
|
+
}],
|
|
10253
|
+
"tamper": [{
|
|
10254
|
+
"path": "tampered",
|
|
10255
|
+
"valueType": "boolean"
|
|
10256
|
+
}],
|
|
10257
|
+
"temperature-sensor": [
|
|
10258
|
+
{
|
|
10259
|
+
"path": "celsius",
|
|
10260
|
+
"valueType": "number"
|
|
10261
|
+
},
|
|
10262
|
+
{
|
|
10263
|
+
"path": "unit",
|
|
10264
|
+
"valueType": "string"
|
|
10265
|
+
},
|
|
10266
|
+
{
|
|
10267
|
+
"path": "precision",
|
|
10268
|
+
"valueType": "number"
|
|
10269
|
+
}
|
|
10270
|
+
],
|
|
10271
|
+
"update": [
|
|
10272
|
+
{
|
|
10273
|
+
"path": "currentVersion",
|
|
10274
|
+
"valueType": "string"
|
|
10275
|
+
},
|
|
10276
|
+
{
|
|
10277
|
+
"path": "availableVersion",
|
|
10278
|
+
"valueType": "string"
|
|
10279
|
+
},
|
|
10280
|
+
{
|
|
10281
|
+
"path": "updatable",
|
|
10282
|
+
"valueType": "boolean"
|
|
10283
|
+
},
|
|
10284
|
+
{
|
|
10285
|
+
"path": "state",
|
|
10286
|
+
"valueType": "string"
|
|
10287
|
+
},
|
|
10288
|
+
{
|
|
10289
|
+
"path": "inProgress",
|
|
10290
|
+
"valueType": "boolean"
|
|
10291
|
+
}
|
|
10292
|
+
],
|
|
10293
|
+
"vacuum-control": [
|
|
10294
|
+
{
|
|
10295
|
+
"path": "state",
|
|
10296
|
+
"valueType": "enum",
|
|
10297
|
+
"enumValues": [
|
|
10298
|
+
"idle",
|
|
10299
|
+
"cleaning",
|
|
10300
|
+
"paused",
|
|
10301
|
+
"returning",
|
|
10302
|
+
"docked",
|
|
10303
|
+
"drying",
|
|
10304
|
+
"error"
|
|
10305
|
+
]
|
|
10306
|
+
},
|
|
10307
|
+
{
|
|
10308
|
+
"path": "batteryLevel",
|
|
10309
|
+
"valueType": "number"
|
|
10310
|
+
},
|
|
10311
|
+
{
|
|
10312
|
+
"path": "fanSpeed",
|
|
10313
|
+
"valueType": "string"
|
|
10314
|
+
},
|
|
10315
|
+
{
|
|
10316
|
+
"path": "progressPercent",
|
|
10317
|
+
"valueType": "number"
|
|
10318
|
+
},
|
|
10319
|
+
{
|
|
10320
|
+
"path": "errorCode",
|
|
10321
|
+
"valueType": "number"
|
|
10322
|
+
},
|
|
10323
|
+
{
|
|
10324
|
+
"path": "errorLabel",
|
|
10325
|
+
"valueType": "string"
|
|
10326
|
+
}
|
|
10327
|
+
],
|
|
10328
|
+
"valve": [{
|
|
10329
|
+
"path": "state",
|
|
10330
|
+
"valueType": "enum",
|
|
10331
|
+
"enumValues": [
|
|
10332
|
+
"open",
|
|
10333
|
+
"opening",
|
|
10334
|
+
"closing",
|
|
10335
|
+
"closed",
|
|
10336
|
+
"stopped"
|
|
10337
|
+
]
|
|
10338
|
+
}, {
|
|
10339
|
+
"path": "position",
|
|
10340
|
+
"valueType": "number"
|
|
10341
|
+
}],
|
|
10342
|
+
"vibration": [{
|
|
10343
|
+
"path": "detected",
|
|
10344
|
+
"valueType": "boolean"
|
|
10345
|
+
}],
|
|
10346
|
+
"water-heater": [
|
|
10347
|
+
{
|
|
10348
|
+
"path": "currentTemp",
|
|
10349
|
+
"valueType": "number"
|
|
10350
|
+
},
|
|
10351
|
+
{
|
|
10352
|
+
"path": "targetTemp",
|
|
10353
|
+
"valueType": "number"
|
|
10354
|
+
},
|
|
10355
|
+
{
|
|
10356
|
+
"path": "operationMode",
|
|
10357
|
+
"valueType": "string"
|
|
10358
|
+
},
|
|
10359
|
+
{
|
|
10360
|
+
"path": "away",
|
|
10361
|
+
"valueType": "boolean"
|
|
10362
|
+
},
|
|
10363
|
+
{
|
|
10364
|
+
"path": "minTemp",
|
|
10365
|
+
"valueType": "number"
|
|
10366
|
+
},
|
|
10367
|
+
{
|
|
10368
|
+
"path": "maxTemp",
|
|
10369
|
+
"valueType": "number"
|
|
10370
|
+
}
|
|
10371
|
+
],
|
|
10372
|
+
"weather": [
|
|
10373
|
+
{
|
|
10374
|
+
"path": "condition",
|
|
10375
|
+
"valueType": "string"
|
|
10376
|
+
},
|
|
10377
|
+
{
|
|
10378
|
+
"path": "temperature",
|
|
10379
|
+
"valueType": "number"
|
|
10380
|
+
},
|
|
10381
|
+
{
|
|
10382
|
+
"path": "temperatureUnit",
|
|
10383
|
+
"valueType": "string"
|
|
10384
|
+
},
|
|
10385
|
+
{
|
|
10386
|
+
"path": "humidity",
|
|
10387
|
+
"valueType": "number"
|
|
10388
|
+
},
|
|
10389
|
+
{
|
|
10390
|
+
"path": "pressure",
|
|
10391
|
+
"valueType": "number"
|
|
10392
|
+
},
|
|
10393
|
+
{
|
|
10394
|
+
"path": "pressureUnit",
|
|
10395
|
+
"valueType": "string"
|
|
10396
|
+
},
|
|
10397
|
+
{
|
|
10398
|
+
"path": "windSpeed",
|
|
10399
|
+
"valueType": "number"
|
|
10400
|
+
},
|
|
10401
|
+
{
|
|
10402
|
+
"path": "windSpeedUnit",
|
|
10403
|
+
"valueType": "string"
|
|
10404
|
+
},
|
|
10405
|
+
{
|
|
10406
|
+
"path": "windBearing",
|
|
10407
|
+
"valueType": "number"
|
|
10408
|
+
}
|
|
10409
|
+
],
|
|
10410
|
+
"zone-analytics": [
|
|
10411
|
+
{
|
|
10412
|
+
"path": "ts",
|
|
10413
|
+
"valueType": "number"
|
|
10414
|
+
},
|
|
10415
|
+
{
|
|
10416
|
+
"path": "frameWidth",
|
|
10417
|
+
"valueType": "number"
|
|
10418
|
+
},
|
|
10419
|
+
{
|
|
10420
|
+
"path": "frameHeight",
|
|
10421
|
+
"valueType": "number"
|
|
10422
|
+
},
|
|
10423
|
+
{
|
|
10424
|
+
"path": "frame.totalObjects",
|
|
10425
|
+
"valueType": "number"
|
|
10426
|
+
},
|
|
10427
|
+
{
|
|
10428
|
+
"path": "frame.standingObjects",
|
|
10429
|
+
"valueType": "number"
|
|
10430
|
+
},
|
|
10431
|
+
{
|
|
10432
|
+
"path": "frame.transientObjects",
|
|
10433
|
+
"valueType": "number"
|
|
10434
|
+
},
|
|
10435
|
+
{
|
|
10436
|
+
"path": "unzoned.totalObjects",
|
|
10437
|
+
"valueType": "number"
|
|
10438
|
+
},
|
|
10439
|
+
{
|
|
10440
|
+
"path": "unzoned.standingObjects",
|
|
10441
|
+
"valueType": "number"
|
|
10442
|
+
},
|
|
10443
|
+
{
|
|
10444
|
+
"path": "unzoned.transientObjects",
|
|
10445
|
+
"valueType": "number"
|
|
10446
|
+
}
|
|
10447
|
+
]
|
|
10448
|
+
});
|
|
8475
10449
|
object({
|
|
8476
10450
|
code: string().regex(/^[a-z][a-z0-9-]*(\.[a-z0-9-]+)+$/),
|
|
8477
10451
|
params: record(string(), union([string(), number()])).optional()
|
|
@@ -8834,7 +10808,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
8834
10808
|
return DeviceRole;
|
|
8835
10809
|
}({});
|
|
8836
10810
|
//#endregion
|
|
8837
|
-
//#region ../types/dist/composition-
|
|
10811
|
+
//#region ../types/dist/composition-kEl9mevu.mjs
|
|
8838
10812
|
/**
|
|
8839
10813
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
8840
10814
|
*
|
|
@@ -12087,7 +14061,7 @@ var LogChannelDescriptorSchema = object({
|
|
|
12087
14061
|
* `true` is a PROMISE with two halves, and both must hold: the gate is
|
|
12088
14062
|
* consulted with the numeric device id, AND every line the channel admits
|
|
12089
14063
|
* carries `tags: { deviceId }` with that same numeric id. The second half is
|
|
12090
|
-
* what makes `| json | deviceId="
|
|
14064
|
+
* what makes `| json | deviceId="102"` work in Loki — `loki-payload.ts`
|
|
12091
14065
|
* keeps `deviceId` out of the stream labels for cardinality, so the tag in
|
|
12092
14066
|
* the body is the only way to filter.
|
|
12093
14067
|
*
|
|
@@ -12275,7 +14249,7 @@ var ModelVariantGroupSchema = object({
|
|
|
12275
14249
|
precision: _enum(["fp32", "int8"]).optional(),
|
|
12276
14250
|
/**
|
|
12277
14251
|
* Training / latency-variant axis. Omit ⇒ the standard build. `test` marks
|
|
12278
|
-
* an alternate training of the same family (
|
|
14252
|
+
* an alternate training of the same family (plugin catalog `relu_test`); chip
|
|
12279
14253
|
* label is "Test".
|
|
12280
14254
|
*/
|
|
12281
14255
|
optimization: _enum(["standard", "test"]).optional(),
|
|
@@ -12527,8 +14501,8 @@ var ModelCatalogEntrySchema = object({
|
|
|
12527
14501
|
provider: ModelProviderIdSchema.optional(),
|
|
12528
14502
|
/**
|
|
12529
14503
|
* Per-MODEL class map override. Absent ⇒ the step's `StepDefinition.classMap`
|
|
12530
|
-
* applies (
|
|
12531
|
-
* labels already ARE the CamStack macros (
|
|
14504
|
+
* applies (plus catalog / COCO public catalog). Set on a custom model whose raw
|
|
14505
|
+
* labels already ARE the CamStack macros (plugin catalog identity map).
|
|
12532
14506
|
*/
|
|
12533
14507
|
classMap: DetectionCatalogClassMapSchema.optional(),
|
|
12534
14508
|
/**
|
|
@@ -15497,7 +17471,7 @@ method(object({
|
|
|
15497
17471
|
* `1` is real time and is the ONLY value that allows the copy branch —
|
|
15498
17472
|
* anything else forces `libx264` over the window. That was priced
|
|
15499
17473
|
* before it was chosen: a per-event burst measured at 0.23 s and 254 KB
|
|
15500
|
-
* on a real
|
|
17474
|
+
* on a real 101 720p cut, against 922 KB for the copy it replaces. A
|
|
15501
17475
|
* re-encode is capped at 720p (`EVENT_CLIP_ENCODE_MAX_WIDTH`), because
|
|
15502
17476
|
* once the decode is forced the width stops being free.
|
|
15503
17477
|
*/
|
|
@@ -16023,6 +17997,7 @@ var CompositionRunStatusSchema = _enum([
|
|
|
16023
17997
|
"starting",
|
|
16024
17998
|
"running",
|
|
16025
17999
|
"degraded",
|
|
18000
|
+
"incomplete",
|
|
16026
18001
|
"failed"
|
|
16027
18002
|
]);
|
|
16028
18003
|
var CompositionFieldStateKindSchema = _enum([
|
|
@@ -16236,6 +18211,7 @@ var CoreBlockStatusSchema = _enum([
|
|
|
16236
18211
|
"starting",
|
|
16237
18212
|
"running",
|
|
16238
18213
|
"degraded",
|
|
18214
|
+
"incomplete",
|
|
16239
18215
|
"failed"
|
|
16240
18216
|
]);
|
|
16241
18217
|
/** path → TypeScript source for a multi-file block. */
|
|
@@ -38383,7 +40359,7 @@ var PRIMARY_CATEGORIES = new Set(ENTRIES.map((e) => e.primaryCategory));
|
|
|
38383
40359
|
* `locationKey` is ALWAYS {@link locationIconKey} of the label — never the
|
|
38384
40360
|
* operator's casing. The registry matches labels trimmed + case-insensitively
|
|
38385
40361
|
* everywhere (`addLocation`, `removeLocation`, `renameLocation`), and a
|
|
38386
|
-
* case-only rename (`
|
|
40362
|
+
* case-only rename (`kitchen` → `Kitchen`) is a real edit this repo supports; a
|
|
38387
40363
|
* map keyed on the displayed casing would orphan its entry on exactly that
|
|
38388
40364
|
* edit. Consumers join by keying their own label through `locationIconKey`.
|
|
38389
40365
|
*/
|
|
@@ -38408,7 +40384,7 @@ var LocationDescriptionAssignmentSchema = object({
|
|
|
38408
40384
|
/**
|
|
38409
40385
|
* A SITE ZONE — a named part of the property that several locations belong to.
|
|
38410
40386
|
*
|
|
38411
|
-
* "
|
|
40387
|
+
* "Night zone" holds every bedroom; "Zona giorno" the living room and the
|
|
38412
40388
|
* kitchen. A camera belongs to exactly one location, and a location to at most
|
|
38413
40389
|
* one zone, so a camera's zone is derived and never stored on the device: the
|
|
38414
40390
|
* whole point of this entity is that grouping rooms touches no device row.
|
|
@@ -38437,7 +40413,7 @@ var LocationDescriptionAssignmentSchema = object({
|
|
|
38437
40413
|
* the locations inside it.
|
|
38438
40414
|
*
|
|
38439
40415
|
* The LABEL is carried alongside the key because the key is lossy on purpose —
|
|
38440
|
-
* a surface must show "
|
|
40416
|
+
* a surface must show "Night zone", not "night zone". Locations are carried
|
|
38441
40417
|
* here, rather than left to a second call, because every consumer wants both
|
|
38442
40418
|
* at once and a viewer that asked twice could render a zone whose membership
|
|
38443
40419
|
* it has not fetched yet.
|
|
@@ -40631,8 +42607,8 @@ var LoadContributionSchema = object({
|
|
|
40631
42607
|
"unattributable"
|
|
40632
42608
|
]),
|
|
40633
42609
|
/**
|
|
40634
|
-
* What ONE entry is, in the contributor's own words — `
|
|
40635
|
-
* `
|
|
42610
|
+
* What ONE entry is, in the contributor's own words — `101/high`,
|
|
42611
|
+
* `102/native`, `cuda:0 shared pool`. Free text because the unit differs per
|
|
40636
42612
|
* family and inventing a common one would lose the only information that
|
|
40637
42613
|
* makes two entries for the same camera distinguishable.
|
|
40638
42614
|
*/
|
|
@@ -43636,7 +45612,7 @@ var NcConditionsSchema = object({
|
|
|
43636
45612
|
* with the list under it is worse than no switch (D62).
|
|
43637
45613
|
*
|
|
43638
45614
|
* MEMBERS ARE FACE-GALLERY `Identity.id`s (uuid), not display names. A name is
|
|
43639
|
-
* renameable, and a rule authored on "
|
|
45615
|
+
* renameable, and a rule authored on "Alice" went silently dark the moment
|
|
43640
45616
|
* the operator fixed the spelling. The id reaches the record on
|
|
43641
45617
|
* `LabelAttribution.identityId`; the name is what the editor shows and what
|
|
43642
45618
|
* `{{label}}` renders.
|
|
@@ -44187,7 +46163,7 @@ var NcRulePatchSchema = NcRuleInputSchema.partial().extend({
|
|
|
44187
46163
|
* A rule scoped to one camera and one zone silently became a rule that
|
|
44188
46164
|
* matches EVERY event on EVERY camera, and lost its `media` policy
|
|
44189
46165
|
* (zoneCrop / gif / clip / frame) and its `priority` at the same time. Seen
|
|
44190
|
-
* live on 2026-08-12: a rule scoped to device
|
|
46166
|
+
* live on 2026-08-12: a rule scoped to device 102 fired on 104 and 101
|
|
44191
46167
|
* within a minute of a two-field patch.
|
|
44192
46168
|
*
|
|
44193
46169
|
* So every defaulted field is re-declared here WITHOUT its default. The
|
|
@@ -46000,7 +47976,7 @@ var LabelAttributionSchema = object({
|
|
|
46000
47976
|
* `Identity.id` or a plate-gallery `Vehicle.id` (both `randomUUID`).
|
|
46001
47977
|
*
|
|
46002
47978
|
* The text alone is a DISPLAY NAME, and a display name is renameable: a
|
|
46003
|
-
* notification rule authored on "
|
|
47979
|
+
* notification rule authored on "Alice" stopped matching the moment the
|
|
46004
47980
|
* operator fixed the spelling in the gallery, and nothing said so. The id is
|
|
46005
47981
|
* the thing that does not move, so it is what a rule matches on
|
|
46006
47982
|
* (`NcConditions.identities`) and the text is what a human is shown.
|
|
@@ -48539,7 +50515,7 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
48539
50515
|
/**
|
|
48540
50516
|
* Root-supplied detections for the tree's ROOT step (D730). Set by
|
|
48541
50517
|
* `runDetailSubtree` when the camera's root model supplies a crop-kind
|
|
48542
|
-
* step (a
|
|
50518
|
+
* step (a plus catalog `license_plate` for `plate-detection`): the step is
|
|
48543
50519
|
* NOT inferred, these boxes are its output, and its children (the plate
|
|
48544
50520
|
* reader) run on them through their own crop policy. Boxes are in the
|
|
48545
50521
|
* PIXELS of the image this call carries. Absent ⇒ the root step runs.
|
|
@@ -50216,7 +52192,7 @@ var RunnerCameraConfigSchema = object({
|
|
|
50216
52192
|
* detection session that asks for history. What shipped was a last-moment
|
|
50217
52193
|
* discard — `FrameSlot`'s throttle compares wall clocks, and ~4 s of media
|
|
50218
52194
|
* arriving inside a few hundred ms of wall clock looks to it like one frame's
|
|
50219
|
-
* worth. Device
|
|
52195
|
+
* worth. Device 102, 2026-09-08: a re-run of the SAME model over the stored
|
|
50220
52196
|
* recording scored the subject `vehicle 0.5669` — above the 0.50 floor —
|
|
50221
52197
|
* 1.68 s BEFORE the live track was born, on a frame that was in the pre-roll,
|
|
50222
52198
|
* was decoded, and was freed.
|
|
@@ -52350,7 +54326,7 @@ method(_void(), ProviderInfoSchema, { auth: "admin" }), method(object({ config:
|
|
|
52350
54326
|
* The signals a device can emit to WAKE its own stream.
|
|
52351
54327
|
*
|
|
52352
54328
|
* A camera whose stream is built on demand sleeps until something asks for it,
|
|
52353
|
-
* and "something" cannot be a consumer that is merely attached — a
|
|
54329
|
+
* and "something" cannot be a consumer that is merely attached — a external-catalog
|
|
52354
54330
|
* puller holds a session open for ever, and treating that as demand would keep
|
|
52355
54331
|
* a battery camera awake for ever, which is the whole thing the battery is for
|
|
52356
54332
|
* (D173). So the wake has to come from the CAMERA: an event it noticed by
|
|
@@ -53109,7 +55085,7 @@ var ClipSchema = object({
|
|
|
53109
55085
|
* {@link MAX_CLIP_EVENT_IDS}. Empty on footage-only clips.
|
|
53110
55086
|
*
|
|
53111
55087
|
* Bounded because it is not a payload the surface pages through: one visit on
|
|
53112
|
-
* device
|
|
55088
|
+
* device 101 carried 2 345 ids, and `eventIds` was 99% of a 153 KB
|
|
53113
55089
|
* camera-day. Read {@link eventCount} for the true total.
|
|
53114
55090
|
*/
|
|
53115
55091
|
eventIds: array(string()).optional(),
|
|
@@ -53254,7 +55230,7 @@ var ClipPlaybackSchema = object({
|
|
|
53254
55230
|
* camera has no recordings", which is the defect this whole line of work is
|
|
53255
55231
|
* about: a battery camera nobody woke (`sleeping`), a camera that could not be
|
|
53256
55232
|
* reached at all (`unreachable`, also what a provider that THREW reports), a
|
|
53257
|
-
* camera whose SD card is not mounted (`no-storage`, measured on
|
|
55233
|
+
* camera whose SD card is not mounted (`no-storage`, measured on 106 —
|
|
53258
55234
|
* `HddInfo mount 0`, honestly nothing to list rather than "no clips"), and a
|
|
53259
55235
|
* camera whose OWN index disagrees with its OWN calendar (`index-empty`,
|
|
53260
55236
|
* measured on 618: the calendar marks 3–20 September, days 6–20 list zero
|
|
@@ -53715,7 +55691,7 @@ var videoclipsCapability = {
|
|
|
53715
55691
|
*
|
|
53716
55692
|
* It was optional, documented as "absent means the device's BOUND
|
|
53717
55693
|
* provider, which is CamStack on every camera". No code implemented
|
|
53718
|
-
* that. Measured on the live hub 2026-09-20 — device
|
|
55694
|
+
* that. Measured on the live hub 2026-09-20 — device 107, bound to
|
|
53719
55695
|
* `recorder` AND `provider-reolink` — a bare call with `limit: 3`
|
|
53720
55696
|
* answered SIX rows, three from each source, merged newest-first:
|
|
53721
55697
|
* `device-collection-dispatch.ts` simply left the fan-out un-narrowed,
|
|
@@ -55032,7 +57008,10 @@ var airQualitySensorCapability = {
|
|
|
55032
57008
|
*/
|
|
55033
57009
|
var AmbientLightSensorStatusSchema = object({
|
|
55034
57010
|
/** Current illuminance in lux (lx). */
|
|
55035
|
-
lux: number().min(0)
|
|
57011
|
+
lux: number().min(0).meta({
|
|
57012
|
+
unit: "lx",
|
|
57013
|
+
label: "Illuminance"
|
|
57014
|
+
}),
|
|
55036
57015
|
/** Ms epoch when the slice was last updated. */
|
|
55037
57016
|
lastFetchedAt: number(),
|
|
55038
57017
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -55075,7 +57054,12 @@ var ambientLightSensorCapability = {
|
|
|
55075
57054
|
} } },
|
|
55076
57055
|
/** Clock fields: written, but excluded from the compare that decides
|
|
55077
57056
|
* whether persisting is worth a SQLite commit. */
|
|
55078
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
57057
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
57058
|
+
customize: {
|
|
57059
|
+
version: 1,
|
|
57060
|
+
advanced: "derive",
|
|
57061
|
+
targets: []
|
|
57062
|
+
}
|
|
55079
57063
|
};
|
|
55080
57064
|
/**
|
|
55081
57065
|
* Per-class audio metrics aggregated over a sliding window.
|
|
@@ -55302,7 +57286,10 @@ var BatteryStatusSchema = object({
|
|
|
55302
57286
|
* Consumers must SKIP a null rather than coerce it — `battery-band` already
|
|
55303
57287
|
* declines to band a non-finite reading, which is the correct shape.
|
|
55304
57288
|
*/
|
|
55305
|
-
percentage: number().min(0).max(100).nullable()
|
|
57289
|
+
percentage: number().min(0).max(100).nullable().meta({
|
|
57290
|
+
unit: "%",
|
|
57291
|
+
label: "Charge"
|
|
57292
|
+
}),
|
|
55306
57293
|
/**
|
|
55307
57294
|
* Charging source. `'dc'` covers wall/USB adapters; `'solar'` is
|
|
55308
57295
|
* Reolink-specific for the Solar Panel 2 accessory (will become
|
|
@@ -55321,13 +57308,13 @@ var BatteryStatusSchema = object({
|
|
|
55321
57308
|
"solar",
|
|
55322
57309
|
"none",
|
|
55323
57310
|
"unknown"
|
|
55324
|
-
]),
|
|
57311
|
+
]).meta({ label: "Charging source" }),
|
|
55325
57312
|
/**
|
|
55326
57313
|
* True when the camera firmware has gone into low-power mode. Battery
|
|
55327
57314
|
* providers MUST avoid polling during sleep — reading the battery
|
|
55328
57315
|
* wakes the camera up and drains charge.
|
|
55329
57316
|
*/
|
|
55330
|
-
sleeping: boolean(),
|
|
57317
|
+
sleeping: boolean().meta({ label: "Sleeping" }),
|
|
55331
57318
|
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
55332
57319
|
lastUpdated: number(),
|
|
55333
57320
|
/**
|
|
@@ -55367,7 +57354,7 @@ var BatteryStatusSchema = object({
|
|
|
55367
57354
|
* sub-threshold = low). UI MUST render "Normal"/"Low" instead of a
|
|
55368
57355
|
* misleading exact percentage. Absent/false → genuine 0–100 % reading.
|
|
55369
57356
|
*/
|
|
55370
|
-
binary: boolean().optional()
|
|
57357
|
+
binary: boolean().optional().meta({ label: "Binary indicator" })
|
|
55371
57358
|
});
|
|
55372
57359
|
var BATTERY_DEVICE_TYPES = [
|
|
55373
57360
|
DeviceType.Camera,
|
|
@@ -55381,6 +57368,7 @@ var BATTERY_DEVICE_TYPES = [
|
|
|
55381
57368
|
/** Generic Customize target for the percentage reading (D936). */
|
|
55382
57369
|
var batteryCustomize = {
|
|
55383
57370
|
version: 1,
|
|
57371
|
+
advanced: "derive",
|
|
55384
57372
|
targets: [{
|
|
55385
57373
|
id: "percentage",
|
|
55386
57374
|
cardinality: "scalar",
|
|
@@ -55531,7 +57519,7 @@ onStatusChanged: { data: object({
|
|
|
55531
57519
|
* with the right HomeKit / Alexa display category.
|
|
55532
57520
|
*/
|
|
55533
57521
|
var BinaryStatusSchema = object({
|
|
55534
|
-
on: boolean(),
|
|
57522
|
+
on: boolean().meta({ label: "On" }),
|
|
55535
57523
|
/** Ms epoch of the last transition. 0 if never observed. */
|
|
55536
57524
|
lastChangedAt: number()
|
|
55537
57525
|
});
|
|
@@ -55560,7 +57548,12 @@ var binaryCapability = {
|
|
|
55560
57548
|
history: { fields: { on: { kind: "boolean" } } },
|
|
55561
57549
|
/** Clock fields: written, but excluded from the compare that decides
|
|
55562
57550
|
* whether persisting is worth a SQLite commit. */
|
|
55563
|
-
volatileStateFields: ["lastChangedAt"]
|
|
57551
|
+
volatileStateFields: ["lastChangedAt"],
|
|
57552
|
+
customize: {
|
|
57553
|
+
version: 1,
|
|
57554
|
+
advanced: "derive",
|
|
57555
|
+
targets: []
|
|
57556
|
+
}
|
|
55564
57557
|
};
|
|
55565
57558
|
/**
|
|
55566
57559
|
* Dimmable-light brightness control. Co-exists with `switch` on the
|
|
@@ -55866,7 +57859,7 @@ var GridLayoutCellSchema = object({
|
|
|
55866
57859
|
*
|
|
55867
57860
|
* A grid's `high` composes its sources' `high` and its `low` their `low`, so a
|
|
55868
57861
|
* profile is on offer only when EVERY source can serve it. The refusal NAMES
|
|
55869
|
-
* the sources, because "this grid has no low" is not a finding — "
|
|
57862
|
+
* the sources, because "this grid has no low" is not a finding — "101 has no
|
|
55870
57863
|
* low" is, and it is the one an operator can act on.
|
|
55871
57864
|
*/
|
|
55872
57865
|
var GridProfileOfferSchema = object({
|
|
@@ -58384,7 +60377,10 @@ var humidifierCapability = {
|
|
|
58384
60377
|
*/
|
|
58385
60378
|
var HumiditySensorStatusSchema = object({
|
|
58386
60379
|
/** Current relative humidity, 0..100. */
|
|
58387
|
-
percent: number().min(0).max(100)
|
|
60380
|
+
percent: number().min(0).max(100).meta({
|
|
60381
|
+
unit: "%",
|
|
60382
|
+
label: "Humidity"
|
|
60383
|
+
}),
|
|
58388
60384
|
/** Ms epoch when the slice was last updated. */
|
|
58389
60385
|
lastFetchedAt: number(),
|
|
58390
60386
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -58426,7 +60422,12 @@ var humiditySensorCapability = {
|
|
|
58426
60422
|
} } },
|
|
58427
60423
|
/** Clock fields: written, but excluded from the compare that decides
|
|
58428
60424
|
* whether persisting is worth a SQLite commit. */
|
|
58429
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
60425
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
60426
|
+
customize: {
|
|
60427
|
+
version: 1,
|
|
60428
|
+
advanced: "derive",
|
|
60429
|
+
targets: []
|
|
60430
|
+
}
|
|
58430
60431
|
};
|
|
58431
60432
|
/**
|
|
58432
60433
|
* Image display cap. Models a single still image exposed by an integration —
|
|
@@ -62105,9 +64106,15 @@ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema)
|
|
|
62105
64106
|
*/
|
|
62106
64107
|
var PowerMeterStatusSchema = object({
|
|
62107
64108
|
/** Instantaneous power draw in watts. */
|
|
62108
|
-
watts: number().optional()
|
|
64109
|
+
watts: number().optional().meta({
|
|
64110
|
+
unit: "W",
|
|
64111
|
+
label: "Power"
|
|
64112
|
+
}),
|
|
62109
64113
|
/** Cumulative energy in kilowatt-hours since the meter was reset. */
|
|
62110
|
-
kwhTotal: number().optional()
|
|
64114
|
+
kwhTotal: number().optional().meta({
|
|
64115
|
+
unit: "kWh",
|
|
64116
|
+
label: "Energy"
|
|
64117
|
+
}),
|
|
62111
64118
|
/** Voltage in volts. */
|
|
62112
64119
|
volts: number().optional(),
|
|
62113
64120
|
/** Current in amperes. */
|
|
@@ -62192,7 +64199,12 @@ var powerMeterCapability = {
|
|
|
62192
64199
|
} },
|
|
62193
64200
|
/** Clock fields: written, but excluded from the compare that decides
|
|
62194
64201
|
* whether persisting is worth a SQLite commit. */
|
|
62195
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
64202
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
64203
|
+
customize: {
|
|
64204
|
+
version: 1,
|
|
64205
|
+
advanced: "derive",
|
|
64206
|
+
targets: []
|
|
64207
|
+
}
|
|
62196
64208
|
};
|
|
62197
64209
|
/**
|
|
62198
64210
|
* Presence cap. Models HA `person.*` and `device_tracker.*` entities
|
|
@@ -62637,9 +64649,9 @@ var PtzOptionsSchema = object({
|
|
|
62637
64649
|
* Reolink preset 0, Hikvision preset '1', Dahua preset 1 -- and on this fleet
|
|
62638
64650
|
* not one of the three cameras honours its own:
|
|
62639
64651
|
*
|
|
62640
|
-
*
|
|
62641
|
-
* 1438
|
|
62642
|
-
* 3836
|
|
64652
|
+
* 107 Camera camera Carol (reolink) preset 0 holds "stanza"
|
|
64653
|
+
* 1438 Camera dispensa (hikvision) preset 1 holds "Credenza"
|
|
64654
|
+
* 3836 Camera studio (amcrest) preset 1 holds "Preset1"
|
|
62643
64655
|
*
|
|
62644
64656
|
* So `goHome` meant "go wherever the operator happened to save in slot 0 or 1",
|
|
62645
64657
|
* and two of the three swallowed the failure in a bare `catch`. For autotrack
|
|
@@ -62972,7 +64984,7 @@ var RunningStateStatusSchema = object({
|
|
|
62972
64984
|
running: boolean().nullable(),
|
|
62973
64985
|
/** Epoch ms the current boolean began; null while `running` is null. */
|
|
62974
64986
|
since: number().nullable(),
|
|
62975
|
-
source: RunningStateSourceSchema,
|
|
64987
|
+
source: RunningStateSourceSchema.meta({ label: "Source" }),
|
|
62976
64988
|
phase: string().nullable(),
|
|
62977
64989
|
/** null until a reading has been published (D393). */
|
|
62978
64990
|
lastFetchedAt: number().nullable()
|
|
@@ -62986,6 +64998,7 @@ var RUNNING_DEVICE_TYPES = Object.values(DeviceType);
|
|
|
62986
64998
|
/** Generic Customize target for the running boolean (D936). */
|
|
62987
64999
|
var runningCustomize = {
|
|
62988
65000
|
version: 1,
|
|
65001
|
+
advanced: "derive",
|
|
62989
65002
|
targets: [{
|
|
62990
65003
|
id: "running",
|
|
62991
65004
|
cardinality: "scalar",
|
|
@@ -63124,7 +65137,7 @@ var RecordingAvailabilitySchema = object({
|
|
|
63124
65137
|
* would look identical. But the answer used to say nothing about that, so a
|
|
63125
65138
|
* caller asking "what can I export?" read the single preferred profile as
|
|
63126
65139
|
* the only one that exists — on this deployment every camera records `high`
|
|
63127
|
-
* AND `low`, the low tree holding 14 GB for camera
|
|
65140
|
+
* AND `low`, the low tree holding 14 GB for camera 101 alone, and the export
|
|
63128
65141
|
* UI could not see it.
|
|
63129
65142
|
*
|
|
63130
65143
|
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
@@ -63223,7 +65236,7 @@ var RecordingSourceOptionsSchema = object({
|
|
|
63223
65236
|
* `sparse` = gaps are the absence of one, and must be drawn as such.
|
|
63224
65237
|
*
|
|
63225
65238
|
* Not an onboard-only concession: measured 2026-09-24, OUR bar covers 98.8 %
|
|
63226
|
-
* of
|
|
65239
|
+
* of 107's day and 1.2 % of 1436's. It is a fact about a (source, camera)
|
|
63227
65240
|
* pair, and ours answers it per camera from `deriveRecordingMode`. */
|
|
63228
65241
|
coverage: _enum(["continuous", "sparse"]),
|
|
63229
65242
|
/** Where the playhead may be put.
|
|
@@ -63299,7 +65312,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(RecordingSourceS
|
|
|
63299
65312
|
* merely discouraged (D554 amended).
|
|
63300
65313
|
*
|
|
63301
65314
|
* It was learned the expensive way on `videoclips.listClips`: measured
|
|
63302
|
-
* on the live hub 2026-09-20, device
|
|
65315
|
+
* on the live hub 2026-09-20, device 107 bound to `recorder` AND
|
|
63303
65316
|
* `provider-reolink`, a bare call with `limit: 3` answered SIX rows,
|
|
63304
65317
|
* three from each source, merged — `device-collection-dispatch.ts`
|
|
63305
65318
|
* leaves an unpinned fan-out un-narrowed, so absence buys the union the
|
|
@@ -63900,7 +65913,7 @@ var ExportSpeedSchema = number().min(.25).max(32);
|
|
|
63900
65913
|
* on a 10 h window holding 29,393 s of footage every range landed late by the
|
|
63901
65914
|
* gap accumulated before it — up to 6,607 s, well past EOF. Nothing matched,
|
|
63902
65915
|
* the video was a uniform timelapse, and the log line reported the five ranges
|
|
63903
|
-
* that had been ASKED for (2026-08-13, export `57d14363`, camera
|
|
65916
|
+
* that had been ASKED for (2026-08-13, export `57d14363`, camera 101).
|
|
63904
65917
|
*
|
|
63905
65918
|
* Relative and not absolute epoch, because an absolute epoch would make every
|
|
63906
65919
|
* call site responsible for the same subtraction.
|
|
@@ -64717,7 +66730,7 @@ getStatus: method(object({ deviceId: number() }), RecordingSignalStatusSchema) }
|
|
|
64717
66730
|
* which put a "Scenes" tab on one camera's detail page. That is the wrong shape
|
|
64718
66731
|
* for the thing: a scene is a standing question about the property ("is the bin
|
|
64719
66732
|
* still out"), and the operator's question is "which of my scenes have tripped",
|
|
64720
|
-
* across every camera at once — not "what does camera
|
|
66733
|
+
* across every camera at once — not "what does camera 102 think". Buried one
|
|
64721
66734
|
* camera deep it also could not be found. The surface is now a top-level admin
|
|
64722
66735
|
* page (`/scenes`, `pages/Scenes.tsx`) that lists every scene on every camera and
|
|
64723
66736
|
* picks the camera inside the create flow, the same shape Events and Faces have.
|
|
@@ -65774,7 +67787,7 @@ function buildStreamParamsConfigSchema(options, status) {
|
|
|
65774
67787
|
* `getSettingsUISchema()` surface.
|
|
65775
67788
|
*/
|
|
65776
67789
|
var SwitchStatusSchema = object({
|
|
65777
|
-
on: boolean(),
|
|
67790
|
+
on: boolean().meta({ label: "On" }),
|
|
65778
67791
|
/** Ms epoch of the last state change. Useful for UI "X minutes ago". */
|
|
65779
67792
|
lastChangedAt: number()
|
|
65780
67793
|
});
|
|
@@ -65833,7 +67846,12 @@ var switchCapability = {
|
|
|
65833
67846
|
label: "On",
|
|
65834
67847
|
kind: "boolean"
|
|
65835
67848
|
}
|
|
65836
|
-
}] }
|
|
67849
|
+
}] },
|
|
67850
|
+
customize: {
|
|
67851
|
+
version: 1,
|
|
67852
|
+
advanced: "derive",
|
|
67853
|
+
targets: []
|
|
67854
|
+
}
|
|
65837
67855
|
};
|
|
65838
67856
|
/** C0 controls, DEL and the C1 range: none of them belongs in a name. */
|
|
65839
67857
|
function hasControlCharacter(value) {
|
|
@@ -66429,7 +68447,10 @@ var tamperCapability = {
|
|
|
66429
68447
|
*/
|
|
66430
68448
|
var TemperatureSensorStatusSchema = object({
|
|
66431
68449
|
/** Current temperature in Celsius. */
|
|
66432
|
-
celsius: number()
|
|
68450
|
+
celsius: number().meta({
|
|
68451
|
+
unit: "°C",
|
|
68452
|
+
label: "Temperature"
|
|
68453
|
+
}),
|
|
66433
68454
|
/** Ms epoch when the slice was last updated (push or poll). */
|
|
66434
68455
|
lastFetchedAt: number(),
|
|
66435
68456
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -66472,7 +68493,12 @@ var temperatureSensorCapability = {
|
|
|
66472
68493
|
} } },
|
|
66473
68494
|
/** Clock fields: written, but excluded from the compare that decides
|
|
66474
68495
|
* whether persisting is worth a SQLite commit. */
|
|
66475
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
68496
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
68497
|
+
customize: {
|
|
68498
|
+
version: 1,
|
|
68499
|
+
advanced: "derive",
|
|
68500
|
+
targets: []
|
|
68501
|
+
}
|
|
66476
68502
|
};
|
|
66477
68503
|
/**
|
|
66478
68504
|
* toast — system-scoped singleton capability that streams toast
|
|
@@ -68151,6 +70177,10 @@ function withClipEventLabels(provider, deps) {
|
|
|
68151
70177
|
};
|
|
68152
70178
|
}
|
|
68153
70179
|
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
70180
|
+
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher, DeviceType.Camera, DeviceType.Camera, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
70181
|
+
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
70182
|
+
DeviceRole.BinarySensor, DeviceRole.MotionSensor;
|
|
70183
|
+
new Set(CAP_NAMES);
|
|
68154
70184
|
Object.freeze({
|
|
68155
70185
|
person: .5,
|
|
68156
70186
|
vehicle: .5,
|
|
@@ -69384,7 +71414,7 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
69384
71414
|
* A top-level persisted row with NO configuration is a leftover, not a
|
|
69385
71415
|
* device — quarantine it instead of dialling it.
|
|
69386
71416
|
*
|
|
69387
|
-
* Device
|
|
71417
|
+
* Device 105 was deleted, resurrected as a config-less shell by a write
|
|
69388
71418
|
* already in flight (D376), and then dialled at every single boot: eight
|
|
69389
71419
|
* `Failed to restore device — bounded retry scheduled` lines in one day,
|
|
69390
71420
|
* each one the same Zod refusal on `host` and `password`. The bound was
|
|
@@ -82636,7 +84666,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
82636
84666
|
state: [{
|
|
82637
84667
|
kind: "boolean",
|
|
82638
84668
|
field: "on",
|
|
82639
|
-
label: t("
|
|
84669
|
+
label: t("On", "Acceso"),
|
|
82640
84670
|
whenTrue: t("When {device} turns active", "Quando {device} si attiva"),
|
|
82641
84671
|
whenFalse: t("When {device} turns inactive", "Quando {device} si disattiva"),
|
|
82642
84672
|
icon: "toggle-right"
|
|
@@ -86266,7 +88296,6 @@ Object.freeze({
|
|
|
86266
88296
|
"smtp-provider": "email"
|
|
86267
88297
|
});
|
|
86268
88298
|
DeviceType.Camera;
|
|
86269
|
-
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher, DeviceType.Camera, DeviceType.Camera, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
86270
88299
|
/**
|
|
86271
88300
|
* A saved Customize assignment (D936). The schema is the type: callers use
|
|
86272
88301
|
* `z.infer`, they do not restate the shape.
|
|
@@ -86355,7 +88384,6 @@ object({
|
|
|
86355
88384
|
]),
|
|
86356
88385
|
reason: string().nullable()
|
|
86357
88386
|
});
|
|
86358
|
-
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
86359
88387
|
var G711_SCALE_CORRECTION_DB = {
|
|
86360
88388
|
PCMU: 20 * Math.log10(4),
|
|
86361
88389
|
PCMA: 20 * Math.log10(8)
|
|
@@ -86728,7 +88756,7 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
86728
88756
|
{
|
|
86729
88757
|
name: "summaryStreams",
|
|
86730
88758
|
label: "Summary: streams offline",
|
|
86731
|
-
example: "
|
|
88759
|
+
example: "Front door (high) — since 06:40",
|
|
86732
88760
|
kinds: ["stream-offline", "stream-online"]
|
|
86733
88761
|
},
|
|
86734
88762
|
{
|
|
@@ -86746,13 +88774,13 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
86746
88774
|
{
|
|
86747
88775
|
name: "summaryDetection",
|
|
86748
88776
|
label: "Summary: cameras detecting nothing",
|
|
86749
|
-
example: "
|
|
88777
|
+
example: "Front door — since 05:10",
|
|
86750
88778
|
kinds: ["detection-blind"]
|
|
86751
88779
|
},
|
|
86752
88780
|
{
|
|
86753
88781
|
name: "summaryNodes",
|
|
86754
88782
|
label: "Summary: nodes",
|
|
86755
|
-
example: "
|
|
88783
|
+
example: "agent-a — offline since 03:00",
|
|
86756
88784
|
kinds: [
|
|
86757
88785
|
"node-offline",
|
|
86758
88786
|
"node-online",
|
|
@@ -89557,7 +91585,7 @@ var amcrestCameraSchema = object({
|
|
|
89557
91585
|
*
|
|
89558
91586
|
* Empty = nothing configured, and `goHome` then REFUSES. It used to go to a
|
|
89559
91587
|
* hardcoded slot on a vendor "convention" this fleet contradicts: reolink
|
|
89560
|
-
* went to preset 0, which on device
|
|
91588
|
+
* went to preset 0, which on device 107 holds "stanza"; amcrest went to
|
|
89561
91589
|
* preset 1, which on device 3836 holds "Preset1". Both swallowed the failure
|
|
89562
91590
|
* in a bare catch, so a head that never moved was indistinguishable from a
|
|
89563
91591
|
* head that went home.
|