@camstack/addon-agent-ui 1.2.266 → 1.2.268
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/addon.js +2047 -51
- package/dist/assets/{MotionZonesSettings-CYFttD5V.js → MotionZonesSettings-DbG5AV8G.js} +1 -1
- package/dist/assets/{PrivacyMaskSettings-GEK-fRZ4.js → PrivacyMaskSettings-DyBKtvnH.js} +1 -1
- package/dist/assets/{SceneMonitorEditor-B843h7k3.js → SceneMonitorEditor-DH8ct6Mh.js} +1 -1
- package/dist/assets/index-Ddl4oLwW.js +112 -0
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/assets/index-XNs7KrPB.js +0 -112
package/dist/addon.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
|
-
//#region ../types/dist/event-category-
|
|
3
|
+
//#region ../types/dist/event-category-DHXxB8t9.mjs
|
|
4
4
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
5
5
|
EventCategory["SystemBoot"] = "system.boot";
|
|
6
6
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -296,7 +296,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
296
296
|
* TRANSITION into that state (never per dispatch), and the node is dropped
|
|
297
297
|
* from the placement candidate set for as long as it holds.
|
|
298
298
|
*
|
|
299
|
-
* This exists because the state was previously invisible:
|
|
299
|
+
* This exists because the state was previously invisible: agent-a
|
|
300
300
|
* absorbed 283k inference errors in a day while still being handed cameras,
|
|
301
301
|
* and nothing in the system said so.
|
|
302
302
|
*
|
|
@@ -5435,7 +5435,7 @@ var ZodIssueCode = {
|
|
|
5435
5435
|
var ZodFirstPartyTypeKind;
|
|
5436
5436
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5437
5437
|
//#endregion
|
|
5438
|
-
//#region ../types/dist/sleep-
|
|
5438
|
+
//#region ../types/dist/sleep-BErAxhul.mjs
|
|
5439
5439
|
/**
|
|
5440
5440
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5441
5441
|
* window to float samples (D455).
|
|
@@ -8405,6 +8405,1980 @@ method(object({ deviceId: number() }), array(StreamSourceEntrySchema)), method(o
|
|
|
8405
8405
|
kind: "mutation",
|
|
8406
8406
|
auth: "admin"
|
|
8407
8407
|
}), method(object({ deviceId: number() }), unknown().nullable()), method(object({ deviceId: number() }), RawStateResultSchema.nullable(), { auth: "protected" });
|
|
8408
|
+
Object.freeze({ "doorbell": "lastPressedAt" });
|
|
8409
|
+
/** Every capability name, so addon code can check a name without the schema graph. */
|
|
8410
|
+
var CAP_NAMES = Object.freeze([
|
|
8411
|
+
"accessories",
|
|
8412
|
+
"addon-pages",
|
|
8413
|
+
"addon-pages-source",
|
|
8414
|
+
"addon-routes",
|
|
8415
|
+
"addon-settings",
|
|
8416
|
+
"addon-widgets",
|
|
8417
|
+
"addon-widgets-source",
|
|
8418
|
+
"addons",
|
|
8419
|
+
"admin-ui",
|
|
8420
|
+
"air-quality-sensor",
|
|
8421
|
+
"alarm-panel",
|
|
8422
|
+
"alerts",
|
|
8423
|
+
"ambient-light-sensor",
|
|
8424
|
+
"audio-analysis",
|
|
8425
|
+
"audio-analyzer",
|
|
8426
|
+
"audio-codec",
|
|
8427
|
+
"audio-metrics",
|
|
8428
|
+
"auth-provider",
|
|
8429
|
+
"automation-control",
|
|
8430
|
+
"backup",
|
|
8431
|
+
"battery",
|
|
8432
|
+
"binary",
|
|
8433
|
+
"brightness",
|
|
8434
|
+
"broker",
|
|
8435
|
+
"button",
|
|
8436
|
+
"calendar-source",
|
|
8437
|
+
"calendars",
|
|
8438
|
+
"camera-credentials",
|
|
8439
|
+
"camera-grid-layout",
|
|
8440
|
+
"camera-pipeline-config",
|
|
8441
|
+
"camera-streams",
|
|
8442
|
+
"carbon-monoxide",
|
|
8443
|
+
"climate-control",
|
|
8444
|
+
"color",
|
|
8445
|
+
"composer",
|
|
8446
|
+
"connection-test",
|
|
8447
|
+
"connectivity",
|
|
8448
|
+
"consumables",
|
|
8449
|
+
"contact",
|
|
8450
|
+
"control",
|
|
8451
|
+
"core-blocks",
|
|
8452
|
+
"cover",
|
|
8453
|
+
"custom-model-registry",
|
|
8454
|
+
"data-store-provider",
|
|
8455
|
+
"database-snapshot",
|
|
8456
|
+
"day-night",
|
|
8457
|
+
"decoder",
|
|
8458
|
+
"detection-pipeline",
|
|
8459
|
+
"device-admin-link",
|
|
8460
|
+
"device-adoption",
|
|
8461
|
+
"device-credentials",
|
|
8462
|
+
"device-discovery",
|
|
8463
|
+
"device-export",
|
|
8464
|
+
"device-extension",
|
|
8465
|
+
"device-history",
|
|
8466
|
+
"device-manager",
|
|
8467
|
+
"device-ops",
|
|
8468
|
+
"device-provider",
|
|
8469
|
+
"device-removal-hook",
|
|
8470
|
+
"device-state",
|
|
8471
|
+
"device-status",
|
|
8472
|
+
"dishwasher",
|
|
8473
|
+
"display-palette",
|
|
8474
|
+
"doorbell",
|
|
8475
|
+
"embedding-encoder",
|
|
8476
|
+
"enum-sensor",
|
|
8477
|
+
"event-emitter",
|
|
8478
|
+
"face-gallery",
|
|
8479
|
+
"failure-contribution",
|
|
8480
|
+
"fan-control",
|
|
8481
|
+
"feature-probe",
|
|
8482
|
+
"filesystem-browse",
|
|
8483
|
+
"flood",
|
|
8484
|
+
"gas",
|
|
8485
|
+
"heating-valve",
|
|
8486
|
+
"humidifier",
|
|
8487
|
+
"humidity-sensor",
|
|
8488
|
+
"image",
|
|
8489
|
+
"image-settings",
|
|
8490
|
+
"integrations",
|
|
8491
|
+
"intercom",
|
|
8492
|
+
"keychain",
|
|
8493
|
+
"keychain-admin",
|
|
8494
|
+
"lawn-mower-control",
|
|
8495
|
+
"llm",
|
|
8496
|
+
"llm-runtime",
|
|
8497
|
+
"load-contribution",
|
|
8498
|
+
"local-network",
|
|
8499
|
+
"lock-control",
|
|
8500
|
+
"log-channels",
|
|
8501
|
+
"log-destination",
|
|
8502
|
+
"login-method",
|
|
8503
|
+
"media-player",
|
|
8504
|
+
"mesh-network",
|
|
8505
|
+
"metrics-provider",
|
|
8506
|
+
"model-convert",
|
|
8507
|
+
"model-distributor",
|
|
8508
|
+
"motion",
|
|
8509
|
+
"motion-detection",
|
|
8510
|
+
"motion-trigger",
|
|
8511
|
+
"motion-zones",
|
|
8512
|
+
"mqtt-broker",
|
|
8513
|
+
"native-object-detection",
|
|
8514
|
+
"navigation",
|
|
8515
|
+
"network-access",
|
|
8516
|
+
"network-link",
|
|
8517
|
+
"network-quality",
|
|
8518
|
+
"node-certificates",
|
|
8519
|
+
"nodes",
|
|
8520
|
+
"notification-output",
|
|
8521
|
+
"notification-rules",
|
|
8522
|
+
"notifier",
|
|
8523
|
+
"numeric-sensor",
|
|
8524
|
+
"oauth-integration",
|
|
8525
|
+
"oidc-connections",
|
|
8526
|
+
"osd",
|
|
8527
|
+
"osd-manager",
|
|
8528
|
+
"pet-feeder",
|
|
8529
|
+
"pipeline-analytics",
|
|
8530
|
+
"pipeline-executor",
|
|
8531
|
+
"pipeline-orchestrator",
|
|
8532
|
+
"pipeline-runner",
|
|
8533
|
+
"plate-gallery",
|
|
8534
|
+
"platform-probe",
|
|
8535
|
+
"power-meter",
|
|
8536
|
+
"presence",
|
|
8537
|
+
"pressure-sensor",
|
|
8538
|
+
"privacy-mask",
|
|
8539
|
+
"ptz",
|
|
8540
|
+
"ptz-autotrack",
|
|
8541
|
+
"reboot",
|
|
8542
|
+
"record-entries",
|
|
8543
|
+
"recording",
|
|
8544
|
+
"recording-archive",
|
|
8545
|
+
"recording-export",
|
|
8546
|
+
"recording-onboard",
|
|
8547
|
+
"recording-signal",
|
|
8548
|
+
"records",
|
|
8549
|
+
"running-state",
|
|
8550
|
+
"scene-monitor",
|
|
8551
|
+
"script-runner",
|
|
8552
|
+
"server-management",
|
|
8553
|
+
"settings-store",
|
|
8554
|
+
"smoke",
|
|
8555
|
+
"smtp-provider",
|
|
8556
|
+
"snapshot",
|
|
8557
|
+
"sso-bridge",
|
|
8558
|
+
"storage",
|
|
8559
|
+
"storage-admin",
|
|
8560
|
+
"storage-evictable",
|
|
8561
|
+
"storage-migration",
|
|
8562
|
+
"storage-occupancy",
|
|
8563
|
+
"storage-provider",
|
|
8564
|
+
"stream-broker",
|
|
8565
|
+
"stream-catalog",
|
|
8566
|
+
"stream-params",
|
|
8567
|
+
"stream-signals",
|
|
8568
|
+
"switch",
|
|
8569
|
+
"system",
|
|
8570
|
+
"tamper",
|
|
8571
|
+
"temperature-sensor",
|
|
8572
|
+
"terminal-session",
|
|
8573
|
+
"toast",
|
|
8574
|
+
"training",
|
|
8575
|
+
"training-provider",
|
|
8576
|
+
"turn-provider",
|
|
8577
|
+
"update",
|
|
8578
|
+
"user-management",
|
|
8579
|
+
"user-passkeys",
|
|
8580
|
+
"vacuum-control",
|
|
8581
|
+
"valve",
|
|
8582
|
+
"vector-store",
|
|
8583
|
+
"vibration",
|
|
8584
|
+
"videoclips",
|
|
8585
|
+
"viewer-ui",
|
|
8586
|
+
"water-heater",
|
|
8587
|
+
"weather",
|
|
8588
|
+
"webrtc-session",
|
|
8589
|
+
"zone-analytics",
|
|
8590
|
+
"zone-rules",
|
|
8591
|
+
"zones"
|
|
8592
|
+
]);
|
|
8593
|
+
Object.freeze({
|
|
8594
|
+
"air-quality-sensor": [
|
|
8595
|
+
{
|
|
8596
|
+
"path": "co2Ppm",
|
|
8597
|
+
"valueType": "number"
|
|
8598
|
+
},
|
|
8599
|
+
{
|
|
8600
|
+
"path": "vocPpb",
|
|
8601
|
+
"valueType": "number"
|
|
8602
|
+
},
|
|
8603
|
+
{
|
|
8604
|
+
"path": "pm25",
|
|
8605
|
+
"valueType": "number"
|
|
8606
|
+
},
|
|
8607
|
+
{
|
|
8608
|
+
"path": "pm10",
|
|
8609
|
+
"valueType": "number"
|
|
8610
|
+
},
|
|
8611
|
+
{
|
|
8612
|
+
"path": "aqi",
|
|
8613
|
+
"valueType": "number"
|
|
8614
|
+
},
|
|
8615
|
+
{
|
|
8616
|
+
"path": "unit",
|
|
8617
|
+
"valueType": "string"
|
|
8618
|
+
},
|
|
8619
|
+
{
|
|
8620
|
+
"path": "precision",
|
|
8621
|
+
"valueType": "number"
|
|
8622
|
+
}
|
|
8623
|
+
],
|
|
8624
|
+
"alarm-panel": [
|
|
8625
|
+
{
|
|
8626
|
+
"path": "state",
|
|
8627
|
+
"valueType": "enum",
|
|
8628
|
+
"enumValues": [
|
|
8629
|
+
"disarmed",
|
|
8630
|
+
"armed_home",
|
|
8631
|
+
"armed_away",
|
|
8632
|
+
"armed_night",
|
|
8633
|
+
"armed_vacation",
|
|
8634
|
+
"armed_custom_bypass",
|
|
8635
|
+
"arming",
|
|
8636
|
+
"disarming",
|
|
8637
|
+
"pending",
|
|
8638
|
+
"triggered"
|
|
8639
|
+
]
|
|
8640
|
+
},
|
|
8641
|
+
{
|
|
8642
|
+
"path": "targetMode",
|
|
8643
|
+
"valueType": "enum",
|
|
8644
|
+
"enumValues": [
|
|
8645
|
+
"home",
|
|
8646
|
+
"away",
|
|
8647
|
+
"night",
|
|
8648
|
+
"vacation",
|
|
8649
|
+
"custom_bypass"
|
|
8650
|
+
]
|
|
8651
|
+
},
|
|
8652
|
+
{
|
|
8653
|
+
"path": "requiresCode",
|
|
8654
|
+
"valueType": "boolean"
|
|
8655
|
+
}
|
|
8656
|
+
],
|
|
8657
|
+
"ambient-light-sensor": [
|
|
8658
|
+
{
|
|
8659
|
+
"path": "lux",
|
|
8660
|
+
"valueType": "number"
|
|
8661
|
+
},
|
|
8662
|
+
{
|
|
8663
|
+
"path": "unit",
|
|
8664
|
+
"valueType": "string"
|
|
8665
|
+
},
|
|
8666
|
+
{
|
|
8667
|
+
"path": "precision",
|
|
8668
|
+
"valueType": "number"
|
|
8669
|
+
}
|
|
8670
|
+
],
|
|
8671
|
+
"audio-metrics": [
|
|
8672
|
+
{
|
|
8673
|
+
"path": "ts",
|
|
8674
|
+
"valueType": "number"
|
|
8675
|
+
},
|
|
8676
|
+
{
|
|
8677
|
+
"path": "windowSec",
|
|
8678
|
+
"valueType": "number"
|
|
8679
|
+
},
|
|
8680
|
+
{
|
|
8681
|
+
"path": "level.rms",
|
|
8682
|
+
"valueType": "number"
|
|
8683
|
+
},
|
|
8684
|
+
{
|
|
8685
|
+
"path": "level.dbfs",
|
|
8686
|
+
"valueType": "number"
|
|
8687
|
+
},
|
|
8688
|
+
{
|
|
8689
|
+
"path": "peakDbfs",
|
|
8690
|
+
"valueType": "number"
|
|
8691
|
+
},
|
|
8692
|
+
{
|
|
8693
|
+
"path": "avgDbfs",
|
|
8694
|
+
"valueType": "number"
|
|
8695
|
+
},
|
|
8696
|
+
{
|
|
8697
|
+
"path": "current.className",
|
|
8698
|
+
"valueType": "string"
|
|
8699
|
+
},
|
|
8700
|
+
{
|
|
8701
|
+
"path": "current.score",
|
|
8702
|
+
"valueType": "number"
|
|
8703
|
+
},
|
|
8704
|
+
{
|
|
8705
|
+
"path": "current.timestamp",
|
|
8706
|
+
"valueType": "number"
|
|
8707
|
+
}
|
|
8708
|
+
],
|
|
8709
|
+
"automation-control": [
|
|
8710
|
+
{
|
|
8711
|
+
"path": "enabled",
|
|
8712
|
+
"valueType": "boolean"
|
|
8713
|
+
},
|
|
8714
|
+
{
|
|
8715
|
+
"path": "isRunning",
|
|
8716
|
+
"valueType": "boolean"
|
|
8717
|
+
},
|
|
8718
|
+
{
|
|
8719
|
+
"path": "lastTriggeredAt",
|
|
8720
|
+
"valueType": "number"
|
|
8721
|
+
},
|
|
8722
|
+
{
|
|
8723
|
+
"path": "lastError",
|
|
8724
|
+
"valueType": "string"
|
|
8725
|
+
}
|
|
8726
|
+
],
|
|
8727
|
+
"battery": [
|
|
8728
|
+
{
|
|
8729
|
+
"path": "percentage",
|
|
8730
|
+
"valueType": "number"
|
|
8731
|
+
},
|
|
8732
|
+
{
|
|
8733
|
+
"path": "charging",
|
|
8734
|
+
"valueType": "enum",
|
|
8735
|
+
"enumValues": [
|
|
8736
|
+
"dc",
|
|
8737
|
+
"solar",
|
|
8738
|
+
"none",
|
|
8739
|
+
"unknown"
|
|
8740
|
+
]
|
|
8741
|
+
},
|
|
8742
|
+
{
|
|
8743
|
+
"path": "sleeping",
|
|
8744
|
+
"valueType": "boolean"
|
|
8745
|
+
},
|
|
8746
|
+
{
|
|
8747
|
+
"path": "lastUpdated",
|
|
8748
|
+
"valueType": "number"
|
|
8749
|
+
},
|
|
8750
|
+
{
|
|
8751
|
+
"path": "lastContactAt",
|
|
8752
|
+
"valueType": "number"
|
|
8753
|
+
},
|
|
8754
|
+
{
|
|
8755
|
+
"path": "lastFullRefreshAt",
|
|
8756
|
+
"valueType": "number"
|
|
8757
|
+
},
|
|
8758
|
+
{
|
|
8759
|
+
"path": "binary",
|
|
8760
|
+
"valueType": "boolean"
|
|
8761
|
+
}
|
|
8762
|
+
],
|
|
8763
|
+
"binary": [{
|
|
8764
|
+
"path": "on",
|
|
8765
|
+
"valueType": "boolean"
|
|
8766
|
+
}],
|
|
8767
|
+
"brightness": [{
|
|
8768
|
+
"path": "percentage",
|
|
8769
|
+
"valueType": "number"
|
|
8770
|
+
}],
|
|
8771
|
+
"broker": [{
|
|
8772
|
+
"path": "brokerCount",
|
|
8773
|
+
"valueType": "number"
|
|
8774
|
+
}, {
|
|
8775
|
+
"path": "connectedCount",
|
|
8776
|
+
"valueType": "number"
|
|
8777
|
+
}],
|
|
8778
|
+
"camera-credentials": [
|
|
8779
|
+
{
|
|
8780
|
+
"path": "host",
|
|
8781
|
+
"valueType": "string"
|
|
8782
|
+
},
|
|
8783
|
+
{
|
|
8784
|
+
"path": "port",
|
|
8785
|
+
"valueType": "number"
|
|
8786
|
+
},
|
|
8787
|
+
{
|
|
8788
|
+
"path": "onvifPort",
|
|
8789
|
+
"valueType": "number"
|
|
8790
|
+
},
|
|
8791
|
+
{
|
|
8792
|
+
"path": "rtspPort",
|
|
8793
|
+
"valueType": "number"
|
|
8794
|
+
},
|
|
8795
|
+
{
|
|
8796
|
+
"path": "https",
|
|
8797
|
+
"valueType": "boolean"
|
|
8798
|
+
},
|
|
8799
|
+
{
|
|
8800
|
+
"path": "hasUsername",
|
|
8801
|
+
"valueType": "boolean"
|
|
8802
|
+
},
|
|
8803
|
+
{
|
|
8804
|
+
"path": "hasPassword",
|
|
8805
|
+
"valueType": "boolean"
|
|
8806
|
+
},
|
|
8807
|
+
{
|
|
8808
|
+
"path": "onvifProfile",
|
|
8809
|
+
"valueType": "string"
|
|
8810
|
+
}
|
|
8811
|
+
],
|
|
8812
|
+
"camera-streams": [
|
|
8813
|
+
{
|
|
8814
|
+
"path": "online",
|
|
8815
|
+
"valueType": "boolean"
|
|
8816
|
+
},
|
|
8817
|
+
{
|
|
8818
|
+
"path": "slotStatuses.high",
|
|
8819
|
+
"valueType": "enum",
|
|
8820
|
+
"enumValues": [
|
|
8821
|
+
"unassigned",
|
|
8822
|
+
"idle",
|
|
8823
|
+
"connecting",
|
|
8824
|
+
"streaming",
|
|
8825
|
+
"error"
|
|
8826
|
+
]
|
|
8827
|
+
},
|
|
8828
|
+
{
|
|
8829
|
+
"path": "slotStatuses.mid",
|
|
8830
|
+
"valueType": "enum",
|
|
8831
|
+
"enumValues": [
|
|
8832
|
+
"unassigned",
|
|
8833
|
+
"idle",
|
|
8834
|
+
"connecting",
|
|
8835
|
+
"streaming",
|
|
8836
|
+
"error"
|
|
8837
|
+
]
|
|
8838
|
+
},
|
|
8839
|
+
{
|
|
8840
|
+
"path": "slotStatuses.low",
|
|
8841
|
+
"valueType": "enum",
|
|
8842
|
+
"enumValues": [
|
|
8843
|
+
"unassigned",
|
|
8844
|
+
"idle",
|
|
8845
|
+
"connecting",
|
|
8846
|
+
"streaming",
|
|
8847
|
+
"error"
|
|
8848
|
+
]
|
|
8849
|
+
},
|
|
8850
|
+
{
|
|
8851
|
+
"path": "slotErrors.high",
|
|
8852
|
+
"valueType": "string"
|
|
8853
|
+
},
|
|
8854
|
+
{
|
|
8855
|
+
"path": "slotErrors.mid",
|
|
8856
|
+
"valueType": "string"
|
|
8857
|
+
},
|
|
8858
|
+
{
|
|
8859
|
+
"path": "slotErrors.low",
|
|
8860
|
+
"valueType": "string"
|
|
8861
|
+
}
|
|
8862
|
+
],
|
|
8863
|
+
"carbon-monoxide": [{
|
|
8864
|
+
"path": "detected",
|
|
8865
|
+
"valueType": "boolean"
|
|
8866
|
+
}],
|
|
8867
|
+
"climate-control": [
|
|
8868
|
+
{
|
|
8869
|
+
"path": "mode",
|
|
8870
|
+
"valueType": "enum",
|
|
8871
|
+
"enumValues": [
|
|
8872
|
+
"off",
|
|
8873
|
+
"heat",
|
|
8874
|
+
"cool",
|
|
8875
|
+
"auto",
|
|
8876
|
+
"heat_cool",
|
|
8877
|
+
"fan_only",
|
|
8878
|
+
"dry"
|
|
8879
|
+
]
|
|
8880
|
+
},
|
|
8881
|
+
{
|
|
8882
|
+
"path": "fanMode",
|
|
8883
|
+
"valueType": "string"
|
|
8884
|
+
},
|
|
8885
|
+
{
|
|
8886
|
+
"path": "preset",
|
|
8887
|
+
"valueType": "string"
|
|
8888
|
+
},
|
|
8889
|
+
{
|
|
8890
|
+
"path": "target",
|
|
8891
|
+
"valueType": "number"
|
|
8892
|
+
},
|
|
8893
|
+
{
|
|
8894
|
+
"path": "targetHigh",
|
|
8895
|
+
"valueType": "number"
|
|
8896
|
+
},
|
|
8897
|
+
{
|
|
8898
|
+
"path": "targetLow",
|
|
8899
|
+
"valueType": "number"
|
|
8900
|
+
},
|
|
8901
|
+
{
|
|
8902
|
+
"path": "targetHumidity",
|
|
8903
|
+
"valueType": "number"
|
|
8904
|
+
},
|
|
8905
|
+
{
|
|
8906
|
+
"path": "currentTemp",
|
|
8907
|
+
"valueType": "number"
|
|
8908
|
+
},
|
|
8909
|
+
{
|
|
8910
|
+
"path": "currentHumidity",
|
|
8911
|
+
"valueType": "number"
|
|
8912
|
+
},
|
|
8913
|
+
{
|
|
8914
|
+
"path": "swingVertical",
|
|
8915
|
+
"valueType": "boolean"
|
|
8916
|
+
},
|
|
8917
|
+
{
|
|
8918
|
+
"path": "swingHorizontal",
|
|
8919
|
+
"valueType": "boolean"
|
|
8920
|
+
},
|
|
8921
|
+
{
|
|
8922
|
+
"path": "minTemp",
|
|
8923
|
+
"valueType": "number"
|
|
8924
|
+
},
|
|
8925
|
+
{
|
|
8926
|
+
"path": "maxTemp",
|
|
8927
|
+
"valueType": "number"
|
|
8928
|
+
},
|
|
8929
|
+
{
|
|
8930
|
+
"path": "tempStep",
|
|
8931
|
+
"valueType": "number"
|
|
8932
|
+
}
|
|
8933
|
+
],
|
|
8934
|
+
"color": [
|
|
8935
|
+
{
|
|
8936
|
+
"path": "mode",
|
|
8937
|
+
"valueType": "enum",
|
|
8938
|
+
"enumValues": [
|
|
8939
|
+
"rgb",
|
|
8940
|
+
"hsv",
|
|
8941
|
+
"mired"
|
|
8942
|
+
]
|
|
8943
|
+
},
|
|
8944
|
+
{
|
|
8945
|
+
"path": "rgb.r",
|
|
8946
|
+
"valueType": "number"
|
|
8947
|
+
},
|
|
8948
|
+
{
|
|
8949
|
+
"path": "rgb.g",
|
|
8950
|
+
"valueType": "number"
|
|
8951
|
+
},
|
|
8952
|
+
{
|
|
8953
|
+
"path": "rgb.b",
|
|
8954
|
+
"valueType": "number"
|
|
8955
|
+
},
|
|
8956
|
+
{
|
|
8957
|
+
"path": "hsv.h",
|
|
8958
|
+
"valueType": "number"
|
|
8959
|
+
},
|
|
8960
|
+
{
|
|
8961
|
+
"path": "hsv.s",
|
|
8962
|
+
"valueType": "number"
|
|
8963
|
+
},
|
|
8964
|
+
{
|
|
8965
|
+
"path": "hsv.v",
|
|
8966
|
+
"valueType": "number"
|
|
8967
|
+
},
|
|
8968
|
+
{
|
|
8969
|
+
"path": "mireds",
|
|
8970
|
+
"valueType": "number"
|
|
8971
|
+
}
|
|
8972
|
+
],
|
|
8973
|
+
"connectivity": [{
|
|
8974
|
+
"path": "connected",
|
|
8975
|
+
"valueType": "boolean"
|
|
8976
|
+
}],
|
|
8977
|
+
"contact": [{
|
|
8978
|
+
"path": "entryOpen",
|
|
8979
|
+
"valueType": "boolean"
|
|
8980
|
+
}],
|
|
8981
|
+
"control": [
|
|
8982
|
+
{
|
|
8983
|
+
"path": "kind",
|
|
8984
|
+
"valueType": "enum",
|
|
8985
|
+
"enumValues": [
|
|
8986
|
+
"numeric",
|
|
8987
|
+
"select",
|
|
8988
|
+
"text",
|
|
8989
|
+
"datetime"
|
|
8990
|
+
]
|
|
8991
|
+
},
|
|
8992
|
+
{
|
|
8993
|
+
"path": "unit",
|
|
8994
|
+
"valueType": "string"
|
|
8995
|
+
},
|
|
8996
|
+
{
|
|
8997
|
+
"path": "min",
|
|
8998
|
+
"valueType": "number"
|
|
8999
|
+
},
|
|
9000
|
+
{
|
|
9001
|
+
"path": "max",
|
|
9002
|
+
"valueType": "number"
|
|
9003
|
+
},
|
|
9004
|
+
{
|
|
9005
|
+
"path": "step",
|
|
9006
|
+
"valueType": "number"
|
|
9007
|
+
},
|
|
9008
|
+
{
|
|
9009
|
+
"path": "precision",
|
|
9010
|
+
"valueType": "number"
|
|
9011
|
+
},
|
|
9012
|
+
{
|
|
9013
|
+
"path": "format",
|
|
9014
|
+
"valueType": "enum",
|
|
9015
|
+
"enumValues": [
|
|
9016
|
+
"date",
|
|
9017
|
+
"time",
|
|
9018
|
+
"datetime"
|
|
9019
|
+
]
|
|
9020
|
+
}
|
|
9021
|
+
],
|
|
9022
|
+
"cover": [
|
|
9023
|
+
{
|
|
9024
|
+
"path": "state",
|
|
9025
|
+
"valueType": "enum",
|
|
9026
|
+
"enumValues": [
|
|
9027
|
+
"open",
|
|
9028
|
+
"opening",
|
|
9029
|
+
"closing",
|
|
9030
|
+
"closed",
|
|
9031
|
+
"stopped"
|
|
9032
|
+
]
|
|
9033
|
+
},
|
|
9034
|
+
{
|
|
9035
|
+
"path": "position",
|
|
9036
|
+
"valueType": "number"
|
|
9037
|
+
},
|
|
9038
|
+
{
|
|
9039
|
+
"path": "tiltPosition",
|
|
9040
|
+
"valueType": "number"
|
|
9041
|
+
}
|
|
9042
|
+
],
|
|
9043
|
+
"day-night": [
|
|
9044
|
+
{
|
|
9045
|
+
"path": "mode",
|
|
9046
|
+
"valueType": "enum",
|
|
9047
|
+
"enumValues": [
|
|
9048
|
+
"auto",
|
|
9049
|
+
"day",
|
|
9050
|
+
"night",
|
|
9051
|
+
"schedule"
|
|
9052
|
+
]
|
|
9053
|
+
},
|
|
9054
|
+
{
|
|
9055
|
+
"path": "sensitivity",
|
|
9056
|
+
"valueType": "number"
|
|
9057
|
+
},
|
|
9058
|
+
{
|
|
9059
|
+
"path": "switchDelaySec",
|
|
9060
|
+
"valueType": "number"
|
|
9061
|
+
}
|
|
9062
|
+
],
|
|
9063
|
+
"device-adoption": [
|
|
9064
|
+
{
|
|
9065
|
+
"path": "lastDiscoveryAt",
|
|
9066
|
+
"valueType": "number"
|
|
9067
|
+
},
|
|
9068
|
+
{
|
|
9069
|
+
"path": "candidateCount",
|
|
9070
|
+
"valueType": "number"
|
|
9071
|
+
},
|
|
9072
|
+
{
|
|
9073
|
+
"path": "adoptedCount",
|
|
9074
|
+
"valueType": "number"
|
|
9075
|
+
},
|
|
9076
|
+
{
|
|
9077
|
+
"path": "lastError",
|
|
9078
|
+
"valueType": "string"
|
|
9079
|
+
}
|
|
9080
|
+
],
|
|
9081
|
+
"device-discovery": [{
|
|
9082
|
+
"path": "lastDiscoveryAt",
|
|
9083
|
+
"valueType": "number"
|
|
9084
|
+
}, {
|
|
9085
|
+
"path": "lastError",
|
|
9086
|
+
"valueType": "string"
|
|
9087
|
+
}],
|
|
9088
|
+
"device-export": [
|
|
9089
|
+
{
|
|
9090
|
+
"path": "linkState",
|
|
9091
|
+
"valueType": "enum",
|
|
9092
|
+
"enumValues": [
|
|
9093
|
+
"unlinked",
|
|
9094
|
+
"linked",
|
|
9095
|
+
"error"
|
|
9096
|
+
]
|
|
9097
|
+
},
|
|
9098
|
+
{
|
|
9099
|
+
"path": "exposedDeviceCount",
|
|
9100
|
+
"valueType": "number"
|
|
9101
|
+
},
|
|
9102
|
+
{
|
|
9103
|
+
"path": "error",
|
|
9104
|
+
"valueType": "string"
|
|
9105
|
+
},
|
|
9106
|
+
{
|
|
9107
|
+
"path": "setup.qr",
|
|
9108
|
+
"valueType": "string"
|
|
9109
|
+
},
|
|
9110
|
+
{
|
|
9111
|
+
"path": "setup.note",
|
|
9112
|
+
"valueType": "string"
|
|
9113
|
+
}
|
|
9114
|
+
],
|
|
9115
|
+
"device-status": [{
|
|
9116
|
+
"path": "online",
|
|
9117
|
+
"valueType": "boolean"
|
|
9118
|
+
}],
|
|
9119
|
+
"dishwasher": [
|
|
9120
|
+
{
|
|
9121
|
+
"path": "availability",
|
|
9122
|
+
"valueType": "enum",
|
|
9123
|
+
"enumValues": [
|
|
9124
|
+
"available",
|
|
9125
|
+
"offline",
|
|
9126
|
+
"description-missing"
|
|
9127
|
+
]
|
|
9128
|
+
},
|
|
9129
|
+
{
|
|
9130
|
+
"path": "state",
|
|
9131
|
+
"valueType": "enum",
|
|
9132
|
+
"enumValues": [
|
|
9133
|
+
"idle",
|
|
9134
|
+
"running",
|
|
9135
|
+
"paused",
|
|
9136
|
+
"finished",
|
|
9137
|
+
"error",
|
|
9138
|
+
"unavailable"
|
|
9139
|
+
]
|
|
9140
|
+
},
|
|
9141
|
+
{
|
|
9142
|
+
"path": "operationState",
|
|
9143
|
+
"valueType": "enum",
|
|
9144
|
+
"enumValues": [
|
|
9145
|
+
"Inactive",
|
|
9146
|
+
"Ready",
|
|
9147
|
+
"DelayedStart",
|
|
9148
|
+
"Run",
|
|
9149
|
+
"Pause",
|
|
9150
|
+
"ActionRequired",
|
|
9151
|
+
"Finished",
|
|
9152
|
+
"Error",
|
|
9153
|
+
"Aborting"
|
|
9154
|
+
]
|
|
9155
|
+
},
|
|
9156
|
+
{
|
|
9157
|
+
"path": "program",
|
|
9158
|
+
"valueType": "string"
|
|
9159
|
+
},
|
|
9160
|
+
{
|
|
9161
|
+
"path": "selectedProgram",
|
|
9162
|
+
"valueType": "string"
|
|
9163
|
+
},
|
|
9164
|
+
{
|
|
9165
|
+
"path": "remainingSeconds",
|
|
9166
|
+
"valueType": "number"
|
|
9167
|
+
},
|
|
9168
|
+
{
|
|
9169
|
+
"path": "delayedStartSeconds",
|
|
9170
|
+
"valueType": "number"
|
|
9171
|
+
},
|
|
9172
|
+
{
|
|
9173
|
+
"path": "progressPercent",
|
|
9174
|
+
"valueType": "number"
|
|
9175
|
+
},
|
|
9176
|
+
{
|
|
9177
|
+
"path": "doorOpen",
|
|
9178
|
+
"valueType": "boolean"
|
|
9179
|
+
},
|
|
9180
|
+
{
|
|
9181
|
+
"path": "doorLocked",
|
|
9182
|
+
"valueType": "boolean"
|
|
9183
|
+
},
|
|
9184
|
+
{
|
|
9185
|
+
"path": "remoteStartAllowed",
|
|
9186
|
+
"valueType": "boolean"
|
|
9187
|
+
},
|
|
9188
|
+
{
|
|
9189
|
+
"path": "remoteControlActive",
|
|
9190
|
+
"valueType": "boolean"
|
|
9191
|
+
},
|
|
9192
|
+
{
|
|
9193
|
+
"path": "localControlActive",
|
|
9194
|
+
"valueType": "boolean"
|
|
9195
|
+
},
|
|
9196
|
+
{
|
|
9197
|
+
"path": "powerOn",
|
|
9198
|
+
"valueType": "boolean"
|
|
9199
|
+
},
|
|
9200
|
+
{
|
|
9201
|
+
"path": "powerState",
|
|
9202
|
+
"valueType": "string"
|
|
9203
|
+
},
|
|
9204
|
+
{
|
|
9205
|
+
"path": "filterCleaningDue",
|
|
9206
|
+
"valueType": "boolean"
|
|
9207
|
+
},
|
|
9208
|
+
{
|
|
9209
|
+
"path": "machineCareDue",
|
|
9210
|
+
"valueType": "boolean"
|
|
9211
|
+
},
|
|
9212
|
+
{
|
|
9213
|
+
"path": "machineCareRemainingRuns",
|
|
9214
|
+
"valueType": "number"
|
|
9215
|
+
},
|
|
9216
|
+
{
|
|
9217
|
+
"path": "halfLoad",
|
|
9218
|
+
"valueType": "boolean"
|
|
9219
|
+
},
|
|
9220
|
+
{
|
|
9221
|
+
"path": "hygienePlus",
|
|
9222
|
+
"valueType": "boolean"
|
|
9223
|
+
},
|
|
9224
|
+
{
|
|
9225
|
+
"path": "extraDry",
|
|
9226
|
+
"valueType": "boolean"
|
|
9227
|
+
},
|
|
9228
|
+
{
|
|
9229
|
+
"path": "intensiveZone",
|
|
9230
|
+
"valueType": "boolean"
|
|
9231
|
+
},
|
|
9232
|
+
{
|
|
9233
|
+
"path": "varioSpeedPlus",
|
|
9234
|
+
"valueType": "boolean"
|
|
9235
|
+
},
|
|
9236
|
+
{
|
|
9237
|
+
"path": "childLock",
|
|
9238
|
+
"valueType": "boolean"
|
|
9239
|
+
},
|
|
9240
|
+
{
|
|
9241
|
+
"path": "errorCode",
|
|
9242
|
+
"valueType": "number"
|
|
9243
|
+
},
|
|
9244
|
+
{
|
|
9245
|
+
"path": "errorLabel",
|
|
9246
|
+
"valueType": "string"
|
|
9247
|
+
}
|
|
9248
|
+
],
|
|
9249
|
+
"doorbell": [{
|
|
9250
|
+
"path": "lastPressedAt",
|
|
9251
|
+
"valueType": "number"
|
|
9252
|
+
}, {
|
|
9253
|
+
"path": "pressCountSinceStart",
|
|
9254
|
+
"valueType": "number"
|
|
9255
|
+
}],
|
|
9256
|
+
"enum-sensor": [{
|
|
9257
|
+
"path": "value",
|
|
9258
|
+
"valueType": "string"
|
|
9259
|
+
}, {
|
|
9260
|
+
"path": "format",
|
|
9261
|
+
"valueType": "enum",
|
|
9262
|
+
"enumValues": [
|
|
9263
|
+
"date",
|
|
9264
|
+
"time",
|
|
9265
|
+
"datetime"
|
|
9266
|
+
]
|
|
9267
|
+
}],
|
|
9268
|
+
"event-emitter": [
|
|
9269
|
+
{
|
|
9270
|
+
"path": "lastEvent.deviceId",
|
|
9271
|
+
"valueType": "number"
|
|
9272
|
+
},
|
|
9273
|
+
{
|
|
9274
|
+
"path": "lastEvent.eventType",
|
|
9275
|
+
"valueType": "string"
|
|
9276
|
+
},
|
|
9277
|
+
{
|
|
9278
|
+
"path": "lastEvent.timestamp",
|
|
9279
|
+
"valueType": "number"
|
|
9280
|
+
},
|
|
9281
|
+
{
|
|
9282
|
+
"path": "lastEvent.seq",
|
|
9283
|
+
"valueType": "number"
|
|
9284
|
+
},
|
|
9285
|
+
{
|
|
9286
|
+
"path": "eventCountSinceStart",
|
|
9287
|
+
"valueType": "number"
|
|
9288
|
+
}
|
|
9289
|
+
],
|
|
9290
|
+
"fan-control": [
|
|
9291
|
+
{
|
|
9292
|
+
"path": "percentage",
|
|
9293
|
+
"valueType": "number"
|
|
9294
|
+
},
|
|
9295
|
+
{
|
|
9296
|
+
"path": "percentageStep",
|
|
9297
|
+
"valueType": "number"
|
|
9298
|
+
},
|
|
9299
|
+
{
|
|
9300
|
+
"path": "preset",
|
|
9301
|
+
"valueType": "string"
|
|
9302
|
+
},
|
|
9303
|
+
{
|
|
9304
|
+
"path": "direction",
|
|
9305
|
+
"valueType": "enum",
|
|
9306
|
+
"enumValues": ["forward", "reverse"]
|
|
9307
|
+
},
|
|
9308
|
+
{
|
|
9309
|
+
"path": "oscillating",
|
|
9310
|
+
"valueType": "boolean"
|
|
9311
|
+
}
|
|
9312
|
+
],
|
|
9313
|
+
"feature-probe": [
|
|
9314
|
+
{
|
|
9315
|
+
"path": "deviceType",
|
|
9316
|
+
"valueType": "string"
|
|
9317
|
+
},
|
|
9318
|
+
{
|
|
9319
|
+
"path": "model",
|
|
9320
|
+
"valueType": "string"
|
|
9321
|
+
},
|
|
9322
|
+
{
|
|
9323
|
+
"path": "channelCount",
|
|
9324
|
+
"valueType": "number"
|
|
9325
|
+
},
|
|
9326
|
+
{
|
|
9327
|
+
"path": "lastProbedAt",
|
|
9328
|
+
"valueType": "number"
|
|
9329
|
+
}
|
|
9330
|
+
],
|
|
9331
|
+
"flood": [{
|
|
9332
|
+
"path": "flooded",
|
|
9333
|
+
"valueType": "boolean"
|
|
9334
|
+
}],
|
|
9335
|
+
"gas": [{
|
|
9336
|
+
"path": "detected",
|
|
9337
|
+
"valueType": "boolean"
|
|
9338
|
+
}],
|
|
9339
|
+
"heating-valve": [{
|
|
9340
|
+
"path": "position",
|
|
9341
|
+
"valueType": "number"
|
|
9342
|
+
}],
|
|
9343
|
+
"humidifier": [
|
|
9344
|
+
{
|
|
9345
|
+
"path": "on",
|
|
9346
|
+
"valueType": "boolean"
|
|
9347
|
+
},
|
|
9348
|
+
{
|
|
9349
|
+
"path": "currentHumidity",
|
|
9350
|
+
"valueType": "number"
|
|
9351
|
+
},
|
|
9352
|
+
{
|
|
9353
|
+
"path": "targetHumidity",
|
|
9354
|
+
"valueType": "number"
|
|
9355
|
+
},
|
|
9356
|
+
{
|
|
9357
|
+
"path": "mode",
|
|
9358
|
+
"valueType": "string"
|
|
9359
|
+
},
|
|
9360
|
+
{
|
|
9361
|
+
"path": "action",
|
|
9362
|
+
"valueType": "string"
|
|
9363
|
+
},
|
|
9364
|
+
{
|
|
9365
|
+
"path": "minHumidity",
|
|
9366
|
+
"valueType": "number"
|
|
9367
|
+
},
|
|
9368
|
+
{
|
|
9369
|
+
"path": "maxHumidity",
|
|
9370
|
+
"valueType": "number"
|
|
9371
|
+
}
|
|
9372
|
+
],
|
|
9373
|
+
"humidity-sensor": [
|
|
9374
|
+
{
|
|
9375
|
+
"path": "percent",
|
|
9376
|
+
"valueType": "number"
|
|
9377
|
+
},
|
|
9378
|
+
{
|
|
9379
|
+
"path": "unit",
|
|
9380
|
+
"valueType": "string"
|
|
9381
|
+
},
|
|
9382
|
+
{
|
|
9383
|
+
"path": "precision",
|
|
9384
|
+
"valueType": "number"
|
|
9385
|
+
}
|
|
9386
|
+
],
|
|
9387
|
+
"image": [{
|
|
9388
|
+
"path": "url",
|
|
9389
|
+
"valueType": "string"
|
|
9390
|
+
}, {
|
|
9391
|
+
"path": "lastUpdated",
|
|
9392
|
+
"valueType": "number"
|
|
9393
|
+
}],
|
|
9394
|
+
"image-settings": [
|
|
9395
|
+
{
|
|
9396
|
+
"path": "brightness",
|
|
9397
|
+
"valueType": "number"
|
|
9398
|
+
},
|
|
9399
|
+
{
|
|
9400
|
+
"path": "contrast",
|
|
9401
|
+
"valueType": "number"
|
|
9402
|
+
},
|
|
9403
|
+
{
|
|
9404
|
+
"path": "saturation",
|
|
9405
|
+
"valueType": "number"
|
|
9406
|
+
},
|
|
9407
|
+
{
|
|
9408
|
+
"path": "sharpness",
|
|
9409
|
+
"valueType": "number"
|
|
9410
|
+
},
|
|
9411
|
+
{
|
|
9412
|
+
"path": "mirror",
|
|
9413
|
+
"valueType": "boolean"
|
|
9414
|
+
},
|
|
9415
|
+
{
|
|
9416
|
+
"path": "flip",
|
|
9417
|
+
"valueType": "boolean"
|
|
9418
|
+
},
|
|
9419
|
+
{
|
|
9420
|
+
"path": "rotate",
|
|
9421
|
+
"valueType": "enum",
|
|
9422
|
+
"enumValues": [
|
|
9423
|
+
"0",
|
|
9424
|
+
"90",
|
|
9425
|
+
"180",
|
|
9426
|
+
"270"
|
|
9427
|
+
]
|
|
9428
|
+
},
|
|
9429
|
+
{
|
|
9430
|
+
"path": "whiteBalance",
|
|
9431
|
+
"valueType": "enum",
|
|
9432
|
+
"enumValues": ["auto", "manual"]
|
|
9433
|
+
},
|
|
9434
|
+
{
|
|
9435
|
+
"path": "warmth",
|
|
9436
|
+
"valueType": "number"
|
|
9437
|
+
},
|
|
9438
|
+
{
|
|
9439
|
+
"path": "exposureMode",
|
|
9440
|
+
"valueType": "enum",
|
|
9441
|
+
"enumValues": ["auto", "manual"]
|
|
9442
|
+
},
|
|
9443
|
+
{
|
|
9444
|
+
"path": "backlightMode",
|
|
9445
|
+
"valueType": "enum",
|
|
9446
|
+
"enumValues": [
|
|
9447
|
+
"off",
|
|
9448
|
+
"blc",
|
|
9449
|
+
"wdr",
|
|
9450
|
+
"hlc"
|
|
9451
|
+
]
|
|
9452
|
+
}
|
|
9453
|
+
],
|
|
9454
|
+
"intercom": [
|
|
9455
|
+
{
|
|
9456
|
+
"path": "talking",
|
|
9457
|
+
"valueType": "boolean"
|
|
9458
|
+
},
|
|
9459
|
+
{
|
|
9460
|
+
"path": "lastSessionAt",
|
|
9461
|
+
"valueType": "number"
|
|
9462
|
+
},
|
|
9463
|
+
{
|
|
9464
|
+
"path": "ability.sampleRate",
|
|
9465
|
+
"valueType": "number"
|
|
9466
|
+
},
|
|
9467
|
+
{
|
|
9468
|
+
"path": "ability.duplex",
|
|
9469
|
+
"valueType": "enum",
|
|
9470
|
+
"enumValues": ["half", "full"]
|
|
9471
|
+
},
|
|
9472
|
+
{
|
|
9473
|
+
"path": "ability.maxBacklogMs",
|
|
9474
|
+
"valueType": "number"
|
|
9475
|
+
}
|
|
9476
|
+
],
|
|
9477
|
+
"lawn-mower-control": [
|
|
9478
|
+
{
|
|
9479
|
+
"path": "activity",
|
|
9480
|
+
"valueType": "enum",
|
|
9481
|
+
"enumValues": [
|
|
9482
|
+
"idle",
|
|
9483
|
+
"mowing",
|
|
9484
|
+
"paused",
|
|
9485
|
+
"docked",
|
|
9486
|
+
"error"
|
|
9487
|
+
]
|
|
9488
|
+
},
|
|
9489
|
+
{
|
|
9490
|
+
"path": "batteryLevel",
|
|
9491
|
+
"valueType": "number"
|
|
9492
|
+
},
|
|
9493
|
+
{
|
|
9494
|
+
"path": "progressPercent",
|
|
9495
|
+
"valueType": "number"
|
|
9496
|
+
},
|
|
9497
|
+
{
|
|
9498
|
+
"path": "currentCode",
|
|
9499
|
+
"valueType": "number"
|
|
9500
|
+
},
|
|
9501
|
+
{
|
|
9502
|
+
"path": "currentCodeLabel",
|
|
9503
|
+
"valueType": "string"
|
|
9504
|
+
},
|
|
9505
|
+
{
|
|
9506
|
+
"path": "severity",
|
|
9507
|
+
"valueType": "enum",
|
|
9508
|
+
"enumValues": [
|
|
9509
|
+
"info",
|
|
9510
|
+
"warning",
|
|
9511
|
+
"error"
|
|
9512
|
+
]
|
|
9513
|
+
}
|
|
9514
|
+
],
|
|
9515
|
+
"lock-control": [{
|
|
9516
|
+
"path": "state",
|
|
9517
|
+
"valueType": "enum",
|
|
9518
|
+
"enumValues": [
|
|
9519
|
+
"locked",
|
|
9520
|
+
"unlocked",
|
|
9521
|
+
"locking",
|
|
9522
|
+
"unlocking",
|
|
9523
|
+
"jammed"
|
|
9524
|
+
]
|
|
9525
|
+
}],
|
|
9526
|
+
"media-player": [
|
|
9527
|
+
{
|
|
9528
|
+
"path": "state",
|
|
9529
|
+
"valueType": "enum",
|
|
9530
|
+
"enumValues": [
|
|
9531
|
+
"off",
|
|
9532
|
+
"on",
|
|
9533
|
+
"idle",
|
|
9534
|
+
"playing",
|
|
9535
|
+
"paused",
|
|
9536
|
+
"buffering",
|
|
9537
|
+
"standby"
|
|
9538
|
+
]
|
|
9539
|
+
},
|
|
9540
|
+
{
|
|
9541
|
+
"path": "volumeLevel",
|
|
9542
|
+
"valueType": "number"
|
|
9543
|
+
},
|
|
9544
|
+
{
|
|
9545
|
+
"path": "isMuted",
|
|
9546
|
+
"valueType": "boolean"
|
|
9547
|
+
},
|
|
9548
|
+
{
|
|
9549
|
+
"path": "source",
|
|
9550
|
+
"valueType": "string"
|
|
9551
|
+
},
|
|
9552
|
+
{
|
|
9553
|
+
"path": "currentMedia.type",
|
|
9554
|
+
"valueType": "string"
|
|
9555
|
+
},
|
|
9556
|
+
{
|
|
9557
|
+
"path": "currentMedia.title",
|
|
9558
|
+
"valueType": "string"
|
|
9559
|
+
},
|
|
9560
|
+
{
|
|
9561
|
+
"path": "currentMedia.artist",
|
|
9562
|
+
"valueType": "string"
|
|
9563
|
+
},
|
|
9564
|
+
{
|
|
9565
|
+
"path": "currentMedia.album",
|
|
9566
|
+
"valueType": "string"
|
|
9567
|
+
},
|
|
9568
|
+
{
|
|
9569
|
+
"path": "currentMedia.imageUrl",
|
|
9570
|
+
"valueType": "string"
|
|
9571
|
+
},
|
|
9572
|
+
{
|
|
9573
|
+
"path": "positionMs",
|
|
9574
|
+
"valueType": "number"
|
|
9575
|
+
},
|
|
9576
|
+
{
|
|
9577
|
+
"path": "durationMs",
|
|
9578
|
+
"valueType": "number"
|
|
9579
|
+
},
|
|
9580
|
+
{
|
|
9581
|
+
"path": "shuffle",
|
|
9582
|
+
"valueType": "boolean"
|
|
9583
|
+
},
|
|
9584
|
+
{
|
|
9585
|
+
"path": "repeat",
|
|
9586
|
+
"valueType": "enum",
|
|
9587
|
+
"enumValues": [
|
|
9588
|
+
"off",
|
|
9589
|
+
"all",
|
|
9590
|
+
"one"
|
|
9591
|
+
]
|
|
9592
|
+
}
|
|
9593
|
+
],
|
|
9594
|
+
"motion": [
|
|
9595
|
+
{
|
|
9596
|
+
"path": "detected",
|
|
9597
|
+
"valueType": "boolean"
|
|
9598
|
+
},
|
|
9599
|
+
{
|
|
9600
|
+
"path": "lastDetectedAt",
|
|
9601
|
+
"valueType": "number"
|
|
9602
|
+
},
|
|
9603
|
+
{
|
|
9604
|
+
"path": "autoClearAfterMs",
|
|
9605
|
+
"valueType": "number"
|
|
9606
|
+
}
|
|
9607
|
+
],
|
|
9608
|
+
"motion-trigger": [{
|
|
9609
|
+
"path": "enabled",
|
|
9610
|
+
"valueType": "boolean"
|
|
9611
|
+
}],
|
|
9612
|
+
"motion-zones": [{
|
|
9613
|
+
"path": "enabled",
|
|
9614
|
+
"valueType": "boolean"
|
|
9615
|
+
}, {
|
|
9616
|
+
"path": "sensitivity",
|
|
9617
|
+
"valueType": "number"
|
|
9618
|
+
}],
|
|
9619
|
+
"mqtt-broker": [{
|
|
9620
|
+
"path": "brokerCount",
|
|
9621
|
+
"valueType": "number"
|
|
9622
|
+
}, {
|
|
9623
|
+
"path": "embeddedRunning",
|
|
9624
|
+
"valueType": "boolean"
|
|
9625
|
+
}],
|
|
9626
|
+
"native-object-detection": [{
|
|
9627
|
+
"path": "enabled",
|
|
9628
|
+
"valueType": "boolean"
|
|
9629
|
+
}],
|
|
9630
|
+
"navigation": [
|
|
9631
|
+
{
|
|
9632
|
+
"path": "mode",
|
|
9633
|
+
"valueType": "enum",
|
|
9634
|
+
"enumValues": [
|
|
9635
|
+
"idle",
|
|
9636
|
+
"cleaning",
|
|
9637
|
+
"spot",
|
|
9638
|
+
"following",
|
|
9639
|
+
"goto",
|
|
9640
|
+
"returning",
|
|
9641
|
+
"paused",
|
|
9642
|
+
"unknown"
|
|
9643
|
+
]
|
|
9644
|
+
},
|
|
9645
|
+
{
|
|
9646
|
+
"path": "following",
|
|
9647
|
+
"valueType": "boolean"
|
|
9648
|
+
},
|
|
9649
|
+
{
|
|
9650
|
+
"path": "flash",
|
|
9651
|
+
"valueType": "boolean"
|
|
9652
|
+
},
|
|
9653
|
+
{
|
|
9654
|
+
"path": "lightMode",
|
|
9655
|
+
"valueType": "enum",
|
|
9656
|
+
"enumValues": ["auto", "manual"]
|
|
9657
|
+
},
|
|
9658
|
+
{
|
|
9659
|
+
"path": "lightLevel",
|
|
9660
|
+
"valueType": "number"
|
|
9661
|
+
}
|
|
9662
|
+
],
|
|
9663
|
+
"network-link": [
|
|
9664
|
+
{
|
|
9665
|
+
"path": "type",
|
|
9666
|
+
"valueType": "enum",
|
|
9667
|
+
"enumValues": [
|
|
9668
|
+
"wifi",
|
|
9669
|
+
"ethernet",
|
|
9670
|
+
"cellular",
|
|
9671
|
+
"unknown"
|
|
9672
|
+
]
|
|
9673
|
+
},
|
|
9674
|
+
{
|
|
9675
|
+
"path": "signalPercent",
|
|
9676
|
+
"valueType": "number"
|
|
9677
|
+
},
|
|
9678
|
+
{
|
|
9679
|
+
"path": "rssiDbm",
|
|
9680
|
+
"valueType": "number"
|
|
9681
|
+
},
|
|
9682
|
+
{
|
|
9683
|
+
"path": "ssid",
|
|
9684
|
+
"valueType": "string"
|
|
9685
|
+
},
|
|
9686
|
+
{
|
|
9687
|
+
"path": "lastUpdated",
|
|
9688
|
+
"valueType": "number"
|
|
9689
|
+
}
|
|
9690
|
+
],
|
|
9691
|
+
"notifier": [
|
|
9692
|
+
{
|
|
9693
|
+
"path": "lastSentAt",
|
|
9694
|
+
"valueType": "number"
|
|
9695
|
+
},
|
|
9696
|
+
{
|
|
9697
|
+
"path": "lastError",
|
|
9698
|
+
"valueType": "string"
|
|
9699
|
+
},
|
|
9700
|
+
{
|
|
9701
|
+
"path": "queueDepth",
|
|
9702
|
+
"valueType": "number"
|
|
9703
|
+
},
|
|
9704
|
+
{
|
|
9705
|
+
"path": "supports.image",
|
|
9706
|
+
"valueType": "boolean"
|
|
9707
|
+
},
|
|
9708
|
+
{
|
|
9709
|
+
"path": "supports.priority",
|
|
9710
|
+
"valueType": "boolean"
|
|
9711
|
+
},
|
|
9712
|
+
{
|
|
9713
|
+
"path": "supports.data",
|
|
9714
|
+
"valueType": "boolean"
|
|
9715
|
+
},
|
|
9716
|
+
{
|
|
9717
|
+
"path": "supports.actions",
|
|
9718
|
+
"valueType": "boolean"
|
|
9719
|
+
},
|
|
9720
|
+
{
|
|
9721
|
+
"path": "supports.recipients",
|
|
9722
|
+
"valueType": "boolean"
|
|
9723
|
+
}
|
|
9724
|
+
],
|
|
9725
|
+
"numeric-sensor": [
|
|
9726
|
+
{
|
|
9727
|
+
"path": "value",
|
|
9728
|
+
"valueType": "number"
|
|
9729
|
+
},
|
|
9730
|
+
{
|
|
9731
|
+
"path": "unit",
|
|
9732
|
+
"valueType": "string"
|
|
9733
|
+
},
|
|
9734
|
+
{
|
|
9735
|
+
"path": "precision",
|
|
9736
|
+
"valueType": "number"
|
|
9737
|
+
}
|
|
9738
|
+
],
|
|
9739
|
+
"pet-feeder": [
|
|
9740
|
+
{
|
|
9741
|
+
"path": "foodLevel",
|
|
9742
|
+
"valueType": "number"
|
|
9743
|
+
},
|
|
9744
|
+
{
|
|
9745
|
+
"path": "food1",
|
|
9746
|
+
"valueType": "number"
|
|
9747
|
+
},
|
|
9748
|
+
{
|
|
9749
|
+
"path": "food2",
|
|
9750
|
+
"valueType": "number"
|
|
9751
|
+
},
|
|
9752
|
+
{
|
|
9753
|
+
"path": "lowFood",
|
|
9754
|
+
"valueType": "boolean"
|
|
9755
|
+
},
|
|
9756
|
+
{
|
|
9757
|
+
"path": "batteryPower",
|
|
9758
|
+
"valueType": "number"
|
|
9759
|
+
},
|
|
9760
|
+
{
|
|
9761
|
+
"path": "desiccantLeftDays",
|
|
9762
|
+
"valueType": "number"
|
|
9763
|
+
},
|
|
9764
|
+
{
|
|
9765
|
+
"path": "feeding",
|
|
9766
|
+
"valueType": "boolean"
|
|
9767
|
+
},
|
|
9768
|
+
{
|
|
9769
|
+
"path": "status",
|
|
9770
|
+
"valueType": "enum",
|
|
9771
|
+
"enumValues": [
|
|
9772
|
+
"normal",
|
|
9773
|
+
"offline",
|
|
9774
|
+
"on_batteries"
|
|
9775
|
+
]
|
|
9776
|
+
},
|
|
9777
|
+
{
|
|
9778
|
+
"path": "error",
|
|
9779
|
+
"valueType": "string"
|
|
9780
|
+
},
|
|
9781
|
+
{
|
|
9782
|
+
"path": "errorCode",
|
|
9783
|
+
"valueType": "number"
|
|
9784
|
+
},
|
|
9785
|
+
{
|
|
9786
|
+
"path": "isDualHopper",
|
|
9787
|
+
"valueType": "boolean"
|
|
9788
|
+
},
|
|
9789
|
+
{
|
|
9790
|
+
"path": "childLock",
|
|
9791
|
+
"valueType": "boolean"
|
|
9792
|
+
},
|
|
9793
|
+
{
|
|
9794
|
+
"path": "indicatorLight",
|
|
9795
|
+
"valueType": "boolean"
|
|
9796
|
+
},
|
|
9797
|
+
{
|
|
9798
|
+
"path": "feedSound",
|
|
9799
|
+
"valueType": "boolean"
|
|
9800
|
+
},
|
|
9801
|
+
{
|
|
9802
|
+
"path": "volume",
|
|
9803
|
+
"valueType": "number"
|
|
9804
|
+
}
|
|
9805
|
+
],
|
|
9806
|
+
"power-meter": [
|
|
9807
|
+
{
|
|
9808
|
+
"path": "watts",
|
|
9809
|
+
"valueType": "number"
|
|
9810
|
+
},
|
|
9811
|
+
{
|
|
9812
|
+
"path": "kwhTotal",
|
|
9813
|
+
"valueType": "number"
|
|
9814
|
+
},
|
|
9815
|
+
{
|
|
9816
|
+
"path": "volts",
|
|
9817
|
+
"valueType": "number"
|
|
9818
|
+
},
|
|
9819
|
+
{
|
|
9820
|
+
"path": "amps",
|
|
9821
|
+
"valueType": "number"
|
|
9822
|
+
},
|
|
9823
|
+
{
|
|
9824
|
+
"path": "va",
|
|
9825
|
+
"valueType": "number"
|
|
9826
|
+
},
|
|
9827
|
+
{
|
|
9828
|
+
"path": "powerFactor",
|
|
9829
|
+
"valueType": "number"
|
|
9830
|
+
},
|
|
9831
|
+
{
|
|
9832
|
+
"path": "unit",
|
|
9833
|
+
"valueType": "string"
|
|
9834
|
+
},
|
|
9835
|
+
{
|
|
9836
|
+
"path": "precision",
|
|
9837
|
+
"valueType": "number"
|
|
9838
|
+
}
|
|
9839
|
+
],
|
|
9840
|
+
"presence": [
|
|
9841
|
+
{
|
|
9842
|
+
"path": "state",
|
|
9843
|
+
"valueType": "string"
|
|
9844
|
+
},
|
|
9845
|
+
{
|
|
9846
|
+
"path": "location",
|
|
9847
|
+
"valueType": "string"
|
|
9848
|
+
},
|
|
9849
|
+
{
|
|
9850
|
+
"path": "gps.latitude",
|
|
9851
|
+
"valueType": "number"
|
|
9852
|
+
},
|
|
9853
|
+
{
|
|
9854
|
+
"path": "gps.longitude",
|
|
9855
|
+
"valueType": "number"
|
|
9856
|
+
},
|
|
9857
|
+
{
|
|
9858
|
+
"path": "gps.accuracyMeters",
|
|
9859
|
+
"valueType": "number"
|
|
9860
|
+
},
|
|
9861
|
+
{
|
|
9862
|
+
"path": "batteryPercent",
|
|
9863
|
+
"valueType": "number"
|
|
9864
|
+
}
|
|
9865
|
+
],
|
|
9866
|
+
"pressure-sensor": [
|
|
9867
|
+
{
|
|
9868
|
+
"path": "hpa",
|
|
9869
|
+
"valueType": "number"
|
|
9870
|
+
},
|
|
9871
|
+
{
|
|
9872
|
+
"path": "unit",
|
|
9873
|
+
"valueType": "string"
|
|
9874
|
+
},
|
|
9875
|
+
{
|
|
9876
|
+
"path": "precision",
|
|
9877
|
+
"valueType": "number"
|
|
9878
|
+
}
|
|
9879
|
+
],
|
|
9880
|
+
"privacy-mask": [{
|
|
9881
|
+
"path": "enabled",
|
|
9882
|
+
"valueType": "boolean"
|
|
9883
|
+
}, {
|
|
9884
|
+
"path": "audioEnabled",
|
|
9885
|
+
"valueType": "boolean"
|
|
9886
|
+
}],
|
|
9887
|
+
"ptz": [
|
|
9888
|
+
{
|
|
9889
|
+
"path": "pan",
|
|
9890
|
+
"valueType": "number"
|
|
9891
|
+
},
|
|
9892
|
+
{
|
|
9893
|
+
"path": "tilt",
|
|
9894
|
+
"valueType": "number"
|
|
9895
|
+
},
|
|
9896
|
+
{
|
|
9897
|
+
"path": "zoom",
|
|
9898
|
+
"valueType": "number"
|
|
9899
|
+
},
|
|
9900
|
+
{
|
|
9901
|
+
"path": "autofocus",
|
|
9902
|
+
"valueType": "boolean"
|
|
9903
|
+
}
|
|
9904
|
+
],
|
|
9905
|
+
"ptz-autotrack": [
|
|
9906
|
+
{
|
|
9907
|
+
"path": "enabled",
|
|
9908
|
+
"valueType": "boolean"
|
|
9909
|
+
},
|
|
9910
|
+
{
|
|
9911
|
+
"path": "currentSettings.targetType",
|
|
9912
|
+
"valueType": "string"
|
|
9913
|
+
},
|
|
9914
|
+
{
|
|
9915
|
+
"path": "currentSettings.stopDelaySeconds",
|
|
9916
|
+
"valueType": "number"
|
|
9917
|
+
},
|
|
9918
|
+
{
|
|
9919
|
+
"path": "currentSettings.disappearDelaySeconds",
|
|
9920
|
+
"valueType": "number"
|
|
9921
|
+
}
|
|
9922
|
+
],
|
|
9923
|
+
"recording-archive": [
|
|
9924
|
+
{
|
|
9925
|
+
"path": "deviceId",
|
|
9926
|
+
"valueType": "number"
|
|
9927
|
+
},
|
|
9928
|
+
{
|
|
9929
|
+
"path": "enabled",
|
|
9930
|
+
"valueType": "boolean"
|
|
9931
|
+
},
|
|
9932
|
+
{
|
|
9933
|
+
"path": "activeMode",
|
|
9934
|
+
"valueType": "enum",
|
|
9935
|
+
"enumValues": [
|
|
9936
|
+
"off",
|
|
9937
|
+
"events",
|
|
9938
|
+
"continuous",
|
|
9939
|
+
"on-device-decision"
|
|
9940
|
+
]
|
|
9941
|
+
},
|
|
9942
|
+
{
|
|
9943
|
+
"path": "nodeId",
|
|
9944
|
+
"valueType": "string"
|
|
9945
|
+
},
|
|
9946
|
+
{
|
|
9947
|
+
"path": "storageBytes",
|
|
9948
|
+
"valueType": "number"
|
|
9949
|
+
}
|
|
9950
|
+
],
|
|
9951
|
+
"recording-onboard": [
|
|
9952
|
+
{
|
|
9953
|
+
"path": "primaryTrackId",
|
|
9954
|
+
"valueType": "string"
|
|
9955
|
+
},
|
|
9956
|
+
{
|
|
9957
|
+
"path": "enabled",
|
|
9958
|
+
"valueType": "boolean"
|
|
9959
|
+
},
|
|
9960
|
+
{
|
|
9961
|
+
"path": "overwriteWhenFull",
|
|
9962
|
+
"valueType": "boolean"
|
|
9963
|
+
},
|
|
9964
|
+
{
|
|
9965
|
+
"path": "preRecordSec",
|
|
9966
|
+
"valueType": "number"
|
|
9967
|
+
},
|
|
9968
|
+
{
|
|
9969
|
+
"path": "postRecordSec",
|
|
9970
|
+
"valueType": "number"
|
|
9971
|
+
},
|
|
9972
|
+
{
|
|
9973
|
+
"path": "segmentMinutes",
|
|
9974
|
+
"valueType": "number"
|
|
9975
|
+
},
|
|
9976
|
+
{
|
|
9977
|
+
"path": "unreadableWindows",
|
|
9978
|
+
"valueType": "number"
|
|
9979
|
+
},
|
|
9980
|
+
{
|
|
9981
|
+
"path": "recordingToNowhere",
|
|
9982
|
+
"valueType": "boolean"
|
|
9983
|
+
}
|
|
9984
|
+
],
|
|
9985
|
+
"recording-signal": [{
|
|
9986
|
+
"path": "active",
|
|
9987
|
+
"valueType": "boolean"
|
|
9988
|
+
}, {
|
|
9989
|
+
"path": "reason",
|
|
9990
|
+
"valueType": "string"
|
|
9991
|
+
}],
|
|
9992
|
+
"running-state": [
|
|
9993
|
+
{
|
|
9994
|
+
"path": "running",
|
|
9995
|
+
"valueType": "boolean"
|
|
9996
|
+
},
|
|
9997
|
+
{
|
|
9998
|
+
"path": "since",
|
|
9999
|
+
"valueType": "number"
|
|
10000
|
+
},
|
|
10001
|
+
{
|
|
10002
|
+
"path": "source",
|
|
10003
|
+
"valueType": "enum",
|
|
10004
|
+
"enumValues": ["native", "assigned"]
|
|
10005
|
+
},
|
|
10006
|
+
{
|
|
10007
|
+
"path": "phase",
|
|
10008
|
+
"valueType": "string"
|
|
10009
|
+
}
|
|
10010
|
+
],
|
|
10011
|
+
"script-runner": [
|
|
10012
|
+
{
|
|
10013
|
+
"path": "isRunning",
|
|
10014
|
+
"valueType": "boolean"
|
|
10015
|
+
},
|
|
10016
|
+
{
|
|
10017
|
+
"path": "lastRunAt",
|
|
10018
|
+
"valueType": "number"
|
|
10019
|
+
},
|
|
10020
|
+
{
|
|
10021
|
+
"path": "lastRunSuccess",
|
|
10022
|
+
"valueType": "boolean"
|
|
10023
|
+
},
|
|
10024
|
+
{
|
|
10025
|
+
"path": "lastError",
|
|
10026
|
+
"valueType": "string"
|
|
10027
|
+
}
|
|
10028
|
+
],
|
|
10029
|
+
"smoke": [{
|
|
10030
|
+
"path": "detected",
|
|
10031
|
+
"valueType": "boolean"
|
|
10032
|
+
}],
|
|
10033
|
+
"snapshot": [
|
|
10034
|
+
{
|
|
10035
|
+
"path": "lastCapturedAt",
|
|
10036
|
+
"valueType": "number"
|
|
10037
|
+
},
|
|
10038
|
+
{
|
|
10039
|
+
"path": "cacheAgeMs",
|
|
10040
|
+
"valueType": "number"
|
|
10041
|
+
},
|
|
10042
|
+
{
|
|
10043
|
+
"path": "lastBytes",
|
|
10044
|
+
"valueType": "number"
|
|
10045
|
+
},
|
|
10046
|
+
{
|
|
10047
|
+
"path": "lastStreamId",
|
|
10048
|
+
"valueType": "string"
|
|
10049
|
+
}
|
|
10050
|
+
],
|
|
10051
|
+
"stream-params": [
|
|
10052
|
+
{
|
|
10053
|
+
"path": "main.width",
|
|
10054
|
+
"valueType": "number"
|
|
10055
|
+
},
|
|
10056
|
+
{
|
|
10057
|
+
"path": "main.height",
|
|
10058
|
+
"valueType": "number"
|
|
10059
|
+
},
|
|
10060
|
+
{
|
|
10061
|
+
"path": "main.codec",
|
|
10062
|
+
"valueType": "enum",
|
|
10063
|
+
"enumValues": ["h264", "h265"]
|
|
10064
|
+
},
|
|
10065
|
+
{
|
|
10066
|
+
"path": "main.framerate",
|
|
10067
|
+
"valueType": "number"
|
|
10068
|
+
},
|
|
10069
|
+
{
|
|
10070
|
+
"path": "main.bitrate",
|
|
10071
|
+
"valueType": "number"
|
|
10072
|
+
},
|
|
10073
|
+
{
|
|
10074
|
+
"path": "main.bitrateMode",
|
|
10075
|
+
"valueType": "enum",
|
|
10076
|
+
"enumValues": ["vbr", "cbr"]
|
|
10077
|
+
},
|
|
10078
|
+
{
|
|
10079
|
+
"path": "main.encoderProfile",
|
|
10080
|
+
"valueType": "enum",
|
|
10081
|
+
"enumValues": [
|
|
10082
|
+
"high",
|
|
10083
|
+
"main",
|
|
10084
|
+
"baseline"
|
|
10085
|
+
]
|
|
10086
|
+
},
|
|
10087
|
+
{
|
|
10088
|
+
"path": "main.gop",
|
|
10089
|
+
"valueType": "number"
|
|
10090
|
+
},
|
|
10091
|
+
{
|
|
10092
|
+
"path": "main.audio",
|
|
10093
|
+
"valueType": "boolean"
|
|
10094
|
+
},
|
|
10095
|
+
{
|
|
10096
|
+
"path": "sub.width",
|
|
10097
|
+
"valueType": "number"
|
|
10098
|
+
},
|
|
10099
|
+
{
|
|
10100
|
+
"path": "sub.height",
|
|
10101
|
+
"valueType": "number"
|
|
10102
|
+
},
|
|
10103
|
+
{
|
|
10104
|
+
"path": "sub.codec",
|
|
10105
|
+
"valueType": "enum",
|
|
10106
|
+
"enumValues": ["h264", "h265"]
|
|
10107
|
+
},
|
|
10108
|
+
{
|
|
10109
|
+
"path": "sub.framerate",
|
|
10110
|
+
"valueType": "number"
|
|
10111
|
+
},
|
|
10112
|
+
{
|
|
10113
|
+
"path": "sub.bitrate",
|
|
10114
|
+
"valueType": "number"
|
|
10115
|
+
},
|
|
10116
|
+
{
|
|
10117
|
+
"path": "sub.bitrateMode",
|
|
10118
|
+
"valueType": "enum",
|
|
10119
|
+
"enumValues": ["vbr", "cbr"]
|
|
10120
|
+
},
|
|
10121
|
+
{
|
|
10122
|
+
"path": "sub.encoderProfile",
|
|
10123
|
+
"valueType": "enum",
|
|
10124
|
+
"enumValues": [
|
|
10125
|
+
"high",
|
|
10126
|
+
"main",
|
|
10127
|
+
"baseline"
|
|
10128
|
+
]
|
|
10129
|
+
},
|
|
10130
|
+
{
|
|
10131
|
+
"path": "sub.gop",
|
|
10132
|
+
"valueType": "number"
|
|
10133
|
+
},
|
|
10134
|
+
{
|
|
10135
|
+
"path": "sub.audio",
|
|
10136
|
+
"valueType": "boolean"
|
|
10137
|
+
},
|
|
10138
|
+
{
|
|
10139
|
+
"path": "ext.width",
|
|
10140
|
+
"valueType": "number"
|
|
10141
|
+
},
|
|
10142
|
+
{
|
|
10143
|
+
"path": "ext.height",
|
|
10144
|
+
"valueType": "number"
|
|
10145
|
+
},
|
|
10146
|
+
{
|
|
10147
|
+
"path": "ext.codec",
|
|
10148
|
+
"valueType": "enum",
|
|
10149
|
+
"enumValues": ["h264", "h265"]
|
|
10150
|
+
},
|
|
10151
|
+
{
|
|
10152
|
+
"path": "ext.framerate",
|
|
10153
|
+
"valueType": "number"
|
|
10154
|
+
},
|
|
10155
|
+
{
|
|
10156
|
+
"path": "ext.bitrate",
|
|
10157
|
+
"valueType": "number"
|
|
10158
|
+
},
|
|
10159
|
+
{
|
|
10160
|
+
"path": "ext.bitrateMode",
|
|
10161
|
+
"valueType": "enum",
|
|
10162
|
+
"enumValues": ["vbr", "cbr"]
|
|
10163
|
+
},
|
|
10164
|
+
{
|
|
10165
|
+
"path": "ext.encoderProfile",
|
|
10166
|
+
"valueType": "enum",
|
|
10167
|
+
"enumValues": [
|
|
10168
|
+
"high",
|
|
10169
|
+
"main",
|
|
10170
|
+
"baseline"
|
|
10171
|
+
]
|
|
10172
|
+
},
|
|
10173
|
+
{
|
|
10174
|
+
"path": "ext.gop",
|
|
10175
|
+
"valueType": "number"
|
|
10176
|
+
},
|
|
10177
|
+
{
|
|
10178
|
+
"path": "ext.audio",
|
|
10179
|
+
"valueType": "boolean"
|
|
10180
|
+
}
|
|
10181
|
+
],
|
|
10182
|
+
"switch": [{
|
|
10183
|
+
"path": "on",
|
|
10184
|
+
"valueType": "boolean"
|
|
10185
|
+
}],
|
|
10186
|
+
"tamper": [{
|
|
10187
|
+
"path": "tampered",
|
|
10188
|
+
"valueType": "boolean"
|
|
10189
|
+
}],
|
|
10190
|
+
"temperature-sensor": [
|
|
10191
|
+
{
|
|
10192
|
+
"path": "celsius",
|
|
10193
|
+
"valueType": "number"
|
|
10194
|
+
},
|
|
10195
|
+
{
|
|
10196
|
+
"path": "unit",
|
|
10197
|
+
"valueType": "string"
|
|
10198
|
+
},
|
|
10199
|
+
{
|
|
10200
|
+
"path": "precision",
|
|
10201
|
+
"valueType": "number"
|
|
10202
|
+
}
|
|
10203
|
+
],
|
|
10204
|
+
"update": [
|
|
10205
|
+
{
|
|
10206
|
+
"path": "currentVersion",
|
|
10207
|
+
"valueType": "string"
|
|
10208
|
+
},
|
|
10209
|
+
{
|
|
10210
|
+
"path": "availableVersion",
|
|
10211
|
+
"valueType": "string"
|
|
10212
|
+
},
|
|
10213
|
+
{
|
|
10214
|
+
"path": "updatable",
|
|
10215
|
+
"valueType": "boolean"
|
|
10216
|
+
},
|
|
10217
|
+
{
|
|
10218
|
+
"path": "state",
|
|
10219
|
+
"valueType": "string"
|
|
10220
|
+
},
|
|
10221
|
+
{
|
|
10222
|
+
"path": "inProgress",
|
|
10223
|
+
"valueType": "boolean"
|
|
10224
|
+
}
|
|
10225
|
+
],
|
|
10226
|
+
"vacuum-control": [
|
|
10227
|
+
{
|
|
10228
|
+
"path": "state",
|
|
10229
|
+
"valueType": "enum",
|
|
10230
|
+
"enumValues": [
|
|
10231
|
+
"idle",
|
|
10232
|
+
"cleaning",
|
|
10233
|
+
"paused",
|
|
10234
|
+
"returning",
|
|
10235
|
+
"docked",
|
|
10236
|
+
"drying",
|
|
10237
|
+
"error"
|
|
10238
|
+
]
|
|
10239
|
+
},
|
|
10240
|
+
{
|
|
10241
|
+
"path": "batteryLevel",
|
|
10242
|
+
"valueType": "number"
|
|
10243
|
+
},
|
|
10244
|
+
{
|
|
10245
|
+
"path": "fanSpeed",
|
|
10246
|
+
"valueType": "string"
|
|
10247
|
+
},
|
|
10248
|
+
{
|
|
10249
|
+
"path": "progressPercent",
|
|
10250
|
+
"valueType": "number"
|
|
10251
|
+
},
|
|
10252
|
+
{
|
|
10253
|
+
"path": "errorCode",
|
|
10254
|
+
"valueType": "number"
|
|
10255
|
+
},
|
|
10256
|
+
{
|
|
10257
|
+
"path": "errorLabel",
|
|
10258
|
+
"valueType": "string"
|
|
10259
|
+
}
|
|
10260
|
+
],
|
|
10261
|
+
"valve": [{
|
|
10262
|
+
"path": "state",
|
|
10263
|
+
"valueType": "enum",
|
|
10264
|
+
"enumValues": [
|
|
10265
|
+
"open",
|
|
10266
|
+
"opening",
|
|
10267
|
+
"closing",
|
|
10268
|
+
"closed",
|
|
10269
|
+
"stopped"
|
|
10270
|
+
]
|
|
10271
|
+
}, {
|
|
10272
|
+
"path": "position",
|
|
10273
|
+
"valueType": "number"
|
|
10274
|
+
}],
|
|
10275
|
+
"vibration": [{
|
|
10276
|
+
"path": "detected",
|
|
10277
|
+
"valueType": "boolean"
|
|
10278
|
+
}],
|
|
10279
|
+
"water-heater": [
|
|
10280
|
+
{
|
|
10281
|
+
"path": "currentTemp",
|
|
10282
|
+
"valueType": "number"
|
|
10283
|
+
},
|
|
10284
|
+
{
|
|
10285
|
+
"path": "targetTemp",
|
|
10286
|
+
"valueType": "number"
|
|
10287
|
+
},
|
|
10288
|
+
{
|
|
10289
|
+
"path": "operationMode",
|
|
10290
|
+
"valueType": "string"
|
|
10291
|
+
},
|
|
10292
|
+
{
|
|
10293
|
+
"path": "away",
|
|
10294
|
+
"valueType": "boolean"
|
|
10295
|
+
},
|
|
10296
|
+
{
|
|
10297
|
+
"path": "minTemp",
|
|
10298
|
+
"valueType": "number"
|
|
10299
|
+
},
|
|
10300
|
+
{
|
|
10301
|
+
"path": "maxTemp",
|
|
10302
|
+
"valueType": "number"
|
|
10303
|
+
}
|
|
10304
|
+
],
|
|
10305
|
+
"weather": [
|
|
10306
|
+
{
|
|
10307
|
+
"path": "condition",
|
|
10308
|
+
"valueType": "string"
|
|
10309
|
+
},
|
|
10310
|
+
{
|
|
10311
|
+
"path": "temperature",
|
|
10312
|
+
"valueType": "number"
|
|
10313
|
+
},
|
|
10314
|
+
{
|
|
10315
|
+
"path": "temperatureUnit",
|
|
10316
|
+
"valueType": "string"
|
|
10317
|
+
},
|
|
10318
|
+
{
|
|
10319
|
+
"path": "humidity",
|
|
10320
|
+
"valueType": "number"
|
|
10321
|
+
},
|
|
10322
|
+
{
|
|
10323
|
+
"path": "pressure",
|
|
10324
|
+
"valueType": "number"
|
|
10325
|
+
},
|
|
10326
|
+
{
|
|
10327
|
+
"path": "pressureUnit",
|
|
10328
|
+
"valueType": "string"
|
|
10329
|
+
},
|
|
10330
|
+
{
|
|
10331
|
+
"path": "windSpeed",
|
|
10332
|
+
"valueType": "number"
|
|
10333
|
+
},
|
|
10334
|
+
{
|
|
10335
|
+
"path": "windSpeedUnit",
|
|
10336
|
+
"valueType": "string"
|
|
10337
|
+
},
|
|
10338
|
+
{
|
|
10339
|
+
"path": "windBearing",
|
|
10340
|
+
"valueType": "number"
|
|
10341
|
+
}
|
|
10342
|
+
],
|
|
10343
|
+
"zone-analytics": [
|
|
10344
|
+
{
|
|
10345
|
+
"path": "ts",
|
|
10346
|
+
"valueType": "number"
|
|
10347
|
+
},
|
|
10348
|
+
{
|
|
10349
|
+
"path": "frameWidth",
|
|
10350
|
+
"valueType": "number"
|
|
10351
|
+
},
|
|
10352
|
+
{
|
|
10353
|
+
"path": "frameHeight",
|
|
10354
|
+
"valueType": "number"
|
|
10355
|
+
},
|
|
10356
|
+
{
|
|
10357
|
+
"path": "frame.totalObjects",
|
|
10358
|
+
"valueType": "number"
|
|
10359
|
+
},
|
|
10360
|
+
{
|
|
10361
|
+
"path": "frame.standingObjects",
|
|
10362
|
+
"valueType": "number"
|
|
10363
|
+
},
|
|
10364
|
+
{
|
|
10365
|
+
"path": "frame.transientObjects",
|
|
10366
|
+
"valueType": "number"
|
|
10367
|
+
},
|
|
10368
|
+
{
|
|
10369
|
+
"path": "unzoned.totalObjects",
|
|
10370
|
+
"valueType": "number"
|
|
10371
|
+
},
|
|
10372
|
+
{
|
|
10373
|
+
"path": "unzoned.standingObjects",
|
|
10374
|
+
"valueType": "number"
|
|
10375
|
+
},
|
|
10376
|
+
{
|
|
10377
|
+
"path": "unzoned.transientObjects",
|
|
10378
|
+
"valueType": "number"
|
|
10379
|
+
}
|
|
10380
|
+
]
|
|
10381
|
+
});
|
|
8408
10382
|
object({
|
|
8409
10383
|
code: string().regex(/^[a-z][a-z0-9-]*(\.[a-z0-9-]+)+$/),
|
|
8410
10384
|
params: record(string(), union([string(), number()])).optional()
|
|
@@ -8753,7 +10727,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
8753
10727
|
return DeviceRole;
|
|
8754
10728
|
}({});
|
|
8755
10729
|
//#endregion
|
|
8756
|
-
//#region ../types/dist/composition-
|
|
10730
|
+
//#region ../types/dist/composition-kEl9mevu.mjs
|
|
8757
10731
|
/**
|
|
8758
10732
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
8759
10733
|
*
|
|
@@ -11968,7 +13942,7 @@ var LogChannelDescriptorSchema = object({
|
|
|
11968
13942
|
* `true` is a PROMISE with two halves, and both must hold: the gate is
|
|
11969
13943
|
* consulted with the numeric device id, AND every line the channel admits
|
|
11970
13944
|
* carries `tags: { deviceId }` with that same numeric id. The second half is
|
|
11971
|
-
* what makes `| json | deviceId="
|
|
13945
|
+
* what makes `| json | deviceId="102"` work in Loki — `loki-payload.ts`
|
|
11972
13946
|
* keeps `deviceId` out of the stream labels for cardinality, so the tag in
|
|
11973
13947
|
* the body is the only way to filter.
|
|
11974
13948
|
*
|
|
@@ -12156,7 +14130,7 @@ var ModelVariantGroupSchema = object({
|
|
|
12156
14130
|
precision: _enum(["fp32", "int8"]).optional(),
|
|
12157
14131
|
/**
|
|
12158
14132
|
* Training / latency-variant axis. Omit ⇒ the standard build. `test` marks
|
|
12159
|
-
* an alternate training of the same family (
|
|
14133
|
+
* an alternate training of the same family (plugin catalog `relu_test`); chip
|
|
12160
14134
|
* label is "Test".
|
|
12161
14135
|
*/
|
|
12162
14136
|
optimization: _enum(["standard", "test"]).optional(),
|
|
@@ -12408,8 +14382,8 @@ var ModelCatalogEntrySchema = object({
|
|
|
12408
14382
|
provider: ModelProviderIdSchema.optional(),
|
|
12409
14383
|
/**
|
|
12410
14384
|
* Per-MODEL class map override. Absent ⇒ the step's `StepDefinition.classMap`
|
|
12411
|
-
* applies (
|
|
12412
|
-
* labels already ARE the CamStack macros (
|
|
14385
|
+
* applies (plus catalog / COCO public catalog). Set on a custom model whose raw
|
|
14386
|
+
* labels already ARE the CamStack macros (plugin catalog identity map).
|
|
12413
14387
|
*/
|
|
12414
14388
|
classMap: DetectionCatalogClassMapSchema.optional(),
|
|
12415
14389
|
/**
|
|
@@ -15378,7 +17352,7 @@ method(object({
|
|
|
15378
17352
|
* `1` is real time and is the ONLY value that allows the copy branch —
|
|
15379
17353
|
* anything else forces `libx264` over the window. That was priced
|
|
15380
17354
|
* before it was chosen: a per-event burst measured at 0.23 s and 254 KB
|
|
15381
|
-
* on a real
|
|
17355
|
+
* on a real 101 720p cut, against 922 KB for the copy it replaces. A
|
|
15382
17356
|
* re-encode is capped at 720p (`EVENT_CLIP_ENCODE_MAX_WIDTH`), because
|
|
15383
17357
|
* once the decode is forced the width stops being free.
|
|
15384
17358
|
*/
|
|
@@ -15798,6 +17772,7 @@ var CompositionRunStatusSchema = _enum([
|
|
|
15798
17772
|
"starting",
|
|
15799
17773
|
"running",
|
|
15800
17774
|
"degraded",
|
|
17775
|
+
"incomplete",
|
|
15801
17776
|
"failed"
|
|
15802
17777
|
]);
|
|
15803
17778
|
var CompositionFieldStateKindSchema = _enum([
|
|
@@ -16011,6 +17986,7 @@ var CoreBlockStatusSchema = _enum([
|
|
|
16011
17986
|
"starting",
|
|
16012
17987
|
"running",
|
|
16013
17988
|
"degraded",
|
|
17989
|
+
"incomplete",
|
|
16014
17990
|
"failed"
|
|
16015
17991
|
]);
|
|
16016
17992
|
/** path → TypeScript source for a multi-file block. */
|
|
@@ -37934,7 +39910,7 @@ var PRIMARY_CATEGORIES = new Set(ENTRIES.map((e) => e.primaryCategory));
|
|
|
37934
39910
|
* `locationKey` is ALWAYS {@link locationIconKey} of the label — never the
|
|
37935
39911
|
* operator's casing. The registry matches labels trimmed + case-insensitively
|
|
37936
39912
|
* everywhere (`addLocation`, `removeLocation`, `renameLocation`), and a
|
|
37937
|
-
* case-only rename (`
|
|
39913
|
+
* case-only rename (`kitchen` → `Kitchen`) is a real edit this repo supports; a
|
|
37938
39914
|
* map keyed on the displayed casing would orphan its entry on exactly that
|
|
37939
39915
|
* edit. Consumers join by keying their own label through `locationIconKey`.
|
|
37940
39916
|
*/
|
|
@@ -37959,7 +39935,7 @@ var LocationDescriptionAssignmentSchema = object({
|
|
|
37959
39935
|
/**
|
|
37960
39936
|
* A SITE ZONE — a named part of the property that several locations belong to.
|
|
37961
39937
|
*
|
|
37962
|
-
* "
|
|
39938
|
+
* "Night zone" holds every bedroom; "Zona giorno" the living room and the
|
|
37963
39939
|
* kitchen. A camera belongs to exactly one location, and a location to at most
|
|
37964
39940
|
* one zone, so a camera's zone is derived and never stored on the device: the
|
|
37965
39941
|
* whole point of this entity is that grouping rooms touches no device row.
|
|
@@ -37988,7 +39964,7 @@ var LocationDescriptionAssignmentSchema = object({
|
|
|
37988
39964
|
* the locations inside it.
|
|
37989
39965
|
*
|
|
37990
39966
|
* The LABEL is carried alongside the key because the key is lossy on purpose —
|
|
37991
|
-
* a surface must show "
|
|
39967
|
+
* a surface must show "Night zone", not "night zone". Locations are carried
|
|
37992
39968
|
* here, rather than left to a second call, because every consumer wants both
|
|
37993
39969
|
* at once and a viewer that asked twice could render a zone whose membership
|
|
37994
39970
|
* it has not fetched yet.
|
|
@@ -40101,8 +42077,8 @@ var LoadContributionSchema = object({
|
|
|
40101
42077
|
"unattributable"
|
|
40102
42078
|
]),
|
|
40103
42079
|
/**
|
|
40104
|
-
* What ONE entry is, in the contributor's own words — `
|
|
40105
|
-
* `
|
|
42080
|
+
* What ONE entry is, in the contributor's own words — `101/high`,
|
|
42081
|
+
* `102/native`, `cuda:0 shared pool`. Free text because the unit differs per
|
|
40106
42082
|
* family and inventing a common one would lose the only information that
|
|
40107
42083
|
* makes two entries for the same camera distinguishable.
|
|
40108
42084
|
*/
|
|
@@ -43062,7 +45038,7 @@ var NcConditionsSchema = object({
|
|
|
43062
45038
|
* with the list under it is worse than no switch (D62).
|
|
43063
45039
|
*
|
|
43064
45040
|
* MEMBERS ARE FACE-GALLERY `Identity.id`s (uuid), not display names. A name is
|
|
43065
|
-
* renameable, and a rule authored on "
|
|
45041
|
+
* renameable, and a rule authored on "Alice" went silently dark the moment
|
|
43066
45042
|
* the operator fixed the spelling. The id reaches the record on
|
|
43067
45043
|
* `LabelAttribution.identityId`; the name is what the editor shows and what
|
|
43068
45044
|
* `{{label}}` renders.
|
|
@@ -43613,7 +45589,7 @@ var NcRulePatchSchema = NcRuleInputSchema.partial().extend({
|
|
|
43613
45589
|
* A rule scoped to one camera and one zone silently became a rule that
|
|
43614
45590
|
* matches EVERY event on EVERY camera, and lost its `media` policy
|
|
43615
45591
|
* (zoneCrop / gif / clip / frame) and its `priority` at the same time. Seen
|
|
43616
|
-
* live on 2026-08-12: a rule scoped to device
|
|
45592
|
+
* live on 2026-08-12: a rule scoped to device 102 fired on 104 and 101
|
|
43617
45593
|
* within a minute of a two-field patch.
|
|
43618
45594
|
*
|
|
43619
45595
|
* So every defaulted field is re-declared here WITHOUT its default. The
|
|
@@ -45426,7 +47402,7 @@ var LabelAttributionSchema = object({
|
|
|
45426
47402
|
* `Identity.id` or a plate-gallery `Vehicle.id` (both `randomUUID`).
|
|
45427
47403
|
*
|
|
45428
47404
|
* The text alone is a DISPLAY NAME, and a display name is renameable: a
|
|
45429
|
-
* notification rule authored on "
|
|
47405
|
+
* notification rule authored on "Alice" stopped matching the moment the
|
|
45430
47406
|
* operator fixed the spelling in the gallery, and nothing said so. The id is
|
|
45431
47407
|
* the thing that does not move, so it is what a rule matches on
|
|
45432
47408
|
* (`NcConditions.identities`) and the text is what a human is shown.
|
|
@@ -47965,7 +49941,7 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
47965
49941
|
/**
|
|
47966
49942
|
* Root-supplied detections for the tree's ROOT step (D730). Set by
|
|
47967
49943
|
* `runDetailSubtree` when the camera's root model supplies a crop-kind
|
|
47968
|
-
* step (a
|
|
49944
|
+
* step (a plus catalog `license_plate` for `plate-detection`): the step is
|
|
47969
49945
|
* NOT inferred, these boxes are its output, and its children (the plate
|
|
47970
49946
|
* reader) run on them through their own crop policy. Boxes are in the
|
|
47971
49947
|
* PIXELS of the image this call carries. Absent ⇒ the root step runs.
|
|
@@ -49598,7 +51574,7 @@ var RunnerCameraConfigSchema = object({
|
|
|
49598
51574
|
* detection session that asks for history. What shipped was a last-moment
|
|
49599
51575
|
* discard — `FrameSlot`'s throttle compares wall clocks, and ~4 s of media
|
|
49600
51576
|
* arriving inside a few hundred ms of wall clock looks to it like one frame's
|
|
49601
|
-
* worth. Device
|
|
51577
|
+
* worth. Device 102, 2026-09-08: a re-run of the SAME model over the stored
|
|
49602
51578
|
* recording scored the subject `vehicle 0.5669` — above the 0.50 floor —
|
|
49603
51579
|
* 1.68 s BEFORE the live track was born, on a frame that was in the pre-roll,
|
|
49604
51580
|
* was decoded, and was freed.
|
|
@@ -51628,7 +53604,7 @@ method(_void(), ProviderInfoSchema, { auth: "admin" }), method(object({ config:
|
|
|
51628
53604
|
* The signals a device can emit to WAKE its own stream.
|
|
51629
53605
|
*
|
|
51630
53606
|
* A camera whose stream is built on demand sleeps until something asks for it,
|
|
51631
|
-
* and "something" cannot be a consumer that is merely attached — a
|
|
53607
|
+
* and "something" cannot be a consumer that is merely attached — a external-catalog
|
|
51632
53608
|
* puller holds a session open for ever, and treating that as demand would keep
|
|
51633
53609
|
* a battery camera awake for ever, which is the whole thing the battery is for
|
|
51634
53610
|
* (D173). So the wake has to come from the CAMERA: an event it noticed by
|
|
@@ -52315,7 +54291,7 @@ var ClipSchema = object({
|
|
|
52315
54291
|
* {@link MAX_CLIP_EVENT_IDS}. Empty on footage-only clips.
|
|
52316
54292
|
*
|
|
52317
54293
|
* Bounded because it is not a payload the surface pages through: one visit on
|
|
52318
|
-
* device
|
|
54294
|
+
* device 101 carried 2 345 ids, and `eventIds` was 99% of a 153 KB
|
|
52319
54295
|
* camera-day. Read {@link eventCount} for the true total.
|
|
52320
54296
|
*/
|
|
52321
54297
|
eventIds: array(string()).optional(),
|
|
@@ -52460,7 +54436,7 @@ var ClipPlaybackSchema = object({
|
|
|
52460
54436
|
* camera has no recordings", which is the defect this whole line of work is
|
|
52461
54437
|
* about: a battery camera nobody woke (`sleeping`), a camera that could not be
|
|
52462
54438
|
* reached at all (`unreachable`, also what a provider that THREW reports), a
|
|
52463
|
-
* camera whose SD card is not mounted (`no-storage`, measured on
|
|
54439
|
+
* camera whose SD card is not mounted (`no-storage`, measured on 106 —
|
|
52464
54440
|
* `HddInfo mount 0`, honestly nothing to list rather than "no clips"), and a
|
|
52465
54441
|
* camera whose OWN index disagrees with its OWN calendar (`index-empty`,
|
|
52466
54442
|
* measured on 618: the calendar marks 3–20 September, days 6–20 list zero
|
|
@@ -52725,7 +54701,7 @@ DeviceType.Camera, method(object({
|
|
|
52725
54701
|
*
|
|
52726
54702
|
* It was optional, documented as "absent means the device's BOUND
|
|
52727
54703
|
* provider, which is CamStack on every camera". No code implemented
|
|
52728
|
-
* that. Measured on the live hub 2026-09-20 — device
|
|
54704
|
+
* that. Measured on the live hub 2026-09-20 — device 107, bound to
|
|
52729
54705
|
* `recorder` AND `provider-reolink` — a bare call with `limit: 3`
|
|
52730
54706
|
* answered SIX rows, three from each source, merged newest-first:
|
|
52731
54707
|
* `device-collection-dispatch.ts` simply left the fan-out un-narrowed,
|
|
@@ -53803,7 +55779,10 @@ object({
|
|
|
53803
55779
|
DeviceType.Sensor;
|
|
53804
55780
|
object({
|
|
53805
55781
|
/** Current illuminance in lux (lx). */
|
|
53806
|
-
lux: number().min(0)
|
|
55782
|
+
lux: number().min(0).meta({
|
|
55783
|
+
unit: "lx",
|
|
55784
|
+
label: "Illuminance"
|
|
55785
|
+
}),
|
|
53807
55786
|
/** Ms epoch when the slice was last updated. */
|
|
53808
55787
|
lastFetchedAt: number(),
|
|
53809
55788
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -53959,7 +55938,10 @@ var BatteryStatusSchema = object({
|
|
|
53959
55938
|
* Consumers must SKIP a null rather than coerce it — `battery-band` already
|
|
53960
55939
|
* declines to band a non-finite reading, which is the correct shape.
|
|
53961
55940
|
*/
|
|
53962
|
-
percentage: number().min(0).max(100).nullable()
|
|
55941
|
+
percentage: number().min(0).max(100).nullable().meta({
|
|
55942
|
+
unit: "%",
|
|
55943
|
+
label: "Charge"
|
|
55944
|
+
}),
|
|
53963
55945
|
/**
|
|
53964
55946
|
* Charging source. `'dc'` covers wall/USB adapters; `'solar'` is
|
|
53965
55947
|
* Reolink-specific for the Solar Panel 2 accessory (will become
|
|
@@ -53978,13 +55960,13 @@ var BatteryStatusSchema = object({
|
|
|
53978
55960
|
"solar",
|
|
53979
55961
|
"none",
|
|
53980
55962
|
"unknown"
|
|
53981
|
-
]),
|
|
55963
|
+
]).meta({ label: "Charging source" }),
|
|
53982
55964
|
/**
|
|
53983
55965
|
* True when the camera firmware has gone into low-power mode. Battery
|
|
53984
55966
|
* providers MUST avoid polling during sleep — reading the battery
|
|
53985
55967
|
* wakes the camera up and drains charge.
|
|
53986
55968
|
*/
|
|
53987
|
-
sleeping: boolean(),
|
|
55969
|
+
sleeping: boolean().meta({ label: "Sleeping" }),
|
|
53988
55970
|
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
53989
55971
|
lastUpdated: number(),
|
|
53990
55972
|
/**
|
|
@@ -54024,7 +56006,7 @@ var BatteryStatusSchema = object({
|
|
|
54024
56006
|
* sub-threshold = low). UI MUST render "Normal"/"Low" instead of a
|
|
54025
56007
|
* misleading exact percentage. Absent/false → genuine 0–100 % reading.
|
|
54026
56008
|
*/
|
|
54027
|
-
binary: boolean().optional()
|
|
56009
|
+
binary: boolean().optional().meta({ label: "Binary indicator" })
|
|
54028
56010
|
});
|
|
54029
56011
|
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat;
|
|
54030
56012
|
method(object({
|
|
@@ -54039,7 +56021,7 @@ method(object({
|
|
|
54039
56021
|
status: BatteryStatusSchema
|
|
54040
56022
|
});
|
|
54041
56023
|
object({
|
|
54042
|
-
on: boolean(),
|
|
56024
|
+
on: boolean().meta({ label: "On" }),
|
|
54043
56025
|
/** Ms epoch of the last transition. 0 if never observed. */
|
|
54044
56026
|
lastChangedAt: number()
|
|
54045
56027
|
});
|
|
@@ -54297,7 +56279,7 @@ var GridLayoutCellSchema = object({
|
|
|
54297
56279
|
*
|
|
54298
56280
|
* A grid's `high` composes its sources' `high` and its `low` their `low`, so a
|
|
54299
56281
|
* profile is on offer only when EVERY source can serve it. The refusal NAMES
|
|
54300
|
-
* the sources, because "this grid has no low" is not a finding — "
|
|
56282
|
+
* the sources, because "this grid has no low" is not a finding — "101 has no
|
|
54301
56283
|
* low" is, and it is the one an operator can act on.
|
|
54302
56284
|
*/
|
|
54303
56285
|
var GridProfileOfferSchema = object({
|
|
@@ -55848,7 +57830,10 @@ DeviceType.Humidifier, method(object({
|
|
|
55848
57830
|
});
|
|
55849
57831
|
object({
|
|
55850
57832
|
/** Current relative humidity, 0..100. */
|
|
55851
|
-
percent: number().min(0).max(100)
|
|
57833
|
+
percent: number().min(0).max(100).meta({
|
|
57834
|
+
unit: "%",
|
|
57835
|
+
label: "Humidity"
|
|
57836
|
+
}),
|
|
55852
57837
|
/** Ms epoch when the slice was last updated. */
|
|
55853
57838
|
lastFetchedAt: number(),
|
|
55854
57839
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -58625,9 +60610,15 @@ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema)
|
|
|
58625
60610
|
});
|
|
58626
60611
|
object({
|
|
58627
60612
|
/** Instantaneous power draw in watts. */
|
|
58628
|
-
watts: number().optional()
|
|
60613
|
+
watts: number().optional().meta({
|
|
60614
|
+
unit: "W",
|
|
60615
|
+
label: "Power"
|
|
60616
|
+
}),
|
|
58629
60617
|
/** Cumulative energy in kilowatt-hours since the meter was reset. */
|
|
58630
|
-
kwhTotal: number().optional()
|
|
60618
|
+
kwhTotal: number().optional().meta({
|
|
60619
|
+
unit: "kWh",
|
|
60620
|
+
label: "Energy"
|
|
60621
|
+
}),
|
|
58631
60622
|
/** Voltage in volts. */
|
|
58632
60623
|
volts: number().optional(),
|
|
58633
60624
|
/** Current in amperes. */
|
|
@@ -58946,9 +60937,9 @@ var PtzOptionsSchema = object({
|
|
|
58946
60937
|
* Reolink preset 0, Hikvision preset '1', Dahua preset 1 -- and on this fleet
|
|
58947
60938
|
* not one of the three cameras honours its own:
|
|
58948
60939
|
*
|
|
58949
|
-
*
|
|
58950
|
-
* 1438
|
|
58951
|
-
* 3836
|
|
60940
|
+
* 107 Camera camera Carol (reolink) preset 0 holds "stanza"
|
|
60941
|
+
* 1438 Camera dispensa (hikvision) preset 1 holds "Credenza"
|
|
60942
|
+
* 3836 Camera studio (amcrest) preset 1 holds "Preset1"
|
|
58952
60943
|
*
|
|
58953
60944
|
* So `goHome` meant "go wherever the operator happened to save in slot 0 or 1",
|
|
58954
60945
|
* and two of the three swallowed the failure in a bare `catch`. For autotrack
|
|
@@ -59095,7 +61086,7 @@ object({
|
|
|
59095
61086
|
running: boolean().nullable(),
|
|
59096
61087
|
/** Epoch ms the current boolean began; null while `running` is null. */
|
|
59097
61088
|
since: number().nullable(),
|
|
59098
|
-
source: RunningStateSourceSchema,
|
|
61089
|
+
source: RunningStateSourceSchema.meta({ label: "Source" }),
|
|
59099
61090
|
phase: string().nullable(),
|
|
59100
61091
|
/** null until a reading has been published (D393). */
|
|
59101
61092
|
lastFetchedAt: number().nullable()
|
|
@@ -59148,7 +61139,7 @@ var RecordingAvailabilitySchema = object({
|
|
|
59148
61139
|
* would look identical. But the answer used to say nothing about that, so a
|
|
59149
61140
|
* caller asking "what can I export?" read the single preferred profile as
|
|
59150
61141
|
* the only one that exists — on this deployment every camera records `high`
|
|
59151
|
-
* AND `low`, the low tree holding 14 GB for camera
|
|
61142
|
+
* AND `low`, the low tree holding 14 GB for camera 101 alone, and the export
|
|
59152
61143
|
* UI could not see it.
|
|
59153
61144
|
*
|
|
59154
61145
|
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
@@ -59247,7 +61238,7 @@ var RecordingSourceOptionsSchema = object({
|
|
|
59247
61238
|
* `sparse` = gaps are the absence of one, and must be drawn as such.
|
|
59248
61239
|
*
|
|
59249
61240
|
* Not an onboard-only concession: measured 2026-09-24, OUR bar covers 98.8 %
|
|
59250
|
-
* of
|
|
61241
|
+
* of 107's day and 1.2 % of 1436's. It is a fact about a (source, camera)
|
|
59251
61242
|
* pair, and ours answers it per camera from `deriveRecordingMode`. */
|
|
59252
61243
|
coverage: _enum(["continuous", "sparse"]),
|
|
59253
61244
|
/** Where the playhead may be put.
|
|
@@ -59323,7 +61314,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(RecordingSourceS
|
|
|
59323
61314
|
* merely discouraged (D554 amended).
|
|
59324
61315
|
*
|
|
59325
61316
|
* It was learned the expensive way on `videoclips.listClips`: measured
|
|
59326
|
-
* on the live hub 2026-09-20, device
|
|
61317
|
+
* on the live hub 2026-09-20, device 107 bound to `recorder` AND
|
|
59327
61318
|
* `provider-reolink`, a bare call with `limit: 3` answered SIX rows,
|
|
59328
61319
|
* three from each source, merged — `device-collection-dispatch.ts`
|
|
59329
61320
|
* leaves an unpinned fan-out un-narrowed, so absence buys the union the
|
|
@@ -59924,7 +61915,7 @@ var ExportSpeedSchema = number().min(.25).max(32);
|
|
|
59924
61915
|
* on a 10 h window holding 29,393 s of footage every range landed late by the
|
|
59925
61916
|
* gap accumulated before it — up to 6,607 s, well past EOF. Nothing matched,
|
|
59926
61917
|
* the video was a uniform timelapse, and the log line reported the five ranges
|
|
59927
|
-
* that had been ASKED for (2026-08-13, export `57d14363`, camera
|
|
61918
|
+
* that had been ASKED for (2026-08-13, export `57d14363`, camera 101).
|
|
59928
61919
|
*
|
|
59929
61920
|
* Relative and not absolute epoch, because an absolute epoch would make every
|
|
59930
61921
|
* call site responsible for the same subtraction.
|
|
@@ -60558,7 +62549,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), RecordingSignalStatusS
|
|
|
60558
62549
|
* which put a "Scenes" tab on one camera's detail page. That is the wrong shape
|
|
60559
62550
|
* for the thing: a scene is a standing question about the property ("is the bin
|
|
60560
62551
|
* still out"), and the operator's question is "which of my scenes have tripped",
|
|
60561
|
-
* across every camera at once — not "what does camera
|
|
62552
|
+
* across every camera at once — not "what does camera 102 think". Buried one
|
|
60562
62553
|
* camera deep it also could not be found. The surface is now a top-level admin
|
|
60563
62554
|
* page (`/scenes`, `pages/Scenes.tsx`) that lists every scene on every camera and
|
|
60564
62555
|
* picks the camera inside the create flow, the same shape Events and Faces have.
|
|
@@ -61141,7 +63132,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), StreamParamsOptionsSch
|
|
|
61141
63132
|
auth: "admin"
|
|
61142
63133
|
}), method(object({ deviceId: number() }), unknown().nullable());
|
|
61143
63134
|
object({
|
|
61144
|
-
on: boolean(),
|
|
63135
|
+
on: boolean().meta({ label: "On" }),
|
|
61145
63136
|
/** Ms epoch of the last state change. Useful for UI "X minutes ago". */
|
|
61146
63137
|
lastChangedAt: number()
|
|
61147
63138
|
});
|
|
@@ -61704,7 +63695,10 @@ object({
|
|
|
61704
63695
|
DeviceType.Sensor;
|
|
61705
63696
|
object({
|
|
61706
63697
|
/** Current temperature in Celsius. */
|
|
61707
|
-
celsius: number()
|
|
63698
|
+
celsius: number().meta({
|
|
63699
|
+
unit: "°C",
|
|
63700
|
+
label: "Temperature"
|
|
63701
|
+
}),
|
|
61708
63702
|
/** Ms epoch when the slice was last updated (push or poll). */
|
|
61709
63703
|
lastFetchedAt: number(),
|
|
61710
63704
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -62852,6 +64846,10 @@ method(object({}), array(TrainingBaseModelSchema).readonly(), { auth: "admin" })
|
|
|
62852
64846
|
auth: "admin"
|
|
62853
64847
|
});
|
|
62854
64848
|
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
64849
|
+
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;
|
|
64850
|
+
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
64851
|
+
DeviceRole.BinarySensor, DeviceRole.MotionSensor;
|
|
64852
|
+
new Set(CAP_NAMES);
|
|
62855
64853
|
Object.freeze({
|
|
62856
64854
|
person: .5,
|
|
62857
64855
|
vehicle: .5,
|
|
@@ -75789,7 +77787,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
75789
77787
|
state: [{
|
|
75790
77788
|
kind: "boolean",
|
|
75791
77789
|
field: "on",
|
|
75792
|
-
label: t("
|
|
77790
|
+
label: t("On", "Acceso"),
|
|
75793
77791
|
whenTrue: t("When {device} turns active", "Quando {device} si attiva"),
|
|
75794
77792
|
whenFalse: t("When {device} turns inactive", "Quando {device} si disattiva"),
|
|
75795
77793
|
icon: "toggle-right"
|
|
@@ -79213,7 +81211,6 @@ Object.freeze({
|
|
|
79213
81211
|
"smtp-provider": "email"
|
|
79214
81212
|
});
|
|
79215
81213
|
DeviceType.Camera;
|
|
79216
|
-
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;
|
|
79217
81214
|
/**
|
|
79218
81215
|
* A saved Customize assignment (D936). The schema is the type: callers use
|
|
79219
81216
|
* `z.infer`, they do not restate the shape.
|
|
@@ -79302,7 +81299,6 @@ object({
|
|
|
79302
81299
|
]),
|
|
79303
81300
|
reason: string().nullable()
|
|
79304
81301
|
});
|
|
79305
|
-
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
79306
81302
|
var G711_SCALE_CORRECTION_DB = {
|
|
79307
81303
|
PCMU: 20 * Math.log10(4),
|
|
79308
81304
|
PCMA: 20 * Math.log10(8)
|
|
@@ -79675,7 +81671,7 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
79675
81671
|
{
|
|
79676
81672
|
name: "summaryStreams",
|
|
79677
81673
|
label: "Summary: streams offline",
|
|
79678
|
-
example: "
|
|
81674
|
+
example: "Front door (high) — since 06:40",
|
|
79679
81675
|
kinds: ["stream-offline", "stream-online"]
|
|
79680
81676
|
},
|
|
79681
81677
|
{
|
|
@@ -79693,13 +81689,13 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
79693
81689
|
{
|
|
79694
81690
|
name: "summaryDetection",
|
|
79695
81691
|
label: "Summary: cameras detecting nothing",
|
|
79696
|
-
example: "
|
|
81692
|
+
example: "Front door — since 05:10",
|
|
79697
81693
|
kinds: ["detection-blind"]
|
|
79698
81694
|
},
|
|
79699
81695
|
{
|
|
79700
81696
|
name: "summaryNodes",
|
|
79701
81697
|
label: "Summary: nodes",
|
|
79702
|
-
example: "
|
|
81698
|
+
example: "agent-a — offline since 03:00",
|
|
79703
81699
|
kinds: [
|
|
79704
81700
|
"node-offline",
|
|
79705
81701
|
"node-online",
|
|
@@ -80517,7 +82513,7 @@ var AgentUIAddon = class extends BaseAddon {
|
|
|
80517
82513
|
capability: adminUiCapability,
|
|
80518
82514
|
provider: {
|
|
80519
82515
|
getStaticDir: async () => ({ staticDir: path.resolve(__dirname) }),
|
|
80520
|
-
getVersion: async () => ({ version: "1.2.
|
|
82516
|
+
getVersion: async () => ({ version: "1.2.268" })
|
|
80521
82517
|
}
|
|
80522
82518
|
}];
|
|
80523
82519
|
}
|