@camstack/addon-training 0.1.80 → 0.1.82
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/{MotionZonesSettings-BliuxpCH.mjs → MotionZonesSettings-Ca-6XXfI.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-CKL9xV-S.mjs → PrivacyMaskSettings-BCUM9T8S.mjs} +2 -2
- package/dist/{SceneMonitorEditor-BE7rVggL.mjs → SceneMonitorEditor-CjJ891SK.mjs} +1 -1
- package/dist/_stub.js +7 -7
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-DyaQwk4k.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-vEOlZUQt.mjs} +4 -4
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-9NmkfCw8.mjs +26 -0
- package/dist/{dist-BCUHufOe.mjs → dist-CQOH32eF.mjs} +2051 -50
- package/dist/{dist-FpC7GFu_.js → dist-VJTyi7FX.js} +2051 -50
- package/dist/{hostInit-DxnxYPQ_.mjs → hostInit-CvOJdSqn.mjs} +3 -3
- package/dist/index.js +1 -1
- package/dist/orchestrator/training.addon.js +1 -1
- package/dist/orchestrator/training.addon.mjs +1 -1
- package/dist/{player-overlays-1cASdLh_.mjs → player-overlays-Bk8LUHwl.mjs} +1 -1
- package/dist/providers/modal/training-modal.addon.js +1 -1
- package/dist/providers/modal/training-modal.addon.mjs +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-Ctl0WYwk.mjs → responsive-DkRlf-GQ.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-C_798y4H.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-DNg-tEZh.mjs} +1 -1
- package/package.json +7 -2
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DKoALssM.mjs +0 -26
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "node:crypto";
|
|
2
|
-
//#region ../types/dist/event-category-
|
|
2
|
+
//#region ../types/dist/event-category-DHXxB8t9.mjs
|
|
3
3
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4
4
|
EventCategory["SystemBoot"] = "system.boot";
|
|
5
5
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -295,7 +295,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
295
295
|
* TRANSITION into that state (never per dispatch), and the node is dropped
|
|
296
296
|
* from the placement candidate set for as long as it holds.
|
|
297
297
|
*
|
|
298
|
-
* This exists because the state was previously invisible:
|
|
298
|
+
* This exists because the state was previously invisible: agent-a
|
|
299
299
|
* absorbed 283k inference errors in a day while still being handed cameras,
|
|
300
300
|
* and nothing in the system said so.
|
|
301
301
|
*
|
|
@@ -5567,7 +5567,7 @@ var ZodIssueCode = {
|
|
|
5567
5567
|
var ZodFirstPartyTypeKind;
|
|
5568
5568
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5569
5569
|
//#endregion
|
|
5570
|
-
//#region ../types/dist/sleep-
|
|
5570
|
+
//#region ../types/dist/sleep-BErAxhul.mjs
|
|
5571
5571
|
/**
|
|
5572
5572
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5573
5573
|
* window to float samples (D455).
|
|
@@ -8767,6 +8767,1980 @@ method(object({ deviceId: number() }), array(StreamSourceEntrySchema)), method(o
|
|
|
8767
8767
|
kind: "mutation",
|
|
8768
8768
|
auth: "admin"
|
|
8769
8769
|
}), method(object({ deviceId: number() }), unknown().nullable()), method(object({ deviceId: number() }), RawStateResultSchema.nullable(), { auth: "protected" });
|
|
8770
|
+
Object.freeze({ "doorbell": "lastPressedAt" });
|
|
8771
|
+
/** Every capability name, so addon code can check a name without the schema graph. */
|
|
8772
|
+
var CAP_NAMES = Object.freeze([
|
|
8773
|
+
"accessories",
|
|
8774
|
+
"addon-pages",
|
|
8775
|
+
"addon-pages-source",
|
|
8776
|
+
"addon-routes",
|
|
8777
|
+
"addon-settings",
|
|
8778
|
+
"addon-widgets",
|
|
8779
|
+
"addon-widgets-source",
|
|
8780
|
+
"addons",
|
|
8781
|
+
"admin-ui",
|
|
8782
|
+
"air-quality-sensor",
|
|
8783
|
+
"alarm-panel",
|
|
8784
|
+
"alerts",
|
|
8785
|
+
"ambient-light-sensor",
|
|
8786
|
+
"audio-analysis",
|
|
8787
|
+
"audio-analyzer",
|
|
8788
|
+
"audio-codec",
|
|
8789
|
+
"audio-metrics",
|
|
8790
|
+
"auth-provider",
|
|
8791
|
+
"automation-control",
|
|
8792
|
+
"backup",
|
|
8793
|
+
"battery",
|
|
8794
|
+
"binary",
|
|
8795
|
+
"brightness",
|
|
8796
|
+
"broker",
|
|
8797
|
+
"button",
|
|
8798
|
+
"calendar-source",
|
|
8799
|
+
"calendars",
|
|
8800
|
+
"camera-credentials",
|
|
8801
|
+
"camera-grid-layout",
|
|
8802
|
+
"camera-pipeline-config",
|
|
8803
|
+
"camera-streams",
|
|
8804
|
+
"carbon-monoxide",
|
|
8805
|
+
"climate-control",
|
|
8806
|
+
"color",
|
|
8807
|
+
"composer",
|
|
8808
|
+
"connection-test",
|
|
8809
|
+
"connectivity",
|
|
8810
|
+
"consumables",
|
|
8811
|
+
"contact",
|
|
8812
|
+
"control",
|
|
8813
|
+
"core-blocks",
|
|
8814
|
+
"cover",
|
|
8815
|
+
"custom-model-registry",
|
|
8816
|
+
"data-store-provider",
|
|
8817
|
+
"database-snapshot",
|
|
8818
|
+
"day-night",
|
|
8819
|
+
"decoder",
|
|
8820
|
+
"detection-pipeline",
|
|
8821
|
+
"device-admin-link",
|
|
8822
|
+
"device-adoption",
|
|
8823
|
+
"device-credentials",
|
|
8824
|
+
"device-discovery",
|
|
8825
|
+
"device-export",
|
|
8826
|
+
"device-extension",
|
|
8827
|
+
"device-history",
|
|
8828
|
+
"device-manager",
|
|
8829
|
+
"device-ops",
|
|
8830
|
+
"device-provider",
|
|
8831
|
+
"device-removal-hook",
|
|
8832
|
+
"device-state",
|
|
8833
|
+
"device-status",
|
|
8834
|
+
"dishwasher",
|
|
8835
|
+
"display-palette",
|
|
8836
|
+
"doorbell",
|
|
8837
|
+
"embedding-encoder",
|
|
8838
|
+
"enum-sensor",
|
|
8839
|
+
"event-emitter",
|
|
8840
|
+
"face-gallery",
|
|
8841
|
+
"failure-contribution",
|
|
8842
|
+
"fan-control",
|
|
8843
|
+
"feature-probe",
|
|
8844
|
+
"filesystem-browse",
|
|
8845
|
+
"flood",
|
|
8846
|
+
"gas",
|
|
8847
|
+
"heating-valve",
|
|
8848
|
+
"humidifier",
|
|
8849
|
+
"humidity-sensor",
|
|
8850
|
+
"image",
|
|
8851
|
+
"image-settings",
|
|
8852
|
+
"integrations",
|
|
8853
|
+
"intercom",
|
|
8854
|
+
"keychain",
|
|
8855
|
+
"keychain-admin",
|
|
8856
|
+
"lawn-mower-control",
|
|
8857
|
+
"llm",
|
|
8858
|
+
"llm-runtime",
|
|
8859
|
+
"load-contribution",
|
|
8860
|
+
"local-network",
|
|
8861
|
+
"lock-control",
|
|
8862
|
+
"log-channels",
|
|
8863
|
+
"log-destination",
|
|
8864
|
+
"login-method",
|
|
8865
|
+
"media-player",
|
|
8866
|
+
"mesh-network",
|
|
8867
|
+
"metrics-provider",
|
|
8868
|
+
"model-convert",
|
|
8869
|
+
"model-distributor",
|
|
8870
|
+
"motion",
|
|
8871
|
+
"motion-detection",
|
|
8872
|
+
"motion-trigger",
|
|
8873
|
+
"motion-zones",
|
|
8874
|
+
"mqtt-broker",
|
|
8875
|
+
"native-object-detection",
|
|
8876
|
+
"navigation",
|
|
8877
|
+
"network-access",
|
|
8878
|
+
"network-link",
|
|
8879
|
+
"network-quality",
|
|
8880
|
+
"node-certificates",
|
|
8881
|
+
"nodes",
|
|
8882
|
+
"notification-output",
|
|
8883
|
+
"notification-rules",
|
|
8884
|
+
"notifier",
|
|
8885
|
+
"numeric-sensor",
|
|
8886
|
+
"oauth-integration",
|
|
8887
|
+
"oidc-connections",
|
|
8888
|
+
"osd",
|
|
8889
|
+
"osd-manager",
|
|
8890
|
+
"pet-feeder",
|
|
8891
|
+
"pipeline-analytics",
|
|
8892
|
+
"pipeline-executor",
|
|
8893
|
+
"pipeline-orchestrator",
|
|
8894
|
+
"pipeline-runner",
|
|
8895
|
+
"plate-gallery",
|
|
8896
|
+
"platform-probe",
|
|
8897
|
+
"power-meter",
|
|
8898
|
+
"presence",
|
|
8899
|
+
"pressure-sensor",
|
|
8900
|
+
"privacy-mask",
|
|
8901
|
+
"ptz",
|
|
8902
|
+
"ptz-autotrack",
|
|
8903
|
+
"reboot",
|
|
8904
|
+
"record-entries",
|
|
8905
|
+
"recording",
|
|
8906
|
+
"recording-archive",
|
|
8907
|
+
"recording-export",
|
|
8908
|
+
"recording-onboard",
|
|
8909
|
+
"recording-signal",
|
|
8910
|
+
"records",
|
|
8911
|
+
"running-state",
|
|
8912
|
+
"scene-monitor",
|
|
8913
|
+
"script-runner",
|
|
8914
|
+
"server-management",
|
|
8915
|
+
"settings-store",
|
|
8916
|
+
"smoke",
|
|
8917
|
+
"smtp-provider",
|
|
8918
|
+
"snapshot",
|
|
8919
|
+
"sso-bridge",
|
|
8920
|
+
"storage",
|
|
8921
|
+
"storage-admin",
|
|
8922
|
+
"storage-evictable",
|
|
8923
|
+
"storage-migration",
|
|
8924
|
+
"storage-occupancy",
|
|
8925
|
+
"storage-provider",
|
|
8926
|
+
"stream-broker",
|
|
8927
|
+
"stream-catalog",
|
|
8928
|
+
"stream-params",
|
|
8929
|
+
"stream-signals",
|
|
8930
|
+
"switch",
|
|
8931
|
+
"system",
|
|
8932
|
+
"tamper",
|
|
8933
|
+
"temperature-sensor",
|
|
8934
|
+
"terminal-session",
|
|
8935
|
+
"toast",
|
|
8936
|
+
"training",
|
|
8937
|
+
"training-provider",
|
|
8938
|
+
"turn-provider",
|
|
8939
|
+
"update",
|
|
8940
|
+
"user-management",
|
|
8941
|
+
"user-passkeys",
|
|
8942
|
+
"vacuum-control",
|
|
8943
|
+
"valve",
|
|
8944
|
+
"vector-store",
|
|
8945
|
+
"vibration",
|
|
8946
|
+
"videoclips",
|
|
8947
|
+
"viewer-ui",
|
|
8948
|
+
"water-heater",
|
|
8949
|
+
"weather",
|
|
8950
|
+
"webrtc-session",
|
|
8951
|
+
"zone-analytics",
|
|
8952
|
+
"zone-rules",
|
|
8953
|
+
"zones"
|
|
8954
|
+
]);
|
|
8955
|
+
Object.freeze({
|
|
8956
|
+
"air-quality-sensor": [
|
|
8957
|
+
{
|
|
8958
|
+
"path": "co2Ppm",
|
|
8959
|
+
"valueType": "number"
|
|
8960
|
+
},
|
|
8961
|
+
{
|
|
8962
|
+
"path": "vocPpb",
|
|
8963
|
+
"valueType": "number"
|
|
8964
|
+
},
|
|
8965
|
+
{
|
|
8966
|
+
"path": "pm25",
|
|
8967
|
+
"valueType": "number"
|
|
8968
|
+
},
|
|
8969
|
+
{
|
|
8970
|
+
"path": "pm10",
|
|
8971
|
+
"valueType": "number"
|
|
8972
|
+
},
|
|
8973
|
+
{
|
|
8974
|
+
"path": "aqi",
|
|
8975
|
+
"valueType": "number"
|
|
8976
|
+
},
|
|
8977
|
+
{
|
|
8978
|
+
"path": "unit",
|
|
8979
|
+
"valueType": "string"
|
|
8980
|
+
},
|
|
8981
|
+
{
|
|
8982
|
+
"path": "precision",
|
|
8983
|
+
"valueType": "number"
|
|
8984
|
+
}
|
|
8985
|
+
],
|
|
8986
|
+
"alarm-panel": [
|
|
8987
|
+
{
|
|
8988
|
+
"path": "state",
|
|
8989
|
+
"valueType": "enum",
|
|
8990
|
+
"enumValues": [
|
|
8991
|
+
"disarmed",
|
|
8992
|
+
"armed_home",
|
|
8993
|
+
"armed_away",
|
|
8994
|
+
"armed_night",
|
|
8995
|
+
"armed_vacation",
|
|
8996
|
+
"armed_custom_bypass",
|
|
8997
|
+
"arming",
|
|
8998
|
+
"disarming",
|
|
8999
|
+
"pending",
|
|
9000
|
+
"triggered"
|
|
9001
|
+
]
|
|
9002
|
+
},
|
|
9003
|
+
{
|
|
9004
|
+
"path": "targetMode",
|
|
9005
|
+
"valueType": "enum",
|
|
9006
|
+
"enumValues": [
|
|
9007
|
+
"home",
|
|
9008
|
+
"away",
|
|
9009
|
+
"night",
|
|
9010
|
+
"vacation",
|
|
9011
|
+
"custom_bypass"
|
|
9012
|
+
]
|
|
9013
|
+
},
|
|
9014
|
+
{
|
|
9015
|
+
"path": "requiresCode",
|
|
9016
|
+
"valueType": "boolean"
|
|
9017
|
+
}
|
|
9018
|
+
],
|
|
9019
|
+
"ambient-light-sensor": [
|
|
9020
|
+
{
|
|
9021
|
+
"path": "lux",
|
|
9022
|
+
"valueType": "number"
|
|
9023
|
+
},
|
|
9024
|
+
{
|
|
9025
|
+
"path": "unit",
|
|
9026
|
+
"valueType": "string"
|
|
9027
|
+
},
|
|
9028
|
+
{
|
|
9029
|
+
"path": "precision",
|
|
9030
|
+
"valueType": "number"
|
|
9031
|
+
}
|
|
9032
|
+
],
|
|
9033
|
+
"audio-metrics": [
|
|
9034
|
+
{
|
|
9035
|
+
"path": "ts",
|
|
9036
|
+
"valueType": "number"
|
|
9037
|
+
},
|
|
9038
|
+
{
|
|
9039
|
+
"path": "windowSec",
|
|
9040
|
+
"valueType": "number"
|
|
9041
|
+
},
|
|
9042
|
+
{
|
|
9043
|
+
"path": "level.rms",
|
|
9044
|
+
"valueType": "number"
|
|
9045
|
+
},
|
|
9046
|
+
{
|
|
9047
|
+
"path": "level.dbfs",
|
|
9048
|
+
"valueType": "number"
|
|
9049
|
+
},
|
|
9050
|
+
{
|
|
9051
|
+
"path": "peakDbfs",
|
|
9052
|
+
"valueType": "number"
|
|
9053
|
+
},
|
|
9054
|
+
{
|
|
9055
|
+
"path": "avgDbfs",
|
|
9056
|
+
"valueType": "number"
|
|
9057
|
+
},
|
|
9058
|
+
{
|
|
9059
|
+
"path": "current.className",
|
|
9060
|
+
"valueType": "string"
|
|
9061
|
+
},
|
|
9062
|
+
{
|
|
9063
|
+
"path": "current.score",
|
|
9064
|
+
"valueType": "number"
|
|
9065
|
+
},
|
|
9066
|
+
{
|
|
9067
|
+
"path": "current.timestamp",
|
|
9068
|
+
"valueType": "number"
|
|
9069
|
+
}
|
|
9070
|
+
],
|
|
9071
|
+
"automation-control": [
|
|
9072
|
+
{
|
|
9073
|
+
"path": "enabled",
|
|
9074
|
+
"valueType": "boolean"
|
|
9075
|
+
},
|
|
9076
|
+
{
|
|
9077
|
+
"path": "isRunning",
|
|
9078
|
+
"valueType": "boolean"
|
|
9079
|
+
},
|
|
9080
|
+
{
|
|
9081
|
+
"path": "lastTriggeredAt",
|
|
9082
|
+
"valueType": "number"
|
|
9083
|
+
},
|
|
9084
|
+
{
|
|
9085
|
+
"path": "lastError",
|
|
9086
|
+
"valueType": "string"
|
|
9087
|
+
}
|
|
9088
|
+
],
|
|
9089
|
+
"battery": [
|
|
9090
|
+
{
|
|
9091
|
+
"path": "percentage",
|
|
9092
|
+
"valueType": "number"
|
|
9093
|
+
},
|
|
9094
|
+
{
|
|
9095
|
+
"path": "charging",
|
|
9096
|
+
"valueType": "enum",
|
|
9097
|
+
"enumValues": [
|
|
9098
|
+
"dc",
|
|
9099
|
+
"solar",
|
|
9100
|
+
"none",
|
|
9101
|
+
"unknown"
|
|
9102
|
+
]
|
|
9103
|
+
},
|
|
9104
|
+
{
|
|
9105
|
+
"path": "sleeping",
|
|
9106
|
+
"valueType": "boolean"
|
|
9107
|
+
},
|
|
9108
|
+
{
|
|
9109
|
+
"path": "lastUpdated",
|
|
9110
|
+
"valueType": "number"
|
|
9111
|
+
},
|
|
9112
|
+
{
|
|
9113
|
+
"path": "lastContactAt",
|
|
9114
|
+
"valueType": "number"
|
|
9115
|
+
},
|
|
9116
|
+
{
|
|
9117
|
+
"path": "lastFullRefreshAt",
|
|
9118
|
+
"valueType": "number"
|
|
9119
|
+
},
|
|
9120
|
+
{
|
|
9121
|
+
"path": "binary",
|
|
9122
|
+
"valueType": "boolean"
|
|
9123
|
+
}
|
|
9124
|
+
],
|
|
9125
|
+
"binary": [{
|
|
9126
|
+
"path": "on",
|
|
9127
|
+
"valueType": "boolean"
|
|
9128
|
+
}],
|
|
9129
|
+
"brightness": [{
|
|
9130
|
+
"path": "percentage",
|
|
9131
|
+
"valueType": "number"
|
|
9132
|
+
}],
|
|
9133
|
+
"broker": [{
|
|
9134
|
+
"path": "brokerCount",
|
|
9135
|
+
"valueType": "number"
|
|
9136
|
+
}, {
|
|
9137
|
+
"path": "connectedCount",
|
|
9138
|
+
"valueType": "number"
|
|
9139
|
+
}],
|
|
9140
|
+
"camera-credentials": [
|
|
9141
|
+
{
|
|
9142
|
+
"path": "host",
|
|
9143
|
+
"valueType": "string"
|
|
9144
|
+
},
|
|
9145
|
+
{
|
|
9146
|
+
"path": "port",
|
|
9147
|
+
"valueType": "number"
|
|
9148
|
+
},
|
|
9149
|
+
{
|
|
9150
|
+
"path": "onvifPort",
|
|
9151
|
+
"valueType": "number"
|
|
9152
|
+
},
|
|
9153
|
+
{
|
|
9154
|
+
"path": "rtspPort",
|
|
9155
|
+
"valueType": "number"
|
|
9156
|
+
},
|
|
9157
|
+
{
|
|
9158
|
+
"path": "https",
|
|
9159
|
+
"valueType": "boolean"
|
|
9160
|
+
},
|
|
9161
|
+
{
|
|
9162
|
+
"path": "hasUsername",
|
|
9163
|
+
"valueType": "boolean"
|
|
9164
|
+
},
|
|
9165
|
+
{
|
|
9166
|
+
"path": "hasPassword",
|
|
9167
|
+
"valueType": "boolean"
|
|
9168
|
+
},
|
|
9169
|
+
{
|
|
9170
|
+
"path": "onvifProfile",
|
|
9171
|
+
"valueType": "string"
|
|
9172
|
+
}
|
|
9173
|
+
],
|
|
9174
|
+
"camera-streams": [
|
|
9175
|
+
{
|
|
9176
|
+
"path": "online",
|
|
9177
|
+
"valueType": "boolean"
|
|
9178
|
+
},
|
|
9179
|
+
{
|
|
9180
|
+
"path": "slotStatuses.high",
|
|
9181
|
+
"valueType": "enum",
|
|
9182
|
+
"enumValues": [
|
|
9183
|
+
"unassigned",
|
|
9184
|
+
"idle",
|
|
9185
|
+
"connecting",
|
|
9186
|
+
"streaming",
|
|
9187
|
+
"error"
|
|
9188
|
+
]
|
|
9189
|
+
},
|
|
9190
|
+
{
|
|
9191
|
+
"path": "slotStatuses.mid",
|
|
9192
|
+
"valueType": "enum",
|
|
9193
|
+
"enumValues": [
|
|
9194
|
+
"unassigned",
|
|
9195
|
+
"idle",
|
|
9196
|
+
"connecting",
|
|
9197
|
+
"streaming",
|
|
9198
|
+
"error"
|
|
9199
|
+
]
|
|
9200
|
+
},
|
|
9201
|
+
{
|
|
9202
|
+
"path": "slotStatuses.low",
|
|
9203
|
+
"valueType": "enum",
|
|
9204
|
+
"enumValues": [
|
|
9205
|
+
"unassigned",
|
|
9206
|
+
"idle",
|
|
9207
|
+
"connecting",
|
|
9208
|
+
"streaming",
|
|
9209
|
+
"error"
|
|
9210
|
+
]
|
|
9211
|
+
},
|
|
9212
|
+
{
|
|
9213
|
+
"path": "slotErrors.high",
|
|
9214
|
+
"valueType": "string"
|
|
9215
|
+
},
|
|
9216
|
+
{
|
|
9217
|
+
"path": "slotErrors.mid",
|
|
9218
|
+
"valueType": "string"
|
|
9219
|
+
},
|
|
9220
|
+
{
|
|
9221
|
+
"path": "slotErrors.low",
|
|
9222
|
+
"valueType": "string"
|
|
9223
|
+
}
|
|
9224
|
+
],
|
|
9225
|
+
"carbon-monoxide": [{
|
|
9226
|
+
"path": "detected",
|
|
9227
|
+
"valueType": "boolean"
|
|
9228
|
+
}],
|
|
9229
|
+
"climate-control": [
|
|
9230
|
+
{
|
|
9231
|
+
"path": "mode",
|
|
9232
|
+
"valueType": "enum",
|
|
9233
|
+
"enumValues": [
|
|
9234
|
+
"off",
|
|
9235
|
+
"heat",
|
|
9236
|
+
"cool",
|
|
9237
|
+
"auto",
|
|
9238
|
+
"heat_cool",
|
|
9239
|
+
"fan_only",
|
|
9240
|
+
"dry"
|
|
9241
|
+
]
|
|
9242
|
+
},
|
|
9243
|
+
{
|
|
9244
|
+
"path": "fanMode",
|
|
9245
|
+
"valueType": "string"
|
|
9246
|
+
},
|
|
9247
|
+
{
|
|
9248
|
+
"path": "preset",
|
|
9249
|
+
"valueType": "string"
|
|
9250
|
+
},
|
|
9251
|
+
{
|
|
9252
|
+
"path": "target",
|
|
9253
|
+
"valueType": "number"
|
|
9254
|
+
},
|
|
9255
|
+
{
|
|
9256
|
+
"path": "targetHigh",
|
|
9257
|
+
"valueType": "number"
|
|
9258
|
+
},
|
|
9259
|
+
{
|
|
9260
|
+
"path": "targetLow",
|
|
9261
|
+
"valueType": "number"
|
|
9262
|
+
},
|
|
9263
|
+
{
|
|
9264
|
+
"path": "targetHumidity",
|
|
9265
|
+
"valueType": "number"
|
|
9266
|
+
},
|
|
9267
|
+
{
|
|
9268
|
+
"path": "currentTemp",
|
|
9269
|
+
"valueType": "number"
|
|
9270
|
+
},
|
|
9271
|
+
{
|
|
9272
|
+
"path": "currentHumidity",
|
|
9273
|
+
"valueType": "number"
|
|
9274
|
+
},
|
|
9275
|
+
{
|
|
9276
|
+
"path": "swingVertical",
|
|
9277
|
+
"valueType": "boolean"
|
|
9278
|
+
},
|
|
9279
|
+
{
|
|
9280
|
+
"path": "swingHorizontal",
|
|
9281
|
+
"valueType": "boolean"
|
|
9282
|
+
},
|
|
9283
|
+
{
|
|
9284
|
+
"path": "minTemp",
|
|
9285
|
+
"valueType": "number"
|
|
9286
|
+
},
|
|
9287
|
+
{
|
|
9288
|
+
"path": "maxTemp",
|
|
9289
|
+
"valueType": "number"
|
|
9290
|
+
},
|
|
9291
|
+
{
|
|
9292
|
+
"path": "tempStep",
|
|
9293
|
+
"valueType": "number"
|
|
9294
|
+
}
|
|
9295
|
+
],
|
|
9296
|
+
"color": [
|
|
9297
|
+
{
|
|
9298
|
+
"path": "mode",
|
|
9299
|
+
"valueType": "enum",
|
|
9300
|
+
"enumValues": [
|
|
9301
|
+
"rgb",
|
|
9302
|
+
"hsv",
|
|
9303
|
+
"mired"
|
|
9304
|
+
]
|
|
9305
|
+
},
|
|
9306
|
+
{
|
|
9307
|
+
"path": "rgb.r",
|
|
9308
|
+
"valueType": "number"
|
|
9309
|
+
},
|
|
9310
|
+
{
|
|
9311
|
+
"path": "rgb.g",
|
|
9312
|
+
"valueType": "number"
|
|
9313
|
+
},
|
|
9314
|
+
{
|
|
9315
|
+
"path": "rgb.b",
|
|
9316
|
+
"valueType": "number"
|
|
9317
|
+
},
|
|
9318
|
+
{
|
|
9319
|
+
"path": "hsv.h",
|
|
9320
|
+
"valueType": "number"
|
|
9321
|
+
},
|
|
9322
|
+
{
|
|
9323
|
+
"path": "hsv.s",
|
|
9324
|
+
"valueType": "number"
|
|
9325
|
+
},
|
|
9326
|
+
{
|
|
9327
|
+
"path": "hsv.v",
|
|
9328
|
+
"valueType": "number"
|
|
9329
|
+
},
|
|
9330
|
+
{
|
|
9331
|
+
"path": "mireds",
|
|
9332
|
+
"valueType": "number"
|
|
9333
|
+
}
|
|
9334
|
+
],
|
|
9335
|
+
"connectivity": [{
|
|
9336
|
+
"path": "connected",
|
|
9337
|
+
"valueType": "boolean"
|
|
9338
|
+
}],
|
|
9339
|
+
"contact": [{
|
|
9340
|
+
"path": "entryOpen",
|
|
9341
|
+
"valueType": "boolean"
|
|
9342
|
+
}],
|
|
9343
|
+
"control": [
|
|
9344
|
+
{
|
|
9345
|
+
"path": "kind",
|
|
9346
|
+
"valueType": "enum",
|
|
9347
|
+
"enumValues": [
|
|
9348
|
+
"numeric",
|
|
9349
|
+
"select",
|
|
9350
|
+
"text",
|
|
9351
|
+
"datetime"
|
|
9352
|
+
]
|
|
9353
|
+
},
|
|
9354
|
+
{
|
|
9355
|
+
"path": "unit",
|
|
9356
|
+
"valueType": "string"
|
|
9357
|
+
},
|
|
9358
|
+
{
|
|
9359
|
+
"path": "min",
|
|
9360
|
+
"valueType": "number"
|
|
9361
|
+
},
|
|
9362
|
+
{
|
|
9363
|
+
"path": "max",
|
|
9364
|
+
"valueType": "number"
|
|
9365
|
+
},
|
|
9366
|
+
{
|
|
9367
|
+
"path": "step",
|
|
9368
|
+
"valueType": "number"
|
|
9369
|
+
},
|
|
9370
|
+
{
|
|
9371
|
+
"path": "precision",
|
|
9372
|
+
"valueType": "number"
|
|
9373
|
+
},
|
|
9374
|
+
{
|
|
9375
|
+
"path": "format",
|
|
9376
|
+
"valueType": "enum",
|
|
9377
|
+
"enumValues": [
|
|
9378
|
+
"date",
|
|
9379
|
+
"time",
|
|
9380
|
+
"datetime"
|
|
9381
|
+
]
|
|
9382
|
+
}
|
|
9383
|
+
],
|
|
9384
|
+
"cover": [
|
|
9385
|
+
{
|
|
9386
|
+
"path": "state",
|
|
9387
|
+
"valueType": "enum",
|
|
9388
|
+
"enumValues": [
|
|
9389
|
+
"open",
|
|
9390
|
+
"opening",
|
|
9391
|
+
"closing",
|
|
9392
|
+
"closed",
|
|
9393
|
+
"stopped"
|
|
9394
|
+
]
|
|
9395
|
+
},
|
|
9396
|
+
{
|
|
9397
|
+
"path": "position",
|
|
9398
|
+
"valueType": "number"
|
|
9399
|
+
},
|
|
9400
|
+
{
|
|
9401
|
+
"path": "tiltPosition",
|
|
9402
|
+
"valueType": "number"
|
|
9403
|
+
}
|
|
9404
|
+
],
|
|
9405
|
+
"day-night": [
|
|
9406
|
+
{
|
|
9407
|
+
"path": "mode",
|
|
9408
|
+
"valueType": "enum",
|
|
9409
|
+
"enumValues": [
|
|
9410
|
+
"auto",
|
|
9411
|
+
"day",
|
|
9412
|
+
"night",
|
|
9413
|
+
"schedule"
|
|
9414
|
+
]
|
|
9415
|
+
},
|
|
9416
|
+
{
|
|
9417
|
+
"path": "sensitivity",
|
|
9418
|
+
"valueType": "number"
|
|
9419
|
+
},
|
|
9420
|
+
{
|
|
9421
|
+
"path": "switchDelaySec",
|
|
9422
|
+
"valueType": "number"
|
|
9423
|
+
}
|
|
9424
|
+
],
|
|
9425
|
+
"device-adoption": [
|
|
9426
|
+
{
|
|
9427
|
+
"path": "lastDiscoveryAt",
|
|
9428
|
+
"valueType": "number"
|
|
9429
|
+
},
|
|
9430
|
+
{
|
|
9431
|
+
"path": "candidateCount",
|
|
9432
|
+
"valueType": "number"
|
|
9433
|
+
},
|
|
9434
|
+
{
|
|
9435
|
+
"path": "adoptedCount",
|
|
9436
|
+
"valueType": "number"
|
|
9437
|
+
},
|
|
9438
|
+
{
|
|
9439
|
+
"path": "lastError",
|
|
9440
|
+
"valueType": "string"
|
|
9441
|
+
}
|
|
9442
|
+
],
|
|
9443
|
+
"device-discovery": [{
|
|
9444
|
+
"path": "lastDiscoveryAt",
|
|
9445
|
+
"valueType": "number"
|
|
9446
|
+
}, {
|
|
9447
|
+
"path": "lastError",
|
|
9448
|
+
"valueType": "string"
|
|
9449
|
+
}],
|
|
9450
|
+
"device-export": [
|
|
9451
|
+
{
|
|
9452
|
+
"path": "linkState",
|
|
9453
|
+
"valueType": "enum",
|
|
9454
|
+
"enumValues": [
|
|
9455
|
+
"unlinked",
|
|
9456
|
+
"linked",
|
|
9457
|
+
"error"
|
|
9458
|
+
]
|
|
9459
|
+
},
|
|
9460
|
+
{
|
|
9461
|
+
"path": "exposedDeviceCount",
|
|
9462
|
+
"valueType": "number"
|
|
9463
|
+
},
|
|
9464
|
+
{
|
|
9465
|
+
"path": "error",
|
|
9466
|
+
"valueType": "string"
|
|
9467
|
+
},
|
|
9468
|
+
{
|
|
9469
|
+
"path": "setup.qr",
|
|
9470
|
+
"valueType": "string"
|
|
9471
|
+
},
|
|
9472
|
+
{
|
|
9473
|
+
"path": "setup.note",
|
|
9474
|
+
"valueType": "string"
|
|
9475
|
+
}
|
|
9476
|
+
],
|
|
9477
|
+
"device-status": [{
|
|
9478
|
+
"path": "online",
|
|
9479
|
+
"valueType": "boolean"
|
|
9480
|
+
}],
|
|
9481
|
+
"dishwasher": [
|
|
9482
|
+
{
|
|
9483
|
+
"path": "availability",
|
|
9484
|
+
"valueType": "enum",
|
|
9485
|
+
"enumValues": [
|
|
9486
|
+
"available",
|
|
9487
|
+
"offline",
|
|
9488
|
+
"description-missing"
|
|
9489
|
+
]
|
|
9490
|
+
},
|
|
9491
|
+
{
|
|
9492
|
+
"path": "state",
|
|
9493
|
+
"valueType": "enum",
|
|
9494
|
+
"enumValues": [
|
|
9495
|
+
"idle",
|
|
9496
|
+
"running",
|
|
9497
|
+
"paused",
|
|
9498
|
+
"finished",
|
|
9499
|
+
"error",
|
|
9500
|
+
"unavailable"
|
|
9501
|
+
]
|
|
9502
|
+
},
|
|
9503
|
+
{
|
|
9504
|
+
"path": "operationState",
|
|
9505
|
+
"valueType": "enum",
|
|
9506
|
+
"enumValues": [
|
|
9507
|
+
"Inactive",
|
|
9508
|
+
"Ready",
|
|
9509
|
+
"DelayedStart",
|
|
9510
|
+
"Run",
|
|
9511
|
+
"Pause",
|
|
9512
|
+
"ActionRequired",
|
|
9513
|
+
"Finished",
|
|
9514
|
+
"Error",
|
|
9515
|
+
"Aborting"
|
|
9516
|
+
]
|
|
9517
|
+
},
|
|
9518
|
+
{
|
|
9519
|
+
"path": "program",
|
|
9520
|
+
"valueType": "string"
|
|
9521
|
+
},
|
|
9522
|
+
{
|
|
9523
|
+
"path": "selectedProgram",
|
|
9524
|
+
"valueType": "string"
|
|
9525
|
+
},
|
|
9526
|
+
{
|
|
9527
|
+
"path": "remainingSeconds",
|
|
9528
|
+
"valueType": "number"
|
|
9529
|
+
},
|
|
9530
|
+
{
|
|
9531
|
+
"path": "delayedStartSeconds",
|
|
9532
|
+
"valueType": "number"
|
|
9533
|
+
},
|
|
9534
|
+
{
|
|
9535
|
+
"path": "progressPercent",
|
|
9536
|
+
"valueType": "number"
|
|
9537
|
+
},
|
|
9538
|
+
{
|
|
9539
|
+
"path": "doorOpen",
|
|
9540
|
+
"valueType": "boolean"
|
|
9541
|
+
},
|
|
9542
|
+
{
|
|
9543
|
+
"path": "doorLocked",
|
|
9544
|
+
"valueType": "boolean"
|
|
9545
|
+
},
|
|
9546
|
+
{
|
|
9547
|
+
"path": "remoteStartAllowed",
|
|
9548
|
+
"valueType": "boolean"
|
|
9549
|
+
},
|
|
9550
|
+
{
|
|
9551
|
+
"path": "remoteControlActive",
|
|
9552
|
+
"valueType": "boolean"
|
|
9553
|
+
},
|
|
9554
|
+
{
|
|
9555
|
+
"path": "localControlActive",
|
|
9556
|
+
"valueType": "boolean"
|
|
9557
|
+
},
|
|
9558
|
+
{
|
|
9559
|
+
"path": "powerOn",
|
|
9560
|
+
"valueType": "boolean"
|
|
9561
|
+
},
|
|
9562
|
+
{
|
|
9563
|
+
"path": "powerState",
|
|
9564
|
+
"valueType": "string"
|
|
9565
|
+
},
|
|
9566
|
+
{
|
|
9567
|
+
"path": "filterCleaningDue",
|
|
9568
|
+
"valueType": "boolean"
|
|
9569
|
+
},
|
|
9570
|
+
{
|
|
9571
|
+
"path": "machineCareDue",
|
|
9572
|
+
"valueType": "boolean"
|
|
9573
|
+
},
|
|
9574
|
+
{
|
|
9575
|
+
"path": "machineCareRemainingRuns",
|
|
9576
|
+
"valueType": "number"
|
|
9577
|
+
},
|
|
9578
|
+
{
|
|
9579
|
+
"path": "halfLoad",
|
|
9580
|
+
"valueType": "boolean"
|
|
9581
|
+
},
|
|
9582
|
+
{
|
|
9583
|
+
"path": "hygienePlus",
|
|
9584
|
+
"valueType": "boolean"
|
|
9585
|
+
},
|
|
9586
|
+
{
|
|
9587
|
+
"path": "extraDry",
|
|
9588
|
+
"valueType": "boolean"
|
|
9589
|
+
},
|
|
9590
|
+
{
|
|
9591
|
+
"path": "intensiveZone",
|
|
9592
|
+
"valueType": "boolean"
|
|
9593
|
+
},
|
|
9594
|
+
{
|
|
9595
|
+
"path": "varioSpeedPlus",
|
|
9596
|
+
"valueType": "boolean"
|
|
9597
|
+
},
|
|
9598
|
+
{
|
|
9599
|
+
"path": "childLock",
|
|
9600
|
+
"valueType": "boolean"
|
|
9601
|
+
},
|
|
9602
|
+
{
|
|
9603
|
+
"path": "errorCode",
|
|
9604
|
+
"valueType": "number"
|
|
9605
|
+
},
|
|
9606
|
+
{
|
|
9607
|
+
"path": "errorLabel",
|
|
9608
|
+
"valueType": "string"
|
|
9609
|
+
}
|
|
9610
|
+
],
|
|
9611
|
+
"doorbell": [{
|
|
9612
|
+
"path": "lastPressedAt",
|
|
9613
|
+
"valueType": "number"
|
|
9614
|
+
}, {
|
|
9615
|
+
"path": "pressCountSinceStart",
|
|
9616
|
+
"valueType": "number"
|
|
9617
|
+
}],
|
|
9618
|
+
"enum-sensor": [{
|
|
9619
|
+
"path": "value",
|
|
9620
|
+
"valueType": "string"
|
|
9621
|
+
}, {
|
|
9622
|
+
"path": "format",
|
|
9623
|
+
"valueType": "enum",
|
|
9624
|
+
"enumValues": [
|
|
9625
|
+
"date",
|
|
9626
|
+
"time",
|
|
9627
|
+
"datetime"
|
|
9628
|
+
]
|
|
9629
|
+
}],
|
|
9630
|
+
"event-emitter": [
|
|
9631
|
+
{
|
|
9632
|
+
"path": "lastEvent.deviceId",
|
|
9633
|
+
"valueType": "number"
|
|
9634
|
+
},
|
|
9635
|
+
{
|
|
9636
|
+
"path": "lastEvent.eventType",
|
|
9637
|
+
"valueType": "string"
|
|
9638
|
+
},
|
|
9639
|
+
{
|
|
9640
|
+
"path": "lastEvent.timestamp",
|
|
9641
|
+
"valueType": "number"
|
|
9642
|
+
},
|
|
9643
|
+
{
|
|
9644
|
+
"path": "lastEvent.seq",
|
|
9645
|
+
"valueType": "number"
|
|
9646
|
+
},
|
|
9647
|
+
{
|
|
9648
|
+
"path": "eventCountSinceStart",
|
|
9649
|
+
"valueType": "number"
|
|
9650
|
+
}
|
|
9651
|
+
],
|
|
9652
|
+
"fan-control": [
|
|
9653
|
+
{
|
|
9654
|
+
"path": "percentage",
|
|
9655
|
+
"valueType": "number"
|
|
9656
|
+
},
|
|
9657
|
+
{
|
|
9658
|
+
"path": "percentageStep",
|
|
9659
|
+
"valueType": "number"
|
|
9660
|
+
},
|
|
9661
|
+
{
|
|
9662
|
+
"path": "preset",
|
|
9663
|
+
"valueType": "string"
|
|
9664
|
+
},
|
|
9665
|
+
{
|
|
9666
|
+
"path": "direction",
|
|
9667
|
+
"valueType": "enum",
|
|
9668
|
+
"enumValues": ["forward", "reverse"]
|
|
9669
|
+
},
|
|
9670
|
+
{
|
|
9671
|
+
"path": "oscillating",
|
|
9672
|
+
"valueType": "boolean"
|
|
9673
|
+
}
|
|
9674
|
+
],
|
|
9675
|
+
"feature-probe": [
|
|
9676
|
+
{
|
|
9677
|
+
"path": "deviceType",
|
|
9678
|
+
"valueType": "string"
|
|
9679
|
+
},
|
|
9680
|
+
{
|
|
9681
|
+
"path": "model",
|
|
9682
|
+
"valueType": "string"
|
|
9683
|
+
},
|
|
9684
|
+
{
|
|
9685
|
+
"path": "channelCount",
|
|
9686
|
+
"valueType": "number"
|
|
9687
|
+
},
|
|
9688
|
+
{
|
|
9689
|
+
"path": "lastProbedAt",
|
|
9690
|
+
"valueType": "number"
|
|
9691
|
+
}
|
|
9692
|
+
],
|
|
9693
|
+
"flood": [{
|
|
9694
|
+
"path": "flooded",
|
|
9695
|
+
"valueType": "boolean"
|
|
9696
|
+
}],
|
|
9697
|
+
"gas": [{
|
|
9698
|
+
"path": "detected",
|
|
9699
|
+
"valueType": "boolean"
|
|
9700
|
+
}],
|
|
9701
|
+
"heating-valve": [{
|
|
9702
|
+
"path": "position",
|
|
9703
|
+
"valueType": "number"
|
|
9704
|
+
}],
|
|
9705
|
+
"humidifier": [
|
|
9706
|
+
{
|
|
9707
|
+
"path": "on",
|
|
9708
|
+
"valueType": "boolean"
|
|
9709
|
+
},
|
|
9710
|
+
{
|
|
9711
|
+
"path": "currentHumidity",
|
|
9712
|
+
"valueType": "number"
|
|
9713
|
+
},
|
|
9714
|
+
{
|
|
9715
|
+
"path": "targetHumidity",
|
|
9716
|
+
"valueType": "number"
|
|
9717
|
+
},
|
|
9718
|
+
{
|
|
9719
|
+
"path": "mode",
|
|
9720
|
+
"valueType": "string"
|
|
9721
|
+
},
|
|
9722
|
+
{
|
|
9723
|
+
"path": "action",
|
|
9724
|
+
"valueType": "string"
|
|
9725
|
+
},
|
|
9726
|
+
{
|
|
9727
|
+
"path": "minHumidity",
|
|
9728
|
+
"valueType": "number"
|
|
9729
|
+
},
|
|
9730
|
+
{
|
|
9731
|
+
"path": "maxHumidity",
|
|
9732
|
+
"valueType": "number"
|
|
9733
|
+
}
|
|
9734
|
+
],
|
|
9735
|
+
"humidity-sensor": [
|
|
9736
|
+
{
|
|
9737
|
+
"path": "percent",
|
|
9738
|
+
"valueType": "number"
|
|
9739
|
+
},
|
|
9740
|
+
{
|
|
9741
|
+
"path": "unit",
|
|
9742
|
+
"valueType": "string"
|
|
9743
|
+
},
|
|
9744
|
+
{
|
|
9745
|
+
"path": "precision",
|
|
9746
|
+
"valueType": "number"
|
|
9747
|
+
}
|
|
9748
|
+
],
|
|
9749
|
+
"image": [{
|
|
9750
|
+
"path": "url",
|
|
9751
|
+
"valueType": "string"
|
|
9752
|
+
}, {
|
|
9753
|
+
"path": "lastUpdated",
|
|
9754
|
+
"valueType": "number"
|
|
9755
|
+
}],
|
|
9756
|
+
"image-settings": [
|
|
9757
|
+
{
|
|
9758
|
+
"path": "brightness",
|
|
9759
|
+
"valueType": "number"
|
|
9760
|
+
},
|
|
9761
|
+
{
|
|
9762
|
+
"path": "contrast",
|
|
9763
|
+
"valueType": "number"
|
|
9764
|
+
},
|
|
9765
|
+
{
|
|
9766
|
+
"path": "saturation",
|
|
9767
|
+
"valueType": "number"
|
|
9768
|
+
},
|
|
9769
|
+
{
|
|
9770
|
+
"path": "sharpness",
|
|
9771
|
+
"valueType": "number"
|
|
9772
|
+
},
|
|
9773
|
+
{
|
|
9774
|
+
"path": "mirror",
|
|
9775
|
+
"valueType": "boolean"
|
|
9776
|
+
},
|
|
9777
|
+
{
|
|
9778
|
+
"path": "flip",
|
|
9779
|
+
"valueType": "boolean"
|
|
9780
|
+
},
|
|
9781
|
+
{
|
|
9782
|
+
"path": "rotate",
|
|
9783
|
+
"valueType": "enum",
|
|
9784
|
+
"enumValues": [
|
|
9785
|
+
"0",
|
|
9786
|
+
"90",
|
|
9787
|
+
"180",
|
|
9788
|
+
"270"
|
|
9789
|
+
]
|
|
9790
|
+
},
|
|
9791
|
+
{
|
|
9792
|
+
"path": "whiteBalance",
|
|
9793
|
+
"valueType": "enum",
|
|
9794
|
+
"enumValues": ["auto", "manual"]
|
|
9795
|
+
},
|
|
9796
|
+
{
|
|
9797
|
+
"path": "warmth",
|
|
9798
|
+
"valueType": "number"
|
|
9799
|
+
},
|
|
9800
|
+
{
|
|
9801
|
+
"path": "exposureMode",
|
|
9802
|
+
"valueType": "enum",
|
|
9803
|
+
"enumValues": ["auto", "manual"]
|
|
9804
|
+
},
|
|
9805
|
+
{
|
|
9806
|
+
"path": "backlightMode",
|
|
9807
|
+
"valueType": "enum",
|
|
9808
|
+
"enumValues": [
|
|
9809
|
+
"off",
|
|
9810
|
+
"blc",
|
|
9811
|
+
"wdr",
|
|
9812
|
+
"hlc"
|
|
9813
|
+
]
|
|
9814
|
+
}
|
|
9815
|
+
],
|
|
9816
|
+
"intercom": [
|
|
9817
|
+
{
|
|
9818
|
+
"path": "talking",
|
|
9819
|
+
"valueType": "boolean"
|
|
9820
|
+
},
|
|
9821
|
+
{
|
|
9822
|
+
"path": "lastSessionAt",
|
|
9823
|
+
"valueType": "number"
|
|
9824
|
+
},
|
|
9825
|
+
{
|
|
9826
|
+
"path": "ability.sampleRate",
|
|
9827
|
+
"valueType": "number"
|
|
9828
|
+
},
|
|
9829
|
+
{
|
|
9830
|
+
"path": "ability.duplex",
|
|
9831
|
+
"valueType": "enum",
|
|
9832
|
+
"enumValues": ["half", "full"]
|
|
9833
|
+
},
|
|
9834
|
+
{
|
|
9835
|
+
"path": "ability.maxBacklogMs",
|
|
9836
|
+
"valueType": "number"
|
|
9837
|
+
}
|
|
9838
|
+
],
|
|
9839
|
+
"lawn-mower-control": [
|
|
9840
|
+
{
|
|
9841
|
+
"path": "activity",
|
|
9842
|
+
"valueType": "enum",
|
|
9843
|
+
"enumValues": [
|
|
9844
|
+
"idle",
|
|
9845
|
+
"mowing",
|
|
9846
|
+
"paused",
|
|
9847
|
+
"docked",
|
|
9848
|
+
"error"
|
|
9849
|
+
]
|
|
9850
|
+
},
|
|
9851
|
+
{
|
|
9852
|
+
"path": "batteryLevel",
|
|
9853
|
+
"valueType": "number"
|
|
9854
|
+
},
|
|
9855
|
+
{
|
|
9856
|
+
"path": "progressPercent",
|
|
9857
|
+
"valueType": "number"
|
|
9858
|
+
},
|
|
9859
|
+
{
|
|
9860
|
+
"path": "currentCode",
|
|
9861
|
+
"valueType": "number"
|
|
9862
|
+
},
|
|
9863
|
+
{
|
|
9864
|
+
"path": "currentCodeLabel",
|
|
9865
|
+
"valueType": "string"
|
|
9866
|
+
},
|
|
9867
|
+
{
|
|
9868
|
+
"path": "severity",
|
|
9869
|
+
"valueType": "enum",
|
|
9870
|
+
"enumValues": [
|
|
9871
|
+
"info",
|
|
9872
|
+
"warning",
|
|
9873
|
+
"error"
|
|
9874
|
+
]
|
|
9875
|
+
}
|
|
9876
|
+
],
|
|
9877
|
+
"lock-control": [{
|
|
9878
|
+
"path": "state",
|
|
9879
|
+
"valueType": "enum",
|
|
9880
|
+
"enumValues": [
|
|
9881
|
+
"locked",
|
|
9882
|
+
"unlocked",
|
|
9883
|
+
"locking",
|
|
9884
|
+
"unlocking",
|
|
9885
|
+
"jammed"
|
|
9886
|
+
]
|
|
9887
|
+
}],
|
|
9888
|
+
"media-player": [
|
|
9889
|
+
{
|
|
9890
|
+
"path": "state",
|
|
9891
|
+
"valueType": "enum",
|
|
9892
|
+
"enumValues": [
|
|
9893
|
+
"off",
|
|
9894
|
+
"on",
|
|
9895
|
+
"idle",
|
|
9896
|
+
"playing",
|
|
9897
|
+
"paused",
|
|
9898
|
+
"buffering",
|
|
9899
|
+
"standby"
|
|
9900
|
+
]
|
|
9901
|
+
},
|
|
9902
|
+
{
|
|
9903
|
+
"path": "volumeLevel",
|
|
9904
|
+
"valueType": "number"
|
|
9905
|
+
},
|
|
9906
|
+
{
|
|
9907
|
+
"path": "isMuted",
|
|
9908
|
+
"valueType": "boolean"
|
|
9909
|
+
},
|
|
9910
|
+
{
|
|
9911
|
+
"path": "source",
|
|
9912
|
+
"valueType": "string"
|
|
9913
|
+
},
|
|
9914
|
+
{
|
|
9915
|
+
"path": "currentMedia.type",
|
|
9916
|
+
"valueType": "string"
|
|
9917
|
+
},
|
|
9918
|
+
{
|
|
9919
|
+
"path": "currentMedia.title",
|
|
9920
|
+
"valueType": "string"
|
|
9921
|
+
},
|
|
9922
|
+
{
|
|
9923
|
+
"path": "currentMedia.artist",
|
|
9924
|
+
"valueType": "string"
|
|
9925
|
+
},
|
|
9926
|
+
{
|
|
9927
|
+
"path": "currentMedia.album",
|
|
9928
|
+
"valueType": "string"
|
|
9929
|
+
},
|
|
9930
|
+
{
|
|
9931
|
+
"path": "currentMedia.imageUrl",
|
|
9932
|
+
"valueType": "string"
|
|
9933
|
+
},
|
|
9934
|
+
{
|
|
9935
|
+
"path": "positionMs",
|
|
9936
|
+
"valueType": "number"
|
|
9937
|
+
},
|
|
9938
|
+
{
|
|
9939
|
+
"path": "durationMs",
|
|
9940
|
+
"valueType": "number"
|
|
9941
|
+
},
|
|
9942
|
+
{
|
|
9943
|
+
"path": "shuffle",
|
|
9944
|
+
"valueType": "boolean"
|
|
9945
|
+
},
|
|
9946
|
+
{
|
|
9947
|
+
"path": "repeat",
|
|
9948
|
+
"valueType": "enum",
|
|
9949
|
+
"enumValues": [
|
|
9950
|
+
"off",
|
|
9951
|
+
"all",
|
|
9952
|
+
"one"
|
|
9953
|
+
]
|
|
9954
|
+
}
|
|
9955
|
+
],
|
|
9956
|
+
"motion": [
|
|
9957
|
+
{
|
|
9958
|
+
"path": "detected",
|
|
9959
|
+
"valueType": "boolean"
|
|
9960
|
+
},
|
|
9961
|
+
{
|
|
9962
|
+
"path": "lastDetectedAt",
|
|
9963
|
+
"valueType": "number"
|
|
9964
|
+
},
|
|
9965
|
+
{
|
|
9966
|
+
"path": "autoClearAfterMs",
|
|
9967
|
+
"valueType": "number"
|
|
9968
|
+
}
|
|
9969
|
+
],
|
|
9970
|
+
"motion-trigger": [{
|
|
9971
|
+
"path": "enabled",
|
|
9972
|
+
"valueType": "boolean"
|
|
9973
|
+
}],
|
|
9974
|
+
"motion-zones": [{
|
|
9975
|
+
"path": "enabled",
|
|
9976
|
+
"valueType": "boolean"
|
|
9977
|
+
}, {
|
|
9978
|
+
"path": "sensitivity",
|
|
9979
|
+
"valueType": "number"
|
|
9980
|
+
}],
|
|
9981
|
+
"mqtt-broker": [{
|
|
9982
|
+
"path": "brokerCount",
|
|
9983
|
+
"valueType": "number"
|
|
9984
|
+
}, {
|
|
9985
|
+
"path": "embeddedRunning",
|
|
9986
|
+
"valueType": "boolean"
|
|
9987
|
+
}],
|
|
9988
|
+
"native-object-detection": [{
|
|
9989
|
+
"path": "enabled",
|
|
9990
|
+
"valueType": "boolean"
|
|
9991
|
+
}],
|
|
9992
|
+
"navigation": [
|
|
9993
|
+
{
|
|
9994
|
+
"path": "mode",
|
|
9995
|
+
"valueType": "enum",
|
|
9996
|
+
"enumValues": [
|
|
9997
|
+
"idle",
|
|
9998
|
+
"cleaning",
|
|
9999
|
+
"spot",
|
|
10000
|
+
"following",
|
|
10001
|
+
"goto",
|
|
10002
|
+
"returning",
|
|
10003
|
+
"paused",
|
|
10004
|
+
"unknown"
|
|
10005
|
+
]
|
|
10006
|
+
},
|
|
10007
|
+
{
|
|
10008
|
+
"path": "following",
|
|
10009
|
+
"valueType": "boolean"
|
|
10010
|
+
},
|
|
10011
|
+
{
|
|
10012
|
+
"path": "flash",
|
|
10013
|
+
"valueType": "boolean"
|
|
10014
|
+
},
|
|
10015
|
+
{
|
|
10016
|
+
"path": "lightMode",
|
|
10017
|
+
"valueType": "enum",
|
|
10018
|
+
"enumValues": ["auto", "manual"]
|
|
10019
|
+
},
|
|
10020
|
+
{
|
|
10021
|
+
"path": "lightLevel",
|
|
10022
|
+
"valueType": "number"
|
|
10023
|
+
}
|
|
10024
|
+
],
|
|
10025
|
+
"network-link": [
|
|
10026
|
+
{
|
|
10027
|
+
"path": "type",
|
|
10028
|
+
"valueType": "enum",
|
|
10029
|
+
"enumValues": [
|
|
10030
|
+
"wifi",
|
|
10031
|
+
"ethernet",
|
|
10032
|
+
"cellular",
|
|
10033
|
+
"unknown"
|
|
10034
|
+
]
|
|
10035
|
+
},
|
|
10036
|
+
{
|
|
10037
|
+
"path": "signalPercent",
|
|
10038
|
+
"valueType": "number"
|
|
10039
|
+
},
|
|
10040
|
+
{
|
|
10041
|
+
"path": "rssiDbm",
|
|
10042
|
+
"valueType": "number"
|
|
10043
|
+
},
|
|
10044
|
+
{
|
|
10045
|
+
"path": "ssid",
|
|
10046
|
+
"valueType": "string"
|
|
10047
|
+
},
|
|
10048
|
+
{
|
|
10049
|
+
"path": "lastUpdated",
|
|
10050
|
+
"valueType": "number"
|
|
10051
|
+
}
|
|
10052
|
+
],
|
|
10053
|
+
"notifier": [
|
|
10054
|
+
{
|
|
10055
|
+
"path": "lastSentAt",
|
|
10056
|
+
"valueType": "number"
|
|
10057
|
+
},
|
|
10058
|
+
{
|
|
10059
|
+
"path": "lastError",
|
|
10060
|
+
"valueType": "string"
|
|
10061
|
+
},
|
|
10062
|
+
{
|
|
10063
|
+
"path": "queueDepth",
|
|
10064
|
+
"valueType": "number"
|
|
10065
|
+
},
|
|
10066
|
+
{
|
|
10067
|
+
"path": "supports.image",
|
|
10068
|
+
"valueType": "boolean"
|
|
10069
|
+
},
|
|
10070
|
+
{
|
|
10071
|
+
"path": "supports.priority",
|
|
10072
|
+
"valueType": "boolean"
|
|
10073
|
+
},
|
|
10074
|
+
{
|
|
10075
|
+
"path": "supports.data",
|
|
10076
|
+
"valueType": "boolean"
|
|
10077
|
+
},
|
|
10078
|
+
{
|
|
10079
|
+
"path": "supports.actions",
|
|
10080
|
+
"valueType": "boolean"
|
|
10081
|
+
},
|
|
10082
|
+
{
|
|
10083
|
+
"path": "supports.recipients",
|
|
10084
|
+
"valueType": "boolean"
|
|
10085
|
+
}
|
|
10086
|
+
],
|
|
10087
|
+
"numeric-sensor": [
|
|
10088
|
+
{
|
|
10089
|
+
"path": "value",
|
|
10090
|
+
"valueType": "number"
|
|
10091
|
+
},
|
|
10092
|
+
{
|
|
10093
|
+
"path": "unit",
|
|
10094
|
+
"valueType": "string"
|
|
10095
|
+
},
|
|
10096
|
+
{
|
|
10097
|
+
"path": "precision",
|
|
10098
|
+
"valueType": "number"
|
|
10099
|
+
}
|
|
10100
|
+
],
|
|
10101
|
+
"pet-feeder": [
|
|
10102
|
+
{
|
|
10103
|
+
"path": "foodLevel",
|
|
10104
|
+
"valueType": "number"
|
|
10105
|
+
},
|
|
10106
|
+
{
|
|
10107
|
+
"path": "food1",
|
|
10108
|
+
"valueType": "number"
|
|
10109
|
+
},
|
|
10110
|
+
{
|
|
10111
|
+
"path": "food2",
|
|
10112
|
+
"valueType": "number"
|
|
10113
|
+
},
|
|
10114
|
+
{
|
|
10115
|
+
"path": "lowFood",
|
|
10116
|
+
"valueType": "boolean"
|
|
10117
|
+
},
|
|
10118
|
+
{
|
|
10119
|
+
"path": "batteryPower",
|
|
10120
|
+
"valueType": "number"
|
|
10121
|
+
},
|
|
10122
|
+
{
|
|
10123
|
+
"path": "desiccantLeftDays",
|
|
10124
|
+
"valueType": "number"
|
|
10125
|
+
},
|
|
10126
|
+
{
|
|
10127
|
+
"path": "feeding",
|
|
10128
|
+
"valueType": "boolean"
|
|
10129
|
+
},
|
|
10130
|
+
{
|
|
10131
|
+
"path": "status",
|
|
10132
|
+
"valueType": "enum",
|
|
10133
|
+
"enumValues": [
|
|
10134
|
+
"normal",
|
|
10135
|
+
"offline",
|
|
10136
|
+
"on_batteries"
|
|
10137
|
+
]
|
|
10138
|
+
},
|
|
10139
|
+
{
|
|
10140
|
+
"path": "error",
|
|
10141
|
+
"valueType": "string"
|
|
10142
|
+
},
|
|
10143
|
+
{
|
|
10144
|
+
"path": "errorCode",
|
|
10145
|
+
"valueType": "number"
|
|
10146
|
+
},
|
|
10147
|
+
{
|
|
10148
|
+
"path": "isDualHopper",
|
|
10149
|
+
"valueType": "boolean"
|
|
10150
|
+
},
|
|
10151
|
+
{
|
|
10152
|
+
"path": "childLock",
|
|
10153
|
+
"valueType": "boolean"
|
|
10154
|
+
},
|
|
10155
|
+
{
|
|
10156
|
+
"path": "indicatorLight",
|
|
10157
|
+
"valueType": "boolean"
|
|
10158
|
+
},
|
|
10159
|
+
{
|
|
10160
|
+
"path": "feedSound",
|
|
10161
|
+
"valueType": "boolean"
|
|
10162
|
+
},
|
|
10163
|
+
{
|
|
10164
|
+
"path": "volume",
|
|
10165
|
+
"valueType": "number"
|
|
10166
|
+
}
|
|
10167
|
+
],
|
|
10168
|
+
"power-meter": [
|
|
10169
|
+
{
|
|
10170
|
+
"path": "watts",
|
|
10171
|
+
"valueType": "number"
|
|
10172
|
+
},
|
|
10173
|
+
{
|
|
10174
|
+
"path": "kwhTotal",
|
|
10175
|
+
"valueType": "number"
|
|
10176
|
+
},
|
|
10177
|
+
{
|
|
10178
|
+
"path": "volts",
|
|
10179
|
+
"valueType": "number"
|
|
10180
|
+
},
|
|
10181
|
+
{
|
|
10182
|
+
"path": "amps",
|
|
10183
|
+
"valueType": "number"
|
|
10184
|
+
},
|
|
10185
|
+
{
|
|
10186
|
+
"path": "va",
|
|
10187
|
+
"valueType": "number"
|
|
10188
|
+
},
|
|
10189
|
+
{
|
|
10190
|
+
"path": "powerFactor",
|
|
10191
|
+
"valueType": "number"
|
|
10192
|
+
},
|
|
10193
|
+
{
|
|
10194
|
+
"path": "unit",
|
|
10195
|
+
"valueType": "string"
|
|
10196
|
+
},
|
|
10197
|
+
{
|
|
10198
|
+
"path": "precision",
|
|
10199
|
+
"valueType": "number"
|
|
10200
|
+
}
|
|
10201
|
+
],
|
|
10202
|
+
"presence": [
|
|
10203
|
+
{
|
|
10204
|
+
"path": "state",
|
|
10205
|
+
"valueType": "string"
|
|
10206
|
+
},
|
|
10207
|
+
{
|
|
10208
|
+
"path": "location",
|
|
10209
|
+
"valueType": "string"
|
|
10210
|
+
},
|
|
10211
|
+
{
|
|
10212
|
+
"path": "gps.latitude",
|
|
10213
|
+
"valueType": "number"
|
|
10214
|
+
},
|
|
10215
|
+
{
|
|
10216
|
+
"path": "gps.longitude",
|
|
10217
|
+
"valueType": "number"
|
|
10218
|
+
},
|
|
10219
|
+
{
|
|
10220
|
+
"path": "gps.accuracyMeters",
|
|
10221
|
+
"valueType": "number"
|
|
10222
|
+
},
|
|
10223
|
+
{
|
|
10224
|
+
"path": "batteryPercent",
|
|
10225
|
+
"valueType": "number"
|
|
10226
|
+
}
|
|
10227
|
+
],
|
|
10228
|
+
"pressure-sensor": [
|
|
10229
|
+
{
|
|
10230
|
+
"path": "hpa",
|
|
10231
|
+
"valueType": "number"
|
|
10232
|
+
},
|
|
10233
|
+
{
|
|
10234
|
+
"path": "unit",
|
|
10235
|
+
"valueType": "string"
|
|
10236
|
+
},
|
|
10237
|
+
{
|
|
10238
|
+
"path": "precision",
|
|
10239
|
+
"valueType": "number"
|
|
10240
|
+
}
|
|
10241
|
+
],
|
|
10242
|
+
"privacy-mask": [{
|
|
10243
|
+
"path": "enabled",
|
|
10244
|
+
"valueType": "boolean"
|
|
10245
|
+
}, {
|
|
10246
|
+
"path": "audioEnabled",
|
|
10247
|
+
"valueType": "boolean"
|
|
10248
|
+
}],
|
|
10249
|
+
"ptz": [
|
|
10250
|
+
{
|
|
10251
|
+
"path": "pan",
|
|
10252
|
+
"valueType": "number"
|
|
10253
|
+
},
|
|
10254
|
+
{
|
|
10255
|
+
"path": "tilt",
|
|
10256
|
+
"valueType": "number"
|
|
10257
|
+
},
|
|
10258
|
+
{
|
|
10259
|
+
"path": "zoom",
|
|
10260
|
+
"valueType": "number"
|
|
10261
|
+
},
|
|
10262
|
+
{
|
|
10263
|
+
"path": "autofocus",
|
|
10264
|
+
"valueType": "boolean"
|
|
10265
|
+
}
|
|
10266
|
+
],
|
|
10267
|
+
"ptz-autotrack": [
|
|
10268
|
+
{
|
|
10269
|
+
"path": "enabled",
|
|
10270
|
+
"valueType": "boolean"
|
|
10271
|
+
},
|
|
10272
|
+
{
|
|
10273
|
+
"path": "currentSettings.targetType",
|
|
10274
|
+
"valueType": "string"
|
|
10275
|
+
},
|
|
10276
|
+
{
|
|
10277
|
+
"path": "currentSettings.stopDelaySeconds",
|
|
10278
|
+
"valueType": "number"
|
|
10279
|
+
},
|
|
10280
|
+
{
|
|
10281
|
+
"path": "currentSettings.disappearDelaySeconds",
|
|
10282
|
+
"valueType": "number"
|
|
10283
|
+
}
|
|
10284
|
+
],
|
|
10285
|
+
"recording-archive": [
|
|
10286
|
+
{
|
|
10287
|
+
"path": "deviceId",
|
|
10288
|
+
"valueType": "number"
|
|
10289
|
+
},
|
|
10290
|
+
{
|
|
10291
|
+
"path": "enabled",
|
|
10292
|
+
"valueType": "boolean"
|
|
10293
|
+
},
|
|
10294
|
+
{
|
|
10295
|
+
"path": "activeMode",
|
|
10296
|
+
"valueType": "enum",
|
|
10297
|
+
"enumValues": [
|
|
10298
|
+
"off",
|
|
10299
|
+
"events",
|
|
10300
|
+
"continuous",
|
|
10301
|
+
"on-device-decision"
|
|
10302
|
+
]
|
|
10303
|
+
},
|
|
10304
|
+
{
|
|
10305
|
+
"path": "nodeId",
|
|
10306
|
+
"valueType": "string"
|
|
10307
|
+
},
|
|
10308
|
+
{
|
|
10309
|
+
"path": "storageBytes",
|
|
10310
|
+
"valueType": "number"
|
|
10311
|
+
}
|
|
10312
|
+
],
|
|
10313
|
+
"recording-onboard": [
|
|
10314
|
+
{
|
|
10315
|
+
"path": "primaryTrackId",
|
|
10316
|
+
"valueType": "string"
|
|
10317
|
+
},
|
|
10318
|
+
{
|
|
10319
|
+
"path": "enabled",
|
|
10320
|
+
"valueType": "boolean"
|
|
10321
|
+
},
|
|
10322
|
+
{
|
|
10323
|
+
"path": "overwriteWhenFull",
|
|
10324
|
+
"valueType": "boolean"
|
|
10325
|
+
},
|
|
10326
|
+
{
|
|
10327
|
+
"path": "preRecordSec",
|
|
10328
|
+
"valueType": "number"
|
|
10329
|
+
},
|
|
10330
|
+
{
|
|
10331
|
+
"path": "postRecordSec",
|
|
10332
|
+
"valueType": "number"
|
|
10333
|
+
},
|
|
10334
|
+
{
|
|
10335
|
+
"path": "segmentMinutes",
|
|
10336
|
+
"valueType": "number"
|
|
10337
|
+
},
|
|
10338
|
+
{
|
|
10339
|
+
"path": "unreadableWindows",
|
|
10340
|
+
"valueType": "number"
|
|
10341
|
+
},
|
|
10342
|
+
{
|
|
10343
|
+
"path": "recordingToNowhere",
|
|
10344
|
+
"valueType": "boolean"
|
|
10345
|
+
}
|
|
10346
|
+
],
|
|
10347
|
+
"recording-signal": [{
|
|
10348
|
+
"path": "active",
|
|
10349
|
+
"valueType": "boolean"
|
|
10350
|
+
}, {
|
|
10351
|
+
"path": "reason",
|
|
10352
|
+
"valueType": "string"
|
|
10353
|
+
}],
|
|
10354
|
+
"running-state": [
|
|
10355
|
+
{
|
|
10356
|
+
"path": "running",
|
|
10357
|
+
"valueType": "boolean"
|
|
10358
|
+
},
|
|
10359
|
+
{
|
|
10360
|
+
"path": "since",
|
|
10361
|
+
"valueType": "number"
|
|
10362
|
+
},
|
|
10363
|
+
{
|
|
10364
|
+
"path": "source",
|
|
10365
|
+
"valueType": "enum",
|
|
10366
|
+
"enumValues": ["native", "assigned"]
|
|
10367
|
+
},
|
|
10368
|
+
{
|
|
10369
|
+
"path": "phase",
|
|
10370
|
+
"valueType": "string"
|
|
10371
|
+
}
|
|
10372
|
+
],
|
|
10373
|
+
"script-runner": [
|
|
10374
|
+
{
|
|
10375
|
+
"path": "isRunning",
|
|
10376
|
+
"valueType": "boolean"
|
|
10377
|
+
},
|
|
10378
|
+
{
|
|
10379
|
+
"path": "lastRunAt",
|
|
10380
|
+
"valueType": "number"
|
|
10381
|
+
},
|
|
10382
|
+
{
|
|
10383
|
+
"path": "lastRunSuccess",
|
|
10384
|
+
"valueType": "boolean"
|
|
10385
|
+
},
|
|
10386
|
+
{
|
|
10387
|
+
"path": "lastError",
|
|
10388
|
+
"valueType": "string"
|
|
10389
|
+
}
|
|
10390
|
+
],
|
|
10391
|
+
"smoke": [{
|
|
10392
|
+
"path": "detected",
|
|
10393
|
+
"valueType": "boolean"
|
|
10394
|
+
}],
|
|
10395
|
+
"snapshot": [
|
|
10396
|
+
{
|
|
10397
|
+
"path": "lastCapturedAt",
|
|
10398
|
+
"valueType": "number"
|
|
10399
|
+
},
|
|
10400
|
+
{
|
|
10401
|
+
"path": "cacheAgeMs",
|
|
10402
|
+
"valueType": "number"
|
|
10403
|
+
},
|
|
10404
|
+
{
|
|
10405
|
+
"path": "lastBytes",
|
|
10406
|
+
"valueType": "number"
|
|
10407
|
+
},
|
|
10408
|
+
{
|
|
10409
|
+
"path": "lastStreamId",
|
|
10410
|
+
"valueType": "string"
|
|
10411
|
+
}
|
|
10412
|
+
],
|
|
10413
|
+
"stream-params": [
|
|
10414
|
+
{
|
|
10415
|
+
"path": "main.width",
|
|
10416
|
+
"valueType": "number"
|
|
10417
|
+
},
|
|
10418
|
+
{
|
|
10419
|
+
"path": "main.height",
|
|
10420
|
+
"valueType": "number"
|
|
10421
|
+
},
|
|
10422
|
+
{
|
|
10423
|
+
"path": "main.codec",
|
|
10424
|
+
"valueType": "enum",
|
|
10425
|
+
"enumValues": ["h264", "h265"]
|
|
10426
|
+
},
|
|
10427
|
+
{
|
|
10428
|
+
"path": "main.framerate",
|
|
10429
|
+
"valueType": "number"
|
|
10430
|
+
},
|
|
10431
|
+
{
|
|
10432
|
+
"path": "main.bitrate",
|
|
10433
|
+
"valueType": "number"
|
|
10434
|
+
},
|
|
10435
|
+
{
|
|
10436
|
+
"path": "main.bitrateMode",
|
|
10437
|
+
"valueType": "enum",
|
|
10438
|
+
"enumValues": ["vbr", "cbr"]
|
|
10439
|
+
},
|
|
10440
|
+
{
|
|
10441
|
+
"path": "main.encoderProfile",
|
|
10442
|
+
"valueType": "enum",
|
|
10443
|
+
"enumValues": [
|
|
10444
|
+
"high",
|
|
10445
|
+
"main",
|
|
10446
|
+
"baseline"
|
|
10447
|
+
]
|
|
10448
|
+
},
|
|
10449
|
+
{
|
|
10450
|
+
"path": "main.gop",
|
|
10451
|
+
"valueType": "number"
|
|
10452
|
+
},
|
|
10453
|
+
{
|
|
10454
|
+
"path": "main.audio",
|
|
10455
|
+
"valueType": "boolean"
|
|
10456
|
+
},
|
|
10457
|
+
{
|
|
10458
|
+
"path": "sub.width",
|
|
10459
|
+
"valueType": "number"
|
|
10460
|
+
},
|
|
10461
|
+
{
|
|
10462
|
+
"path": "sub.height",
|
|
10463
|
+
"valueType": "number"
|
|
10464
|
+
},
|
|
10465
|
+
{
|
|
10466
|
+
"path": "sub.codec",
|
|
10467
|
+
"valueType": "enum",
|
|
10468
|
+
"enumValues": ["h264", "h265"]
|
|
10469
|
+
},
|
|
10470
|
+
{
|
|
10471
|
+
"path": "sub.framerate",
|
|
10472
|
+
"valueType": "number"
|
|
10473
|
+
},
|
|
10474
|
+
{
|
|
10475
|
+
"path": "sub.bitrate",
|
|
10476
|
+
"valueType": "number"
|
|
10477
|
+
},
|
|
10478
|
+
{
|
|
10479
|
+
"path": "sub.bitrateMode",
|
|
10480
|
+
"valueType": "enum",
|
|
10481
|
+
"enumValues": ["vbr", "cbr"]
|
|
10482
|
+
},
|
|
10483
|
+
{
|
|
10484
|
+
"path": "sub.encoderProfile",
|
|
10485
|
+
"valueType": "enum",
|
|
10486
|
+
"enumValues": [
|
|
10487
|
+
"high",
|
|
10488
|
+
"main",
|
|
10489
|
+
"baseline"
|
|
10490
|
+
]
|
|
10491
|
+
},
|
|
10492
|
+
{
|
|
10493
|
+
"path": "sub.gop",
|
|
10494
|
+
"valueType": "number"
|
|
10495
|
+
},
|
|
10496
|
+
{
|
|
10497
|
+
"path": "sub.audio",
|
|
10498
|
+
"valueType": "boolean"
|
|
10499
|
+
},
|
|
10500
|
+
{
|
|
10501
|
+
"path": "ext.width",
|
|
10502
|
+
"valueType": "number"
|
|
10503
|
+
},
|
|
10504
|
+
{
|
|
10505
|
+
"path": "ext.height",
|
|
10506
|
+
"valueType": "number"
|
|
10507
|
+
},
|
|
10508
|
+
{
|
|
10509
|
+
"path": "ext.codec",
|
|
10510
|
+
"valueType": "enum",
|
|
10511
|
+
"enumValues": ["h264", "h265"]
|
|
10512
|
+
},
|
|
10513
|
+
{
|
|
10514
|
+
"path": "ext.framerate",
|
|
10515
|
+
"valueType": "number"
|
|
10516
|
+
},
|
|
10517
|
+
{
|
|
10518
|
+
"path": "ext.bitrate",
|
|
10519
|
+
"valueType": "number"
|
|
10520
|
+
},
|
|
10521
|
+
{
|
|
10522
|
+
"path": "ext.bitrateMode",
|
|
10523
|
+
"valueType": "enum",
|
|
10524
|
+
"enumValues": ["vbr", "cbr"]
|
|
10525
|
+
},
|
|
10526
|
+
{
|
|
10527
|
+
"path": "ext.encoderProfile",
|
|
10528
|
+
"valueType": "enum",
|
|
10529
|
+
"enumValues": [
|
|
10530
|
+
"high",
|
|
10531
|
+
"main",
|
|
10532
|
+
"baseline"
|
|
10533
|
+
]
|
|
10534
|
+
},
|
|
10535
|
+
{
|
|
10536
|
+
"path": "ext.gop",
|
|
10537
|
+
"valueType": "number"
|
|
10538
|
+
},
|
|
10539
|
+
{
|
|
10540
|
+
"path": "ext.audio",
|
|
10541
|
+
"valueType": "boolean"
|
|
10542
|
+
}
|
|
10543
|
+
],
|
|
10544
|
+
"switch": [{
|
|
10545
|
+
"path": "on",
|
|
10546
|
+
"valueType": "boolean"
|
|
10547
|
+
}],
|
|
10548
|
+
"tamper": [{
|
|
10549
|
+
"path": "tampered",
|
|
10550
|
+
"valueType": "boolean"
|
|
10551
|
+
}],
|
|
10552
|
+
"temperature-sensor": [
|
|
10553
|
+
{
|
|
10554
|
+
"path": "celsius",
|
|
10555
|
+
"valueType": "number"
|
|
10556
|
+
},
|
|
10557
|
+
{
|
|
10558
|
+
"path": "unit",
|
|
10559
|
+
"valueType": "string"
|
|
10560
|
+
},
|
|
10561
|
+
{
|
|
10562
|
+
"path": "precision",
|
|
10563
|
+
"valueType": "number"
|
|
10564
|
+
}
|
|
10565
|
+
],
|
|
10566
|
+
"update": [
|
|
10567
|
+
{
|
|
10568
|
+
"path": "currentVersion",
|
|
10569
|
+
"valueType": "string"
|
|
10570
|
+
},
|
|
10571
|
+
{
|
|
10572
|
+
"path": "availableVersion",
|
|
10573
|
+
"valueType": "string"
|
|
10574
|
+
},
|
|
10575
|
+
{
|
|
10576
|
+
"path": "updatable",
|
|
10577
|
+
"valueType": "boolean"
|
|
10578
|
+
},
|
|
10579
|
+
{
|
|
10580
|
+
"path": "state",
|
|
10581
|
+
"valueType": "string"
|
|
10582
|
+
},
|
|
10583
|
+
{
|
|
10584
|
+
"path": "inProgress",
|
|
10585
|
+
"valueType": "boolean"
|
|
10586
|
+
}
|
|
10587
|
+
],
|
|
10588
|
+
"vacuum-control": [
|
|
10589
|
+
{
|
|
10590
|
+
"path": "state",
|
|
10591
|
+
"valueType": "enum",
|
|
10592
|
+
"enumValues": [
|
|
10593
|
+
"idle",
|
|
10594
|
+
"cleaning",
|
|
10595
|
+
"paused",
|
|
10596
|
+
"returning",
|
|
10597
|
+
"docked",
|
|
10598
|
+
"drying",
|
|
10599
|
+
"error"
|
|
10600
|
+
]
|
|
10601
|
+
},
|
|
10602
|
+
{
|
|
10603
|
+
"path": "batteryLevel",
|
|
10604
|
+
"valueType": "number"
|
|
10605
|
+
},
|
|
10606
|
+
{
|
|
10607
|
+
"path": "fanSpeed",
|
|
10608
|
+
"valueType": "string"
|
|
10609
|
+
},
|
|
10610
|
+
{
|
|
10611
|
+
"path": "progressPercent",
|
|
10612
|
+
"valueType": "number"
|
|
10613
|
+
},
|
|
10614
|
+
{
|
|
10615
|
+
"path": "errorCode",
|
|
10616
|
+
"valueType": "number"
|
|
10617
|
+
},
|
|
10618
|
+
{
|
|
10619
|
+
"path": "errorLabel",
|
|
10620
|
+
"valueType": "string"
|
|
10621
|
+
}
|
|
10622
|
+
],
|
|
10623
|
+
"valve": [{
|
|
10624
|
+
"path": "state",
|
|
10625
|
+
"valueType": "enum",
|
|
10626
|
+
"enumValues": [
|
|
10627
|
+
"open",
|
|
10628
|
+
"opening",
|
|
10629
|
+
"closing",
|
|
10630
|
+
"closed",
|
|
10631
|
+
"stopped"
|
|
10632
|
+
]
|
|
10633
|
+
}, {
|
|
10634
|
+
"path": "position",
|
|
10635
|
+
"valueType": "number"
|
|
10636
|
+
}],
|
|
10637
|
+
"vibration": [{
|
|
10638
|
+
"path": "detected",
|
|
10639
|
+
"valueType": "boolean"
|
|
10640
|
+
}],
|
|
10641
|
+
"water-heater": [
|
|
10642
|
+
{
|
|
10643
|
+
"path": "currentTemp",
|
|
10644
|
+
"valueType": "number"
|
|
10645
|
+
},
|
|
10646
|
+
{
|
|
10647
|
+
"path": "targetTemp",
|
|
10648
|
+
"valueType": "number"
|
|
10649
|
+
},
|
|
10650
|
+
{
|
|
10651
|
+
"path": "operationMode",
|
|
10652
|
+
"valueType": "string"
|
|
10653
|
+
},
|
|
10654
|
+
{
|
|
10655
|
+
"path": "away",
|
|
10656
|
+
"valueType": "boolean"
|
|
10657
|
+
},
|
|
10658
|
+
{
|
|
10659
|
+
"path": "minTemp",
|
|
10660
|
+
"valueType": "number"
|
|
10661
|
+
},
|
|
10662
|
+
{
|
|
10663
|
+
"path": "maxTemp",
|
|
10664
|
+
"valueType": "number"
|
|
10665
|
+
}
|
|
10666
|
+
],
|
|
10667
|
+
"weather": [
|
|
10668
|
+
{
|
|
10669
|
+
"path": "condition",
|
|
10670
|
+
"valueType": "string"
|
|
10671
|
+
},
|
|
10672
|
+
{
|
|
10673
|
+
"path": "temperature",
|
|
10674
|
+
"valueType": "number"
|
|
10675
|
+
},
|
|
10676
|
+
{
|
|
10677
|
+
"path": "temperatureUnit",
|
|
10678
|
+
"valueType": "string"
|
|
10679
|
+
},
|
|
10680
|
+
{
|
|
10681
|
+
"path": "humidity",
|
|
10682
|
+
"valueType": "number"
|
|
10683
|
+
},
|
|
10684
|
+
{
|
|
10685
|
+
"path": "pressure",
|
|
10686
|
+
"valueType": "number"
|
|
10687
|
+
},
|
|
10688
|
+
{
|
|
10689
|
+
"path": "pressureUnit",
|
|
10690
|
+
"valueType": "string"
|
|
10691
|
+
},
|
|
10692
|
+
{
|
|
10693
|
+
"path": "windSpeed",
|
|
10694
|
+
"valueType": "number"
|
|
10695
|
+
},
|
|
10696
|
+
{
|
|
10697
|
+
"path": "windSpeedUnit",
|
|
10698
|
+
"valueType": "string"
|
|
10699
|
+
},
|
|
10700
|
+
{
|
|
10701
|
+
"path": "windBearing",
|
|
10702
|
+
"valueType": "number"
|
|
10703
|
+
}
|
|
10704
|
+
],
|
|
10705
|
+
"zone-analytics": [
|
|
10706
|
+
{
|
|
10707
|
+
"path": "ts",
|
|
10708
|
+
"valueType": "number"
|
|
10709
|
+
},
|
|
10710
|
+
{
|
|
10711
|
+
"path": "frameWidth",
|
|
10712
|
+
"valueType": "number"
|
|
10713
|
+
},
|
|
10714
|
+
{
|
|
10715
|
+
"path": "frameHeight",
|
|
10716
|
+
"valueType": "number"
|
|
10717
|
+
},
|
|
10718
|
+
{
|
|
10719
|
+
"path": "frame.totalObjects",
|
|
10720
|
+
"valueType": "number"
|
|
10721
|
+
},
|
|
10722
|
+
{
|
|
10723
|
+
"path": "frame.standingObjects",
|
|
10724
|
+
"valueType": "number"
|
|
10725
|
+
},
|
|
10726
|
+
{
|
|
10727
|
+
"path": "frame.transientObjects",
|
|
10728
|
+
"valueType": "number"
|
|
10729
|
+
},
|
|
10730
|
+
{
|
|
10731
|
+
"path": "unzoned.totalObjects",
|
|
10732
|
+
"valueType": "number"
|
|
10733
|
+
},
|
|
10734
|
+
{
|
|
10735
|
+
"path": "unzoned.standingObjects",
|
|
10736
|
+
"valueType": "number"
|
|
10737
|
+
},
|
|
10738
|
+
{
|
|
10739
|
+
"path": "unzoned.transientObjects",
|
|
10740
|
+
"valueType": "number"
|
|
10741
|
+
}
|
|
10742
|
+
]
|
|
10743
|
+
});
|
|
8770
10744
|
object({
|
|
8771
10745
|
code: string().regex(/^[a-z][a-z0-9-]*(\.[a-z0-9-]+)+$/),
|
|
8772
10746
|
params: record(string(), union([string(), number()])).optional()
|
|
@@ -9115,7 +11089,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
9115
11089
|
return DeviceRole;
|
|
9116
11090
|
}({});
|
|
9117
11091
|
//#endregion
|
|
9118
|
-
//#region ../types/dist/composition-
|
|
11092
|
+
//#region ../types/dist/composition-kEl9mevu.mjs
|
|
9119
11093
|
/**
|
|
9120
11094
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
9121
11095
|
*
|
|
@@ -12348,7 +14322,7 @@ var LogChannelDescriptorSchema = object({
|
|
|
12348
14322
|
* `true` is a PROMISE with two halves, and both must hold: the gate is
|
|
12349
14323
|
* consulted with the numeric device id, AND every line the channel admits
|
|
12350
14324
|
* carries `tags: { deviceId }` with that same numeric id. The second half is
|
|
12351
|
-
* what makes `| json | deviceId="
|
|
14325
|
+
* what makes `| json | deviceId="102"` work in Loki — `loki-payload.ts`
|
|
12352
14326
|
* keeps `deviceId` out of the stream labels for cardinality, so the tag in
|
|
12353
14327
|
* the body is the only way to filter.
|
|
12354
14328
|
*
|
|
@@ -12536,7 +14510,7 @@ var ModelVariantGroupSchema = object({
|
|
|
12536
14510
|
precision: _enum(["fp32", "int8"]).optional(),
|
|
12537
14511
|
/**
|
|
12538
14512
|
* Training / latency-variant axis. Omit ⇒ the standard build. `test` marks
|
|
12539
|
-
* an alternate training of the same family (
|
|
14513
|
+
* an alternate training of the same family (plugin catalog `relu_test`); chip
|
|
12540
14514
|
* label is "Test".
|
|
12541
14515
|
*/
|
|
12542
14516
|
optimization: _enum(["standard", "test"]).optional(),
|
|
@@ -12788,8 +14762,8 @@ var ModelCatalogEntrySchema = object({
|
|
|
12788
14762
|
provider: ModelProviderIdSchema.optional(),
|
|
12789
14763
|
/**
|
|
12790
14764
|
* Per-MODEL class map override. Absent ⇒ the step's `StepDefinition.classMap`
|
|
12791
|
-
* applies (
|
|
12792
|
-
* labels already ARE the CamStack macros (
|
|
14765
|
+
* applies (plus catalog / COCO public catalog). Set on a custom model whose raw
|
|
14766
|
+
* labels already ARE the CamStack macros (plugin catalog identity map).
|
|
12793
14767
|
*/
|
|
12794
14768
|
classMap: DetectionCatalogClassMapSchema.optional(),
|
|
12795
14769
|
/**
|
|
@@ -15775,7 +17749,7 @@ method(object({
|
|
|
15775
17749
|
* `1` is real time and is the ONLY value that allows the copy branch —
|
|
15776
17750
|
* anything else forces `libx264` over the window. That was priced
|
|
15777
17751
|
* before it was chosen: a per-event burst measured at 0.23 s and 254 KB
|
|
15778
|
-
* on a real
|
|
17752
|
+
* on a real 101 720p cut, against 922 KB for the copy it replaces. A
|
|
15779
17753
|
* re-encode is capped at 720p (`EVENT_CLIP_ENCODE_MAX_WIDTH`), because
|
|
15780
17754
|
* once the decode is forced the width stops being free.
|
|
15781
17755
|
*/
|
|
@@ -16195,6 +18169,7 @@ var CompositionRunStatusSchema = _enum([
|
|
|
16195
18169
|
"starting",
|
|
16196
18170
|
"running",
|
|
16197
18171
|
"degraded",
|
|
18172
|
+
"incomplete",
|
|
16198
18173
|
"failed"
|
|
16199
18174
|
]);
|
|
16200
18175
|
var CompositionFieldStateKindSchema = _enum([
|
|
@@ -16408,6 +18383,7 @@ var CoreBlockStatusSchema = _enum([
|
|
|
16408
18383
|
"starting",
|
|
16409
18384
|
"running",
|
|
16410
18385
|
"degraded",
|
|
18386
|
+
"incomplete",
|
|
16411
18387
|
"failed"
|
|
16412
18388
|
]);
|
|
16413
18389
|
/** path → TypeScript source for a multi-file block. */
|
|
@@ -38331,7 +40307,7 @@ var PRIMARY_CATEGORIES = new Set(ENTRIES.map((e) => e.primaryCategory));
|
|
|
38331
40307
|
* `locationKey` is ALWAYS {@link locationIconKey} of the label — never the
|
|
38332
40308
|
* operator's casing. The registry matches labels trimmed + case-insensitively
|
|
38333
40309
|
* everywhere (`addLocation`, `removeLocation`, `renameLocation`), and a
|
|
38334
|
-
* case-only rename (`
|
|
40310
|
+
* case-only rename (`kitchen` → `Kitchen`) is a real edit this repo supports; a
|
|
38335
40311
|
* map keyed on the displayed casing would orphan its entry on exactly that
|
|
38336
40312
|
* edit. Consumers join by keying their own label through `locationIconKey`.
|
|
38337
40313
|
*/
|
|
@@ -38356,7 +40332,7 @@ var LocationDescriptionAssignmentSchema = object({
|
|
|
38356
40332
|
/**
|
|
38357
40333
|
* A SITE ZONE — a named part of the property that several locations belong to.
|
|
38358
40334
|
*
|
|
38359
|
-
* "
|
|
40335
|
+
* "Night zone" holds every bedroom; "Zona giorno" the living room and the
|
|
38360
40336
|
* kitchen. A camera belongs to exactly one location, and a location to at most
|
|
38361
40337
|
* one zone, so a camera's zone is derived and never stored on the device: the
|
|
38362
40338
|
* whole point of this entity is that grouping rooms touches no device row.
|
|
@@ -38385,7 +40361,7 @@ var LocationDescriptionAssignmentSchema = object({
|
|
|
38385
40361
|
* the locations inside it.
|
|
38386
40362
|
*
|
|
38387
40363
|
* The LABEL is carried alongside the key because the key is lossy on purpose —
|
|
38388
|
-
* a surface must show "
|
|
40364
|
+
* a surface must show "Night zone", not "night zone". Locations are carried
|
|
38389
40365
|
* here, rather than left to a second call, because every consumer wants both
|
|
38390
40366
|
* at once and a viewer that asked twice could render a zone whose membership
|
|
38391
40367
|
* it has not fetched yet.
|
|
@@ -40498,8 +42474,8 @@ var LoadContributionSchema = object({
|
|
|
40498
42474
|
"unattributable"
|
|
40499
42475
|
]),
|
|
40500
42476
|
/**
|
|
40501
|
-
* What ONE entry is, in the contributor's own words — `
|
|
40502
|
-
* `
|
|
42477
|
+
* What ONE entry is, in the contributor's own words — `101/high`,
|
|
42478
|
+
* `102/native`, `cuda:0 shared pool`. Free text because the unit differs per
|
|
40503
42479
|
* family and inventing a common one would lose the only information that
|
|
40504
42480
|
* makes two entries for the same camera distinguishable.
|
|
40505
42481
|
*/
|
|
@@ -43459,7 +45435,7 @@ var NcConditionsSchema = object({
|
|
|
43459
45435
|
* with the list under it is worse than no switch (D62).
|
|
43460
45436
|
*
|
|
43461
45437
|
* MEMBERS ARE FACE-GALLERY `Identity.id`s (uuid), not display names. A name is
|
|
43462
|
-
* renameable, and a rule authored on "
|
|
45438
|
+
* renameable, and a rule authored on "Alice" went silently dark the moment
|
|
43463
45439
|
* the operator fixed the spelling. The id reaches the record on
|
|
43464
45440
|
* `LabelAttribution.identityId`; the name is what the editor shows and what
|
|
43465
45441
|
* `{{label}}` renders.
|
|
@@ -44010,7 +45986,7 @@ var NcRulePatchSchema = NcRuleInputSchema.partial().extend({
|
|
|
44010
45986
|
* A rule scoped to one camera and one zone silently became a rule that
|
|
44011
45987
|
* matches EVERY event on EVERY camera, and lost its `media` policy
|
|
44012
45988
|
* (zoneCrop / gif / clip / frame) and its `priority` at the same time. Seen
|
|
44013
|
-
* live on 2026-08-12: a rule scoped to device
|
|
45989
|
+
* live on 2026-08-12: a rule scoped to device 102 fired on 104 and 101
|
|
44014
45990
|
* within a minute of a two-field patch.
|
|
44015
45991
|
*
|
|
44016
45992
|
* So every defaulted field is re-declared here WITHOUT its default. The
|
|
@@ -45823,7 +47799,7 @@ var LabelAttributionSchema = object({
|
|
|
45823
47799
|
* `Identity.id` or a plate-gallery `Vehicle.id` (both `randomUUID`).
|
|
45824
47800
|
*
|
|
45825
47801
|
* The text alone is a DISPLAY NAME, and a display name is renameable: a
|
|
45826
|
-
* notification rule authored on "
|
|
47802
|
+
* notification rule authored on "Alice" stopped matching the moment the
|
|
45827
47803
|
* operator fixed the spelling in the gallery, and nothing said so. The id is
|
|
45828
47804
|
* the thing that does not move, so it is what a rule matches on
|
|
45829
47805
|
* (`NcConditions.identities`) and the text is what a human is shown.
|
|
@@ -48362,7 +50338,7 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
48362
50338
|
/**
|
|
48363
50339
|
* Root-supplied detections for the tree's ROOT step (D730). Set by
|
|
48364
50340
|
* `runDetailSubtree` when the camera's root model supplies a crop-kind
|
|
48365
|
-
* step (a
|
|
50341
|
+
* step (a plus catalog `license_plate` for `plate-detection`): the step is
|
|
48366
50342
|
* NOT inferred, these boxes are its output, and its children (the plate
|
|
48367
50343
|
* reader) run on them through their own crop policy. Boxes are in the
|
|
48368
50344
|
* PIXELS of the image this call carries. Absent ⇒ the root step runs.
|
|
@@ -49995,7 +51971,7 @@ var RunnerCameraConfigSchema = object({
|
|
|
49995
51971
|
* detection session that asks for history. What shipped was a last-moment
|
|
49996
51972
|
* discard — `FrameSlot`'s throttle compares wall clocks, and ~4 s of media
|
|
49997
51973
|
* arriving inside a few hundred ms of wall clock looks to it like one frame's
|
|
49998
|
-
* worth. Device
|
|
51974
|
+
* worth. Device 102, 2026-09-08: a re-run of the SAME model over the stored
|
|
49999
51975
|
* recording scored the subject `vehicle 0.5669` — above the 0.50 floor —
|
|
50000
51976
|
* 1.68 s BEFORE the live track was born, on a frame that was in the pre-roll,
|
|
50001
51977
|
* was decoded, and was freed.
|
|
@@ -52025,7 +54001,7 @@ method(_void(), ProviderInfoSchema, { auth: "admin" }), method(object({ config:
|
|
|
52025
54001
|
* The signals a device can emit to WAKE its own stream.
|
|
52026
54002
|
*
|
|
52027
54003
|
* A camera whose stream is built on demand sleeps until something asks for it,
|
|
52028
|
-
* and "something" cannot be a consumer that is merely attached — a
|
|
54004
|
+
* and "something" cannot be a consumer that is merely attached — a external-catalog
|
|
52029
54005
|
* puller holds a session open for ever, and treating that as demand would keep
|
|
52030
54006
|
* a battery camera awake for ever, which is the whole thing the battery is for
|
|
52031
54007
|
* (D173). So the wake has to come from the CAMERA: an event it noticed by
|
|
@@ -52712,7 +54688,7 @@ var ClipSchema = object({
|
|
|
52712
54688
|
* {@link MAX_CLIP_EVENT_IDS}. Empty on footage-only clips.
|
|
52713
54689
|
*
|
|
52714
54690
|
* Bounded because it is not a payload the surface pages through: one visit on
|
|
52715
|
-
* device
|
|
54691
|
+
* device 101 carried 2 345 ids, and `eventIds` was 99% of a 153 KB
|
|
52716
54692
|
* camera-day. Read {@link eventCount} for the true total.
|
|
52717
54693
|
*/
|
|
52718
54694
|
eventIds: array(string()).optional(),
|
|
@@ -52857,7 +54833,7 @@ var ClipPlaybackSchema = object({
|
|
|
52857
54833
|
* camera has no recordings", which is the defect this whole line of work is
|
|
52858
54834
|
* about: a battery camera nobody woke (`sleeping`), a camera that could not be
|
|
52859
54835
|
* reached at all (`unreachable`, also what a provider that THREW reports), a
|
|
52860
|
-
* camera whose SD card is not mounted (`no-storage`, measured on
|
|
54836
|
+
* camera whose SD card is not mounted (`no-storage`, measured on 106 —
|
|
52861
54837
|
* `HddInfo mount 0`, honestly nothing to list rather than "no clips"), and a
|
|
52862
54838
|
* camera whose OWN index disagrees with its OWN calendar (`index-empty`,
|
|
52863
54839
|
* measured on 618: the calendar marks 3–20 September, days 6–20 list zero
|
|
@@ -53122,7 +55098,7 @@ DeviceType.Camera, method(object({
|
|
|
53122
55098
|
*
|
|
53123
55099
|
* It was optional, documented as "absent means the device's BOUND
|
|
53124
55100
|
* provider, which is CamStack on every camera". No code implemented
|
|
53125
|
-
* that. Measured on the live hub 2026-09-20 — device
|
|
55101
|
+
* that. Measured on the live hub 2026-09-20 — device 107, bound to
|
|
53126
55102
|
* `recorder` AND `provider-reolink` — a bare call with `limit: 3`
|
|
53127
55103
|
* answered SIX rows, three from each source, merged newest-first:
|
|
53128
55104
|
* `device-collection-dispatch.ts` simply left the fan-out un-narrowed,
|
|
@@ -54200,7 +56176,10 @@ object({
|
|
|
54200
56176
|
DeviceType.Sensor;
|
|
54201
56177
|
object({
|
|
54202
56178
|
/** Current illuminance in lux (lx). */
|
|
54203
|
-
lux: number().min(0)
|
|
56179
|
+
lux: number().min(0).meta({
|
|
56180
|
+
unit: "lx",
|
|
56181
|
+
label: "Illuminance"
|
|
56182
|
+
}),
|
|
54204
56183
|
/** Ms epoch when the slice was last updated. */
|
|
54205
56184
|
lastFetchedAt: number(),
|
|
54206
56185
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -54356,7 +56335,10 @@ var BatteryStatusSchema = object({
|
|
|
54356
56335
|
* Consumers must SKIP a null rather than coerce it — `battery-band` already
|
|
54357
56336
|
* declines to band a non-finite reading, which is the correct shape.
|
|
54358
56337
|
*/
|
|
54359
|
-
percentage: number().min(0).max(100).nullable()
|
|
56338
|
+
percentage: number().min(0).max(100).nullable().meta({
|
|
56339
|
+
unit: "%",
|
|
56340
|
+
label: "Charge"
|
|
56341
|
+
}),
|
|
54360
56342
|
/**
|
|
54361
56343
|
* Charging source. `'dc'` covers wall/USB adapters; `'solar'` is
|
|
54362
56344
|
* Reolink-specific for the Solar Panel 2 accessory (will become
|
|
@@ -54375,13 +56357,13 @@ var BatteryStatusSchema = object({
|
|
|
54375
56357
|
"solar",
|
|
54376
56358
|
"none",
|
|
54377
56359
|
"unknown"
|
|
54378
|
-
]),
|
|
56360
|
+
]).meta({ label: "Charging source" }),
|
|
54379
56361
|
/**
|
|
54380
56362
|
* True when the camera firmware has gone into low-power mode. Battery
|
|
54381
56363
|
* providers MUST avoid polling during sleep — reading the battery
|
|
54382
56364
|
* wakes the camera up and drains charge.
|
|
54383
56365
|
*/
|
|
54384
|
-
sleeping: boolean(),
|
|
56366
|
+
sleeping: boolean().meta({ label: "Sleeping" }),
|
|
54385
56367
|
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
54386
56368
|
lastUpdated: number(),
|
|
54387
56369
|
/**
|
|
@@ -54421,7 +56403,7 @@ var BatteryStatusSchema = object({
|
|
|
54421
56403
|
* sub-threshold = low). UI MUST render "Normal"/"Low" instead of a
|
|
54422
56404
|
* misleading exact percentage. Absent/false → genuine 0–100 % reading.
|
|
54423
56405
|
*/
|
|
54424
|
-
binary: boolean().optional()
|
|
56406
|
+
binary: boolean().optional().meta({ label: "Binary indicator" })
|
|
54425
56407
|
});
|
|
54426
56408
|
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat;
|
|
54427
56409
|
method(object({
|
|
@@ -54436,7 +56418,7 @@ method(object({
|
|
|
54436
56418
|
status: BatteryStatusSchema
|
|
54437
56419
|
});
|
|
54438
56420
|
object({
|
|
54439
|
-
on: boolean(),
|
|
56421
|
+
on: boolean().meta({ label: "On" }),
|
|
54440
56422
|
/** Ms epoch of the last transition. 0 if never observed. */
|
|
54441
56423
|
lastChangedAt: number()
|
|
54442
56424
|
});
|
|
@@ -54694,7 +56676,7 @@ var GridLayoutCellSchema = object({
|
|
|
54694
56676
|
*
|
|
54695
56677
|
* A grid's `high` composes its sources' `high` and its `low` their `low`, so a
|
|
54696
56678
|
* profile is on offer only when EVERY source can serve it. The refusal NAMES
|
|
54697
|
-
* the sources, because "this grid has no low" is not a finding — "
|
|
56679
|
+
* the sources, because "this grid has no low" is not a finding — "101 has no
|
|
54698
56680
|
* low" is, and it is the one an operator can act on.
|
|
54699
56681
|
*/
|
|
54700
56682
|
var GridProfileOfferSchema = object({
|
|
@@ -56245,7 +58227,10 @@ DeviceType.Humidifier, method(object({
|
|
|
56245
58227
|
});
|
|
56246
58228
|
object({
|
|
56247
58229
|
/** Current relative humidity, 0..100. */
|
|
56248
|
-
percent: number().min(0).max(100)
|
|
58230
|
+
percent: number().min(0).max(100).meta({
|
|
58231
|
+
unit: "%",
|
|
58232
|
+
label: "Humidity"
|
|
58233
|
+
}),
|
|
56249
58234
|
/** Ms epoch when the slice was last updated. */
|
|
56250
58235
|
lastFetchedAt: number(),
|
|
56251
58236
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -59022,9 +61007,15 @@ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema)
|
|
|
59022
61007
|
});
|
|
59023
61008
|
object({
|
|
59024
61009
|
/** Instantaneous power draw in watts. */
|
|
59025
|
-
watts: number().optional()
|
|
61010
|
+
watts: number().optional().meta({
|
|
61011
|
+
unit: "W",
|
|
61012
|
+
label: "Power"
|
|
61013
|
+
}),
|
|
59026
61014
|
/** Cumulative energy in kilowatt-hours since the meter was reset. */
|
|
59027
|
-
kwhTotal: number().optional()
|
|
61015
|
+
kwhTotal: number().optional().meta({
|
|
61016
|
+
unit: "kWh",
|
|
61017
|
+
label: "Energy"
|
|
61018
|
+
}),
|
|
59028
61019
|
/** Voltage in volts. */
|
|
59029
61020
|
volts: number().optional(),
|
|
59030
61021
|
/** Current in amperes. */
|
|
@@ -59343,9 +61334,9 @@ var PtzOptionsSchema = object({
|
|
|
59343
61334
|
* Reolink preset 0, Hikvision preset '1', Dahua preset 1 -- and on this fleet
|
|
59344
61335
|
* not one of the three cameras honours its own:
|
|
59345
61336
|
*
|
|
59346
|
-
*
|
|
59347
|
-
* 1438
|
|
59348
|
-
* 3836
|
|
61337
|
+
* 107 Camera camera Carol (reolink) preset 0 holds "stanza"
|
|
61338
|
+
* 1438 Camera dispensa (hikvision) preset 1 holds "Credenza"
|
|
61339
|
+
* 3836 Camera studio (amcrest) preset 1 holds "Preset1"
|
|
59349
61340
|
*
|
|
59350
61341
|
* So `goHome` meant "go wherever the operator happened to save in slot 0 or 1",
|
|
59351
61342
|
* and two of the three swallowed the failure in a bare `catch`. For autotrack
|
|
@@ -59492,7 +61483,7 @@ object({
|
|
|
59492
61483
|
running: boolean().nullable(),
|
|
59493
61484
|
/** Epoch ms the current boolean began; null while `running` is null. */
|
|
59494
61485
|
since: number().nullable(),
|
|
59495
|
-
source: RunningStateSourceSchema,
|
|
61486
|
+
source: RunningStateSourceSchema.meta({ label: "Source" }),
|
|
59496
61487
|
phase: string().nullable(),
|
|
59497
61488
|
/** null until a reading has been published (D393). */
|
|
59498
61489
|
lastFetchedAt: number().nullable()
|
|
@@ -59545,7 +61536,7 @@ var RecordingAvailabilitySchema = object({
|
|
|
59545
61536
|
* would look identical. But the answer used to say nothing about that, so a
|
|
59546
61537
|
* caller asking "what can I export?" read the single preferred profile as
|
|
59547
61538
|
* the only one that exists — on this deployment every camera records `high`
|
|
59548
|
-
* AND `low`, the low tree holding 14 GB for camera
|
|
61539
|
+
* AND `low`, the low tree holding 14 GB for camera 101 alone, and the export
|
|
59549
61540
|
* UI could not see it.
|
|
59550
61541
|
*
|
|
59551
61542
|
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
@@ -59644,7 +61635,7 @@ var RecordingSourceOptionsSchema = object({
|
|
|
59644
61635
|
* `sparse` = gaps are the absence of one, and must be drawn as such.
|
|
59645
61636
|
*
|
|
59646
61637
|
* Not an onboard-only concession: measured 2026-09-24, OUR bar covers 98.8 %
|
|
59647
|
-
* of
|
|
61638
|
+
* of 107's day and 1.2 % of 1436's. It is a fact about a (source, camera)
|
|
59648
61639
|
* pair, and ours answers it per camera from `deriveRecordingMode`. */
|
|
59649
61640
|
coverage: _enum(["continuous", "sparse"]),
|
|
59650
61641
|
/** Where the playhead may be put.
|
|
@@ -59720,7 +61711,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(RecordingSourceS
|
|
|
59720
61711
|
* merely discouraged (D554 amended).
|
|
59721
61712
|
*
|
|
59722
61713
|
* It was learned the expensive way on `videoclips.listClips`: measured
|
|
59723
|
-
* on the live hub 2026-09-20, device
|
|
61714
|
+
* on the live hub 2026-09-20, device 107 bound to `recorder` AND
|
|
59724
61715
|
* `provider-reolink`, a bare call with `limit: 3` answered SIX rows,
|
|
59725
61716
|
* three from each source, merged — `device-collection-dispatch.ts`
|
|
59726
61717
|
* leaves an unpinned fan-out un-narrowed, so absence buys the union the
|
|
@@ -60321,7 +62312,7 @@ var ExportSpeedSchema = number().min(.25).max(32);
|
|
|
60321
62312
|
* on a 10 h window holding 29,393 s of footage every range landed late by the
|
|
60322
62313
|
* gap accumulated before it — up to 6,607 s, well past EOF. Nothing matched,
|
|
60323
62314
|
* the video was a uniform timelapse, and the log line reported the five ranges
|
|
60324
|
-
* that had been ASKED for (2026-08-13, export `57d14363`, camera
|
|
62315
|
+
* that had been ASKED for (2026-08-13, export `57d14363`, camera 101).
|
|
60325
62316
|
*
|
|
60326
62317
|
* Relative and not absolute epoch, because an absolute epoch would make every
|
|
60327
62318
|
* call site responsible for the same subtraction.
|
|
@@ -60955,7 +62946,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), RecordingSignalStatusS
|
|
|
60955
62946
|
* which put a "Scenes" tab on one camera's detail page. That is the wrong shape
|
|
60956
62947
|
* for the thing: a scene is a standing question about the property ("is the bin
|
|
60957
62948
|
* still out"), and the operator's question is "which of my scenes have tripped",
|
|
60958
|
-
* across every camera at once — not "what does camera
|
|
62949
|
+
* across every camera at once — not "what does camera 102 think". Buried one
|
|
60959
62950
|
* camera deep it also could not be found. The surface is now a top-level admin
|
|
60960
62951
|
* page (`/scenes`, `pages/Scenes.tsx`) that lists every scene on every camera and
|
|
60961
62952
|
* picks the camera inside the create flow, the same shape Events and Faces have.
|
|
@@ -61538,7 +63529,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), StreamParamsOptionsSch
|
|
|
61538
63529
|
auth: "admin"
|
|
61539
63530
|
}), method(object({ deviceId: number() }), unknown().nullable());
|
|
61540
63531
|
object({
|
|
61541
|
-
on: boolean(),
|
|
63532
|
+
on: boolean().meta({ label: "On" }),
|
|
61542
63533
|
/** Ms epoch of the last state change. Useful for UI "X minutes ago". */
|
|
61543
63534
|
lastChangedAt: number()
|
|
61544
63535
|
});
|
|
@@ -62101,7 +64092,10 @@ object({
|
|
|
62101
64092
|
DeviceType.Sensor;
|
|
62102
64093
|
object({
|
|
62103
64094
|
/** Current temperature in Celsius. */
|
|
62104
|
-
celsius: number()
|
|
64095
|
+
celsius: number().meta({
|
|
64096
|
+
unit: "°C",
|
|
64097
|
+
label: "Temperature"
|
|
64098
|
+
}),
|
|
62105
64099
|
/** Ms epoch when the slice was last updated (push or poll). */
|
|
62106
64100
|
lastFetchedAt: number(),
|
|
62107
64101
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -63351,6 +65345,10 @@ var trainingCapability = {
|
|
|
63351
65345
|
}
|
|
63352
65346
|
};
|
|
63353
65347
|
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
65348
|
+
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;
|
|
65349
|
+
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
65350
|
+
DeviceRole.BinarySensor, DeviceRole.MotionSensor;
|
|
65351
|
+
new Set(CAP_NAMES);
|
|
63354
65352
|
Object.freeze({
|
|
63355
65353
|
person: .5,
|
|
63356
65354
|
vehicle: .5,
|
|
@@ -76288,7 +78286,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
76288
78286
|
state: [{
|
|
76289
78287
|
kind: "boolean",
|
|
76290
78288
|
field: "on",
|
|
76291
|
-
label: t("
|
|
78289
|
+
label: t("On", "Acceso"),
|
|
76292
78290
|
whenTrue: t("When {device} turns active", "Quando {device} si attiva"),
|
|
76293
78291
|
whenFalse: t("When {device} turns inactive", "Quando {device} si disattiva"),
|
|
76294
78292
|
icon: "toggle-right"
|
|
@@ -79712,7 +81710,6 @@ Object.freeze({
|
|
|
79712
81710
|
"smtp-provider": "email"
|
|
79713
81711
|
});
|
|
79714
81712
|
DeviceType.Camera;
|
|
79715
|
-
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;
|
|
79716
81713
|
/**
|
|
79717
81714
|
* A saved Customize assignment (D936). The schema is the type: callers use
|
|
79718
81715
|
* `z.infer`, they do not restate the shape.
|
|
@@ -79769,6 +81766,11 @@ var PulseOverrideDraftSchema = object({
|
|
|
79769
81766
|
targetId: string().min(1),
|
|
79770
81767
|
enabled: boolean(),
|
|
79771
81768
|
debounceMs: number().nonnegative(),
|
|
81769
|
+
edges: array(_enum([
|
|
81770
|
+
"rising",
|
|
81771
|
+
"button",
|
|
81772
|
+
"native-event"
|
|
81773
|
+
])).min(1).optional(),
|
|
79772
81774
|
sources: array(OverrideSourceSchema).min(1)
|
|
79773
81775
|
});
|
|
79774
81776
|
var SpanSourceDraftSchema = OverrideSourceSchema.extend({ mode: _enum([
|
|
@@ -79801,7 +81803,6 @@ object({
|
|
|
79801
81803
|
]),
|
|
79802
81804
|
reason: string().nullable()
|
|
79803
81805
|
});
|
|
79804
|
-
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
79805
81806
|
var G711_SCALE_CORRECTION_DB = {
|
|
79806
81807
|
PCMU: 20 * Math.log10(4),
|
|
79807
81808
|
PCMA: 20 * Math.log10(8)
|
|
@@ -80174,7 +82175,7 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
80174
82175
|
{
|
|
80175
82176
|
name: "summaryStreams",
|
|
80176
82177
|
label: "Summary: streams offline",
|
|
80177
|
-
example: "
|
|
82178
|
+
example: "Front door (high) — since 06:40",
|
|
80178
82179
|
kinds: ["stream-offline", "stream-online"]
|
|
80179
82180
|
},
|
|
80180
82181
|
{
|
|
@@ -80192,13 +82193,13 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
80192
82193
|
{
|
|
80193
82194
|
name: "summaryDetection",
|
|
80194
82195
|
label: "Summary: cameras detecting nothing",
|
|
80195
|
-
example: "
|
|
82196
|
+
example: "Front door — since 05:10",
|
|
80196
82197
|
kinds: ["detection-blind"]
|
|
80197
82198
|
},
|
|
80198
82199
|
{
|
|
80199
82200
|
name: "summaryNodes",
|
|
80200
82201
|
label: "Summary: nodes",
|
|
80201
|
-
example: "
|
|
82202
|
+
example: "agent-a — offline since 03:00",
|
|
80202
82203
|
kinds: [
|
|
80203
82204
|
"node-offline",
|
|
80204
82205
|
"node-online",
|