@camstack/addon-provider-amcrest 0.2.158 → 0.2.160
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 +2093 -58
- package/dist/addon.mjs +2093 -58
- package/package.json +7 -2
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({
|
|
@@ -57452,6 +59445,7 @@ var doorbellCustomize = {
|
|
|
57452
59445
|
applyAuthority: { kind: "composition-claim" },
|
|
57453
59446
|
eventName: "onPressed",
|
|
57454
59447
|
edges: ["rising"],
|
|
59448
|
+
defaultEdge: "rising",
|
|
57455
59449
|
timestampPath: "lastPressedAt",
|
|
57456
59450
|
counterPath: "pressCountSinceStart",
|
|
57457
59451
|
highWater: "composer-advance",
|
|
@@ -58405,7 +60399,10 @@ var humidifierCapability = {
|
|
|
58405
60399
|
*/
|
|
58406
60400
|
var HumiditySensorStatusSchema = object({
|
|
58407
60401
|
/** Current relative humidity, 0..100. */
|
|
58408
|
-
percent: number().min(0).max(100)
|
|
60402
|
+
percent: number().min(0).max(100).meta({
|
|
60403
|
+
unit: "%",
|
|
60404
|
+
label: "Humidity"
|
|
60405
|
+
}),
|
|
58409
60406
|
/** Ms epoch when the slice was last updated. */
|
|
58410
60407
|
lastFetchedAt: number(),
|
|
58411
60408
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -58447,7 +60444,12 @@ var humiditySensorCapability = {
|
|
|
58447
60444
|
} } },
|
|
58448
60445
|
/** Clock fields: written, but excluded from the compare that decides
|
|
58449
60446
|
* whether persisting is worth a SQLite commit. */
|
|
58450
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
60447
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
60448
|
+
customize: {
|
|
60449
|
+
version: 1,
|
|
60450
|
+
advanced: "derive",
|
|
60451
|
+
targets: []
|
|
60452
|
+
}
|
|
58451
60453
|
};
|
|
58452
60454
|
/**
|
|
58453
60455
|
* Image display cap. Models a single still image exposed by an integration —
|
|
@@ -62126,9 +64128,15 @@ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema)
|
|
|
62126
64128
|
*/
|
|
62127
64129
|
var PowerMeterStatusSchema = object({
|
|
62128
64130
|
/** Instantaneous power draw in watts. */
|
|
62129
|
-
watts: number().optional()
|
|
64131
|
+
watts: number().optional().meta({
|
|
64132
|
+
unit: "W",
|
|
64133
|
+
label: "Power"
|
|
64134
|
+
}),
|
|
62130
64135
|
/** Cumulative energy in kilowatt-hours since the meter was reset. */
|
|
62131
|
-
kwhTotal: number().optional()
|
|
64136
|
+
kwhTotal: number().optional().meta({
|
|
64137
|
+
unit: "kWh",
|
|
64138
|
+
label: "Energy"
|
|
64139
|
+
}),
|
|
62132
64140
|
/** Voltage in volts. */
|
|
62133
64141
|
volts: number().optional(),
|
|
62134
64142
|
/** Current in amperes. */
|
|
@@ -62213,7 +64221,12 @@ var powerMeterCapability = {
|
|
|
62213
64221
|
} },
|
|
62214
64222
|
/** Clock fields: written, but excluded from the compare that decides
|
|
62215
64223
|
* whether persisting is worth a SQLite commit. */
|
|
62216
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
64224
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
64225
|
+
customize: {
|
|
64226
|
+
version: 1,
|
|
64227
|
+
advanced: "derive",
|
|
64228
|
+
targets: []
|
|
64229
|
+
}
|
|
62217
64230
|
};
|
|
62218
64231
|
/**
|
|
62219
64232
|
* Presence cap. Models HA `person.*` and `device_tracker.*` entities
|
|
@@ -62658,9 +64671,9 @@ var PtzOptionsSchema = object({
|
|
|
62658
64671
|
* Reolink preset 0, Hikvision preset '1', Dahua preset 1 -- and on this fleet
|
|
62659
64672
|
* not one of the three cameras honours its own:
|
|
62660
64673
|
*
|
|
62661
|
-
*
|
|
62662
|
-
* 1438
|
|
62663
|
-
* 3836
|
|
64674
|
+
* 107 Camera camera Carol (reolink) preset 0 holds "stanza"
|
|
64675
|
+
* 1438 Camera dispensa (hikvision) preset 1 holds "Credenza"
|
|
64676
|
+
* 3836 Camera studio (amcrest) preset 1 holds "Preset1"
|
|
62664
64677
|
*
|
|
62665
64678
|
* So `goHome` meant "go wherever the operator happened to save in slot 0 or 1",
|
|
62666
64679
|
* and two of the three swallowed the failure in a bare `catch`. For autotrack
|
|
@@ -62993,7 +65006,7 @@ var RunningStateStatusSchema = object({
|
|
|
62993
65006
|
running: boolean().nullable(),
|
|
62994
65007
|
/** Epoch ms the current boolean began; null while `running` is null. */
|
|
62995
65008
|
since: number().nullable(),
|
|
62996
|
-
source: RunningStateSourceSchema,
|
|
65009
|
+
source: RunningStateSourceSchema.meta({ label: "Source" }),
|
|
62997
65010
|
phase: string().nullable(),
|
|
62998
65011
|
/** null until a reading has been published (D393). */
|
|
62999
65012
|
lastFetchedAt: number().nullable()
|
|
@@ -63007,6 +65020,7 @@ var RUNNING_DEVICE_TYPES = Object.values(DeviceType);
|
|
|
63007
65020
|
/** Generic Customize target for the running boolean (D936). */
|
|
63008
65021
|
var runningCustomize = {
|
|
63009
65022
|
version: 1,
|
|
65023
|
+
advanced: "derive",
|
|
63010
65024
|
targets: [{
|
|
63011
65025
|
id: "running",
|
|
63012
65026
|
cardinality: "scalar",
|
|
@@ -63042,6 +65056,7 @@ var runningCustomize = {
|
|
|
63042
65056
|
requiredUnit: "W",
|
|
63043
65057
|
transforms: [{
|
|
63044
65058
|
kind: "threshold",
|
|
65059
|
+
comparisons: ["gte", "lte"],
|
|
63045
65060
|
comparison: "gte",
|
|
63046
65061
|
defaultThreshold: 5,
|
|
63047
65062
|
defaultStartDwellMs: RUNNING_POWER_START_DELAY_MS,
|
|
@@ -63145,7 +65160,7 @@ var RecordingAvailabilitySchema = object({
|
|
|
63145
65160
|
* would look identical. But the answer used to say nothing about that, so a
|
|
63146
65161
|
* caller asking "what can I export?" read the single preferred profile as
|
|
63147
65162
|
* the only one that exists — on this deployment every camera records `high`
|
|
63148
|
-
* AND `low`, the low tree holding 14 GB for camera
|
|
65163
|
+
* AND `low`, the low tree holding 14 GB for camera 101 alone, and the export
|
|
63149
65164
|
* UI could not see it.
|
|
63150
65165
|
*
|
|
63151
65166
|
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
@@ -63244,7 +65259,7 @@ var RecordingSourceOptionsSchema = object({
|
|
|
63244
65259
|
* `sparse` = gaps are the absence of one, and must be drawn as such.
|
|
63245
65260
|
*
|
|
63246
65261
|
* Not an onboard-only concession: measured 2026-09-24, OUR bar covers 98.8 %
|
|
63247
|
-
* of
|
|
65262
|
+
* of 107's day and 1.2 % of 1436's. It is a fact about a (source, camera)
|
|
63248
65263
|
* pair, and ours answers it per camera from `deriveRecordingMode`. */
|
|
63249
65264
|
coverage: _enum(["continuous", "sparse"]),
|
|
63250
65265
|
/** Where the playhead may be put.
|
|
@@ -63320,7 +65335,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(RecordingSourceS
|
|
|
63320
65335
|
* merely discouraged (D554 amended).
|
|
63321
65336
|
*
|
|
63322
65337
|
* It was learned the expensive way on `videoclips.listClips`: measured
|
|
63323
|
-
* on the live hub 2026-09-20, device
|
|
65338
|
+
* on the live hub 2026-09-20, device 107 bound to `recorder` AND
|
|
63324
65339
|
* `provider-reolink`, a bare call with `limit: 3` answered SIX rows,
|
|
63325
65340
|
* three from each source, merged — `device-collection-dispatch.ts`
|
|
63326
65341
|
* leaves an unpinned fan-out un-narrowed, so absence buys the union the
|
|
@@ -63921,7 +65936,7 @@ var ExportSpeedSchema = number().min(.25).max(32);
|
|
|
63921
65936
|
* on a 10 h window holding 29,393 s of footage every range landed late by the
|
|
63922
65937
|
* gap accumulated before it — up to 6,607 s, well past EOF. Nothing matched,
|
|
63923
65938
|
* 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
|
|
65939
|
+
* that had been ASKED for (2026-08-13, export `57d14363`, camera 101).
|
|
63925
65940
|
*
|
|
63926
65941
|
* Relative and not absolute epoch, because an absolute epoch would make every
|
|
63927
65942
|
* call site responsible for the same subtraction.
|
|
@@ -64738,7 +66753,7 @@ getStatus: method(object({ deviceId: number() }), RecordingSignalStatusSchema) }
|
|
|
64738
66753
|
* which put a "Scenes" tab on one camera's detail page. That is the wrong shape
|
|
64739
66754
|
* for the thing: a scene is a standing question about the property ("is the bin
|
|
64740
66755
|
* still out"), and the operator's question is "which of my scenes have tripped",
|
|
64741
|
-
* across every camera at once — not "what does camera
|
|
66756
|
+
* across every camera at once — not "what does camera 102 think". Buried one
|
|
64742
66757
|
* camera deep it also could not be found. The surface is now a top-level admin
|
|
64743
66758
|
* page (`/scenes`, `pages/Scenes.tsx`) that lists every scene on every camera and
|
|
64744
66759
|
* picks the camera inside the create flow, the same shape Events and Faces have.
|
|
@@ -65795,7 +67810,7 @@ function buildStreamParamsConfigSchema(options, status) {
|
|
|
65795
67810
|
* `getSettingsUISchema()` surface.
|
|
65796
67811
|
*/
|
|
65797
67812
|
var SwitchStatusSchema = object({
|
|
65798
|
-
on: boolean(),
|
|
67813
|
+
on: boolean().meta({ label: "On" }),
|
|
65799
67814
|
/** Ms epoch of the last state change. Useful for UI "X minutes ago". */
|
|
65800
67815
|
lastChangedAt: number()
|
|
65801
67816
|
});
|
|
@@ -65854,7 +67869,12 @@ var switchCapability = {
|
|
|
65854
67869
|
label: "On",
|
|
65855
67870
|
kind: "boolean"
|
|
65856
67871
|
}
|
|
65857
|
-
}] }
|
|
67872
|
+
}] },
|
|
67873
|
+
customize: {
|
|
67874
|
+
version: 1,
|
|
67875
|
+
advanced: "derive",
|
|
67876
|
+
targets: []
|
|
67877
|
+
}
|
|
65858
67878
|
};
|
|
65859
67879
|
/** C0 controls, DEL and the C1 range: none of them belongs in a name. */
|
|
65860
67880
|
function hasControlCharacter(value) {
|
|
@@ -66450,7 +68470,10 @@ var tamperCapability = {
|
|
|
66450
68470
|
*/
|
|
66451
68471
|
var TemperatureSensorStatusSchema = object({
|
|
66452
68472
|
/** Current temperature in Celsius. */
|
|
66453
|
-
celsius: number()
|
|
68473
|
+
celsius: number().meta({
|
|
68474
|
+
unit: "°C",
|
|
68475
|
+
label: "Temperature"
|
|
68476
|
+
}),
|
|
66454
68477
|
/** Ms epoch when the slice was last updated (push or poll). */
|
|
66455
68478
|
lastFetchedAt: number(),
|
|
66456
68479
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -66493,7 +68516,12 @@ var temperatureSensorCapability = {
|
|
|
66493
68516
|
} } },
|
|
66494
68517
|
/** Clock fields: written, but excluded from the compare that decides
|
|
66495
68518
|
* whether persisting is worth a SQLite commit. */
|
|
66496
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
68519
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
68520
|
+
customize: {
|
|
68521
|
+
version: 1,
|
|
68522
|
+
advanced: "derive",
|
|
68523
|
+
targets: []
|
|
68524
|
+
}
|
|
66497
68525
|
};
|
|
66498
68526
|
/**
|
|
66499
68527
|
* toast — system-scoped singleton capability that streams toast
|
|
@@ -68172,6 +70200,10 @@ function withClipEventLabels(provider, deps) {
|
|
|
68172
70200
|
};
|
|
68173
70201
|
}
|
|
68174
70202
|
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
70203
|
+
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;
|
|
70204
|
+
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
70205
|
+
DeviceRole.BinarySensor, DeviceRole.MotionSensor;
|
|
70206
|
+
new Set(CAP_NAMES);
|
|
68175
70207
|
Object.freeze({
|
|
68176
70208
|
person: .5,
|
|
68177
70209
|
vehicle: .5,
|
|
@@ -69405,7 +71437,7 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
69405
71437
|
* A top-level persisted row with NO configuration is a leftover, not a
|
|
69406
71438
|
* device — quarantine it instead of dialling it.
|
|
69407
71439
|
*
|
|
69408
|
-
* Device
|
|
71440
|
+
* Device 105 was deleted, resurrected as a config-less shell by a write
|
|
69409
71441
|
* already in flight (D376), and then dialled at every single boot: eight
|
|
69410
71442
|
* `Failed to restore device — bounded retry scheduled` lines in one day,
|
|
69411
71443
|
* each one the same Zod refusal on `host` and `password`. The bound was
|
|
@@ -82657,7 +84689,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
82657
84689
|
state: [{
|
|
82658
84690
|
kind: "boolean",
|
|
82659
84691
|
field: "on",
|
|
82660
|
-
label: t("
|
|
84692
|
+
label: t("On", "Acceso"),
|
|
82661
84693
|
whenTrue: t("When {device} turns active", "Quando {device} si attiva"),
|
|
82662
84694
|
whenFalse: t("When {device} turns inactive", "Quando {device} si disattiva"),
|
|
82663
84695
|
icon: "toggle-right"
|
|
@@ -86287,7 +88319,6 @@ Object.freeze({
|
|
|
86287
88319
|
"smtp-provider": "email"
|
|
86288
88320
|
});
|
|
86289
88321
|
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
88322
|
/**
|
|
86292
88323
|
* A saved Customize assignment (D936). The schema is the type: callers use
|
|
86293
88324
|
* `z.infer`, they do not restate the shape.
|
|
@@ -86344,6 +88375,11 @@ var PulseOverrideDraftSchema = object({
|
|
|
86344
88375
|
targetId: string().min(1),
|
|
86345
88376
|
enabled: boolean(),
|
|
86346
88377
|
debounceMs: number().nonnegative(),
|
|
88378
|
+
edges: array(_enum([
|
|
88379
|
+
"rising",
|
|
88380
|
+
"button",
|
|
88381
|
+
"native-event"
|
|
88382
|
+
])).min(1).optional(),
|
|
86347
88383
|
sources: array(OverrideSourceSchema).min(1)
|
|
86348
88384
|
});
|
|
86349
88385
|
var SpanSourceDraftSchema = OverrideSourceSchema.extend({ mode: _enum([
|
|
@@ -86376,7 +88412,6 @@ object({
|
|
|
86376
88412
|
]),
|
|
86377
88413
|
reason: string().nullable()
|
|
86378
88414
|
});
|
|
86379
|
-
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
86380
88415
|
var G711_SCALE_CORRECTION_DB = {
|
|
86381
88416
|
PCMU: 20 * Math.log10(4),
|
|
86382
88417
|
PCMA: 20 * Math.log10(8)
|
|
@@ -86749,7 +88784,7 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
86749
88784
|
{
|
|
86750
88785
|
name: "summaryStreams",
|
|
86751
88786
|
label: "Summary: streams offline",
|
|
86752
|
-
example: "
|
|
88787
|
+
example: "Front door (high) — since 06:40",
|
|
86753
88788
|
kinds: ["stream-offline", "stream-online"]
|
|
86754
88789
|
},
|
|
86755
88790
|
{
|
|
@@ -86767,13 +88802,13 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
86767
88802
|
{
|
|
86768
88803
|
name: "summaryDetection",
|
|
86769
88804
|
label: "Summary: cameras detecting nothing",
|
|
86770
|
-
example: "
|
|
88805
|
+
example: "Front door — since 05:10",
|
|
86771
88806
|
kinds: ["detection-blind"]
|
|
86772
88807
|
},
|
|
86773
88808
|
{
|
|
86774
88809
|
name: "summaryNodes",
|
|
86775
88810
|
label: "Summary: nodes",
|
|
86776
|
-
example: "
|
|
88811
|
+
example: "agent-a — offline since 03:00",
|
|
86777
88812
|
kinds: [
|
|
86778
88813
|
"node-offline",
|
|
86779
88814
|
"node-online",
|
|
@@ -89578,7 +91613,7 @@ var amcrestCameraSchema = object({
|
|
|
89578
91613
|
*
|
|
89579
91614
|
* Empty = nothing configured, and `goHome` then REFUSES. It used to go to a
|
|
89580
91615
|
* hardcoded slot on a vendor "convention" this fleet contradicts: reolink
|
|
89581
|
-
* went to preset 0, which on device
|
|
91616
|
+
* went to preset 0, which on device 107 holds "stanza"; amcrest went to
|
|
89582
91617
|
* preset 1, which on device 3836 holds "Preset1". Both swallowed the failure
|
|
89583
91618
|
* in a bare catch, so a head that never moved was indistinguishable from a
|
|
89584
91619
|
* head that went home.
|