@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.js
CHANGED
|
@@ -35,7 +35,7 @@ let node_stream_promises = require("node:stream/promises");
|
|
|
35
35
|
let node_child_process = require("node:child_process");
|
|
36
36
|
require("node:zlib");
|
|
37
37
|
let node_os = require("node:os");
|
|
38
|
-
//#region ../types/dist/event-category-
|
|
38
|
+
//#region ../types/dist/event-category-DHXxB8t9.mjs
|
|
39
39
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
40
40
|
EventCategory["SystemBoot"] = "system.boot";
|
|
41
41
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -331,7 +331,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
331
331
|
* TRANSITION into that state (never per dispatch), and the node is dropped
|
|
332
332
|
* from the placement candidate set for as long as it holds.
|
|
333
333
|
*
|
|
334
|
-
* This exists because the state was previously invisible:
|
|
334
|
+
* This exists because the state was previously invisible: agent-a
|
|
335
335
|
* absorbed 283k inference errors in a day while still being handed cameras,
|
|
336
336
|
* and nothing in the system said so.
|
|
337
337
|
*
|
|
@@ -5470,7 +5470,7 @@ var ZodIssueCode = {
|
|
|
5470
5470
|
var ZodFirstPartyTypeKind;
|
|
5471
5471
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5472
5472
|
//#endregion
|
|
5473
|
-
//#region ../types/dist/sleep-
|
|
5473
|
+
//#region ../types/dist/sleep-BErAxhul.mjs
|
|
5474
5474
|
/**
|
|
5475
5475
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5476
5476
|
* window to float samples (D455).
|
|
@@ -8493,6 +8493,1980 @@ method(object({ deviceId: number() }), array(StreamSourceEntrySchema)), method(o
|
|
|
8493
8493
|
kind: "mutation",
|
|
8494
8494
|
auth: "admin"
|
|
8495
8495
|
}), method(object({ deviceId: number() }), unknown().nullable()), method(object({ deviceId: number() }), RawStateResultSchema.nullable(), { auth: "protected" });
|
|
8496
|
+
Object.freeze({ "doorbell": "lastPressedAt" });
|
|
8497
|
+
/** Every capability name, so addon code can check a name without the schema graph. */
|
|
8498
|
+
var CAP_NAMES = Object.freeze([
|
|
8499
|
+
"accessories",
|
|
8500
|
+
"addon-pages",
|
|
8501
|
+
"addon-pages-source",
|
|
8502
|
+
"addon-routes",
|
|
8503
|
+
"addon-settings",
|
|
8504
|
+
"addon-widgets",
|
|
8505
|
+
"addon-widgets-source",
|
|
8506
|
+
"addons",
|
|
8507
|
+
"admin-ui",
|
|
8508
|
+
"air-quality-sensor",
|
|
8509
|
+
"alarm-panel",
|
|
8510
|
+
"alerts",
|
|
8511
|
+
"ambient-light-sensor",
|
|
8512
|
+
"audio-analysis",
|
|
8513
|
+
"audio-analyzer",
|
|
8514
|
+
"audio-codec",
|
|
8515
|
+
"audio-metrics",
|
|
8516
|
+
"auth-provider",
|
|
8517
|
+
"automation-control",
|
|
8518
|
+
"backup",
|
|
8519
|
+
"battery",
|
|
8520
|
+
"binary",
|
|
8521
|
+
"brightness",
|
|
8522
|
+
"broker",
|
|
8523
|
+
"button",
|
|
8524
|
+
"calendar-source",
|
|
8525
|
+
"calendars",
|
|
8526
|
+
"camera-credentials",
|
|
8527
|
+
"camera-grid-layout",
|
|
8528
|
+
"camera-pipeline-config",
|
|
8529
|
+
"camera-streams",
|
|
8530
|
+
"carbon-monoxide",
|
|
8531
|
+
"climate-control",
|
|
8532
|
+
"color",
|
|
8533
|
+
"composer",
|
|
8534
|
+
"connection-test",
|
|
8535
|
+
"connectivity",
|
|
8536
|
+
"consumables",
|
|
8537
|
+
"contact",
|
|
8538
|
+
"control",
|
|
8539
|
+
"core-blocks",
|
|
8540
|
+
"cover",
|
|
8541
|
+
"custom-model-registry",
|
|
8542
|
+
"data-store-provider",
|
|
8543
|
+
"database-snapshot",
|
|
8544
|
+
"day-night",
|
|
8545
|
+
"decoder",
|
|
8546
|
+
"detection-pipeline",
|
|
8547
|
+
"device-admin-link",
|
|
8548
|
+
"device-adoption",
|
|
8549
|
+
"device-credentials",
|
|
8550
|
+
"device-discovery",
|
|
8551
|
+
"device-export",
|
|
8552
|
+
"device-extension",
|
|
8553
|
+
"device-history",
|
|
8554
|
+
"device-manager",
|
|
8555
|
+
"device-ops",
|
|
8556
|
+
"device-provider",
|
|
8557
|
+
"device-removal-hook",
|
|
8558
|
+
"device-state",
|
|
8559
|
+
"device-status",
|
|
8560
|
+
"dishwasher",
|
|
8561
|
+
"display-palette",
|
|
8562
|
+
"doorbell",
|
|
8563
|
+
"embedding-encoder",
|
|
8564
|
+
"enum-sensor",
|
|
8565
|
+
"event-emitter",
|
|
8566
|
+
"face-gallery",
|
|
8567
|
+
"failure-contribution",
|
|
8568
|
+
"fan-control",
|
|
8569
|
+
"feature-probe",
|
|
8570
|
+
"filesystem-browse",
|
|
8571
|
+
"flood",
|
|
8572
|
+
"gas",
|
|
8573
|
+
"heating-valve",
|
|
8574
|
+
"humidifier",
|
|
8575
|
+
"humidity-sensor",
|
|
8576
|
+
"image",
|
|
8577
|
+
"image-settings",
|
|
8578
|
+
"integrations",
|
|
8579
|
+
"intercom",
|
|
8580
|
+
"keychain",
|
|
8581
|
+
"keychain-admin",
|
|
8582
|
+
"lawn-mower-control",
|
|
8583
|
+
"llm",
|
|
8584
|
+
"llm-runtime",
|
|
8585
|
+
"load-contribution",
|
|
8586
|
+
"local-network",
|
|
8587
|
+
"lock-control",
|
|
8588
|
+
"log-channels",
|
|
8589
|
+
"log-destination",
|
|
8590
|
+
"login-method",
|
|
8591
|
+
"media-player",
|
|
8592
|
+
"mesh-network",
|
|
8593
|
+
"metrics-provider",
|
|
8594
|
+
"model-convert",
|
|
8595
|
+
"model-distributor",
|
|
8596
|
+
"motion",
|
|
8597
|
+
"motion-detection",
|
|
8598
|
+
"motion-trigger",
|
|
8599
|
+
"motion-zones",
|
|
8600
|
+
"mqtt-broker",
|
|
8601
|
+
"native-object-detection",
|
|
8602
|
+
"navigation",
|
|
8603
|
+
"network-access",
|
|
8604
|
+
"network-link",
|
|
8605
|
+
"network-quality",
|
|
8606
|
+
"node-certificates",
|
|
8607
|
+
"nodes",
|
|
8608
|
+
"notification-output",
|
|
8609
|
+
"notification-rules",
|
|
8610
|
+
"notifier",
|
|
8611
|
+
"numeric-sensor",
|
|
8612
|
+
"oauth-integration",
|
|
8613
|
+
"oidc-connections",
|
|
8614
|
+
"osd",
|
|
8615
|
+
"osd-manager",
|
|
8616
|
+
"pet-feeder",
|
|
8617
|
+
"pipeline-analytics",
|
|
8618
|
+
"pipeline-executor",
|
|
8619
|
+
"pipeline-orchestrator",
|
|
8620
|
+
"pipeline-runner",
|
|
8621
|
+
"plate-gallery",
|
|
8622
|
+
"platform-probe",
|
|
8623
|
+
"power-meter",
|
|
8624
|
+
"presence",
|
|
8625
|
+
"pressure-sensor",
|
|
8626
|
+
"privacy-mask",
|
|
8627
|
+
"ptz",
|
|
8628
|
+
"ptz-autotrack",
|
|
8629
|
+
"reboot",
|
|
8630
|
+
"record-entries",
|
|
8631
|
+
"recording",
|
|
8632
|
+
"recording-archive",
|
|
8633
|
+
"recording-export",
|
|
8634
|
+
"recording-onboard",
|
|
8635
|
+
"recording-signal",
|
|
8636
|
+
"records",
|
|
8637
|
+
"running-state",
|
|
8638
|
+
"scene-monitor",
|
|
8639
|
+
"script-runner",
|
|
8640
|
+
"server-management",
|
|
8641
|
+
"settings-store",
|
|
8642
|
+
"smoke",
|
|
8643
|
+
"smtp-provider",
|
|
8644
|
+
"snapshot",
|
|
8645
|
+
"sso-bridge",
|
|
8646
|
+
"storage",
|
|
8647
|
+
"storage-admin",
|
|
8648
|
+
"storage-evictable",
|
|
8649
|
+
"storage-migration",
|
|
8650
|
+
"storage-occupancy",
|
|
8651
|
+
"storage-provider",
|
|
8652
|
+
"stream-broker",
|
|
8653
|
+
"stream-catalog",
|
|
8654
|
+
"stream-params",
|
|
8655
|
+
"stream-signals",
|
|
8656
|
+
"switch",
|
|
8657
|
+
"system",
|
|
8658
|
+
"tamper",
|
|
8659
|
+
"temperature-sensor",
|
|
8660
|
+
"terminal-session",
|
|
8661
|
+
"toast",
|
|
8662
|
+
"training",
|
|
8663
|
+
"training-provider",
|
|
8664
|
+
"turn-provider",
|
|
8665
|
+
"update",
|
|
8666
|
+
"user-management",
|
|
8667
|
+
"user-passkeys",
|
|
8668
|
+
"vacuum-control",
|
|
8669
|
+
"valve",
|
|
8670
|
+
"vector-store",
|
|
8671
|
+
"vibration",
|
|
8672
|
+
"videoclips",
|
|
8673
|
+
"viewer-ui",
|
|
8674
|
+
"water-heater",
|
|
8675
|
+
"weather",
|
|
8676
|
+
"webrtc-session",
|
|
8677
|
+
"zone-analytics",
|
|
8678
|
+
"zone-rules",
|
|
8679
|
+
"zones"
|
|
8680
|
+
]);
|
|
8681
|
+
Object.freeze({
|
|
8682
|
+
"air-quality-sensor": [
|
|
8683
|
+
{
|
|
8684
|
+
"path": "co2Ppm",
|
|
8685
|
+
"valueType": "number"
|
|
8686
|
+
},
|
|
8687
|
+
{
|
|
8688
|
+
"path": "vocPpb",
|
|
8689
|
+
"valueType": "number"
|
|
8690
|
+
},
|
|
8691
|
+
{
|
|
8692
|
+
"path": "pm25",
|
|
8693
|
+
"valueType": "number"
|
|
8694
|
+
},
|
|
8695
|
+
{
|
|
8696
|
+
"path": "pm10",
|
|
8697
|
+
"valueType": "number"
|
|
8698
|
+
},
|
|
8699
|
+
{
|
|
8700
|
+
"path": "aqi",
|
|
8701
|
+
"valueType": "number"
|
|
8702
|
+
},
|
|
8703
|
+
{
|
|
8704
|
+
"path": "unit",
|
|
8705
|
+
"valueType": "string"
|
|
8706
|
+
},
|
|
8707
|
+
{
|
|
8708
|
+
"path": "precision",
|
|
8709
|
+
"valueType": "number"
|
|
8710
|
+
}
|
|
8711
|
+
],
|
|
8712
|
+
"alarm-panel": [
|
|
8713
|
+
{
|
|
8714
|
+
"path": "state",
|
|
8715
|
+
"valueType": "enum",
|
|
8716
|
+
"enumValues": [
|
|
8717
|
+
"disarmed",
|
|
8718
|
+
"armed_home",
|
|
8719
|
+
"armed_away",
|
|
8720
|
+
"armed_night",
|
|
8721
|
+
"armed_vacation",
|
|
8722
|
+
"armed_custom_bypass",
|
|
8723
|
+
"arming",
|
|
8724
|
+
"disarming",
|
|
8725
|
+
"pending",
|
|
8726
|
+
"triggered"
|
|
8727
|
+
]
|
|
8728
|
+
},
|
|
8729
|
+
{
|
|
8730
|
+
"path": "targetMode",
|
|
8731
|
+
"valueType": "enum",
|
|
8732
|
+
"enumValues": [
|
|
8733
|
+
"home",
|
|
8734
|
+
"away",
|
|
8735
|
+
"night",
|
|
8736
|
+
"vacation",
|
|
8737
|
+
"custom_bypass"
|
|
8738
|
+
]
|
|
8739
|
+
},
|
|
8740
|
+
{
|
|
8741
|
+
"path": "requiresCode",
|
|
8742
|
+
"valueType": "boolean"
|
|
8743
|
+
}
|
|
8744
|
+
],
|
|
8745
|
+
"ambient-light-sensor": [
|
|
8746
|
+
{
|
|
8747
|
+
"path": "lux",
|
|
8748
|
+
"valueType": "number"
|
|
8749
|
+
},
|
|
8750
|
+
{
|
|
8751
|
+
"path": "unit",
|
|
8752
|
+
"valueType": "string"
|
|
8753
|
+
},
|
|
8754
|
+
{
|
|
8755
|
+
"path": "precision",
|
|
8756
|
+
"valueType": "number"
|
|
8757
|
+
}
|
|
8758
|
+
],
|
|
8759
|
+
"audio-metrics": [
|
|
8760
|
+
{
|
|
8761
|
+
"path": "ts",
|
|
8762
|
+
"valueType": "number"
|
|
8763
|
+
},
|
|
8764
|
+
{
|
|
8765
|
+
"path": "windowSec",
|
|
8766
|
+
"valueType": "number"
|
|
8767
|
+
},
|
|
8768
|
+
{
|
|
8769
|
+
"path": "level.rms",
|
|
8770
|
+
"valueType": "number"
|
|
8771
|
+
},
|
|
8772
|
+
{
|
|
8773
|
+
"path": "level.dbfs",
|
|
8774
|
+
"valueType": "number"
|
|
8775
|
+
},
|
|
8776
|
+
{
|
|
8777
|
+
"path": "peakDbfs",
|
|
8778
|
+
"valueType": "number"
|
|
8779
|
+
},
|
|
8780
|
+
{
|
|
8781
|
+
"path": "avgDbfs",
|
|
8782
|
+
"valueType": "number"
|
|
8783
|
+
},
|
|
8784
|
+
{
|
|
8785
|
+
"path": "current.className",
|
|
8786
|
+
"valueType": "string"
|
|
8787
|
+
},
|
|
8788
|
+
{
|
|
8789
|
+
"path": "current.score",
|
|
8790
|
+
"valueType": "number"
|
|
8791
|
+
},
|
|
8792
|
+
{
|
|
8793
|
+
"path": "current.timestamp",
|
|
8794
|
+
"valueType": "number"
|
|
8795
|
+
}
|
|
8796
|
+
],
|
|
8797
|
+
"automation-control": [
|
|
8798
|
+
{
|
|
8799
|
+
"path": "enabled",
|
|
8800
|
+
"valueType": "boolean"
|
|
8801
|
+
},
|
|
8802
|
+
{
|
|
8803
|
+
"path": "isRunning",
|
|
8804
|
+
"valueType": "boolean"
|
|
8805
|
+
},
|
|
8806
|
+
{
|
|
8807
|
+
"path": "lastTriggeredAt",
|
|
8808
|
+
"valueType": "number"
|
|
8809
|
+
},
|
|
8810
|
+
{
|
|
8811
|
+
"path": "lastError",
|
|
8812
|
+
"valueType": "string"
|
|
8813
|
+
}
|
|
8814
|
+
],
|
|
8815
|
+
"battery": [
|
|
8816
|
+
{
|
|
8817
|
+
"path": "percentage",
|
|
8818
|
+
"valueType": "number"
|
|
8819
|
+
},
|
|
8820
|
+
{
|
|
8821
|
+
"path": "charging",
|
|
8822
|
+
"valueType": "enum",
|
|
8823
|
+
"enumValues": [
|
|
8824
|
+
"dc",
|
|
8825
|
+
"solar",
|
|
8826
|
+
"none",
|
|
8827
|
+
"unknown"
|
|
8828
|
+
]
|
|
8829
|
+
},
|
|
8830
|
+
{
|
|
8831
|
+
"path": "sleeping",
|
|
8832
|
+
"valueType": "boolean"
|
|
8833
|
+
},
|
|
8834
|
+
{
|
|
8835
|
+
"path": "lastUpdated",
|
|
8836
|
+
"valueType": "number"
|
|
8837
|
+
},
|
|
8838
|
+
{
|
|
8839
|
+
"path": "lastContactAt",
|
|
8840
|
+
"valueType": "number"
|
|
8841
|
+
},
|
|
8842
|
+
{
|
|
8843
|
+
"path": "lastFullRefreshAt",
|
|
8844
|
+
"valueType": "number"
|
|
8845
|
+
},
|
|
8846
|
+
{
|
|
8847
|
+
"path": "binary",
|
|
8848
|
+
"valueType": "boolean"
|
|
8849
|
+
}
|
|
8850
|
+
],
|
|
8851
|
+
"binary": [{
|
|
8852
|
+
"path": "on",
|
|
8853
|
+
"valueType": "boolean"
|
|
8854
|
+
}],
|
|
8855
|
+
"brightness": [{
|
|
8856
|
+
"path": "percentage",
|
|
8857
|
+
"valueType": "number"
|
|
8858
|
+
}],
|
|
8859
|
+
"broker": [{
|
|
8860
|
+
"path": "brokerCount",
|
|
8861
|
+
"valueType": "number"
|
|
8862
|
+
}, {
|
|
8863
|
+
"path": "connectedCount",
|
|
8864
|
+
"valueType": "number"
|
|
8865
|
+
}],
|
|
8866
|
+
"camera-credentials": [
|
|
8867
|
+
{
|
|
8868
|
+
"path": "host",
|
|
8869
|
+
"valueType": "string"
|
|
8870
|
+
},
|
|
8871
|
+
{
|
|
8872
|
+
"path": "port",
|
|
8873
|
+
"valueType": "number"
|
|
8874
|
+
},
|
|
8875
|
+
{
|
|
8876
|
+
"path": "onvifPort",
|
|
8877
|
+
"valueType": "number"
|
|
8878
|
+
},
|
|
8879
|
+
{
|
|
8880
|
+
"path": "rtspPort",
|
|
8881
|
+
"valueType": "number"
|
|
8882
|
+
},
|
|
8883
|
+
{
|
|
8884
|
+
"path": "https",
|
|
8885
|
+
"valueType": "boolean"
|
|
8886
|
+
},
|
|
8887
|
+
{
|
|
8888
|
+
"path": "hasUsername",
|
|
8889
|
+
"valueType": "boolean"
|
|
8890
|
+
},
|
|
8891
|
+
{
|
|
8892
|
+
"path": "hasPassword",
|
|
8893
|
+
"valueType": "boolean"
|
|
8894
|
+
},
|
|
8895
|
+
{
|
|
8896
|
+
"path": "onvifProfile",
|
|
8897
|
+
"valueType": "string"
|
|
8898
|
+
}
|
|
8899
|
+
],
|
|
8900
|
+
"camera-streams": [
|
|
8901
|
+
{
|
|
8902
|
+
"path": "online",
|
|
8903
|
+
"valueType": "boolean"
|
|
8904
|
+
},
|
|
8905
|
+
{
|
|
8906
|
+
"path": "slotStatuses.high",
|
|
8907
|
+
"valueType": "enum",
|
|
8908
|
+
"enumValues": [
|
|
8909
|
+
"unassigned",
|
|
8910
|
+
"idle",
|
|
8911
|
+
"connecting",
|
|
8912
|
+
"streaming",
|
|
8913
|
+
"error"
|
|
8914
|
+
]
|
|
8915
|
+
},
|
|
8916
|
+
{
|
|
8917
|
+
"path": "slotStatuses.mid",
|
|
8918
|
+
"valueType": "enum",
|
|
8919
|
+
"enumValues": [
|
|
8920
|
+
"unassigned",
|
|
8921
|
+
"idle",
|
|
8922
|
+
"connecting",
|
|
8923
|
+
"streaming",
|
|
8924
|
+
"error"
|
|
8925
|
+
]
|
|
8926
|
+
},
|
|
8927
|
+
{
|
|
8928
|
+
"path": "slotStatuses.low",
|
|
8929
|
+
"valueType": "enum",
|
|
8930
|
+
"enumValues": [
|
|
8931
|
+
"unassigned",
|
|
8932
|
+
"idle",
|
|
8933
|
+
"connecting",
|
|
8934
|
+
"streaming",
|
|
8935
|
+
"error"
|
|
8936
|
+
]
|
|
8937
|
+
},
|
|
8938
|
+
{
|
|
8939
|
+
"path": "slotErrors.high",
|
|
8940
|
+
"valueType": "string"
|
|
8941
|
+
},
|
|
8942
|
+
{
|
|
8943
|
+
"path": "slotErrors.mid",
|
|
8944
|
+
"valueType": "string"
|
|
8945
|
+
},
|
|
8946
|
+
{
|
|
8947
|
+
"path": "slotErrors.low",
|
|
8948
|
+
"valueType": "string"
|
|
8949
|
+
}
|
|
8950
|
+
],
|
|
8951
|
+
"carbon-monoxide": [{
|
|
8952
|
+
"path": "detected",
|
|
8953
|
+
"valueType": "boolean"
|
|
8954
|
+
}],
|
|
8955
|
+
"climate-control": [
|
|
8956
|
+
{
|
|
8957
|
+
"path": "mode",
|
|
8958
|
+
"valueType": "enum",
|
|
8959
|
+
"enumValues": [
|
|
8960
|
+
"off",
|
|
8961
|
+
"heat",
|
|
8962
|
+
"cool",
|
|
8963
|
+
"auto",
|
|
8964
|
+
"heat_cool",
|
|
8965
|
+
"fan_only",
|
|
8966
|
+
"dry"
|
|
8967
|
+
]
|
|
8968
|
+
},
|
|
8969
|
+
{
|
|
8970
|
+
"path": "fanMode",
|
|
8971
|
+
"valueType": "string"
|
|
8972
|
+
},
|
|
8973
|
+
{
|
|
8974
|
+
"path": "preset",
|
|
8975
|
+
"valueType": "string"
|
|
8976
|
+
},
|
|
8977
|
+
{
|
|
8978
|
+
"path": "target",
|
|
8979
|
+
"valueType": "number"
|
|
8980
|
+
},
|
|
8981
|
+
{
|
|
8982
|
+
"path": "targetHigh",
|
|
8983
|
+
"valueType": "number"
|
|
8984
|
+
},
|
|
8985
|
+
{
|
|
8986
|
+
"path": "targetLow",
|
|
8987
|
+
"valueType": "number"
|
|
8988
|
+
},
|
|
8989
|
+
{
|
|
8990
|
+
"path": "targetHumidity",
|
|
8991
|
+
"valueType": "number"
|
|
8992
|
+
},
|
|
8993
|
+
{
|
|
8994
|
+
"path": "currentTemp",
|
|
8995
|
+
"valueType": "number"
|
|
8996
|
+
},
|
|
8997
|
+
{
|
|
8998
|
+
"path": "currentHumidity",
|
|
8999
|
+
"valueType": "number"
|
|
9000
|
+
},
|
|
9001
|
+
{
|
|
9002
|
+
"path": "swingVertical",
|
|
9003
|
+
"valueType": "boolean"
|
|
9004
|
+
},
|
|
9005
|
+
{
|
|
9006
|
+
"path": "swingHorizontal",
|
|
9007
|
+
"valueType": "boolean"
|
|
9008
|
+
},
|
|
9009
|
+
{
|
|
9010
|
+
"path": "minTemp",
|
|
9011
|
+
"valueType": "number"
|
|
9012
|
+
},
|
|
9013
|
+
{
|
|
9014
|
+
"path": "maxTemp",
|
|
9015
|
+
"valueType": "number"
|
|
9016
|
+
},
|
|
9017
|
+
{
|
|
9018
|
+
"path": "tempStep",
|
|
9019
|
+
"valueType": "number"
|
|
9020
|
+
}
|
|
9021
|
+
],
|
|
9022
|
+
"color": [
|
|
9023
|
+
{
|
|
9024
|
+
"path": "mode",
|
|
9025
|
+
"valueType": "enum",
|
|
9026
|
+
"enumValues": [
|
|
9027
|
+
"rgb",
|
|
9028
|
+
"hsv",
|
|
9029
|
+
"mired"
|
|
9030
|
+
]
|
|
9031
|
+
},
|
|
9032
|
+
{
|
|
9033
|
+
"path": "rgb.r",
|
|
9034
|
+
"valueType": "number"
|
|
9035
|
+
},
|
|
9036
|
+
{
|
|
9037
|
+
"path": "rgb.g",
|
|
9038
|
+
"valueType": "number"
|
|
9039
|
+
},
|
|
9040
|
+
{
|
|
9041
|
+
"path": "rgb.b",
|
|
9042
|
+
"valueType": "number"
|
|
9043
|
+
},
|
|
9044
|
+
{
|
|
9045
|
+
"path": "hsv.h",
|
|
9046
|
+
"valueType": "number"
|
|
9047
|
+
},
|
|
9048
|
+
{
|
|
9049
|
+
"path": "hsv.s",
|
|
9050
|
+
"valueType": "number"
|
|
9051
|
+
},
|
|
9052
|
+
{
|
|
9053
|
+
"path": "hsv.v",
|
|
9054
|
+
"valueType": "number"
|
|
9055
|
+
},
|
|
9056
|
+
{
|
|
9057
|
+
"path": "mireds",
|
|
9058
|
+
"valueType": "number"
|
|
9059
|
+
}
|
|
9060
|
+
],
|
|
9061
|
+
"connectivity": [{
|
|
9062
|
+
"path": "connected",
|
|
9063
|
+
"valueType": "boolean"
|
|
9064
|
+
}],
|
|
9065
|
+
"contact": [{
|
|
9066
|
+
"path": "entryOpen",
|
|
9067
|
+
"valueType": "boolean"
|
|
9068
|
+
}],
|
|
9069
|
+
"control": [
|
|
9070
|
+
{
|
|
9071
|
+
"path": "kind",
|
|
9072
|
+
"valueType": "enum",
|
|
9073
|
+
"enumValues": [
|
|
9074
|
+
"numeric",
|
|
9075
|
+
"select",
|
|
9076
|
+
"text",
|
|
9077
|
+
"datetime"
|
|
9078
|
+
]
|
|
9079
|
+
},
|
|
9080
|
+
{
|
|
9081
|
+
"path": "unit",
|
|
9082
|
+
"valueType": "string"
|
|
9083
|
+
},
|
|
9084
|
+
{
|
|
9085
|
+
"path": "min",
|
|
9086
|
+
"valueType": "number"
|
|
9087
|
+
},
|
|
9088
|
+
{
|
|
9089
|
+
"path": "max",
|
|
9090
|
+
"valueType": "number"
|
|
9091
|
+
},
|
|
9092
|
+
{
|
|
9093
|
+
"path": "step",
|
|
9094
|
+
"valueType": "number"
|
|
9095
|
+
},
|
|
9096
|
+
{
|
|
9097
|
+
"path": "precision",
|
|
9098
|
+
"valueType": "number"
|
|
9099
|
+
},
|
|
9100
|
+
{
|
|
9101
|
+
"path": "format",
|
|
9102
|
+
"valueType": "enum",
|
|
9103
|
+
"enumValues": [
|
|
9104
|
+
"date",
|
|
9105
|
+
"time",
|
|
9106
|
+
"datetime"
|
|
9107
|
+
]
|
|
9108
|
+
}
|
|
9109
|
+
],
|
|
9110
|
+
"cover": [
|
|
9111
|
+
{
|
|
9112
|
+
"path": "state",
|
|
9113
|
+
"valueType": "enum",
|
|
9114
|
+
"enumValues": [
|
|
9115
|
+
"open",
|
|
9116
|
+
"opening",
|
|
9117
|
+
"closing",
|
|
9118
|
+
"closed",
|
|
9119
|
+
"stopped"
|
|
9120
|
+
]
|
|
9121
|
+
},
|
|
9122
|
+
{
|
|
9123
|
+
"path": "position",
|
|
9124
|
+
"valueType": "number"
|
|
9125
|
+
},
|
|
9126
|
+
{
|
|
9127
|
+
"path": "tiltPosition",
|
|
9128
|
+
"valueType": "number"
|
|
9129
|
+
}
|
|
9130
|
+
],
|
|
9131
|
+
"day-night": [
|
|
9132
|
+
{
|
|
9133
|
+
"path": "mode",
|
|
9134
|
+
"valueType": "enum",
|
|
9135
|
+
"enumValues": [
|
|
9136
|
+
"auto",
|
|
9137
|
+
"day",
|
|
9138
|
+
"night",
|
|
9139
|
+
"schedule"
|
|
9140
|
+
]
|
|
9141
|
+
},
|
|
9142
|
+
{
|
|
9143
|
+
"path": "sensitivity",
|
|
9144
|
+
"valueType": "number"
|
|
9145
|
+
},
|
|
9146
|
+
{
|
|
9147
|
+
"path": "switchDelaySec",
|
|
9148
|
+
"valueType": "number"
|
|
9149
|
+
}
|
|
9150
|
+
],
|
|
9151
|
+
"device-adoption": [
|
|
9152
|
+
{
|
|
9153
|
+
"path": "lastDiscoveryAt",
|
|
9154
|
+
"valueType": "number"
|
|
9155
|
+
},
|
|
9156
|
+
{
|
|
9157
|
+
"path": "candidateCount",
|
|
9158
|
+
"valueType": "number"
|
|
9159
|
+
},
|
|
9160
|
+
{
|
|
9161
|
+
"path": "adoptedCount",
|
|
9162
|
+
"valueType": "number"
|
|
9163
|
+
},
|
|
9164
|
+
{
|
|
9165
|
+
"path": "lastError",
|
|
9166
|
+
"valueType": "string"
|
|
9167
|
+
}
|
|
9168
|
+
],
|
|
9169
|
+
"device-discovery": [{
|
|
9170
|
+
"path": "lastDiscoveryAt",
|
|
9171
|
+
"valueType": "number"
|
|
9172
|
+
}, {
|
|
9173
|
+
"path": "lastError",
|
|
9174
|
+
"valueType": "string"
|
|
9175
|
+
}],
|
|
9176
|
+
"device-export": [
|
|
9177
|
+
{
|
|
9178
|
+
"path": "linkState",
|
|
9179
|
+
"valueType": "enum",
|
|
9180
|
+
"enumValues": [
|
|
9181
|
+
"unlinked",
|
|
9182
|
+
"linked",
|
|
9183
|
+
"error"
|
|
9184
|
+
]
|
|
9185
|
+
},
|
|
9186
|
+
{
|
|
9187
|
+
"path": "exposedDeviceCount",
|
|
9188
|
+
"valueType": "number"
|
|
9189
|
+
},
|
|
9190
|
+
{
|
|
9191
|
+
"path": "error",
|
|
9192
|
+
"valueType": "string"
|
|
9193
|
+
},
|
|
9194
|
+
{
|
|
9195
|
+
"path": "setup.qr",
|
|
9196
|
+
"valueType": "string"
|
|
9197
|
+
},
|
|
9198
|
+
{
|
|
9199
|
+
"path": "setup.note",
|
|
9200
|
+
"valueType": "string"
|
|
9201
|
+
}
|
|
9202
|
+
],
|
|
9203
|
+
"device-status": [{
|
|
9204
|
+
"path": "online",
|
|
9205
|
+
"valueType": "boolean"
|
|
9206
|
+
}],
|
|
9207
|
+
"dishwasher": [
|
|
9208
|
+
{
|
|
9209
|
+
"path": "availability",
|
|
9210
|
+
"valueType": "enum",
|
|
9211
|
+
"enumValues": [
|
|
9212
|
+
"available",
|
|
9213
|
+
"offline",
|
|
9214
|
+
"description-missing"
|
|
9215
|
+
]
|
|
9216
|
+
},
|
|
9217
|
+
{
|
|
9218
|
+
"path": "state",
|
|
9219
|
+
"valueType": "enum",
|
|
9220
|
+
"enumValues": [
|
|
9221
|
+
"idle",
|
|
9222
|
+
"running",
|
|
9223
|
+
"paused",
|
|
9224
|
+
"finished",
|
|
9225
|
+
"error",
|
|
9226
|
+
"unavailable"
|
|
9227
|
+
]
|
|
9228
|
+
},
|
|
9229
|
+
{
|
|
9230
|
+
"path": "operationState",
|
|
9231
|
+
"valueType": "enum",
|
|
9232
|
+
"enumValues": [
|
|
9233
|
+
"Inactive",
|
|
9234
|
+
"Ready",
|
|
9235
|
+
"DelayedStart",
|
|
9236
|
+
"Run",
|
|
9237
|
+
"Pause",
|
|
9238
|
+
"ActionRequired",
|
|
9239
|
+
"Finished",
|
|
9240
|
+
"Error",
|
|
9241
|
+
"Aborting"
|
|
9242
|
+
]
|
|
9243
|
+
},
|
|
9244
|
+
{
|
|
9245
|
+
"path": "program",
|
|
9246
|
+
"valueType": "string"
|
|
9247
|
+
},
|
|
9248
|
+
{
|
|
9249
|
+
"path": "selectedProgram",
|
|
9250
|
+
"valueType": "string"
|
|
9251
|
+
},
|
|
9252
|
+
{
|
|
9253
|
+
"path": "remainingSeconds",
|
|
9254
|
+
"valueType": "number"
|
|
9255
|
+
},
|
|
9256
|
+
{
|
|
9257
|
+
"path": "delayedStartSeconds",
|
|
9258
|
+
"valueType": "number"
|
|
9259
|
+
},
|
|
9260
|
+
{
|
|
9261
|
+
"path": "progressPercent",
|
|
9262
|
+
"valueType": "number"
|
|
9263
|
+
},
|
|
9264
|
+
{
|
|
9265
|
+
"path": "doorOpen",
|
|
9266
|
+
"valueType": "boolean"
|
|
9267
|
+
},
|
|
9268
|
+
{
|
|
9269
|
+
"path": "doorLocked",
|
|
9270
|
+
"valueType": "boolean"
|
|
9271
|
+
},
|
|
9272
|
+
{
|
|
9273
|
+
"path": "remoteStartAllowed",
|
|
9274
|
+
"valueType": "boolean"
|
|
9275
|
+
},
|
|
9276
|
+
{
|
|
9277
|
+
"path": "remoteControlActive",
|
|
9278
|
+
"valueType": "boolean"
|
|
9279
|
+
},
|
|
9280
|
+
{
|
|
9281
|
+
"path": "localControlActive",
|
|
9282
|
+
"valueType": "boolean"
|
|
9283
|
+
},
|
|
9284
|
+
{
|
|
9285
|
+
"path": "powerOn",
|
|
9286
|
+
"valueType": "boolean"
|
|
9287
|
+
},
|
|
9288
|
+
{
|
|
9289
|
+
"path": "powerState",
|
|
9290
|
+
"valueType": "string"
|
|
9291
|
+
},
|
|
9292
|
+
{
|
|
9293
|
+
"path": "filterCleaningDue",
|
|
9294
|
+
"valueType": "boolean"
|
|
9295
|
+
},
|
|
9296
|
+
{
|
|
9297
|
+
"path": "machineCareDue",
|
|
9298
|
+
"valueType": "boolean"
|
|
9299
|
+
},
|
|
9300
|
+
{
|
|
9301
|
+
"path": "machineCareRemainingRuns",
|
|
9302
|
+
"valueType": "number"
|
|
9303
|
+
},
|
|
9304
|
+
{
|
|
9305
|
+
"path": "halfLoad",
|
|
9306
|
+
"valueType": "boolean"
|
|
9307
|
+
},
|
|
9308
|
+
{
|
|
9309
|
+
"path": "hygienePlus",
|
|
9310
|
+
"valueType": "boolean"
|
|
9311
|
+
},
|
|
9312
|
+
{
|
|
9313
|
+
"path": "extraDry",
|
|
9314
|
+
"valueType": "boolean"
|
|
9315
|
+
},
|
|
9316
|
+
{
|
|
9317
|
+
"path": "intensiveZone",
|
|
9318
|
+
"valueType": "boolean"
|
|
9319
|
+
},
|
|
9320
|
+
{
|
|
9321
|
+
"path": "varioSpeedPlus",
|
|
9322
|
+
"valueType": "boolean"
|
|
9323
|
+
},
|
|
9324
|
+
{
|
|
9325
|
+
"path": "childLock",
|
|
9326
|
+
"valueType": "boolean"
|
|
9327
|
+
},
|
|
9328
|
+
{
|
|
9329
|
+
"path": "errorCode",
|
|
9330
|
+
"valueType": "number"
|
|
9331
|
+
},
|
|
9332
|
+
{
|
|
9333
|
+
"path": "errorLabel",
|
|
9334
|
+
"valueType": "string"
|
|
9335
|
+
}
|
|
9336
|
+
],
|
|
9337
|
+
"doorbell": [{
|
|
9338
|
+
"path": "lastPressedAt",
|
|
9339
|
+
"valueType": "number"
|
|
9340
|
+
}, {
|
|
9341
|
+
"path": "pressCountSinceStart",
|
|
9342
|
+
"valueType": "number"
|
|
9343
|
+
}],
|
|
9344
|
+
"enum-sensor": [{
|
|
9345
|
+
"path": "value",
|
|
9346
|
+
"valueType": "string"
|
|
9347
|
+
}, {
|
|
9348
|
+
"path": "format",
|
|
9349
|
+
"valueType": "enum",
|
|
9350
|
+
"enumValues": [
|
|
9351
|
+
"date",
|
|
9352
|
+
"time",
|
|
9353
|
+
"datetime"
|
|
9354
|
+
]
|
|
9355
|
+
}],
|
|
9356
|
+
"event-emitter": [
|
|
9357
|
+
{
|
|
9358
|
+
"path": "lastEvent.deviceId",
|
|
9359
|
+
"valueType": "number"
|
|
9360
|
+
},
|
|
9361
|
+
{
|
|
9362
|
+
"path": "lastEvent.eventType",
|
|
9363
|
+
"valueType": "string"
|
|
9364
|
+
},
|
|
9365
|
+
{
|
|
9366
|
+
"path": "lastEvent.timestamp",
|
|
9367
|
+
"valueType": "number"
|
|
9368
|
+
},
|
|
9369
|
+
{
|
|
9370
|
+
"path": "lastEvent.seq",
|
|
9371
|
+
"valueType": "number"
|
|
9372
|
+
},
|
|
9373
|
+
{
|
|
9374
|
+
"path": "eventCountSinceStart",
|
|
9375
|
+
"valueType": "number"
|
|
9376
|
+
}
|
|
9377
|
+
],
|
|
9378
|
+
"fan-control": [
|
|
9379
|
+
{
|
|
9380
|
+
"path": "percentage",
|
|
9381
|
+
"valueType": "number"
|
|
9382
|
+
},
|
|
9383
|
+
{
|
|
9384
|
+
"path": "percentageStep",
|
|
9385
|
+
"valueType": "number"
|
|
9386
|
+
},
|
|
9387
|
+
{
|
|
9388
|
+
"path": "preset",
|
|
9389
|
+
"valueType": "string"
|
|
9390
|
+
},
|
|
9391
|
+
{
|
|
9392
|
+
"path": "direction",
|
|
9393
|
+
"valueType": "enum",
|
|
9394
|
+
"enumValues": ["forward", "reverse"]
|
|
9395
|
+
},
|
|
9396
|
+
{
|
|
9397
|
+
"path": "oscillating",
|
|
9398
|
+
"valueType": "boolean"
|
|
9399
|
+
}
|
|
9400
|
+
],
|
|
9401
|
+
"feature-probe": [
|
|
9402
|
+
{
|
|
9403
|
+
"path": "deviceType",
|
|
9404
|
+
"valueType": "string"
|
|
9405
|
+
},
|
|
9406
|
+
{
|
|
9407
|
+
"path": "model",
|
|
9408
|
+
"valueType": "string"
|
|
9409
|
+
},
|
|
9410
|
+
{
|
|
9411
|
+
"path": "channelCount",
|
|
9412
|
+
"valueType": "number"
|
|
9413
|
+
},
|
|
9414
|
+
{
|
|
9415
|
+
"path": "lastProbedAt",
|
|
9416
|
+
"valueType": "number"
|
|
9417
|
+
}
|
|
9418
|
+
],
|
|
9419
|
+
"flood": [{
|
|
9420
|
+
"path": "flooded",
|
|
9421
|
+
"valueType": "boolean"
|
|
9422
|
+
}],
|
|
9423
|
+
"gas": [{
|
|
9424
|
+
"path": "detected",
|
|
9425
|
+
"valueType": "boolean"
|
|
9426
|
+
}],
|
|
9427
|
+
"heating-valve": [{
|
|
9428
|
+
"path": "position",
|
|
9429
|
+
"valueType": "number"
|
|
9430
|
+
}],
|
|
9431
|
+
"humidifier": [
|
|
9432
|
+
{
|
|
9433
|
+
"path": "on",
|
|
9434
|
+
"valueType": "boolean"
|
|
9435
|
+
},
|
|
9436
|
+
{
|
|
9437
|
+
"path": "currentHumidity",
|
|
9438
|
+
"valueType": "number"
|
|
9439
|
+
},
|
|
9440
|
+
{
|
|
9441
|
+
"path": "targetHumidity",
|
|
9442
|
+
"valueType": "number"
|
|
9443
|
+
},
|
|
9444
|
+
{
|
|
9445
|
+
"path": "mode",
|
|
9446
|
+
"valueType": "string"
|
|
9447
|
+
},
|
|
9448
|
+
{
|
|
9449
|
+
"path": "action",
|
|
9450
|
+
"valueType": "string"
|
|
9451
|
+
},
|
|
9452
|
+
{
|
|
9453
|
+
"path": "minHumidity",
|
|
9454
|
+
"valueType": "number"
|
|
9455
|
+
},
|
|
9456
|
+
{
|
|
9457
|
+
"path": "maxHumidity",
|
|
9458
|
+
"valueType": "number"
|
|
9459
|
+
}
|
|
9460
|
+
],
|
|
9461
|
+
"humidity-sensor": [
|
|
9462
|
+
{
|
|
9463
|
+
"path": "percent",
|
|
9464
|
+
"valueType": "number"
|
|
9465
|
+
},
|
|
9466
|
+
{
|
|
9467
|
+
"path": "unit",
|
|
9468
|
+
"valueType": "string"
|
|
9469
|
+
},
|
|
9470
|
+
{
|
|
9471
|
+
"path": "precision",
|
|
9472
|
+
"valueType": "number"
|
|
9473
|
+
}
|
|
9474
|
+
],
|
|
9475
|
+
"image": [{
|
|
9476
|
+
"path": "url",
|
|
9477
|
+
"valueType": "string"
|
|
9478
|
+
}, {
|
|
9479
|
+
"path": "lastUpdated",
|
|
9480
|
+
"valueType": "number"
|
|
9481
|
+
}],
|
|
9482
|
+
"image-settings": [
|
|
9483
|
+
{
|
|
9484
|
+
"path": "brightness",
|
|
9485
|
+
"valueType": "number"
|
|
9486
|
+
},
|
|
9487
|
+
{
|
|
9488
|
+
"path": "contrast",
|
|
9489
|
+
"valueType": "number"
|
|
9490
|
+
},
|
|
9491
|
+
{
|
|
9492
|
+
"path": "saturation",
|
|
9493
|
+
"valueType": "number"
|
|
9494
|
+
},
|
|
9495
|
+
{
|
|
9496
|
+
"path": "sharpness",
|
|
9497
|
+
"valueType": "number"
|
|
9498
|
+
},
|
|
9499
|
+
{
|
|
9500
|
+
"path": "mirror",
|
|
9501
|
+
"valueType": "boolean"
|
|
9502
|
+
},
|
|
9503
|
+
{
|
|
9504
|
+
"path": "flip",
|
|
9505
|
+
"valueType": "boolean"
|
|
9506
|
+
},
|
|
9507
|
+
{
|
|
9508
|
+
"path": "rotate",
|
|
9509
|
+
"valueType": "enum",
|
|
9510
|
+
"enumValues": [
|
|
9511
|
+
"0",
|
|
9512
|
+
"90",
|
|
9513
|
+
"180",
|
|
9514
|
+
"270"
|
|
9515
|
+
]
|
|
9516
|
+
},
|
|
9517
|
+
{
|
|
9518
|
+
"path": "whiteBalance",
|
|
9519
|
+
"valueType": "enum",
|
|
9520
|
+
"enumValues": ["auto", "manual"]
|
|
9521
|
+
},
|
|
9522
|
+
{
|
|
9523
|
+
"path": "warmth",
|
|
9524
|
+
"valueType": "number"
|
|
9525
|
+
},
|
|
9526
|
+
{
|
|
9527
|
+
"path": "exposureMode",
|
|
9528
|
+
"valueType": "enum",
|
|
9529
|
+
"enumValues": ["auto", "manual"]
|
|
9530
|
+
},
|
|
9531
|
+
{
|
|
9532
|
+
"path": "backlightMode",
|
|
9533
|
+
"valueType": "enum",
|
|
9534
|
+
"enumValues": [
|
|
9535
|
+
"off",
|
|
9536
|
+
"blc",
|
|
9537
|
+
"wdr",
|
|
9538
|
+
"hlc"
|
|
9539
|
+
]
|
|
9540
|
+
}
|
|
9541
|
+
],
|
|
9542
|
+
"intercom": [
|
|
9543
|
+
{
|
|
9544
|
+
"path": "talking",
|
|
9545
|
+
"valueType": "boolean"
|
|
9546
|
+
},
|
|
9547
|
+
{
|
|
9548
|
+
"path": "lastSessionAt",
|
|
9549
|
+
"valueType": "number"
|
|
9550
|
+
},
|
|
9551
|
+
{
|
|
9552
|
+
"path": "ability.sampleRate",
|
|
9553
|
+
"valueType": "number"
|
|
9554
|
+
},
|
|
9555
|
+
{
|
|
9556
|
+
"path": "ability.duplex",
|
|
9557
|
+
"valueType": "enum",
|
|
9558
|
+
"enumValues": ["half", "full"]
|
|
9559
|
+
},
|
|
9560
|
+
{
|
|
9561
|
+
"path": "ability.maxBacklogMs",
|
|
9562
|
+
"valueType": "number"
|
|
9563
|
+
}
|
|
9564
|
+
],
|
|
9565
|
+
"lawn-mower-control": [
|
|
9566
|
+
{
|
|
9567
|
+
"path": "activity",
|
|
9568
|
+
"valueType": "enum",
|
|
9569
|
+
"enumValues": [
|
|
9570
|
+
"idle",
|
|
9571
|
+
"mowing",
|
|
9572
|
+
"paused",
|
|
9573
|
+
"docked",
|
|
9574
|
+
"error"
|
|
9575
|
+
]
|
|
9576
|
+
},
|
|
9577
|
+
{
|
|
9578
|
+
"path": "batteryLevel",
|
|
9579
|
+
"valueType": "number"
|
|
9580
|
+
},
|
|
9581
|
+
{
|
|
9582
|
+
"path": "progressPercent",
|
|
9583
|
+
"valueType": "number"
|
|
9584
|
+
},
|
|
9585
|
+
{
|
|
9586
|
+
"path": "currentCode",
|
|
9587
|
+
"valueType": "number"
|
|
9588
|
+
},
|
|
9589
|
+
{
|
|
9590
|
+
"path": "currentCodeLabel",
|
|
9591
|
+
"valueType": "string"
|
|
9592
|
+
},
|
|
9593
|
+
{
|
|
9594
|
+
"path": "severity",
|
|
9595
|
+
"valueType": "enum",
|
|
9596
|
+
"enumValues": [
|
|
9597
|
+
"info",
|
|
9598
|
+
"warning",
|
|
9599
|
+
"error"
|
|
9600
|
+
]
|
|
9601
|
+
}
|
|
9602
|
+
],
|
|
9603
|
+
"lock-control": [{
|
|
9604
|
+
"path": "state",
|
|
9605
|
+
"valueType": "enum",
|
|
9606
|
+
"enumValues": [
|
|
9607
|
+
"locked",
|
|
9608
|
+
"unlocked",
|
|
9609
|
+
"locking",
|
|
9610
|
+
"unlocking",
|
|
9611
|
+
"jammed"
|
|
9612
|
+
]
|
|
9613
|
+
}],
|
|
9614
|
+
"media-player": [
|
|
9615
|
+
{
|
|
9616
|
+
"path": "state",
|
|
9617
|
+
"valueType": "enum",
|
|
9618
|
+
"enumValues": [
|
|
9619
|
+
"off",
|
|
9620
|
+
"on",
|
|
9621
|
+
"idle",
|
|
9622
|
+
"playing",
|
|
9623
|
+
"paused",
|
|
9624
|
+
"buffering",
|
|
9625
|
+
"standby"
|
|
9626
|
+
]
|
|
9627
|
+
},
|
|
9628
|
+
{
|
|
9629
|
+
"path": "volumeLevel",
|
|
9630
|
+
"valueType": "number"
|
|
9631
|
+
},
|
|
9632
|
+
{
|
|
9633
|
+
"path": "isMuted",
|
|
9634
|
+
"valueType": "boolean"
|
|
9635
|
+
},
|
|
9636
|
+
{
|
|
9637
|
+
"path": "source",
|
|
9638
|
+
"valueType": "string"
|
|
9639
|
+
},
|
|
9640
|
+
{
|
|
9641
|
+
"path": "currentMedia.type",
|
|
9642
|
+
"valueType": "string"
|
|
9643
|
+
},
|
|
9644
|
+
{
|
|
9645
|
+
"path": "currentMedia.title",
|
|
9646
|
+
"valueType": "string"
|
|
9647
|
+
},
|
|
9648
|
+
{
|
|
9649
|
+
"path": "currentMedia.artist",
|
|
9650
|
+
"valueType": "string"
|
|
9651
|
+
},
|
|
9652
|
+
{
|
|
9653
|
+
"path": "currentMedia.album",
|
|
9654
|
+
"valueType": "string"
|
|
9655
|
+
},
|
|
9656
|
+
{
|
|
9657
|
+
"path": "currentMedia.imageUrl",
|
|
9658
|
+
"valueType": "string"
|
|
9659
|
+
},
|
|
9660
|
+
{
|
|
9661
|
+
"path": "positionMs",
|
|
9662
|
+
"valueType": "number"
|
|
9663
|
+
},
|
|
9664
|
+
{
|
|
9665
|
+
"path": "durationMs",
|
|
9666
|
+
"valueType": "number"
|
|
9667
|
+
},
|
|
9668
|
+
{
|
|
9669
|
+
"path": "shuffle",
|
|
9670
|
+
"valueType": "boolean"
|
|
9671
|
+
},
|
|
9672
|
+
{
|
|
9673
|
+
"path": "repeat",
|
|
9674
|
+
"valueType": "enum",
|
|
9675
|
+
"enumValues": [
|
|
9676
|
+
"off",
|
|
9677
|
+
"all",
|
|
9678
|
+
"one"
|
|
9679
|
+
]
|
|
9680
|
+
}
|
|
9681
|
+
],
|
|
9682
|
+
"motion": [
|
|
9683
|
+
{
|
|
9684
|
+
"path": "detected",
|
|
9685
|
+
"valueType": "boolean"
|
|
9686
|
+
},
|
|
9687
|
+
{
|
|
9688
|
+
"path": "lastDetectedAt",
|
|
9689
|
+
"valueType": "number"
|
|
9690
|
+
},
|
|
9691
|
+
{
|
|
9692
|
+
"path": "autoClearAfterMs",
|
|
9693
|
+
"valueType": "number"
|
|
9694
|
+
}
|
|
9695
|
+
],
|
|
9696
|
+
"motion-trigger": [{
|
|
9697
|
+
"path": "enabled",
|
|
9698
|
+
"valueType": "boolean"
|
|
9699
|
+
}],
|
|
9700
|
+
"motion-zones": [{
|
|
9701
|
+
"path": "enabled",
|
|
9702
|
+
"valueType": "boolean"
|
|
9703
|
+
}, {
|
|
9704
|
+
"path": "sensitivity",
|
|
9705
|
+
"valueType": "number"
|
|
9706
|
+
}],
|
|
9707
|
+
"mqtt-broker": [{
|
|
9708
|
+
"path": "brokerCount",
|
|
9709
|
+
"valueType": "number"
|
|
9710
|
+
}, {
|
|
9711
|
+
"path": "embeddedRunning",
|
|
9712
|
+
"valueType": "boolean"
|
|
9713
|
+
}],
|
|
9714
|
+
"native-object-detection": [{
|
|
9715
|
+
"path": "enabled",
|
|
9716
|
+
"valueType": "boolean"
|
|
9717
|
+
}],
|
|
9718
|
+
"navigation": [
|
|
9719
|
+
{
|
|
9720
|
+
"path": "mode",
|
|
9721
|
+
"valueType": "enum",
|
|
9722
|
+
"enumValues": [
|
|
9723
|
+
"idle",
|
|
9724
|
+
"cleaning",
|
|
9725
|
+
"spot",
|
|
9726
|
+
"following",
|
|
9727
|
+
"goto",
|
|
9728
|
+
"returning",
|
|
9729
|
+
"paused",
|
|
9730
|
+
"unknown"
|
|
9731
|
+
]
|
|
9732
|
+
},
|
|
9733
|
+
{
|
|
9734
|
+
"path": "following",
|
|
9735
|
+
"valueType": "boolean"
|
|
9736
|
+
},
|
|
9737
|
+
{
|
|
9738
|
+
"path": "flash",
|
|
9739
|
+
"valueType": "boolean"
|
|
9740
|
+
},
|
|
9741
|
+
{
|
|
9742
|
+
"path": "lightMode",
|
|
9743
|
+
"valueType": "enum",
|
|
9744
|
+
"enumValues": ["auto", "manual"]
|
|
9745
|
+
},
|
|
9746
|
+
{
|
|
9747
|
+
"path": "lightLevel",
|
|
9748
|
+
"valueType": "number"
|
|
9749
|
+
}
|
|
9750
|
+
],
|
|
9751
|
+
"network-link": [
|
|
9752
|
+
{
|
|
9753
|
+
"path": "type",
|
|
9754
|
+
"valueType": "enum",
|
|
9755
|
+
"enumValues": [
|
|
9756
|
+
"wifi",
|
|
9757
|
+
"ethernet",
|
|
9758
|
+
"cellular",
|
|
9759
|
+
"unknown"
|
|
9760
|
+
]
|
|
9761
|
+
},
|
|
9762
|
+
{
|
|
9763
|
+
"path": "signalPercent",
|
|
9764
|
+
"valueType": "number"
|
|
9765
|
+
},
|
|
9766
|
+
{
|
|
9767
|
+
"path": "rssiDbm",
|
|
9768
|
+
"valueType": "number"
|
|
9769
|
+
},
|
|
9770
|
+
{
|
|
9771
|
+
"path": "ssid",
|
|
9772
|
+
"valueType": "string"
|
|
9773
|
+
},
|
|
9774
|
+
{
|
|
9775
|
+
"path": "lastUpdated",
|
|
9776
|
+
"valueType": "number"
|
|
9777
|
+
}
|
|
9778
|
+
],
|
|
9779
|
+
"notifier": [
|
|
9780
|
+
{
|
|
9781
|
+
"path": "lastSentAt",
|
|
9782
|
+
"valueType": "number"
|
|
9783
|
+
},
|
|
9784
|
+
{
|
|
9785
|
+
"path": "lastError",
|
|
9786
|
+
"valueType": "string"
|
|
9787
|
+
},
|
|
9788
|
+
{
|
|
9789
|
+
"path": "queueDepth",
|
|
9790
|
+
"valueType": "number"
|
|
9791
|
+
},
|
|
9792
|
+
{
|
|
9793
|
+
"path": "supports.image",
|
|
9794
|
+
"valueType": "boolean"
|
|
9795
|
+
},
|
|
9796
|
+
{
|
|
9797
|
+
"path": "supports.priority",
|
|
9798
|
+
"valueType": "boolean"
|
|
9799
|
+
},
|
|
9800
|
+
{
|
|
9801
|
+
"path": "supports.data",
|
|
9802
|
+
"valueType": "boolean"
|
|
9803
|
+
},
|
|
9804
|
+
{
|
|
9805
|
+
"path": "supports.actions",
|
|
9806
|
+
"valueType": "boolean"
|
|
9807
|
+
},
|
|
9808
|
+
{
|
|
9809
|
+
"path": "supports.recipients",
|
|
9810
|
+
"valueType": "boolean"
|
|
9811
|
+
}
|
|
9812
|
+
],
|
|
9813
|
+
"numeric-sensor": [
|
|
9814
|
+
{
|
|
9815
|
+
"path": "value",
|
|
9816
|
+
"valueType": "number"
|
|
9817
|
+
},
|
|
9818
|
+
{
|
|
9819
|
+
"path": "unit",
|
|
9820
|
+
"valueType": "string"
|
|
9821
|
+
},
|
|
9822
|
+
{
|
|
9823
|
+
"path": "precision",
|
|
9824
|
+
"valueType": "number"
|
|
9825
|
+
}
|
|
9826
|
+
],
|
|
9827
|
+
"pet-feeder": [
|
|
9828
|
+
{
|
|
9829
|
+
"path": "foodLevel",
|
|
9830
|
+
"valueType": "number"
|
|
9831
|
+
},
|
|
9832
|
+
{
|
|
9833
|
+
"path": "food1",
|
|
9834
|
+
"valueType": "number"
|
|
9835
|
+
},
|
|
9836
|
+
{
|
|
9837
|
+
"path": "food2",
|
|
9838
|
+
"valueType": "number"
|
|
9839
|
+
},
|
|
9840
|
+
{
|
|
9841
|
+
"path": "lowFood",
|
|
9842
|
+
"valueType": "boolean"
|
|
9843
|
+
},
|
|
9844
|
+
{
|
|
9845
|
+
"path": "batteryPower",
|
|
9846
|
+
"valueType": "number"
|
|
9847
|
+
},
|
|
9848
|
+
{
|
|
9849
|
+
"path": "desiccantLeftDays",
|
|
9850
|
+
"valueType": "number"
|
|
9851
|
+
},
|
|
9852
|
+
{
|
|
9853
|
+
"path": "feeding",
|
|
9854
|
+
"valueType": "boolean"
|
|
9855
|
+
},
|
|
9856
|
+
{
|
|
9857
|
+
"path": "status",
|
|
9858
|
+
"valueType": "enum",
|
|
9859
|
+
"enumValues": [
|
|
9860
|
+
"normal",
|
|
9861
|
+
"offline",
|
|
9862
|
+
"on_batteries"
|
|
9863
|
+
]
|
|
9864
|
+
},
|
|
9865
|
+
{
|
|
9866
|
+
"path": "error",
|
|
9867
|
+
"valueType": "string"
|
|
9868
|
+
},
|
|
9869
|
+
{
|
|
9870
|
+
"path": "errorCode",
|
|
9871
|
+
"valueType": "number"
|
|
9872
|
+
},
|
|
9873
|
+
{
|
|
9874
|
+
"path": "isDualHopper",
|
|
9875
|
+
"valueType": "boolean"
|
|
9876
|
+
},
|
|
9877
|
+
{
|
|
9878
|
+
"path": "childLock",
|
|
9879
|
+
"valueType": "boolean"
|
|
9880
|
+
},
|
|
9881
|
+
{
|
|
9882
|
+
"path": "indicatorLight",
|
|
9883
|
+
"valueType": "boolean"
|
|
9884
|
+
},
|
|
9885
|
+
{
|
|
9886
|
+
"path": "feedSound",
|
|
9887
|
+
"valueType": "boolean"
|
|
9888
|
+
},
|
|
9889
|
+
{
|
|
9890
|
+
"path": "volume",
|
|
9891
|
+
"valueType": "number"
|
|
9892
|
+
}
|
|
9893
|
+
],
|
|
9894
|
+
"power-meter": [
|
|
9895
|
+
{
|
|
9896
|
+
"path": "watts",
|
|
9897
|
+
"valueType": "number"
|
|
9898
|
+
},
|
|
9899
|
+
{
|
|
9900
|
+
"path": "kwhTotal",
|
|
9901
|
+
"valueType": "number"
|
|
9902
|
+
},
|
|
9903
|
+
{
|
|
9904
|
+
"path": "volts",
|
|
9905
|
+
"valueType": "number"
|
|
9906
|
+
},
|
|
9907
|
+
{
|
|
9908
|
+
"path": "amps",
|
|
9909
|
+
"valueType": "number"
|
|
9910
|
+
},
|
|
9911
|
+
{
|
|
9912
|
+
"path": "va",
|
|
9913
|
+
"valueType": "number"
|
|
9914
|
+
},
|
|
9915
|
+
{
|
|
9916
|
+
"path": "powerFactor",
|
|
9917
|
+
"valueType": "number"
|
|
9918
|
+
},
|
|
9919
|
+
{
|
|
9920
|
+
"path": "unit",
|
|
9921
|
+
"valueType": "string"
|
|
9922
|
+
},
|
|
9923
|
+
{
|
|
9924
|
+
"path": "precision",
|
|
9925
|
+
"valueType": "number"
|
|
9926
|
+
}
|
|
9927
|
+
],
|
|
9928
|
+
"presence": [
|
|
9929
|
+
{
|
|
9930
|
+
"path": "state",
|
|
9931
|
+
"valueType": "string"
|
|
9932
|
+
},
|
|
9933
|
+
{
|
|
9934
|
+
"path": "location",
|
|
9935
|
+
"valueType": "string"
|
|
9936
|
+
},
|
|
9937
|
+
{
|
|
9938
|
+
"path": "gps.latitude",
|
|
9939
|
+
"valueType": "number"
|
|
9940
|
+
},
|
|
9941
|
+
{
|
|
9942
|
+
"path": "gps.longitude",
|
|
9943
|
+
"valueType": "number"
|
|
9944
|
+
},
|
|
9945
|
+
{
|
|
9946
|
+
"path": "gps.accuracyMeters",
|
|
9947
|
+
"valueType": "number"
|
|
9948
|
+
},
|
|
9949
|
+
{
|
|
9950
|
+
"path": "batteryPercent",
|
|
9951
|
+
"valueType": "number"
|
|
9952
|
+
}
|
|
9953
|
+
],
|
|
9954
|
+
"pressure-sensor": [
|
|
9955
|
+
{
|
|
9956
|
+
"path": "hpa",
|
|
9957
|
+
"valueType": "number"
|
|
9958
|
+
},
|
|
9959
|
+
{
|
|
9960
|
+
"path": "unit",
|
|
9961
|
+
"valueType": "string"
|
|
9962
|
+
},
|
|
9963
|
+
{
|
|
9964
|
+
"path": "precision",
|
|
9965
|
+
"valueType": "number"
|
|
9966
|
+
}
|
|
9967
|
+
],
|
|
9968
|
+
"privacy-mask": [{
|
|
9969
|
+
"path": "enabled",
|
|
9970
|
+
"valueType": "boolean"
|
|
9971
|
+
}, {
|
|
9972
|
+
"path": "audioEnabled",
|
|
9973
|
+
"valueType": "boolean"
|
|
9974
|
+
}],
|
|
9975
|
+
"ptz": [
|
|
9976
|
+
{
|
|
9977
|
+
"path": "pan",
|
|
9978
|
+
"valueType": "number"
|
|
9979
|
+
},
|
|
9980
|
+
{
|
|
9981
|
+
"path": "tilt",
|
|
9982
|
+
"valueType": "number"
|
|
9983
|
+
},
|
|
9984
|
+
{
|
|
9985
|
+
"path": "zoom",
|
|
9986
|
+
"valueType": "number"
|
|
9987
|
+
},
|
|
9988
|
+
{
|
|
9989
|
+
"path": "autofocus",
|
|
9990
|
+
"valueType": "boolean"
|
|
9991
|
+
}
|
|
9992
|
+
],
|
|
9993
|
+
"ptz-autotrack": [
|
|
9994
|
+
{
|
|
9995
|
+
"path": "enabled",
|
|
9996
|
+
"valueType": "boolean"
|
|
9997
|
+
},
|
|
9998
|
+
{
|
|
9999
|
+
"path": "currentSettings.targetType",
|
|
10000
|
+
"valueType": "string"
|
|
10001
|
+
},
|
|
10002
|
+
{
|
|
10003
|
+
"path": "currentSettings.stopDelaySeconds",
|
|
10004
|
+
"valueType": "number"
|
|
10005
|
+
},
|
|
10006
|
+
{
|
|
10007
|
+
"path": "currentSettings.disappearDelaySeconds",
|
|
10008
|
+
"valueType": "number"
|
|
10009
|
+
}
|
|
10010
|
+
],
|
|
10011
|
+
"recording-archive": [
|
|
10012
|
+
{
|
|
10013
|
+
"path": "deviceId",
|
|
10014
|
+
"valueType": "number"
|
|
10015
|
+
},
|
|
10016
|
+
{
|
|
10017
|
+
"path": "enabled",
|
|
10018
|
+
"valueType": "boolean"
|
|
10019
|
+
},
|
|
10020
|
+
{
|
|
10021
|
+
"path": "activeMode",
|
|
10022
|
+
"valueType": "enum",
|
|
10023
|
+
"enumValues": [
|
|
10024
|
+
"off",
|
|
10025
|
+
"events",
|
|
10026
|
+
"continuous",
|
|
10027
|
+
"on-device-decision"
|
|
10028
|
+
]
|
|
10029
|
+
},
|
|
10030
|
+
{
|
|
10031
|
+
"path": "nodeId",
|
|
10032
|
+
"valueType": "string"
|
|
10033
|
+
},
|
|
10034
|
+
{
|
|
10035
|
+
"path": "storageBytes",
|
|
10036
|
+
"valueType": "number"
|
|
10037
|
+
}
|
|
10038
|
+
],
|
|
10039
|
+
"recording-onboard": [
|
|
10040
|
+
{
|
|
10041
|
+
"path": "primaryTrackId",
|
|
10042
|
+
"valueType": "string"
|
|
10043
|
+
},
|
|
10044
|
+
{
|
|
10045
|
+
"path": "enabled",
|
|
10046
|
+
"valueType": "boolean"
|
|
10047
|
+
},
|
|
10048
|
+
{
|
|
10049
|
+
"path": "overwriteWhenFull",
|
|
10050
|
+
"valueType": "boolean"
|
|
10051
|
+
},
|
|
10052
|
+
{
|
|
10053
|
+
"path": "preRecordSec",
|
|
10054
|
+
"valueType": "number"
|
|
10055
|
+
},
|
|
10056
|
+
{
|
|
10057
|
+
"path": "postRecordSec",
|
|
10058
|
+
"valueType": "number"
|
|
10059
|
+
},
|
|
10060
|
+
{
|
|
10061
|
+
"path": "segmentMinutes",
|
|
10062
|
+
"valueType": "number"
|
|
10063
|
+
},
|
|
10064
|
+
{
|
|
10065
|
+
"path": "unreadableWindows",
|
|
10066
|
+
"valueType": "number"
|
|
10067
|
+
},
|
|
10068
|
+
{
|
|
10069
|
+
"path": "recordingToNowhere",
|
|
10070
|
+
"valueType": "boolean"
|
|
10071
|
+
}
|
|
10072
|
+
],
|
|
10073
|
+
"recording-signal": [{
|
|
10074
|
+
"path": "active",
|
|
10075
|
+
"valueType": "boolean"
|
|
10076
|
+
}, {
|
|
10077
|
+
"path": "reason",
|
|
10078
|
+
"valueType": "string"
|
|
10079
|
+
}],
|
|
10080
|
+
"running-state": [
|
|
10081
|
+
{
|
|
10082
|
+
"path": "running",
|
|
10083
|
+
"valueType": "boolean"
|
|
10084
|
+
},
|
|
10085
|
+
{
|
|
10086
|
+
"path": "since",
|
|
10087
|
+
"valueType": "number"
|
|
10088
|
+
},
|
|
10089
|
+
{
|
|
10090
|
+
"path": "source",
|
|
10091
|
+
"valueType": "enum",
|
|
10092
|
+
"enumValues": ["native", "assigned"]
|
|
10093
|
+
},
|
|
10094
|
+
{
|
|
10095
|
+
"path": "phase",
|
|
10096
|
+
"valueType": "string"
|
|
10097
|
+
}
|
|
10098
|
+
],
|
|
10099
|
+
"script-runner": [
|
|
10100
|
+
{
|
|
10101
|
+
"path": "isRunning",
|
|
10102
|
+
"valueType": "boolean"
|
|
10103
|
+
},
|
|
10104
|
+
{
|
|
10105
|
+
"path": "lastRunAt",
|
|
10106
|
+
"valueType": "number"
|
|
10107
|
+
},
|
|
10108
|
+
{
|
|
10109
|
+
"path": "lastRunSuccess",
|
|
10110
|
+
"valueType": "boolean"
|
|
10111
|
+
},
|
|
10112
|
+
{
|
|
10113
|
+
"path": "lastError",
|
|
10114
|
+
"valueType": "string"
|
|
10115
|
+
}
|
|
10116
|
+
],
|
|
10117
|
+
"smoke": [{
|
|
10118
|
+
"path": "detected",
|
|
10119
|
+
"valueType": "boolean"
|
|
10120
|
+
}],
|
|
10121
|
+
"snapshot": [
|
|
10122
|
+
{
|
|
10123
|
+
"path": "lastCapturedAt",
|
|
10124
|
+
"valueType": "number"
|
|
10125
|
+
},
|
|
10126
|
+
{
|
|
10127
|
+
"path": "cacheAgeMs",
|
|
10128
|
+
"valueType": "number"
|
|
10129
|
+
},
|
|
10130
|
+
{
|
|
10131
|
+
"path": "lastBytes",
|
|
10132
|
+
"valueType": "number"
|
|
10133
|
+
},
|
|
10134
|
+
{
|
|
10135
|
+
"path": "lastStreamId",
|
|
10136
|
+
"valueType": "string"
|
|
10137
|
+
}
|
|
10138
|
+
],
|
|
10139
|
+
"stream-params": [
|
|
10140
|
+
{
|
|
10141
|
+
"path": "main.width",
|
|
10142
|
+
"valueType": "number"
|
|
10143
|
+
},
|
|
10144
|
+
{
|
|
10145
|
+
"path": "main.height",
|
|
10146
|
+
"valueType": "number"
|
|
10147
|
+
},
|
|
10148
|
+
{
|
|
10149
|
+
"path": "main.codec",
|
|
10150
|
+
"valueType": "enum",
|
|
10151
|
+
"enumValues": ["h264", "h265"]
|
|
10152
|
+
},
|
|
10153
|
+
{
|
|
10154
|
+
"path": "main.framerate",
|
|
10155
|
+
"valueType": "number"
|
|
10156
|
+
},
|
|
10157
|
+
{
|
|
10158
|
+
"path": "main.bitrate",
|
|
10159
|
+
"valueType": "number"
|
|
10160
|
+
},
|
|
10161
|
+
{
|
|
10162
|
+
"path": "main.bitrateMode",
|
|
10163
|
+
"valueType": "enum",
|
|
10164
|
+
"enumValues": ["vbr", "cbr"]
|
|
10165
|
+
},
|
|
10166
|
+
{
|
|
10167
|
+
"path": "main.encoderProfile",
|
|
10168
|
+
"valueType": "enum",
|
|
10169
|
+
"enumValues": [
|
|
10170
|
+
"high",
|
|
10171
|
+
"main",
|
|
10172
|
+
"baseline"
|
|
10173
|
+
]
|
|
10174
|
+
},
|
|
10175
|
+
{
|
|
10176
|
+
"path": "main.gop",
|
|
10177
|
+
"valueType": "number"
|
|
10178
|
+
},
|
|
10179
|
+
{
|
|
10180
|
+
"path": "main.audio",
|
|
10181
|
+
"valueType": "boolean"
|
|
10182
|
+
},
|
|
10183
|
+
{
|
|
10184
|
+
"path": "sub.width",
|
|
10185
|
+
"valueType": "number"
|
|
10186
|
+
},
|
|
10187
|
+
{
|
|
10188
|
+
"path": "sub.height",
|
|
10189
|
+
"valueType": "number"
|
|
10190
|
+
},
|
|
10191
|
+
{
|
|
10192
|
+
"path": "sub.codec",
|
|
10193
|
+
"valueType": "enum",
|
|
10194
|
+
"enumValues": ["h264", "h265"]
|
|
10195
|
+
},
|
|
10196
|
+
{
|
|
10197
|
+
"path": "sub.framerate",
|
|
10198
|
+
"valueType": "number"
|
|
10199
|
+
},
|
|
10200
|
+
{
|
|
10201
|
+
"path": "sub.bitrate",
|
|
10202
|
+
"valueType": "number"
|
|
10203
|
+
},
|
|
10204
|
+
{
|
|
10205
|
+
"path": "sub.bitrateMode",
|
|
10206
|
+
"valueType": "enum",
|
|
10207
|
+
"enumValues": ["vbr", "cbr"]
|
|
10208
|
+
},
|
|
10209
|
+
{
|
|
10210
|
+
"path": "sub.encoderProfile",
|
|
10211
|
+
"valueType": "enum",
|
|
10212
|
+
"enumValues": [
|
|
10213
|
+
"high",
|
|
10214
|
+
"main",
|
|
10215
|
+
"baseline"
|
|
10216
|
+
]
|
|
10217
|
+
},
|
|
10218
|
+
{
|
|
10219
|
+
"path": "sub.gop",
|
|
10220
|
+
"valueType": "number"
|
|
10221
|
+
},
|
|
10222
|
+
{
|
|
10223
|
+
"path": "sub.audio",
|
|
10224
|
+
"valueType": "boolean"
|
|
10225
|
+
},
|
|
10226
|
+
{
|
|
10227
|
+
"path": "ext.width",
|
|
10228
|
+
"valueType": "number"
|
|
10229
|
+
},
|
|
10230
|
+
{
|
|
10231
|
+
"path": "ext.height",
|
|
10232
|
+
"valueType": "number"
|
|
10233
|
+
},
|
|
10234
|
+
{
|
|
10235
|
+
"path": "ext.codec",
|
|
10236
|
+
"valueType": "enum",
|
|
10237
|
+
"enumValues": ["h264", "h265"]
|
|
10238
|
+
},
|
|
10239
|
+
{
|
|
10240
|
+
"path": "ext.framerate",
|
|
10241
|
+
"valueType": "number"
|
|
10242
|
+
},
|
|
10243
|
+
{
|
|
10244
|
+
"path": "ext.bitrate",
|
|
10245
|
+
"valueType": "number"
|
|
10246
|
+
},
|
|
10247
|
+
{
|
|
10248
|
+
"path": "ext.bitrateMode",
|
|
10249
|
+
"valueType": "enum",
|
|
10250
|
+
"enumValues": ["vbr", "cbr"]
|
|
10251
|
+
},
|
|
10252
|
+
{
|
|
10253
|
+
"path": "ext.encoderProfile",
|
|
10254
|
+
"valueType": "enum",
|
|
10255
|
+
"enumValues": [
|
|
10256
|
+
"high",
|
|
10257
|
+
"main",
|
|
10258
|
+
"baseline"
|
|
10259
|
+
]
|
|
10260
|
+
},
|
|
10261
|
+
{
|
|
10262
|
+
"path": "ext.gop",
|
|
10263
|
+
"valueType": "number"
|
|
10264
|
+
},
|
|
10265
|
+
{
|
|
10266
|
+
"path": "ext.audio",
|
|
10267
|
+
"valueType": "boolean"
|
|
10268
|
+
}
|
|
10269
|
+
],
|
|
10270
|
+
"switch": [{
|
|
10271
|
+
"path": "on",
|
|
10272
|
+
"valueType": "boolean"
|
|
10273
|
+
}],
|
|
10274
|
+
"tamper": [{
|
|
10275
|
+
"path": "tampered",
|
|
10276
|
+
"valueType": "boolean"
|
|
10277
|
+
}],
|
|
10278
|
+
"temperature-sensor": [
|
|
10279
|
+
{
|
|
10280
|
+
"path": "celsius",
|
|
10281
|
+
"valueType": "number"
|
|
10282
|
+
},
|
|
10283
|
+
{
|
|
10284
|
+
"path": "unit",
|
|
10285
|
+
"valueType": "string"
|
|
10286
|
+
},
|
|
10287
|
+
{
|
|
10288
|
+
"path": "precision",
|
|
10289
|
+
"valueType": "number"
|
|
10290
|
+
}
|
|
10291
|
+
],
|
|
10292
|
+
"update": [
|
|
10293
|
+
{
|
|
10294
|
+
"path": "currentVersion",
|
|
10295
|
+
"valueType": "string"
|
|
10296
|
+
},
|
|
10297
|
+
{
|
|
10298
|
+
"path": "availableVersion",
|
|
10299
|
+
"valueType": "string"
|
|
10300
|
+
},
|
|
10301
|
+
{
|
|
10302
|
+
"path": "updatable",
|
|
10303
|
+
"valueType": "boolean"
|
|
10304
|
+
},
|
|
10305
|
+
{
|
|
10306
|
+
"path": "state",
|
|
10307
|
+
"valueType": "string"
|
|
10308
|
+
},
|
|
10309
|
+
{
|
|
10310
|
+
"path": "inProgress",
|
|
10311
|
+
"valueType": "boolean"
|
|
10312
|
+
}
|
|
10313
|
+
],
|
|
10314
|
+
"vacuum-control": [
|
|
10315
|
+
{
|
|
10316
|
+
"path": "state",
|
|
10317
|
+
"valueType": "enum",
|
|
10318
|
+
"enumValues": [
|
|
10319
|
+
"idle",
|
|
10320
|
+
"cleaning",
|
|
10321
|
+
"paused",
|
|
10322
|
+
"returning",
|
|
10323
|
+
"docked",
|
|
10324
|
+
"drying",
|
|
10325
|
+
"error"
|
|
10326
|
+
]
|
|
10327
|
+
},
|
|
10328
|
+
{
|
|
10329
|
+
"path": "batteryLevel",
|
|
10330
|
+
"valueType": "number"
|
|
10331
|
+
},
|
|
10332
|
+
{
|
|
10333
|
+
"path": "fanSpeed",
|
|
10334
|
+
"valueType": "string"
|
|
10335
|
+
},
|
|
10336
|
+
{
|
|
10337
|
+
"path": "progressPercent",
|
|
10338
|
+
"valueType": "number"
|
|
10339
|
+
},
|
|
10340
|
+
{
|
|
10341
|
+
"path": "errorCode",
|
|
10342
|
+
"valueType": "number"
|
|
10343
|
+
},
|
|
10344
|
+
{
|
|
10345
|
+
"path": "errorLabel",
|
|
10346
|
+
"valueType": "string"
|
|
10347
|
+
}
|
|
10348
|
+
],
|
|
10349
|
+
"valve": [{
|
|
10350
|
+
"path": "state",
|
|
10351
|
+
"valueType": "enum",
|
|
10352
|
+
"enumValues": [
|
|
10353
|
+
"open",
|
|
10354
|
+
"opening",
|
|
10355
|
+
"closing",
|
|
10356
|
+
"closed",
|
|
10357
|
+
"stopped"
|
|
10358
|
+
]
|
|
10359
|
+
}, {
|
|
10360
|
+
"path": "position",
|
|
10361
|
+
"valueType": "number"
|
|
10362
|
+
}],
|
|
10363
|
+
"vibration": [{
|
|
10364
|
+
"path": "detected",
|
|
10365
|
+
"valueType": "boolean"
|
|
10366
|
+
}],
|
|
10367
|
+
"water-heater": [
|
|
10368
|
+
{
|
|
10369
|
+
"path": "currentTemp",
|
|
10370
|
+
"valueType": "number"
|
|
10371
|
+
},
|
|
10372
|
+
{
|
|
10373
|
+
"path": "targetTemp",
|
|
10374
|
+
"valueType": "number"
|
|
10375
|
+
},
|
|
10376
|
+
{
|
|
10377
|
+
"path": "operationMode",
|
|
10378
|
+
"valueType": "string"
|
|
10379
|
+
},
|
|
10380
|
+
{
|
|
10381
|
+
"path": "away",
|
|
10382
|
+
"valueType": "boolean"
|
|
10383
|
+
},
|
|
10384
|
+
{
|
|
10385
|
+
"path": "minTemp",
|
|
10386
|
+
"valueType": "number"
|
|
10387
|
+
},
|
|
10388
|
+
{
|
|
10389
|
+
"path": "maxTemp",
|
|
10390
|
+
"valueType": "number"
|
|
10391
|
+
}
|
|
10392
|
+
],
|
|
10393
|
+
"weather": [
|
|
10394
|
+
{
|
|
10395
|
+
"path": "condition",
|
|
10396
|
+
"valueType": "string"
|
|
10397
|
+
},
|
|
10398
|
+
{
|
|
10399
|
+
"path": "temperature",
|
|
10400
|
+
"valueType": "number"
|
|
10401
|
+
},
|
|
10402
|
+
{
|
|
10403
|
+
"path": "temperatureUnit",
|
|
10404
|
+
"valueType": "string"
|
|
10405
|
+
},
|
|
10406
|
+
{
|
|
10407
|
+
"path": "humidity",
|
|
10408
|
+
"valueType": "number"
|
|
10409
|
+
},
|
|
10410
|
+
{
|
|
10411
|
+
"path": "pressure",
|
|
10412
|
+
"valueType": "number"
|
|
10413
|
+
},
|
|
10414
|
+
{
|
|
10415
|
+
"path": "pressureUnit",
|
|
10416
|
+
"valueType": "string"
|
|
10417
|
+
},
|
|
10418
|
+
{
|
|
10419
|
+
"path": "windSpeed",
|
|
10420
|
+
"valueType": "number"
|
|
10421
|
+
},
|
|
10422
|
+
{
|
|
10423
|
+
"path": "windSpeedUnit",
|
|
10424
|
+
"valueType": "string"
|
|
10425
|
+
},
|
|
10426
|
+
{
|
|
10427
|
+
"path": "windBearing",
|
|
10428
|
+
"valueType": "number"
|
|
10429
|
+
}
|
|
10430
|
+
],
|
|
10431
|
+
"zone-analytics": [
|
|
10432
|
+
{
|
|
10433
|
+
"path": "ts",
|
|
10434
|
+
"valueType": "number"
|
|
10435
|
+
},
|
|
10436
|
+
{
|
|
10437
|
+
"path": "frameWidth",
|
|
10438
|
+
"valueType": "number"
|
|
10439
|
+
},
|
|
10440
|
+
{
|
|
10441
|
+
"path": "frameHeight",
|
|
10442
|
+
"valueType": "number"
|
|
10443
|
+
},
|
|
10444
|
+
{
|
|
10445
|
+
"path": "frame.totalObjects",
|
|
10446
|
+
"valueType": "number"
|
|
10447
|
+
},
|
|
10448
|
+
{
|
|
10449
|
+
"path": "frame.standingObjects",
|
|
10450
|
+
"valueType": "number"
|
|
10451
|
+
},
|
|
10452
|
+
{
|
|
10453
|
+
"path": "frame.transientObjects",
|
|
10454
|
+
"valueType": "number"
|
|
10455
|
+
},
|
|
10456
|
+
{
|
|
10457
|
+
"path": "unzoned.totalObjects",
|
|
10458
|
+
"valueType": "number"
|
|
10459
|
+
},
|
|
10460
|
+
{
|
|
10461
|
+
"path": "unzoned.standingObjects",
|
|
10462
|
+
"valueType": "number"
|
|
10463
|
+
},
|
|
10464
|
+
{
|
|
10465
|
+
"path": "unzoned.transientObjects",
|
|
10466
|
+
"valueType": "number"
|
|
10467
|
+
}
|
|
10468
|
+
]
|
|
10469
|
+
});
|
|
8496
10470
|
object({
|
|
8497
10471
|
code: string().regex(/^[a-z][a-z0-9-]*(\.[a-z0-9-]+)+$/),
|
|
8498
10472
|
params: record(string(), union([string(), number()])).optional()
|
|
@@ -8855,7 +10829,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
8855
10829
|
return DeviceRole;
|
|
8856
10830
|
}({});
|
|
8857
10831
|
//#endregion
|
|
8858
|
-
//#region ../types/dist/composition-
|
|
10832
|
+
//#region ../types/dist/composition-kEl9mevu.mjs
|
|
8859
10833
|
/**
|
|
8860
10834
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
8861
10835
|
*
|
|
@@ -12108,7 +14082,7 @@ var LogChannelDescriptorSchema = object({
|
|
|
12108
14082
|
* `true` is a PROMISE with two halves, and both must hold: the gate is
|
|
12109
14083
|
* consulted with the numeric device id, AND every line the channel admits
|
|
12110
14084
|
* carries `tags: { deviceId }` with that same numeric id. The second half is
|
|
12111
|
-
* what makes `| json | deviceId="
|
|
14085
|
+
* what makes `| json | deviceId="102"` work in Loki — `loki-payload.ts`
|
|
12112
14086
|
* keeps `deviceId` out of the stream labels for cardinality, so the tag in
|
|
12113
14087
|
* the body is the only way to filter.
|
|
12114
14088
|
*
|
|
@@ -12296,7 +14270,7 @@ var ModelVariantGroupSchema = object({
|
|
|
12296
14270
|
precision: _enum(["fp32", "int8"]).optional(),
|
|
12297
14271
|
/**
|
|
12298
14272
|
* Training / latency-variant axis. Omit ⇒ the standard build. `test` marks
|
|
12299
|
-
* an alternate training of the same family (
|
|
14273
|
+
* an alternate training of the same family (plugin catalog `relu_test`); chip
|
|
12300
14274
|
* label is "Test".
|
|
12301
14275
|
*/
|
|
12302
14276
|
optimization: _enum(["standard", "test"]).optional(),
|
|
@@ -12548,8 +14522,8 @@ var ModelCatalogEntrySchema = object({
|
|
|
12548
14522
|
provider: ModelProviderIdSchema.optional(),
|
|
12549
14523
|
/**
|
|
12550
14524
|
* Per-MODEL class map override. Absent ⇒ the step's `StepDefinition.classMap`
|
|
12551
|
-
* applies (
|
|
12552
|
-
* labels already ARE the CamStack macros (
|
|
14525
|
+
* applies (plus catalog / COCO public catalog). Set on a custom model whose raw
|
|
14526
|
+
* labels already ARE the CamStack macros (plugin catalog identity map).
|
|
12553
14527
|
*/
|
|
12554
14528
|
classMap: DetectionCatalogClassMapSchema.optional(),
|
|
12555
14529
|
/**
|
|
@@ -15518,7 +17492,7 @@ method(object({
|
|
|
15518
17492
|
* `1` is real time and is the ONLY value that allows the copy branch —
|
|
15519
17493
|
* anything else forces `libx264` over the window. That was priced
|
|
15520
17494
|
* before it was chosen: a per-event burst measured at 0.23 s and 254 KB
|
|
15521
|
-
* on a real
|
|
17495
|
+
* on a real 101 720p cut, against 922 KB for the copy it replaces. A
|
|
15522
17496
|
* re-encode is capped at 720p (`EVENT_CLIP_ENCODE_MAX_WIDTH`), because
|
|
15523
17497
|
* once the decode is forced the width stops being free.
|
|
15524
17498
|
*/
|
|
@@ -16044,6 +18018,7 @@ var CompositionRunStatusSchema = _enum([
|
|
|
16044
18018
|
"starting",
|
|
16045
18019
|
"running",
|
|
16046
18020
|
"degraded",
|
|
18021
|
+
"incomplete",
|
|
16047
18022
|
"failed"
|
|
16048
18023
|
]);
|
|
16049
18024
|
var CompositionFieldStateKindSchema = _enum([
|
|
@@ -16257,6 +18232,7 @@ var CoreBlockStatusSchema = _enum([
|
|
|
16257
18232
|
"starting",
|
|
16258
18233
|
"running",
|
|
16259
18234
|
"degraded",
|
|
18235
|
+
"incomplete",
|
|
16260
18236
|
"failed"
|
|
16261
18237
|
]);
|
|
16262
18238
|
/** path → TypeScript source for a multi-file block. */
|
|
@@ -38404,7 +40380,7 @@ var PRIMARY_CATEGORIES = new Set(ENTRIES.map((e) => e.primaryCategory));
|
|
|
38404
40380
|
* `locationKey` is ALWAYS {@link locationIconKey} of the label — never the
|
|
38405
40381
|
* operator's casing. The registry matches labels trimmed + case-insensitively
|
|
38406
40382
|
* everywhere (`addLocation`, `removeLocation`, `renameLocation`), and a
|
|
38407
|
-
* case-only rename (`
|
|
40383
|
+
* case-only rename (`kitchen` → `Kitchen`) is a real edit this repo supports; a
|
|
38408
40384
|
* map keyed on the displayed casing would orphan its entry on exactly that
|
|
38409
40385
|
* edit. Consumers join by keying their own label through `locationIconKey`.
|
|
38410
40386
|
*/
|
|
@@ -38429,7 +40405,7 @@ var LocationDescriptionAssignmentSchema = object({
|
|
|
38429
40405
|
/**
|
|
38430
40406
|
* A SITE ZONE — a named part of the property that several locations belong to.
|
|
38431
40407
|
*
|
|
38432
|
-
* "
|
|
40408
|
+
* "Night zone" holds every bedroom; "Zona giorno" the living room and the
|
|
38433
40409
|
* kitchen. A camera belongs to exactly one location, and a location to at most
|
|
38434
40410
|
* one zone, so a camera's zone is derived and never stored on the device: the
|
|
38435
40411
|
* whole point of this entity is that grouping rooms touches no device row.
|
|
@@ -38458,7 +40434,7 @@ var LocationDescriptionAssignmentSchema = object({
|
|
|
38458
40434
|
* the locations inside it.
|
|
38459
40435
|
*
|
|
38460
40436
|
* The LABEL is carried alongside the key because the key is lossy on purpose —
|
|
38461
|
-
* a surface must show "
|
|
40437
|
+
* a surface must show "Night zone", not "night zone". Locations are carried
|
|
38462
40438
|
* here, rather than left to a second call, because every consumer wants both
|
|
38463
40439
|
* at once and a viewer that asked twice could render a zone whose membership
|
|
38464
40440
|
* it has not fetched yet.
|
|
@@ -40652,8 +42628,8 @@ var LoadContributionSchema = object({
|
|
|
40652
42628
|
"unattributable"
|
|
40653
42629
|
]),
|
|
40654
42630
|
/**
|
|
40655
|
-
* What ONE entry is, in the contributor's own words — `
|
|
40656
|
-
* `
|
|
42631
|
+
* What ONE entry is, in the contributor's own words — `101/high`,
|
|
42632
|
+
* `102/native`, `cuda:0 shared pool`. Free text because the unit differs per
|
|
40657
42633
|
* family and inventing a common one would lose the only information that
|
|
40658
42634
|
* makes two entries for the same camera distinguishable.
|
|
40659
42635
|
*/
|
|
@@ -43657,7 +45633,7 @@ var NcConditionsSchema = object({
|
|
|
43657
45633
|
* with the list under it is worse than no switch (D62).
|
|
43658
45634
|
*
|
|
43659
45635
|
* MEMBERS ARE FACE-GALLERY `Identity.id`s (uuid), not display names. A name is
|
|
43660
|
-
* renameable, and a rule authored on "
|
|
45636
|
+
* renameable, and a rule authored on "Alice" went silently dark the moment
|
|
43661
45637
|
* the operator fixed the spelling. The id reaches the record on
|
|
43662
45638
|
* `LabelAttribution.identityId`; the name is what the editor shows and what
|
|
43663
45639
|
* `{{label}}` renders.
|
|
@@ -44208,7 +46184,7 @@ var NcRulePatchSchema = NcRuleInputSchema.partial().extend({
|
|
|
44208
46184
|
* A rule scoped to one camera and one zone silently became a rule that
|
|
44209
46185
|
* matches EVERY event on EVERY camera, and lost its `media` policy
|
|
44210
46186
|
* (zoneCrop / gif / clip / frame) and its `priority` at the same time. Seen
|
|
44211
|
-
* live on 2026-08-12: a rule scoped to device
|
|
46187
|
+
* live on 2026-08-12: a rule scoped to device 102 fired on 104 and 101
|
|
44212
46188
|
* within a minute of a two-field patch.
|
|
44213
46189
|
*
|
|
44214
46190
|
* So every defaulted field is re-declared here WITHOUT its default. The
|
|
@@ -46021,7 +47997,7 @@ var LabelAttributionSchema = object({
|
|
|
46021
47997
|
* `Identity.id` or a plate-gallery `Vehicle.id` (both `randomUUID`).
|
|
46022
47998
|
*
|
|
46023
47999
|
* The text alone is a DISPLAY NAME, and a display name is renameable: a
|
|
46024
|
-
* notification rule authored on "
|
|
48000
|
+
* notification rule authored on "Alice" stopped matching the moment the
|
|
46025
48001
|
* operator fixed the spelling in the gallery, and nothing said so. The id is
|
|
46026
48002
|
* the thing that does not move, so it is what a rule matches on
|
|
46027
48003
|
* (`NcConditions.identities`) and the text is what a human is shown.
|
|
@@ -48560,7 +50536,7 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
48560
50536
|
/**
|
|
48561
50537
|
* Root-supplied detections for the tree's ROOT step (D730). Set by
|
|
48562
50538
|
* `runDetailSubtree` when the camera's root model supplies a crop-kind
|
|
48563
|
-
* step (a
|
|
50539
|
+
* step (a plus catalog `license_plate` for `plate-detection`): the step is
|
|
48564
50540
|
* NOT inferred, these boxes are its output, and its children (the plate
|
|
48565
50541
|
* reader) run on them through their own crop policy. Boxes are in the
|
|
48566
50542
|
* PIXELS of the image this call carries. Absent ⇒ the root step runs.
|
|
@@ -50237,7 +52213,7 @@ var RunnerCameraConfigSchema = object({
|
|
|
50237
52213
|
* detection session that asks for history. What shipped was a last-moment
|
|
50238
52214
|
* discard — `FrameSlot`'s throttle compares wall clocks, and ~4 s of media
|
|
50239
52215
|
* arriving inside a few hundred ms of wall clock looks to it like one frame's
|
|
50240
|
-
* worth. Device
|
|
52216
|
+
* worth. Device 102, 2026-09-08: a re-run of the SAME model over the stored
|
|
50241
52217
|
* recording scored the subject `vehicle 0.5669` — above the 0.50 floor —
|
|
50242
52218
|
* 1.68 s BEFORE the live track was born, on a frame that was in the pre-roll,
|
|
50243
52219
|
* was decoded, and was freed.
|
|
@@ -52371,7 +54347,7 @@ method(_void(), ProviderInfoSchema, { auth: "admin" }), method(object({ config:
|
|
|
52371
54347
|
* The signals a device can emit to WAKE its own stream.
|
|
52372
54348
|
*
|
|
52373
54349
|
* A camera whose stream is built on demand sleeps until something asks for it,
|
|
52374
|
-
* and "something" cannot be a consumer that is merely attached — a
|
|
54350
|
+
* and "something" cannot be a consumer that is merely attached — a external-catalog
|
|
52375
54351
|
* puller holds a session open for ever, and treating that as demand would keep
|
|
52376
54352
|
* a battery camera awake for ever, which is the whole thing the battery is for
|
|
52377
54353
|
* (D173). So the wake has to come from the CAMERA: an event it noticed by
|
|
@@ -53130,7 +55106,7 @@ var ClipSchema = object({
|
|
|
53130
55106
|
* {@link MAX_CLIP_EVENT_IDS}. Empty on footage-only clips.
|
|
53131
55107
|
*
|
|
53132
55108
|
* Bounded because it is not a payload the surface pages through: one visit on
|
|
53133
|
-
* device
|
|
55109
|
+
* device 101 carried 2 345 ids, and `eventIds` was 99% of a 153 KB
|
|
53134
55110
|
* camera-day. Read {@link eventCount} for the true total.
|
|
53135
55111
|
*/
|
|
53136
55112
|
eventIds: array(string()).optional(),
|
|
@@ -53275,7 +55251,7 @@ var ClipPlaybackSchema = object({
|
|
|
53275
55251
|
* camera has no recordings", which is the defect this whole line of work is
|
|
53276
55252
|
* about: a battery camera nobody woke (`sleeping`), a camera that could not be
|
|
53277
55253
|
* reached at all (`unreachable`, also what a provider that THREW reports), a
|
|
53278
|
-
* camera whose SD card is not mounted (`no-storage`, measured on
|
|
55254
|
+
* camera whose SD card is not mounted (`no-storage`, measured on 106 —
|
|
53279
55255
|
* `HddInfo mount 0`, honestly nothing to list rather than "no clips"), and a
|
|
53280
55256
|
* camera whose OWN index disagrees with its OWN calendar (`index-empty`,
|
|
53281
55257
|
* measured on 618: the calendar marks 3–20 September, days 6–20 list zero
|
|
@@ -53736,7 +55712,7 @@ var videoclipsCapability = {
|
|
|
53736
55712
|
*
|
|
53737
55713
|
* It was optional, documented as "absent means the device's BOUND
|
|
53738
55714
|
* provider, which is CamStack on every camera". No code implemented
|
|
53739
|
-
* that. Measured on the live hub 2026-09-20 — device
|
|
55715
|
+
* that. Measured on the live hub 2026-09-20 — device 107, bound to
|
|
53740
55716
|
* `recorder` AND `provider-reolink` — a bare call with `limit: 3`
|
|
53741
55717
|
* answered SIX rows, three from each source, merged newest-first:
|
|
53742
55718
|
* `device-collection-dispatch.ts` simply left the fan-out un-narrowed,
|
|
@@ -55053,7 +57029,10 @@ var airQualitySensorCapability = {
|
|
|
55053
57029
|
*/
|
|
55054
57030
|
var AmbientLightSensorStatusSchema = object({
|
|
55055
57031
|
/** Current illuminance in lux (lx). */
|
|
55056
|
-
lux: number().min(0)
|
|
57032
|
+
lux: number().min(0).meta({
|
|
57033
|
+
unit: "lx",
|
|
57034
|
+
label: "Illuminance"
|
|
57035
|
+
}),
|
|
55057
57036
|
/** Ms epoch when the slice was last updated. */
|
|
55058
57037
|
lastFetchedAt: number(),
|
|
55059
57038
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -55096,7 +57075,12 @@ var ambientLightSensorCapability = {
|
|
|
55096
57075
|
} } },
|
|
55097
57076
|
/** Clock fields: written, but excluded from the compare that decides
|
|
55098
57077
|
* whether persisting is worth a SQLite commit. */
|
|
55099
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
57078
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
57079
|
+
customize: {
|
|
57080
|
+
version: 1,
|
|
57081
|
+
advanced: "derive",
|
|
57082
|
+
targets: []
|
|
57083
|
+
}
|
|
55100
57084
|
};
|
|
55101
57085
|
/**
|
|
55102
57086
|
* Per-class audio metrics aggregated over a sliding window.
|
|
@@ -55323,7 +57307,10 @@ var BatteryStatusSchema = object({
|
|
|
55323
57307
|
* Consumers must SKIP a null rather than coerce it — `battery-band` already
|
|
55324
57308
|
* declines to band a non-finite reading, which is the correct shape.
|
|
55325
57309
|
*/
|
|
55326
|
-
percentage: number().min(0).max(100).nullable()
|
|
57310
|
+
percentage: number().min(0).max(100).nullable().meta({
|
|
57311
|
+
unit: "%",
|
|
57312
|
+
label: "Charge"
|
|
57313
|
+
}),
|
|
55327
57314
|
/**
|
|
55328
57315
|
* Charging source. `'dc'` covers wall/USB adapters; `'solar'` is
|
|
55329
57316
|
* Reolink-specific for the Solar Panel 2 accessory (will become
|
|
@@ -55342,13 +57329,13 @@ var BatteryStatusSchema = object({
|
|
|
55342
57329
|
"solar",
|
|
55343
57330
|
"none",
|
|
55344
57331
|
"unknown"
|
|
55345
|
-
]),
|
|
57332
|
+
]).meta({ label: "Charging source" }),
|
|
55346
57333
|
/**
|
|
55347
57334
|
* True when the camera firmware has gone into low-power mode. Battery
|
|
55348
57335
|
* providers MUST avoid polling during sleep — reading the battery
|
|
55349
57336
|
* wakes the camera up and drains charge.
|
|
55350
57337
|
*/
|
|
55351
|
-
sleeping: boolean(),
|
|
57338
|
+
sleeping: boolean().meta({ label: "Sleeping" }),
|
|
55352
57339
|
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
55353
57340
|
lastUpdated: number(),
|
|
55354
57341
|
/**
|
|
@@ -55388,7 +57375,7 @@ var BatteryStatusSchema = object({
|
|
|
55388
57375
|
* sub-threshold = low). UI MUST render "Normal"/"Low" instead of a
|
|
55389
57376
|
* misleading exact percentage. Absent/false → genuine 0–100 % reading.
|
|
55390
57377
|
*/
|
|
55391
|
-
binary: boolean().optional()
|
|
57378
|
+
binary: boolean().optional().meta({ label: "Binary indicator" })
|
|
55392
57379
|
});
|
|
55393
57380
|
var BATTERY_DEVICE_TYPES = [
|
|
55394
57381
|
DeviceType.Camera,
|
|
@@ -55402,6 +57389,7 @@ var BATTERY_DEVICE_TYPES = [
|
|
|
55402
57389
|
/** Generic Customize target for the percentage reading (D936). */
|
|
55403
57390
|
var batteryCustomize = {
|
|
55404
57391
|
version: 1,
|
|
57392
|
+
advanced: "derive",
|
|
55405
57393
|
targets: [{
|
|
55406
57394
|
id: "percentage",
|
|
55407
57395
|
cardinality: "scalar",
|
|
@@ -55552,7 +57540,7 @@ onStatusChanged: { data: object({
|
|
|
55552
57540
|
* with the right HomeKit / Alexa display category.
|
|
55553
57541
|
*/
|
|
55554
57542
|
var BinaryStatusSchema = object({
|
|
55555
|
-
on: boolean(),
|
|
57543
|
+
on: boolean().meta({ label: "On" }),
|
|
55556
57544
|
/** Ms epoch of the last transition. 0 if never observed. */
|
|
55557
57545
|
lastChangedAt: number()
|
|
55558
57546
|
});
|
|
@@ -55581,7 +57569,12 @@ var binaryCapability = {
|
|
|
55581
57569
|
history: { fields: { on: { kind: "boolean" } } },
|
|
55582
57570
|
/** Clock fields: written, but excluded from the compare that decides
|
|
55583
57571
|
* whether persisting is worth a SQLite commit. */
|
|
55584
|
-
volatileStateFields: ["lastChangedAt"]
|
|
57572
|
+
volatileStateFields: ["lastChangedAt"],
|
|
57573
|
+
customize: {
|
|
57574
|
+
version: 1,
|
|
57575
|
+
advanced: "derive",
|
|
57576
|
+
targets: []
|
|
57577
|
+
}
|
|
55585
57578
|
};
|
|
55586
57579
|
/**
|
|
55587
57580
|
* Dimmable-light brightness control. Co-exists with `switch` on the
|
|
@@ -55887,7 +57880,7 @@ var GridLayoutCellSchema = object({
|
|
|
55887
57880
|
*
|
|
55888
57881
|
* A grid's `high` composes its sources' `high` and its `low` their `low`, so a
|
|
55889
57882
|
* profile is on offer only when EVERY source can serve it. The refusal NAMES
|
|
55890
|
-
* the sources, because "this grid has no low" is not a finding — "
|
|
57883
|
+
* the sources, because "this grid has no low" is not a finding — "101 has no
|
|
55891
57884
|
* low" is, and it is the one an operator can act on.
|
|
55892
57885
|
*/
|
|
55893
57886
|
var GridProfileOfferSchema = object({
|
|
@@ -58405,7 +60398,10 @@ var humidifierCapability = {
|
|
|
58405
60398
|
*/
|
|
58406
60399
|
var HumiditySensorStatusSchema = object({
|
|
58407
60400
|
/** Current relative humidity, 0..100. */
|
|
58408
|
-
percent: number().min(0).max(100)
|
|
60401
|
+
percent: number().min(0).max(100).meta({
|
|
60402
|
+
unit: "%",
|
|
60403
|
+
label: "Humidity"
|
|
60404
|
+
}),
|
|
58409
60405
|
/** Ms epoch when the slice was last updated. */
|
|
58410
60406
|
lastFetchedAt: number(),
|
|
58411
60407
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -58447,7 +60443,12 @@ var humiditySensorCapability = {
|
|
|
58447
60443
|
} } },
|
|
58448
60444
|
/** Clock fields: written, but excluded from the compare that decides
|
|
58449
60445
|
* whether persisting is worth a SQLite commit. */
|
|
58450
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
60446
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
60447
|
+
customize: {
|
|
60448
|
+
version: 1,
|
|
60449
|
+
advanced: "derive",
|
|
60450
|
+
targets: []
|
|
60451
|
+
}
|
|
58451
60452
|
};
|
|
58452
60453
|
/**
|
|
58453
60454
|
* Image display cap. Models a single still image exposed by an integration —
|
|
@@ -62126,9 +64127,15 @@ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema)
|
|
|
62126
64127
|
*/
|
|
62127
64128
|
var PowerMeterStatusSchema = object({
|
|
62128
64129
|
/** Instantaneous power draw in watts. */
|
|
62129
|
-
watts: number().optional()
|
|
64130
|
+
watts: number().optional().meta({
|
|
64131
|
+
unit: "W",
|
|
64132
|
+
label: "Power"
|
|
64133
|
+
}),
|
|
62130
64134
|
/** Cumulative energy in kilowatt-hours since the meter was reset. */
|
|
62131
|
-
kwhTotal: number().optional()
|
|
64135
|
+
kwhTotal: number().optional().meta({
|
|
64136
|
+
unit: "kWh",
|
|
64137
|
+
label: "Energy"
|
|
64138
|
+
}),
|
|
62132
64139
|
/** Voltage in volts. */
|
|
62133
64140
|
volts: number().optional(),
|
|
62134
64141
|
/** Current in amperes. */
|
|
@@ -62213,7 +64220,12 @@ var powerMeterCapability = {
|
|
|
62213
64220
|
} },
|
|
62214
64221
|
/** Clock fields: written, but excluded from the compare that decides
|
|
62215
64222
|
* whether persisting is worth a SQLite commit. */
|
|
62216
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
64223
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
64224
|
+
customize: {
|
|
64225
|
+
version: 1,
|
|
64226
|
+
advanced: "derive",
|
|
64227
|
+
targets: []
|
|
64228
|
+
}
|
|
62217
64229
|
};
|
|
62218
64230
|
/**
|
|
62219
64231
|
* Presence cap. Models HA `person.*` and `device_tracker.*` entities
|
|
@@ -62658,9 +64670,9 @@ var PtzOptionsSchema = object({
|
|
|
62658
64670
|
* Reolink preset 0, Hikvision preset '1', Dahua preset 1 -- and on this fleet
|
|
62659
64671
|
* not one of the three cameras honours its own:
|
|
62660
64672
|
*
|
|
62661
|
-
*
|
|
62662
|
-
* 1438
|
|
62663
|
-
* 3836
|
|
64673
|
+
* 107 Camera camera Carol (reolink) preset 0 holds "stanza"
|
|
64674
|
+
* 1438 Camera dispensa (hikvision) preset 1 holds "Credenza"
|
|
64675
|
+
* 3836 Camera studio (amcrest) preset 1 holds "Preset1"
|
|
62664
64676
|
*
|
|
62665
64677
|
* So `goHome` meant "go wherever the operator happened to save in slot 0 or 1",
|
|
62666
64678
|
* and two of the three swallowed the failure in a bare `catch`. For autotrack
|
|
@@ -62993,7 +65005,7 @@ var RunningStateStatusSchema = object({
|
|
|
62993
65005
|
running: boolean().nullable(),
|
|
62994
65006
|
/** Epoch ms the current boolean began; null while `running` is null. */
|
|
62995
65007
|
since: number().nullable(),
|
|
62996
|
-
source: RunningStateSourceSchema,
|
|
65008
|
+
source: RunningStateSourceSchema.meta({ label: "Source" }),
|
|
62997
65009
|
phase: string().nullable(),
|
|
62998
65010
|
/** null until a reading has been published (D393). */
|
|
62999
65011
|
lastFetchedAt: number().nullable()
|
|
@@ -63007,6 +65019,7 @@ var RUNNING_DEVICE_TYPES = Object.values(DeviceType);
|
|
|
63007
65019
|
/** Generic Customize target for the running boolean (D936). */
|
|
63008
65020
|
var runningCustomize = {
|
|
63009
65021
|
version: 1,
|
|
65022
|
+
advanced: "derive",
|
|
63010
65023
|
targets: [{
|
|
63011
65024
|
id: "running",
|
|
63012
65025
|
cardinality: "scalar",
|
|
@@ -63145,7 +65158,7 @@ var RecordingAvailabilitySchema = object({
|
|
|
63145
65158
|
* would look identical. But the answer used to say nothing about that, so a
|
|
63146
65159
|
* caller asking "what can I export?" read the single preferred profile as
|
|
63147
65160
|
* the only one that exists — on this deployment every camera records `high`
|
|
63148
|
-
* AND `low`, the low tree holding 14 GB for camera
|
|
65161
|
+
* AND `low`, the low tree holding 14 GB for camera 101 alone, and the export
|
|
63149
65162
|
* UI could not see it.
|
|
63150
65163
|
*
|
|
63151
65164
|
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
@@ -63244,7 +65257,7 @@ var RecordingSourceOptionsSchema = object({
|
|
|
63244
65257
|
* `sparse` = gaps are the absence of one, and must be drawn as such.
|
|
63245
65258
|
*
|
|
63246
65259
|
* Not an onboard-only concession: measured 2026-09-24, OUR bar covers 98.8 %
|
|
63247
|
-
* of
|
|
65260
|
+
* of 107's day and 1.2 % of 1436's. It is a fact about a (source, camera)
|
|
63248
65261
|
* pair, and ours answers it per camera from `deriveRecordingMode`. */
|
|
63249
65262
|
coverage: _enum(["continuous", "sparse"]),
|
|
63250
65263
|
/** Where the playhead may be put.
|
|
@@ -63320,7 +65333,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(RecordingSourceS
|
|
|
63320
65333
|
* merely discouraged (D554 amended).
|
|
63321
65334
|
*
|
|
63322
65335
|
* It was learned the expensive way on `videoclips.listClips`: measured
|
|
63323
|
-
* on the live hub 2026-09-20, device
|
|
65336
|
+
* on the live hub 2026-09-20, device 107 bound to `recorder` AND
|
|
63324
65337
|
* `provider-reolink`, a bare call with `limit: 3` answered SIX rows,
|
|
63325
65338
|
* three from each source, merged — `device-collection-dispatch.ts`
|
|
63326
65339
|
* leaves an unpinned fan-out un-narrowed, so absence buys the union the
|
|
@@ -63921,7 +65934,7 @@ var ExportSpeedSchema = number().min(.25).max(32);
|
|
|
63921
65934
|
* on a 10 h window holding 29,393 s of footage every range landed late by the
|
|
63922
65935
|
* gap accumulated before it — up to 6,607 s, well past EOF. Nothing matched,
|
|
63923
65936
|
* the video was a uniform timelapse, and the log line reported the five ranges
|
|
63924
|
-
* that had been ASKED for (2026-08-13, export `57d14363`, camera
|
|
65937
|
+
* that had been ASKED for (2026-08-13, export `57d14363`, camera 101).
|
|
63925
65938
|
*
|
|
63926
65939
|
* Relative and not absolute epoch, because an absolute epoch would make every
|
|
63927
65940
|
* call site responsible for the same subtraction.
|
|
@@ -64738,7 +66751,7 @@ getStatus: method(object({ deviceId: number() }), RecordingSignalStatusSchema) }
|
|
|
64738
66751
|
* which put a "Scenes" tab on one camera's detail page. That is the wrong shape
|
|
64739
66752
|
* for the thing: a scene is a standing question about the property ("is the bin
|
|
64740
66753
|
* still out"), and the operator's question is "which of my scenes have tripped",
|
|
64741
|
-
* across every camera at once — not "what does camera
|
|
66754
|
+
* across every camera at once — not "what does camera 102 think". Buried one
|
|
64742
66755
|
* camera deep it also could not be found. The surface is now a top-level admin
|
|
64743
66756
|
* page (`/scenes`, `pages/Scenes.tsx`) that lists every scene on every camera and
|
|
64744
66757
|
* picks the camera inside the create flow, the same shape Events and Faces have.
|
|
@@ -65795,7 +67808,7 @@ function buildStreamParamsConfigSchema(options, status) {
|
|
|
65795
67808
|
* `getSettingsUISchema()` surface.
|
|
65796
67809
|
*/
|
|
65797
67810
|
var SwitchStatusSchema = object({
|
|
65798
|
-
on: boolean(),
|
|
67811
|
+
on: boolean().meta({ label: "On" }),
|
|
65799
67812
|
/** Ms epoch of the last state change. Useful for UI "X minutes ago". */
|
|
65800
67813
|
lastChangedAt: number()
|
|
65801
67814
|
});
|
|
@@ -65854,7 +67867,12 @@ var switchCapability = {
|
|
|
65854
67867
|
label: "On",
|
|
65855
67868
|
kind: "boolean"
|
|
65856
67869
|
}
|
|
65857
|
-
}] }
|
|
67870
|
+
}] },
|
|
67871
|
+
customize: {
|
|
67872
|
+
version: 1,
|
|
67873
|
+
advanced: "derive",
|
|
67874
|
+
targets: []
|
|
67875
|
+
}
|
|
65858
67876
|
};
|
|
65859
67877
|
/** C0 controls, DEL and the C1 range: none of them belongs in a name. */
|
|
65860
67878
|
function hasControlCharacter(value) {
|
|
@@ -66450,7 +68468,10 @@ var tamperCapability = {
|
|
|
66450
68468
|
*/
|
|
66451
68469
|
var TemperatureSensorStatusSchema = object({
|
|
66452
68470
|
/** Current temperature in Celsius. */
|
|
66453
|
-
celsius: number()
|
|
68471
|
+
celsius: number().meta({
|
|
68472
|
+
unit: "°C",
|
|
68473
|
+
label: "Temperature"
|
|
68474
|
+
}),
|
|
66454
68475
|
/** Ms epoch when the slice was last updated (push or poll). */
|
|
66455
68476
|
lastFetchedAt: number(),
|
|
66456
68477
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -66493,7 +68514,12 @@ var temperatureSensorCapability = {
|
|
|
66493
68514
|
} } },
|
|
66494
68515
|
/** Clock fields: written, but excluded from the compare that decides
|
|
66495
68516
|
* whether persisting is worth a SQLite commit. */
|
|
66496
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
68517
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
68518
|
+
customize: {
|
|
68519
|
+
version: 1,
|
|
68520
|
+
advanced: "derive",
|
|
68521
|
+
targets: []
|
|
68522
|
+
}
|
|
66497
68523
|
};
|
|
66498
68524
|
/**
|
|
66499
68525
|
* toast — system-scoped singleton capability that streams toast
|
|
@@ -68172,6 +70198,10 @@ function withClipEventLabels(provider, deps) {
|
|
|
68172
70198
|
};
|
|
68173
70199
|
}
|
|
68174
70200
|
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
70201
|
+
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;
|
|
70202
|
+
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
70203
|
+
DeviceRole.BinarySensor, DeviceRole.MotionSensor;
|
|
70204
|
+
new Set(CAP_NAMES);
|
|
68175
70205
|
Object.freeze({
|
|
68176
70206
|
person: .5,
|
|
68177
70207
|
vehicle: .5,
|
|
@@ -69405,7 +71435,7 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
69405
71435
|
* A top-level persisted row with NO configuration is a leftover, not a
|
|
69406
71436
|
* device — quarantine it instead of dialling it.
|
|
69407
71437
|
*
|
|
69408
|
-
* Device
|
|
71438
|
+
* Device 105 was deleted, resurrected as a config-less shell by a write
|
|
69409
71439
|
* already in flight (D376), and then dialled at every single boot: eight
|
|
69410
71440
|
* `Failed to restore device — bounded retry scheduled` lines in one day,
|
|
69411
71441
|
* each one the same Zod refusal on `host` and `password`. The bound was
|
|
@@ -82657,7 +84687,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
82657
84687
|
state: [{
|
|
82658
84688
|
kind: "boolean",
|
|
82659
84689
|
field: "on",
|
|
82660
|
-
label: t("
|
|
84690
|
+
label: t("On", "Acceso"),
|
|
82661
84691
|
whenTrue: t("When {device} turns active", "Quando {device} si attiva"),
|
|
82662
84692
|
whenFalse: t("When {device} turns inactive", "Quando {device} si disattiva"),
|
|
82663
84693
|
icon: "toggle-right"
|
|
@@ -86287,7 +88317,6 @@ Object.freeze({
|
|
|
86287
88317
|
"smtp-provider": "email"
|
|
86288
88318
|
});
|
|
86289
88319
|
DeviceType.Camera;
|
|
86290
|
-
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;
|
|
86291
88320
|
/**
|
|
86292
88321
|
* A saved Customize assignment (D936). The schema is the type: callers use
|
|
86293
88322
|
* `z.infer`, they do not restate the shape.
|
|
@@ -86376,7 +88405,6 @@ object({
|
|
|
86376
88405
|
]),
|
|
86377
88406
|
reason: string().nullable()
|
|
86378
88407
|
});
|
|
86379
|
-
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
86380
88408
|
var G711_SCALE_CORRECTION_DB = {
|
|
86381
88409
|
PCMU: 20 * Math.log10(4),
|
|
86382
88410
|
PCMA: 20 * Math.log10(8)
|
|
@@ -86749,7 +88777,7 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
86749
88777
|
{
|
|
86750
88778
|
name: "summaryStreams",
|
|
86751
88779
|
label: "Summary: streams offline",
|
|
86752
|
-
example: "
|
|
88780
|
+
example: "Front door (high) — since 06:40",
|
|
86753
88781
|
kinds: ["stream-offline", "stream-online"]
|
|
86754
88782
|
},
|
|
86755
88783
|
{
|
|
@@ -86767,13 +88795,13 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
86767
88795
|
{
|
|
86768
88796
|
name: "summaryDetection",
|
|
86769
88797
|
label: "Summary: cameras detecting nothing",
|
|
86770
|
-
example: "
|
|
88798
|
+
example: "Front door — since 05:10",
|
|
86771
88799
|
kinds: ["detection-blind"]
|
|
86772
88800
|
},
|
|
86773
88801
|
{
|
|
86774
88802
|
name: "summaryNodes",
|
|
86775
88803
|
label: "Summary: nodes",
|
|
86776
|
-
example: "
|
|
88804
|
+
example: "agent-a — offline since 03:00",
|
|
86777
88805
|
kinds: [
|
|
86778
88806
|
"node-offline",
|
|
86779
88807
|
"node-online",
|
|
@@ -89578,7 +91606,7 @@ var amcrestCameraSchema = object({
|
|
|
89578
91606
|
*
|
|
89579
91607
|
* Empty = nothing configured, and `goHome` then REFUSES. It used to go to a
|
|
89580
91608
|
* hardcoded slot on a vendor "convention" this fleet contradicts: reolink
|
|
89581
|
-
* went to preset 0, which on device
|
|
91609
|
+
* went to preset 0, which on device 107 holds "stanza"; amcrest went to
|
|
89582
91610
|
* preset 1, which on device 3836 holds "Preset1". Both swallowed the failure
|
|
89583
91611
|
* in a bare catch, so a head that never moved was indistinguishable from a
|
|
89584
91612
|
* head that went home.
|