@camstack/addon-training 0.1.80 → 0.1.81
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-Cr7Pmc7w.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-BEHbfGro.mjs} +2046 -50
- package/dist/{dist-FpC7GFu_.js → dist-CdN9FdUa.js} +2046 -50
- package/dist/{hostInit-DxnxYPQ_.mjs → hostInit-XwE0hfA0.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-DslbW4nN.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DKoALssM.mjs +0 -26
|
@@ -32,7 +32,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
32
32
|
}) : target, mod));
|
|
33
33
|
var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
34
34
|
require("node:crypto");
|
|
35
|
-
//#region ../types/dist/event-category-
|
|
35
|
+
//#region ../types/dist/event-category-DHXxB8t9.mjs
|
|
36
36
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
37
37
|
EventCategory["SystemBoot"] = "system.boot";
|
|
38
38
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -328,7 +328,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
328
328
|
* TRANSITION into that state (never per dispatch), and the node is dropped
|
|
329
329
|
* from the placement candidate set for as long as it holds.
|
|
330
330
|
*
|
|
331
|
-
* This exists because the state was previously invisible:
|
|
331
|
+
* This exists because the state was previously invisible: agent-a
|
|
332
332
|
* absorbed 283k inference errors in a day while still being handed cameras,
|
|
333
333
|
* and nothing in the system said so.
|
|
334
334
|
*
|
|
@@ -5600,7 +5600,7 @@ var ZodIssueCode = {
|
|
|
5600
5600
|
var ZodFirstPartyTypeKind;
|
|
5601
5601
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5602
5602
|
//#endregion
|
|
5603
|
-
//#region ../types/dist/sleep-
|
|
5603
|
+
//#region ../types/dist/sleep-BErAxhul.mjs
|
|
5604
5604
|
/**
|
|
5605
5605
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5606
5606
|
* window to float samples (D455).
|
|
@@ -8800,6 +8800,1980 @@ method(object({ deviceId: number() }), array(StreamSourceEntrySchema)), method(o
|
|
|
8800
8800
|
kind: "mutation",
|
|
8801
8801
|
auth: "admin"
|
|
8802
8802
|
}), method(object({ deviceId: number() }), unknown().nullable()), method(object({ deviceId: number() }), RawStateResultSchema.nullable(), { auth: "protected" });
|
|
8803
|
+
Object.freeze({ "doorbell": "lastPressedAt" });
|
|
8804
|
+
/** Every capability name, so addon code can check a name without the schema graph. */
|
|
8805
|
+
var CAP_NAMES = Object.freeze([
|
|
8806
|
+
"accessories",
|
|
8807
|
+
"addon-pages",
|
|
8808
|
+
"addon-pages-source",
|
|
8809
|
+
"addon-routes",
|
|
8810
|
+
"addon-settings",
|
|
8811
|
+
"addon-widgets",
|
|
8812
|
+
"addon-widgets-source",
|
|
8813
|
+
"addons",
|
|
8814
|
+
"admin-ui",
|
|
8815
|
+
"air-quality-sensor",
|
|
8816
|
+
"alarm-panel",
|
|
8817
|
+
"alerts",
|
|
8818
|
+
"ambient-light-sensor",
|
|
8819
|
+
"audio-analysis",
|
|
8820
|
+
"audio-analyzer",
|
|
8821
|
+
"audio-codec",
|
|
8822
|
+
"audio-metrics",
|
|
8823
|
+
"auth-provider",
|
|
8824
|
+
"automation-control",
|
|
8825
|
+
"backup",
|
|
8826
|
+
"battery",
|
|
8827
|
+
"binary",
|
|
8828
|
+
"brightness",
|
|
8829
|
+
"broker",
|
|
8830
|
+
"button",
|
|
8831
|
+
"calendar-source",
|
|
8832
|
+
"calendars",
|
|
8833
|
+
"camera-credentials",
|
|
8834
|
+
"camera-grid-layout",
|
|
8835
|
+
"camera-pipeline-config",
|
|
8836
|
+
"camera-streams",
|
|
8837
|
+
"carbon-monoxide",
|
|
8838
|
+
"climate-control",
|
|
8839
|
+
"color",
|
|
8840
|
+
"composer",
|
|
8841
|
+
"connection-test",
|
|
8842
|
+
"connectivity",
|
|
8843
|
+
"consumables",
|
|
8844
|
+
"contact",
|
|
8845
|
+
"control",
|
|
8846
|
+
"core-blocks",
|
|
8847
|
+
"cover",
|
|
8848
|
+
"custom-model-registry",
|
|
8849
|
+
"data-store-provider",
|
|
8850
|
+
"database-snapshot",
|
|
8851
|
+
"day-night",
|
|
8852
|
+
"decoder",
|
|
8853
|
+
"detection-pipeline",
|
|
8854
|
+
"device-admin-link",
|
|
8855
|
+
"device-adoption",
|
|
8856
|
+
"device-credentials",
|
|
8857
|
+
"device-discovery",
|
|
8858
|
+
"device-export",
|
|
8859
|
+
"device-extension",
|
|
8860
|
+
"device-history",
|
|
8861
|
+
"device-manager",
|
|
8862
|
+
"device-ops",
|
|
8863
|
+
"device-provider",
|
|
8864
|
+
"device-removal-hook",
|
|
8865
|
+
"device-state",
|
|
8866
|
+
"device-status",
|
|
8867
|
+
"dishwasher",
|
|
8868
|
+
"display-palette",
|
|
8869
|
+
"doorbell",
|
|
8870
|
+
"embedding-encoder",
|
|
8871
|
+
"enum-sensor",
|
|
8872
|
+
"event-emitter",
|
|
8873
|
+
"face-gallery",
|
|
8874
|
+
"failure-contribution",
|
|
8875
|
+
"fan-control",
|
|
8876
|
+
"feature-probe",
|
|
8877
|
+
"filesystem-browse",
|
|
8878
|
+
"flood",
|
|
8879
|
+
"gas",
|
|
8880
|
+
"heating-valve",
|
|
8881
|
+
"humidifier",
|
|
8882
|
+
"humidity-sensor",
|
|
8883
|
+
"image",
|
|
8884
|
+
"image-settings",
|
|
8885
|
+
"integrations",
|
|
8886
|
+
"intercom",
|
|
8887
|
+
"keychain",
|
|
8888
|
+
"keychain-admin",
|
|
8889
|
+
"lawn-mower-control",
|
|
8890
|
+
"llm",
|
|
8891
|
+
"llm-runtime",
|
|
8892
|
+
"load-contribution",
|
|
8893
|
+
"local-network",
|
|
8894
|
+
"lock-control",
|
|
8895
|
+
"log-channels",
|
|
8896
|
+
"log-destination",
|
|
8897
|
+
"login-method",
|
|
8898
|
+
"media-player",
|
|
8899
|
+
"mesh-network",
|
|
8900
|
+
"metrics-provider",
|
|
8901
|
+
"model-convert",
|
|
8902
|
+
"model-distributor",
|
|
8903
|
+
"motion",
|
|
8904
|
+
"motion-detection",
|
|
8905
|
+
"motion-trigger",
|
|
8906
|
+
"motion-zones",
|
|
8907
|
+
"mqtt-broker",
|
|
8908
|
+
"native-object-detection",
|
|
8909
|
+
"navigation",
|
|
8910
|
+
"network-access",
|
|
8911
|
+
"network-link",
|
|
8912
|
+
"network-quality",
|
|
8913
|
+
"node-certificates",
|
|
8914
|
+
"nodes",
|
|
8915
|
+
"notification-output",
|
|
8916
|
+
"notification-rules",
|
|
8917
|
+
"notifier",
|
|
8918
|
+
"numeric-sensor",
|
|
8919
|
+
"oauth-integration",
|
|
8920
|
+
"oidc-connections",
|
|
8921
|
+
"osd",
|
|
8922
|
+
"osd-manager",
|
|
8923
|
+
"pet-feeder",
|
|
8924
|
+
"pipeline-analytics",
|
|
8925
|
+
"pipeline-executor",
|
|
8926
|
+
"pipeline-orchestrator",
|
|
8927
|
+
"pipeline-runner",
|
|
8928
|
+
"plate-gallery",
|
|
8929
|
+
"platform-probe",
|
|
8930
|
+
"power-meter",
|
|
8931
|
+
"presence",
|
|
8932
|
+
"pressure-sensor",
|
|
8933
|
+
"privacy-mask",
|
|
8934
|
+
"ptz",
|
|
8935
|
+
"ptz-autotrack",
|
|
8936
|
+
"reboot",
|
|
8937
|
+
"record-entries",
|
|
8938
|
+
"recording",
|
|
8939
|
+
"recording-archive",
|
|
8940
|
+
"recording-export",
|
|
8941
|
+
"recording-onboard",
|
|
8942
|
+
"recording-signal",
|
|
8943
|
+
"records",
|
|
8944
|
+
"running-state",
|
|
8945
|
+
"scene-monitor",
|
|
8946
|
+
"script-runner",
|
|
8947
|
+
"server-management",
|
|
8948
|
+
"settings-store",
|
|
8949
|
+
"smoke",
|
|
8950
|
+
"smtp-provider",
|
|
8951
|
+
"snapshot",
|
|
8952
|
+
"sso-bridge",
|
|
8953
|
+
"storage",
|
|
8954
|
+
"storage-admin",
|
|
8955
|
+
"storage-evictable",
|
|
8956
|
+
"storage-migration",
|
|
8957
|
+
"storage-occupancy",
|
|
8958
|
+
"storage-provider",
|
|
8959
|
+
"stream-broker",
|
|
8960
|
+
"stream-catalog",
|
|
8961
|
+
"stream-params",
|
|
8962
|
+
"stream-signals",
|
|
8963
|
+
"switch",
|
|
8964
|
+
"system",
|
|
8965
|
+
"tamper",
|
|
8966
|
+
"temperature-sensor",
|
|
8967
|
+
"terminal-session",
|
|
8968
|
+
"toast",
|
|
8969
|
+
"training",
|
|
8970
|
+
"training-provider",
|
|
8971
|
+
"turn-provider",
|
|
8972
|
+
"update",
|
|
8973
|
+
"user-management",
|
|
8974
|
+
"user-passkeys",
|
|
8975
|
+
"vacuum-control",
|
|
8976
|
+
"valve",
|
|
8977
|
+
"vector-store",
|
|
8978
|
+
"vibration",
|
|
8979
|
+
"videoclips",
|
|
8980
|
+
"viewer-ui",
|
|
8981
|
+
"water-heater",
|
|
8982
|
+
"weather",
|
|
8983
|
+
"webrtc-session",
|
|
8984
|
+
"zone-analytics",
|
|
8985
|
+
"zone-rules",
|
|
8986
|
+
"zones"
|
|
8987
|
+
]);
|
|
8988
|
+
Object.freeze({
|
|
8989
|
+
"air-quality-sensor": [
|
|
8990
|
+
{
|
|
8991
|
+
"path": "co2Ppm",
|
|
8992
|
+
"valueType": "number"
|
|
8993
|
+
},
|
|
8994
|
+
{
|
|
8995
|
+
"path": "vocPpb",
|
|
8996
|
+
"valueType": "number"
|
|
8997
|
+
},
|
|
8998
|
+
{
|
|
8999
|
+
"path": "pm25",
|
|
9000
|
+
"valueType": "number"
|
|
9001
|
+
},
|
|
9002
|
+
{
|
|
9003
|
+
"path": "pm10",
|
|
9004
|
+
"valueType": "number"
|
|
9005
|
+
},
|
|
9006
|
+
{
|
|
9007
|
+
"path": "aqi",
|
|
9008
|
+
"valueType": "number"
|
|
9009
|
+
},
|
|
9010
|
+
{
|
|
9011
|
+
"path": "unit",
|
|
9012
|
+
"valueType": "string"
|
|
9013
|
+
},
|
|
9014
|
+
{
|
|
9015
|
+
"path": "precision",
|
|
9016
|
+
"valueType": "number"
|
|
9017
|
+
}
|
|
9018
|
+
],
|
|
9019
|
+
"alarm-panel": [
|
|
9020
|
+
{
|
|
9021
|
+
"path": "state",
|
|
9022
|
+
"valueType": "enum",
|
|
9023
|
+
"enumValues": [
|
|
9024
|
+
"disarmed",
|
|
9025
|
+
"armed_home",
|
|
9026
|
+
"armed_away",
|
|
9027
|
+
"armed_night",
|
|
9028
|
+
"armed_vacation",
|
|
9029
|
+
"armed_custom_bypass",
|
|
9030
|
+
"arming",
|
|
9031
|
+
"disarming",
|
|
9032
|
+
"pending",
|
|
9033
|
+
"triggered"
|
|
9034
|
+
]
|
|
9035
|
+
},
|
|
9036
|
+
{
|
|
9037
|
+
"path": "targetMode",
|
|
9038
|
+
"valueType": "enum",
|
|
9039
|
+
"enumValues": [
|
|
9040
|
+
"home",
|
|
9041
|
+
"away",
|
|
9042
|
+
"night",
|
|
9043
|
+
"vacation",
|
|
9044
|
+
"custom_bypass"
|
|
9045
|
+
]
|
|
9046
|
+
},
|
|
9047
|
+
{
|
|
9048
|
+
"path": "requiresCode",
|
|
9049
|
+
"valueType": "boolean"
|
|
9050
|
+
}
|
|
9051
|
+
],
|
|
9052
|
+
"ambient-light-sensor": [
|
|
9053
|
+
{
|
|
9054
|
+
"path": "lux",
|
|
9055
|
+
"valueType": "number"
|
|
9056
|
+
},
|
|
9057
|
+
{
|
|
9058
|
+
"path": "unit",
|
|
9059
|
+
"valueType": "string"
|
|
9060
|
+
},
|
|
9061
|
+
{
|
|
9062
|
+
"path": "precision",
|
|
9063
|
+
"valueType": "number"
|
|
9064
|
+
}
|
|
9065
|
+
],
|
|
9066
|
+
"audio-metrics": [
|
|
9067
|
+
{
|
|
9068
|
+
"path": "ts",
|
|
9069
|
+
"valueType": "number"
|
|
9070
|
+
},
|
|
9071
|
+
{
|
|
9072
|
+
"path": "windowSec",
|
|
9073
|
+
"valueType": "number"
|
|
9074
|
+
},
|
|
9075
|
+
{
|
|
9076
|
+
"path": "level.rms",
|
|
9077
|
+
"valueType": "number"
|
|
9078
|
+
},
|
|
9079
|
+
{
|
|
9080
|
+
"path": "level.dbfs",
|
|
9081
|
+
"valueType": "number"
|
|
9082
|
+
},
|
|
9083
|
+
{
|
|
9084
|
+
"path": "peakDbfs",
|
|
9085
|
+
"valueType": "number"
|
|
9086
|
+
},
|
|
9087
|
+
{
|
|
9088
|
+
"path": "avgDbfs",
|
|
9089
|
+
"valueType": "number"
|
|
9090
|
+
},
|
|
9091
|
+
{
|
|
9092
|
+
"path": "current.className",
|
|
9093
|
+
"valueType": "string"
|
|
9094
|
+
},
|
|
9095
|
+
{
|
|
9096
|
+
"path": "current.score",
|
|
9097
|
+
"valueType": "number"
|
|
9098
|
+
},
|
|
9099
|
+
{
|
|
9100
|
+
"path": "current.timestamp",
|
|
9101
|
+
"valueType": "number"
|
|
9102
|
+
}
|
|
9103
|
+
],
|
|
9104
|
+
"automation-control": [
|
|
9105
|
+
{
|
|
9106
|
+
"path": "enabled",
|
|
9107
|
+
"valueType": "boolean"
|
|
9108
|
+
},
|
|
9109
|
+
{
|
|
9110
|
+
"path": "isRunning",
|
|
9111
|
+
"valueType": "boolean"
|
|
9112
|
+
},
|
|
9113
|
+
{
|
|
9114
|
+
"path": "lastTriggeredAt",
|
|
9115
|
+
"valueType": "number"
|
|
9116
|
+
},
|
|
9117
|
+
{
|
|
9118
|
+
"path": "lastError",
|
|
9119
|
+
"valueType": "string"
|
|
9120
|
+
}
|
|
9121
|
+
],
|
|
9122
|
+
"battery": [
|
|
9123
|
+
{
|
|
9124
|
+
"path": "percentage",
|
|
9125
|
+
"valueType": "number"
|
|
9126
|
+
},
|
|
9127
|
+
{
|
|
9128
|
+
"path": "charging",
|
|
9129
|
+
"valueType": "enum",
|
|
9130
|
+
"enumValues": [
|
|
9131
|
+
"dc",
|
|
9132
|
+
"solar",
|
|
9133
|
+
"none",
|
|
9134
|
+
"unknown"
|
|
9135
|
+
]
|
|
9136
|
+
},
|
|
9137
|
+
{
|
|
9138
|
+
"path": "sleeping",
|
|
9139
|
+
"valueType": "boolean"
|
|
9140
|
+
},
|
|
9141
|
+
{
|
|
9142
|
+
"path": "lastUpdated",
|
|
9143
|
+
"valueType": "number"
|
|
9144
|
+
},
|
|
9145
|
+
{
|
|
9146
|
+
"path": "lastContactAt",
|
|
9147
|
+
"valueType": "number"
|
|
9148
|
+
},
|
|
9149
|
+
{
|
|
9150
|
+
"path": "lastFullRefreshAt",
|
|
9151
|
+
"valueType": "number"
|
|
9152
|
+
},
|
|
9153
|
+
{
|
|
9154
|
+
"path": "binary",
|
|
9155
|
+
"valueType": "boolean"
|
|
9156
|
+
}
|
|
9157
|
+
],
|
|
9158
|
+
"binary": [{
|
|
9159
|
+
"path": "on",
|
|
9160
|
+
"valueType": "boolean"
|
|
9161
|
+
}],
|
|
9162
|
+
"brightness": [{
|
|
9163
|
+
"path": "percentage",
|
|
9164
|
+
"valueType": "number"
|
|
9165
|
+
}],
|
|
9166
|
+
"broker": [{
|
|
9167
|
+
"path": "brokerCount",
|
|
9168
|
+
"valueType": "number"
|
|
9169
|
+
}, {
|
|
9170
|
+
"path": "connectedCount",
|
|
9171
|
+
"valueType": "number"
|
|
9172
|
+
}],
|
|
9173
|
+
"camera-credentials": [
|
|
9174
|
+
{
|
|
9175
|
+
"path": "host",
|
|
9176
|
+
"valueType": "string"
|
|
9177
|
+
},
|
|
9178
|
+
{
|
|
9179
|
+
"path": "port",
|
|
9180
|
+
"valueType": "number"
|
|
9181
|
+
},
|
|
9182
|
+
{
|
|
9183
|
+
"path": "onvifPort",
|
|
9184
|
+
"valueType": "number"
|
|
9185
|
+
},
|
|
9186
|
+
{
|
|
9187
|
+
"path": "rtspPort",
|
|
9188
|
+
"valueType": "number"
|
|
9189
|
+
},
|
|
9190
|
+
{
|
|
9191
|
+
"path": "https",
|
|
9192
|
+
"valueType": "boolean"
|
|
9193
|
+
},
|
|
9194
|
+
{
|
|
9195
|
+
"path": "hasUsername",
|
|
9196
|
+
"valueType": "boolean"
|
|
9197
|
+
},
|
|
9198
|
+
{
|
|
9199
|
+
"path": "hasPassword",
|
|
9200
|
+
"valueType": "boolean"
|
|
9201
|
+
},
|
|
9202
|
+
{
|
|
9203
|
+
"path": "onvifProfile",
|
|
9204
|
+
"valueType": "string"
|
|
9205
|
+
}
|
|
9206
|
+
],
|
|
9207
|
+
"camera-streams": [
|
|
9208
|
+
{
|
|
9209
|
+
"path": "online",
|
|
9210
|
+
"valueType": "boolean"
|
|
9211
|
+
},
|
|
9212
|
+
{
|
|
9213
|
+
"path": "slotStatuses.high",
|
|
9214
|
+
"valueType": "enum",
|
|
9215
|
+
"enumValues": [
|
|
9216
|
+
"unassigned",
|
|
9217
|
+
"idle",
|
|
9218
|
+
"connecting",
|
|
9219
|
+
"streaming",
|
|
9220
|
+
"error"
|
|
9221
|
+
]
|
|
9222
|
+
},
|
|
9223
|
+
{
|
|
9224
|
+
"path": "slotStatuses.mid",
|
|
9225
|
+
"valueType": "enum",
|
|
9226
|
+
"enumValues": [
|
|
9227
|
+
"unassigned",
|
|
9228
|
+
"idle",
|
|
9229
|
+
"connecting",
|
|
9230
|
+
"streaming",
|
|
9231
|
+
"error"
|
|
9232
|
+
]
|
|
9233
|
+
},
|
|
9234
|
+
{
|
|
9235
|
+
"path": "slotStatuses.low",
|
|
9236
|
+
"valueType": "enum",
|
|
9237
|
+
"enumValues": [
|
|
9238
|
+
"unassigned",
|
|
9239
|
+
"idle",
|
|
9240
|
+
"connecting",
|
|
9241
|
+
"streaming",
|
|
9242
|
+
"error"
|
|
9243
|
+
]
|
|
9244
|
+
},
|
|
9245
|
+
{
|
|
9246
|
+
"path": "slotErrors.high",
|
|
9247
|
+
"valueType": "string"
|
|
9248
|
+
},
|
|
9249
|
+
{
|
|
9250
|
+
"path": "slotErrors.mid",
|
|
9251
|
+
"valueType": "string"
|
|
9252
|
+
},
|
|
9253
|
+
{
|
|
9254
|
+
"path": "slotErrors.low",
|
|
9255
|
+
"valueType": "string"
|
|
9256
|
+
}
|
|
9257
|
+
],
|
|
9258
|
+
"carbon-monoxide": [{
|
|
9259
|
+
"path": "detected",
|
|
9260
|
+
"valueType": "boolean"
|
|
9261
|
+
}],
|
|
9262
|
+
"climate-control": [
|
|
9263
|
+
{
|
|
9264
|
+
"path": "mode",
|
|
9265
|
+
"valueType": "enum",
|
|
9266
|
+
"enumValues": [
|
|
9267
|
+
"off",
|
|
9268
|
+
"heat",
|
|
9269
|
+
"cool",
|
|
9270
|
+
"auto",
|
|
9271
|
+
"heat_cool",
|
|
9272
|
+
"fan_only",
|
|
9273
|
+
"dry"
|
|
9274
|
+
]
|
|
9275
|
+
},
|
|
9276
|
+
{
|
|
9277
|
+
"path": "fanMode",
|
|
9278
|
+
"valueType": "string"
|
|
9279
|
+
},
|
|
9280
|
+
{
|
|
9281
|
+
"path": "preset",
|
|
9282
|
+
"valueType": "string"
|
|
9283
|
+
},
|
|
9284
|
+
{
|
|
9285
|
+
"path": "target",
|
|
9286
|
+
"valueType": "number"
|
|
9287
|
+
},
|
|
9288
|
+
{
|
|
9289
|
+
"path": "targetHigh",
|
|
9290
|
+
"valueType": "number"
|
|
9291
|
+
},
|
|
9292
|
+
{
|
|
9293
|
+
"path": "targetLow",
|
|
9294
|
+
"valueType": "number"
|
|
9295
|
+
},
|
|
9296
|
+
{
|
|
9297
|
+
"path": "targetHumidity",
|
|
9298
|
+
"valueType": "number"
|
|
9299
|
+
},
|
|
9300
|
+
{
|
|
9301
|
+
"path": "currentTemp",
|
|
9302
|
+
"valueType": "number"
|
|
9303
|
+
},
|
|
9304
|
+
{
|
|
9305
|
+
"path": "currentHumidity",
|
|
9306
|
+
"valueType": "number"
|
|
9307
|
+
},
|
|
9308
|
+
{
|
|
9309
|
+
"path": "swingVertical",
|
|
9310
|
+
"valueType": "boolean"
|
|
9311
|
+
},
|
|
9312
|
+
{
|
|
9313
|
+
"path": "swingHorizontal",
|
|
9314
|
+
"valueType": "boolean"
|
|
9315
|
+
},
|
|
9316
|
+
{
|
|
9317
|
+
"path": "minTemp",
|
|
9318
|
+
"valueType": "number"
|
|
9319
|
+
},
|
|
9320
|
+
{
|
|
9321
|
+
"path": "maxTemp",
|
|
9322
|
+
"valueType": "number"
|
|
9323
|
+
},
|
|
9324
|
+
{
|
|
9325
|
+
"path": "tempStep",
|
|
9326
|
+
"valueType": "number"
|
|
9327
|
+
}
|
|
9328
|
+
],
|
|
9329
|
+
"color": [
|
|
9330
|
+
{
|
|
9331
|
+
"path": "mode",
|
|
9332
|
+
"valueType": "enum",
|
|
9333
|
+
"enumValues": [
|
|
9334
|
+
"rgb",
|
|
9335
|
+
"hsv",
|
|
9336
|
+
"mired"
|
|
9337
|
+
]
|
|
9338
|
+
},
|
|
9339
|
+
{
|
|
9340
|
+
"path": "rgb.r",
|
|
9341
|
+
"valueType": "number"
|
|
9342
|
+
},
|
|
9343
|
+
{
|
|
9344
|
+
"path": "rgb.g",
|
|
9345
|
+
"valueType": "number"
|
|
9346
|
+
},
|
|
9347
|
+
{
|
|
9348
|
+
"path": "rgb.b",
|
|
9349
|
+
"valueType": "number"
|
|
9350
|
+
},
|
|
9351
|
+
{
|
|
9352
|
+
"path": "hsv.h",
|
|
9353
|
+
"valueType": "number"
|
|
9354
|
+
},
|
|
9355
|
+
{
|
|
9356
|
+
"path": "hsv.s",
|
|
9357
|
+
"valueType": "number"
|
|
9358
|
+
},
|
|
9359
|
+
{
|
|
9360
|
+
"path": "hsv.v",
|
|
9361
|
+
"valueType": "number"
|
|
9362
|
+
},
|
|
9363
|
+
{
|
|
9364
|
+
"path": "mireds",
|
|
9365
|
+
"valueType": "number"
|
|
9366
|
+
}
|
|
9367
|
+
],
|
|
9368
|
+
"connectivity": [{
|
|
9369
|
+
"path": "connected",
|
|
9370
|
+
"valueType": "boolean"
|
|
9371
|
+
}],
|
|
9372
|
+
"contact": [{
|
|
9373
|
+
"path": "entryOpen",
|
|
9374
|
+
"valueType": "boolean"
|
|
9375
|
+
}],
|
|
9376
|
+
"control": [
|
|
9377
|
+
{
|
|
9378
|
+
"path": "kind",
|
|
9379
|
+
"valueType": "enum",
|
|
9380
|
+
"enumValues": [
|
|
9381
|
+
"numeric",
|
|
9382
|
+
"select",
|
|
9383
|
+
"text",
|
|
9384
|
+
"datetime"
|
|
9385
|
+
]
|
|
9386
|
+
},
|
|
9387
|
+
{
|
|
9388
|
+
"path": "unit",
|
|
9389
|
+
"valueType": "string"
|
|
9390
|
+
},
|
|
9391
|
+
{
|
|
9392
|
+
"path": "min",
|
|
9393
|
+
"valueType": "number"
|
|
9394
|
+
},
|
|
9395
|
+
{
|
|
9396
|
+
"path": "max",
|
|
9397
|
+
"valueType": "number"
|
|
9398
|
+
},
|
|
9399
|
+
{
|
|
9400
|
+
"path": "step",
|
|
9401
|
+
"valueType": "number"
|
|
9402
|
+
},
|
|
9403
|
+
{
|
|
9404
|
+
"path": "precision",
|
|
9405
|
+
"valueType": "number"
|
|
9406
|
+
},
|
|
9407
|
+
{
|
|
9408
|
+
"path": "format",
|
|
9409
|
+
"valueType": "enum",
|
|
9410
|
+
"enumValues": [
|
|
9411
|
+
"date",
|
|
9412
|
+
"time",
|
|
9413
|
+
"datetime"
|
|
9414
|
+
]
|
|
9415
|
+
}
|
|
9416
|
+
],
|
|
9417
|
+
"cover": [
|
|
9418
|
+
{
|
|
9419
|
+
"path": "state",
|
|
9420
|
+
"valueType": "enum",
|
|
9421
|
+
"enumValues": [
|
|
9422
|
+
"open",
|
|
9423
|
+
"opening",
|
|
9424
|
+
"closing",
|
|
9425
|
+
"closed",
|
|
9426
|
+
"stopped"
|
|
9427
|
+
]
|
|
9428
|
+
},
|
|
9429
|
+
{
|
|
9430
|
+
"path": "position",
|
|
9431
|
+
"valueType": "number"
|
|
9432
|
+
},
|
|
9433
|
+
{
|
|
9434
|
+
"path": "tiltPosition",
|
|
9435
|
+
"valueType": "number"
|
|
9436
|
+
}
|
|
9437
|
+
],
|
|
9438
|
+
"day-night": [
|
|
9439
|
+
{
|
|
9440
|
+
"path": "mode",
|
|
9441
|
+
"valueType": "enum",
|
|
9442
|
+
"enumValues": [
|
|
9443
|
+
"auto",
|
|
9444
|
+
"day",
|
|
9445
|
+
"night",
|
|
9446
|
+
"schedule"
|
|
9447
|
+
]
|
|
9448
|
+
},
|
|
9449
|
+
{
|
|
9450
|
+
"path": "sensitivity",
|
|
9451
|
+
"valueType": "number"
|
|
9452
|
+
},
|
|
9453
|
+
{
|
|
9454
|
+
"path": "switchDelaySec",
|
|
9455
|
+
"valueType": "number"
|
|
9456
|
+
}
|
|
9457
|
+
],
|
|
9458
|
+
"device-adoption": [
|
|
9459
|
+
{
|
|
9460
|
+
"path": "lastDiscoveryAt",
|
|
9461
|
+
"valueType": "number"
|
|
9462
|
+
},
|
|
9463
|
+
{
|
|
9464
|
+
"path": "candidateCount",
|
|
9465
|
+
"valueType": "number"
|
|
9466
|
+
},
|
|
9467
|
+
{
|
|
9468
|
+
"path": "adoptedCount",
|
|
9469
|
+
"valueType": "number"
|
|
9470
|
+
},
|
|
9471
|
+
{
|
|
9472
|
+
"path": "lastError",
|
|
9473
|
+
"valueType": "string"
|
|
9474
|
+
}
|
|
9475
|
+
],
|
|
9476
|
+
"device-discovery": [{
|
|
9477
|
+
"path": "lastDiscoveryAt",
|
|
9478
|
+
"valueType": "number"
|
|
9479
|
+
}, {
|
|
9480
|
+
"path": "lastError",
|
|
9481
|
+
"valueType": "string"
|
|
9482
|
+
}],
|
|
9483
|
+
"device-export": [
|
|
9484
|
+
{
|
|
9485
|
+
"path": "linkState",
|
|
9486
|
+
"valueType": "enum",
|
|
9487
|
+
"enumValues": [
|
|
9488
|
+
"unlinked",
|
|
9489
|
+
"linked",
|
|
9490
|
+
"error"
|
|
9491
|
+
]
|
|
9492
|
+
},
|
|
9493
|
+
{
|
|
9494
|
+
"path": "exposedDeviceCount",
|
|
9495
|
+
"valueType": "number"
|
|
9496
|
+
},
|
|
9497
|
+
{
|
|
9498
|
+
"path": "error",
|
|
9499
|
+
"valueType": "string"
|
|
9500
|
+
},
|
|
9501
|
+
{
|
|
9502
|
+
"path": "setup.qr",
|
|
9503
|
+
"valueType": "string"
|
|
9504
|
+
},
|
|
9505
|
+
{
|
|
9506
|
+
"path": "setup.note",
|
|
9507
|
+
"valueType": "string"
|
|
9508
|
+
}
|
|
9509
|
+
],
|
|
9510
|
+
"device-status": [{
|
|
9511
|
+
"path": "online",
|
|
9512
|
+
"valueType": "boolean"
|
|
9513
|
+
}],
|
|
9514
|
+
"dishwasher": [
|
|
9515
|
+
{
|
|
9516
|
+
"path": "availability",
|
|
9517
|
+
"valueType": "enum",
|
|
9518
|
+
"enumValues": [
|
|
9519
|
+
"available",
|
|
9520
|
+
"offline",
|
|
9521
|
+
"description-missing"
|
|
9522
|
+
]
|
|
9523
|
+
},
|
|
9524
|
+
{
|
|
9525
|
+
"path": "state",
|
|
9526
|
+
"valueType": "enum",
|
|
9527
|
+
"enumValues": [
|
|
9528
|
+
"idle",
|
|
9529
|
+
"running",
|
|
9530
|
+
"paused",
|
|
9531
|
+
"finished",
|
|
9532
|
+
"error",
|
|
9533
|
+
"unavailable"
|
|
9534
|
+
]
|
|
9535
|
+
},
|
|
9536
|
+
{
|
|
9537
|
+
"path": "operationState",
|
|
9538
|
+
"valueType": "enum",
|
|
9539
|
+
"enumValues": [
|
|
9540
|
+
"Inactive",
|
|
9541
|
+
"Ready",
|
|
9542
|
+
"DelayedStart",
|
|
9543
|
+
"Run",
|
|
9544
|
+
"Pause",
|
|
9545
|
+
"ActionRequired",
|
|
9546
|
+
"Finished",
|
|
9547
|
+
"Error",
|
|
9548
|
+
"Aborting"
|
|
9549
|
+
]
|
|
9550
|
+
},
|
|
9551
|
+
{
|
|
9552
|
+
"path": "program",
|
|
9553
|
+
"valueType": "string"
|
|
9554
|
+
},
|
|
9555
|
+
{
|
|
9556
|
+
"path": "selectedProgram",
|
|
9557
|
+
"valueType": "string"
|
|
9558
|
+
},
|
|
9559
|
+
{
|
|
9560
|
+
"path": "remainingSeconds",
|
|
9561
|
+
"valueType": "number"
|
|
9562
|
+
},
|
|
9563
|
+
{
|
|
9564
|
+
"path": "delayedStartSeconds",
|
|
9565
|
+
"valueType": "number"
|
|
9566
|
+
},
|
|
9567
|
+
{
|
|
9568
|
+
"path": "progressPercent",
|
|
9569
|
+
"valueType": "number"
|
|
9570
|
+
},
|
|
9571
|
+
{
|
|
9572
|
+
"path": "doorOpen",
|
|
9573
|
+
"valueType": "boolean"
|
|
9574
|
+
},
|
|
9575
|
+
{
|
|
9576
|
+
"path": "doorLocked",
|
|
9577
|
+
"valueType": "boolean"
|
|
9578
|
+
},
|
|
9579
|
+
{
|
|
9580
|
+
"path": "remoteStartAllowed",
|
|
9581
|
+
"valueType": "boolean"
|
|
9582
|
+
},
|
|
9583
|
+
{
|
|
9584
|
+
"path": "remoteControlActive",
|
|
9585
|
+
"valueType": "boolean"
|
|
9586
|
+
},
|
|
9587
|
+
{
|
|
9588
|
+
"path": "localControlActive",
|
|
9589
|
+
"valueType": "boolean"
|
|
9590
|
+
},
|
|
9591
|
+
{
|
|
9592
|
+
"path": "powerOn",
|
|
9593
|
+
"valueType": "boolean"
|
|
9594
|
+
},
|
|
9595
|
+
{
|
|
9596
|
+
"path": "powerState",
|
|
9597
|
+
"valueType": "string"
|
|
9598
|
+
},
|
|
9599
|
+
{
|
|
9600
|
+
"path": "filterCleaningDue",
|
|
9601
|
+
"valueType": "boolean"
|
|
9602
|
+
},
|
|
9603
|
+
{
|
|
9604
|
+
"path": "machineCareDue",
|
|
9605
|
+
"valueType": "boolean"
|
|
9606
|
+
},
|
|
9607
|
+
{
|
|
9608
|
+
"path": "machineCareRemainingRuns",
|
|
9609
|
+
"valueType": "number"
|
|
9610
|
+
},
|
|
9611
|
+
{
|
|
9612
|
+
"path": "halfLoad",
|
|
9613
|
+
"valueType": "boolean"
|
|
9614
|
+
},
|
|
9615
|
+
{
|
|
9616
|
+
"path": "hygienePlus",
|
|
9617
|
+
"valueType": "boolean"
|
|
9618
|
+
},
|
|
9619
|
+
{
|
|
9620
|
+
"path": "extraDry",
|
|
9621
|
+
"valueType": "boolean"
|
|
9622
|
+
},
|
|
9623
|
+
{
|
|
9624
|
+
"path": "intensiveZone",
|
|
9625
|
+
"valueType": "boolean"
|
|
9626
|
+
},
|
|
9627
|
+
{
|
|
9628
|
+
"path": "varioSpeedPlus",
|
|
9629
|
+
"valueType": "boolean"
|
|
9630
|
+
},
|
|
9631
|
+
{
|
|
9632
|
+
"path": "childLock",
|
|
9633
|
+
"valueType": "boolean"
|
|
9634
|
+
},
|
|
9635
|
+
{
|
|
9636
|
+
"path": "errorCode",
|
|
9637
|
+
"valueType": "number"
|
|
9638
|
+
},
|
|
9639
|
+
{
|
|
9640
|
+
"path": "errorLabel",
|
|
9641
|
+
"valueType": "string"
|
|
9642
|
+
}
|
|
9643
|
+
],
|
|
9644
|
+
"doorbell": [{
|
|
9645
|
+
"path": "lastPressedAt",
|
|
9646
|
+
"valueType": "number"
|
|
9647
|
+
}, {
|
|
9648
|
+
"path": "pressCountSinceStart",
|
|
9649
|
+
"valueType": "number"
|
|
9650
|
+
}],
|
|
9651
|
+
"enum-sensor": [{
|
|
9652
|
+
"path": "value",
|
|
9653
|
+
"valueType": "string"
|
|
9654
|
+
}, {
|
|
9655
|
+
"path": "format",
|
|
9656
|
+
"valueType": "enum",
|
|
9657
|
+
"enumValues": [
|
|
9658
|
+
"date",
|
|
9659
|
+
"time",
|
|
9660
|
+
"datetime"
|
|
9661
|
+
]
|
|
9662
|
+
}],
|
|
9663
|
+
"event-emitter": [
|
|
9664
|
+
{
|
|
9665
|
+
"path": "lastEvent.deviceId",
|
|
9666
|
+
"valueType": "number"
|
|
9667
|
+
},
|
|
9668
|
+
{
|
|
9669
|
+
"path": "lastEvent.eventType",
|
|
9670
|
+
"valueType": "string"
|
|
9671
|
+
},
|
|
9672
|
+
{
|
|
9673
|
+
"path": "lastEvent.timestamp",
|
|
9674
|
+
"valueType": "number"
|
|
9675
|
+
},
|
|
9676
|
+
{
|
|
9677
|
+
"path": "lastEvent.seq",
|
|
9678
|
+
"valueType": "number"
|
|
9679
|
+
},
|
|
9680
|
+
{
|
|
9681
|
+
"path": "eventCountSinceStart",
|
|
9682
|
+
"valueType": "number"
|
|
9683
|
+
}
|
|
9684
|
+
],
|
|
9685
|
+
"fan-control": [
|
|
9686
|
+
{
|
|
9687
|
+
"path": "percentage",
|
|
9688
|
+
"valueType": "number"
|
|
9689
|
+
},
|
|
9690
|
+
{
|
|
9691
|
+
"path": "percentageStep",
|
|
9692
|
+
"valueType": "number"
|
|
9693
|
+
},
|
|
9694
|
+
{
|
|
9695
|
+
"path": "preset",
|
|
9696
|
+
"valueType": "string"
|
|
9697
|
+
},
|
|
9698
|
+
{
|
|
9699
|
+
"path": "direction",
|
|
9700
|
+
"valueType": "enum",
|
|
9701
|
+
"enumValues": ["forward", "reverse"]
|
|
9702
|
+
},
|
|
9703
|
+
{
|
|
9704
|
+
"path": "oscillating",
|
|
9705
|
+
"valueType": "boolean"
|
|
9706
|
+
}
|
|
9707
|
+
],
|
|
9708
|
+
"feature-probe": [
|
|
9709
|
+
{
|
|
9710
|
+
"path": "deviceType",
|
|
9711
|
+
"valueType": "string"
|
|
9712
|
+
},
|
|
9713
|
+
{
|
|
9714
|
+
"path": "model",
|
|
9715
|
+
"valueType": "string"
|
|
9716
|
+
},
|
|
9717
|
+
{
|
|
9718
|
+
"path": "channelCount",
|
|
9719
|
+
"valueType": "number"
|
|
9720
|
+
},
|
|
9721
|
+
{
|
|
9722
|
+
"path": "lastProbedAt",
|
|
9723
|
+
"valueType": "number"
|
|
9724
|
+
}
|
|
9725
|
+
],
|
|
9726
|
+
"flood": [{
|
|
9727
|
+
"path": "flooded",
|
|
9728
|
+
"valueType": "boolean"
|
|
9729
|
+
}],
|
|
9730
|
+
"gas": [{
|
|
9731
|
+
"path": "detected",
|
|
9732
|
+
"valueType": "boolean"
|
|
9733
|
+
}],
|
|
9734
|
+
"heating-valve": [{
|
|
9735
|
+
"path": "position",
|
|
9736
|
+
"valueType": "number"
|
|
9737
|
+
}],
|
|
9738
|
+
"humidifier": [
|
|
9739
|
+
{
|
|
9740
|
+
"path": "on",
|
|
9741
|
+
"valueType": "boolean"
|
|
9742
|
+
},
|
|
9743
|
+
{
|
|
9744
|
+
"path": "currentHumidity",
|
|
9745
|
+
"valueType": "number"
|
|
9746
|
+
},
|
|
9747
|
+
{
|
|
9748
|
+
"path": "targetHumidity",
|
|
9749
|
+
"valueType": "number"
|
|
9750
|
+
},
|
|
9751
|
+
{
|
|
9752
|
+
"path": "mode",
|
|
9753
|
+
"valueType": "string"
|
|
9754
|
+
},
|
|
9755
|
+
{
|
|
9756
|
+
"path": "action",
|
|
9757
|
+
"valueType": "string"
|
|
9758
|
+
},
|
|
9759
|
+
{
|
|
9760
|
+
"path": "minHumidity",
|
|
9761
|
+
"valueType": "number"
|
|
9762
|
+
},
|
|
9763
|
+
{
|
|
9764
|
+
"path": "maxHumidity",
|
|
9765
|
+
"valueType": "number"
|
|
9766
|
+
}
|
|
9767
|
+
],
|
|
9768
|
+
"humidity-sensor": [
|
|
9769
|
+
{
|
|
9770
|
+
"path": "percent",
|
|
9771
|
+
"valueType": "number"
|
|
9772
|
+
},
|
|
9773
|
+
{
|
|
9774
|
+
"path": "unit",
|
|
9775
|
+
"valueType": "string"
|
|
9776
|
+
},
|
|
9777
|
+
{
|
|
9778
|
+
"path": "precision",
|
|
9779
|
+
"valueType": "number"
|
|
9780
|
+
}
|
|
9781
|
+
],
|
|
9782
|
+
"image": [{
|
|
9783
|
+
"path": "url",
|
|
9784
|
+
"valueType": "string"
|
|
9785
|
+
}, {
|
|
9786
|
+
"path": "lastUpdated",
|
|
9787
|
+
"valueType": "number"
|
|
9788
|
+
}],
|
|
9789
|
+
"image-settings": [
|
|
9790
|
+
{
|
|
9791
|
+
"path": "brightness",
|
|
9792
|
+
"valueType": "number"
|
|
9793
|
+
},
|
|
9794
|
+
{
|
|
9795
|
+
"path": "contrast",
|
|
9796
|
+
"valueType": "number"
|
|
9797
|
+
},
|
|
9798
|
+
{
|
|
9799
|
+
"path": "saturation",
|
|
9800
|
+
"valueType": "number"
|
|
9801
|
+
},
|
|
9802
|
+
{
|
|
9803
|
+
"path": "sharpness",
|
|
9804
|
+
"valueType": "number"
|
|
9805
|
+
},
|
|
9806
|
+
{
|
|
9807
|
+
"path": "mirror",
|
|
9808
|
+
"valueType": "boolean"
|
|
9809
|
+
},
|
|
9810
|
+
{
|
|
9811
|
+
"path": "flip",
|
|
9812
|
+
"valueType": "boolean"
|
|
9813
|
+
},
|
|
9814
|
+
{
|
|
9815
|
+
"path": "rotate",
|
|
9816
|
+
"valueType": "enum",
|
|
9817
|
+
"enumValues": [
|
|
9818
|
+
"0",
|
|
9819
|
+
"90",
|
|
9820
|
+
"180",
|
|
9821
|
+
"270"
|
|
9822
|
+
]
|
|
9823
|
+
},
|
|
9824
|
+
{
|
|
9825
|
+
"path": "whiteBalance",
|
|
9826
|
+
"valueType": "enum",
|
|
9827
|
+
"enumValues": ["auto", "manual"]
|
|
9828
|
+
},
|
|
9829
|
+
{
|
|
9830
|
+
"path": "warmth",
|
|
9831
|
+
"valueType": "number"
|
|
9832
|
+
},
|
|
9833
|
+
{
|
|
9834
|
+
"path": "exposureMode",
|
|
9835
|
+
"valueType": "enum",
|
|
9836
|
+
"enumValues": ["auto", "manual"]
|
|
9837
|
+
},
|
|
9838
|
+
{
|
|
9839
|
+
"path": "backlightMode",
|
|
9840
|
+
"valueType": "enum",
|
|
9841
|
+
"enumValues": [
|
|
9842
|
+
"off",
|
|
9843
|
+
"blc",
|
|
9844
|
+
"wdr",
|
|
9845
|
+
"hlc"
|
|
9846
|
+
]
|
|
9847
|
+
}
|
|
9848
|
+
],
|
|
9849
|
+
"intercom": [
|
|
9850
|
+
{
|
|
9851
|
+
"path": "talking",
|
|
9852
|
+
"valueType": "boolean"
|
|
9853
|
+
},
|
|
9854
|
+
{
|
|
9855
|
+
"path": "lastSessionAt",
|
|
9856
|
+
"valueType": "number"
|
|
9857
|
+
},
|
|
9858
|
+
{
|
|
9859
|
+
"path": "ability.sampleRate",
|
|
9860
|
+
"valueType": "number"
|
|
9861
|
+
},
|
|
9862
|
+
{
|
|
9863
|
+
"path": "ability.duplex",
|
|
9864
|
+
"valueType": "enum",
|
|
9865
|
+
"enumValues": ["half", "full"]
|
|
9866
|
+
},
|
|
9867
|
+
{
|
|
9868
|
+
"path": "ability.maxBacklogMs",
|
|
9869
|
+
"valueType": "number"
|
|
9870
|
+
}
|
|
9871
|
+
],
|
|
9872
|
+
"lawn-mower-control": [
|
|
9873
|
+
{
|
|
9874
|
+
"path": "activity",
|
|
9875
|
+
"valueType": "enum",
|
|
9876
|
+
"enumValues": [
|
|
9877
|
+
"idle",
|
|
9878
|
+
"mowing",
|
|
9879
|
+
"paused",
|
|
9880
|
+
"docked",
|
|
9881
|
+
"error"
|
|
9882
|
+
]
|
|
9883
|
+
},
|
|
9884
|
+
{
|
|
9885
|
+
"path": "batteryLevel",
|
|
9886
|
+
"valueType": "number"
|
|
9887
|
+
},
|
|
9888
|
+
{
|
|
9889
|
+
"path": "progressPercent",
|
|
9890
|
+
"valueType": "number"
|
|
9891
|
+
},
|
|
9892
|
+
{
|
|
9893
|
+
"path": "currentCode",
|
|
9894
|
+
"valueType": "number"
|
|
9895
|
+
},
|
|
9896
|
+
{
|
|
9897
|
+
"path": "currentCodeLabel",
|
|
9898
|
+
"valueType": "string"
|
|
9899
|
+
},
|
|
9900
|
+
{
|
|
9901
|
+
"path": "severity",
|
|
9902
|
+
"valueType": "enum",
|
|
9903
|
+
"enumValues": [
|
|
9904
|
+
"info",
|
|
9905
|
+
"warning",
|
|
9906
|
+
"error"
|
|
9907
|
+
]
|
|
9908
|
+
}
|
|
9909
|
+
],
|
|
9910
|
+
"lock-control": [{
|
|
9911
|
+
"path": "state",
|
|
9912
|
+
"valueType": "enum",
|
|
9913
|
+
"enumValues": [
|
|
9914
|
+
"locked",
|
|
9915
|
+
"unlocked",
|
|
9916
|
+
"locking",
|
|
9917
|
+
"unlocking",
|
|
9918
|
+
"jammed"
|
|
9919
|
+
]
|
|
9920
|
+
}],
|
|
9921
|
+
"media-player": [
|
|
9922
|
+
{
|
|
9923
|
+
"path": "state",
|
|
9924
|
+
"valueType": "enum",
|
|
9925
|
+
"enumValues": [
|
|
9926
|
+
"off",
|
|
9927
|
+
"on",
|
|
9928
|
+
"idle",
|
|
9929
|
+
"playing",
|
|
9930
|
+
"paused",
|
|
9931
|
+
"buffering",
|
|
9932
|
+
"standby"
|
|
9933
|
+
]
|
|
9934
|
+
},
|
|
9935
|
+
{
|
|
9936
|
+
"path": "volumeLevel",
|
|
9937
|
+
"valueType": "number"
|
|
9938
|
+
},
|
|
9939
|
+
{
|
|
9940
|
+
"path": "isMuted",
|
|
9941
|
+
"valueType": "boolean"
|
|
9942
|
+
},
|
|
9943
|
+
{
|
|
9944
|
+
"path": "source",
|
|
9945
|
+
"valueType": "string"
|
|
9946
|
+
},
|
|
9947
|
+
{
|
|
9948
|
+
"path": "currentMedia.type",
|
|
9949
|
+
"valueType": "string"
|
|
9950
|
+
},
|
|
9951
|
+
{
|
|
9952
|
+
"path": "currentMedia.title",
|
|
9953
|
+
"valueType": "string"
|
|
9954
|
+
},
|
|
9955
|
+
{
|
|
9956
|
+
"path": "currentMedia.artist",
|
|
9957
|
+
"valueType": "string"
|
|
9958
|
+
},
|
|
9959
|
+
{
|
|
9960
|
+
"path": "currentMedia.album",
|
|
9961
|
+
"valueType": "string"
|
|
9962
|
+
},
|
|
9963
|
+
{
|
|
9964
|
+
"path": "currentMedia.imageUrl",
|
|
9965
|
+
"valueType": "string"
|
|
9966
|
+
},
|
|
9967
|
+
{
|
|
9968
|
+
"path": "positionMs",
|
|
9969
|
+
"valueType": "number"
|
|
9970
|
+
},
|
|
9971
|
+
{
|
|
9972
|
+
"path": "durationMs",
|
|
9973
|
+
"valueType": "number"
|
|
9974
|
+
},
|
|
9975
|
+
{
|
|
9976
|
+
"path": "shuffle",
|
|
9977
|
+
"valueType": "boolean"
|
|
9978
|
+
},
|
|
9979
|
+
{
|
|
9980
|
+
"path": "repeat",
|
|
9981
|
+
"valueType": "enum",
|
|
9982
|
+
"enumValues": [
|
|
9983
|
+
"off",
|
|
9984
|
+
"all",
|
|
9985
|
+
"one"
|
|
9986
|
+
]
|
|
9987
|
+
}
|
|
9988
|
+
],
|
|
9989
|
+
"motion": [
|
|
9990
|
+
{
|
|
9991
|
+
"path": "detected",
|
|
9992
|
+
"valueType": "boolean"
|
|
9993
|
+
},
|
|
9994
|
+
{
|
|
9995
|
+
"path": "lastDetectedAt",
|
|
9996
|
+
"valueType": "number"
|
|
9997
|
+
},
|
|
9998
|
+
{
|
|
9999
|
+
"path": "autoClearAfterMs",
|
|
10000
|
+
"valueType": "number"
|
|
10001
|
+
}
|
|
10002
|
+
],
|
|
10003
|
+
"motion-trigger": [{
|
|
10004
|
+
"path": "enabled",
|
|
10005
|
+
"valueType": "boolean"
|
|
10006
|
+
}],
|
|
10007
|
+
"motion-zones": [{
|
|
10008
|
+
"path": "enabled",
|
|
10009
|
+
"valueType": "boolean"
|
|
10010
|
+
}, {
|
|
10011
|
+
"path": "sensitivity",
|
|
10012
|
+
"valueType": "number"
|
|
10013
|
+
}],
|
|
10014
|
+
"mqtt-broker": [{
|
|
10015
|
+
"path": "brokerCount",
|
|
10016
|
+
"valueType": "number"
|
|
10017
|
+
}, {
|
|
10018
|
+
"path": "embeddedRunning",
|
|
10019
|
+
"valueType": "boolean"
|
|
10020
|
+
}],
|
|
10021
|
+
"native-object-detection": [{
|
|
10022
|
+
"path": "enabled",
|
|
10023
|
+
"valueType": "boolean"
|
|
10024
|
+
}],
|
|
10025
|
+
"navigation": [
|
|
10026
|
+
{
|
|
10027
|
+
"path": "mode",
|
|
10028
|
+
"valueType": "enum",
|
|
10029
|
+
"enumValues": [
|
|
10030
|
+
"idle",
|
|
10031
|
+
"cleaning",
|
|
10032
|
+
"spot",
|
|
10033
|
+
"following",
|
|
10034
|
+
"goto",
|
|
10035
|
+
"returning",
|
|
10036
|
+
"paused",
|
|
10037
|
+
"unknown"
|
|
10038
|
+
]
|
|
10039
|
+
},
|
|
10040
|
+
{
|
|
10041
|
+
"path": "following",
|
|
10042
|
+
"valueType": "boolean"
|
|
10043
|
+
},
|
|
10044
|
+
{
|
|
10045
|
+
"path": "flash",
|
|
10046
|
+
"valueType": "boolean"
|
|
10047
|
+
},
|
|
10048
|
+
{
|
|
10049
|
+
"path": "lightMode",
|
|
10050
|
+
"valueType": "enum",
|
|
10051
|
+
"enumValues": ["auto", "manual"]
|
|
10052
|
+
},
|
|
10053
|
+
{
|
|
10054
|
+
"path": "lightLevel",
|
|
10055
|
+
"valueType": "number"
|
|
10056
|
+
}
|
|
10057
|
+
],
|
|
10058
|
+
"network-link": [
|
|
10059
|
+
{
|
|
10060
|
+
"path": "type",
|
|
10061
|
+
"valueType": "enum",
|
|
10062
|
+
"enumValues": [
|
|
10063
|
+
"wifi",
|
|
10064
|
+
"ethernet",
|
|
10065
|
+
"cellular",
|
|
10066
|
+
"unknown"
|
|
10067
|
+
]
|
|
10068
|
+
},
|
|
10069
|
+
{
|
|
10070
|
+
"path": "signalPercent",
|
|
10071
|
+
"valueType": "number"
|
|
10072
|
+
},
|
|
10073
|
+
{
|
|
10074
|
+
"path": "rssiDbm",
|
|
10075
|
+
"valueType": "number"
|
|
10076
|
+
},
|
|
10077
|
+
{
|
|
10078
|
+
"path": "ssid",
|
|
10079
|
+
"valueType": "string"
|
|
10080
|
+
},
|
|
10081
|
+
{
|
|
10082
|
+
"path": "lastUpdated",
|
|
10083
|
+
"valueType": "number"
|
|
10084
|
+
}
|
|
10085
|
+
],
|
|
10086
|
+
"notifier": [
|
|
10087
|
+
{
|
|
10088
|
+
"path": "lastSentAt",
|
|
10089
|
+
"valueType": "number"
|
|
10090
|
+
},
|
|
10091
|
+
{
|
|
10092
|
+
"path": "lastError",
|
|
10093
|
+
"valueType": "string"
|
|
10094
|
+
},
|
|
10095
|
+
{
|
|
10096
|
+
"path": "queueDepth",
|
|
10097
|
+
"valueType": "number"
|
|
10098
|
+
},
|
|
10099
|
+
{
|
|
10100
|
+
"path": "supports.image",
|
|
10101
|
+
"valueType": "boolean"
|
|
10102
|
+
},
|
|
10103
|
+
{
|
|
10104
|
+
"path": "supports.priority",
|
|
10105
|
+
"valueType": "boolean"
|
|
10106
|
+
},
|
|
10107
|
+
{
|
|
10108
|
+
"path": "supports.data",
|
|
10109
|
+
"valueType": "boolean"
|
|
10110
|
+
},
|
|
10111
|
+
{
|
|
10112
|
+
"path": "supports.actions",
|
|
10113
|
+
"valueType": "boolean"
|
|
10114
|
+
},
|
|
10115
|
+
{
|
|
10116
|
+
"path": "supports.recipients",
|
|
10117
|
+
"valueType": "boolean"
|
|
10118
|
+
}
|
|
10119
|
+
],
|
|
10120
|
+
"numeric-sensor": [
|
|
10121
|
+
{
|
|
10122
|
+
"path": "value",
|
|
10123
|
+
"valueType": "number"
|
|
10124
|
+
},
|
|
10125
|
+
{
|
|
10126
|
+
"path": "unit",
|
|
10127
|
+
"valueType": "string"
|
|
10128
|
+
},
|
|
10129
|
+
{
|
|
10130
|
+
"path": "precision",
|
|
10131
|
+
"valueType": "number"
|
|
10132
|
+
}
|
|
10133
|
+
],
|
|
10134
|
+
"pet-feeder": [
|
|
10135
|
+
{
|
|
10136
|
+
"path": "foodLevel",
|
|
10137
|
+
"valueType": "number"
|
|
10138
|
+
},
|
|
10139
|
+
{
|
|
10140
|
+
"path": "food1",
|
|
10141
|
+
"valueType": "number"
|
|
10142
|
+
},
|
|
10143
|
+
{
|
|
10144
|
+
"path": "food2",
|
|
10145
|
+
"valueType": "number"
|
|
10146
|
+
},
|
|
10147
|
+
{
|
|
10148
|
+
"path": "lowFood",
|
|
10149
|
+
"valueType": "boolean"
|
|
10150
|
+
},
|
|
10151
|
+
{
|
|
10152
|
+
"path": "batteryPower",
|
|
10153
|
+
"valueType": "number"
|
|
10154
|
+
},
|
|
10155
|
+
{
|
|
10156
|
+
"path": "desiccantLeftDays",
|
|
10157
|
+
"valueType": "number"
|
|
10158
|
+
},
|
|
10159
|
+
{
|
|
10160
|
+
"path": "feeding",
|
|
10161
|
+
"valueType": "boolean"
|
|
10162
|
+
},
|
|
10163
|
+
{
|
|
10164
|
+
"path": "status",
|
|
10165
|
+
"valueType": "enum",
|
|
10166
|
+
"enumValues": [
|
|
10167
|
+
"normal",
|
|
10168
|
+
"offline",
|
|
10169
|
+
"on_batteries"
|
|
10170
|
+
]
|
|
10171
|
+
},
|
|
10172
|
+
{
|
|
10173
|
+
"path": "error",
|
|
10174
|
+
"valueType": "string"
|
|
10175
|
+
},
|
|
10176
|
+
{
|
|
10177
|
+
"path": "errorCode",
|
|
10178
|
+
"valueType": "number"
|
|
10179
|
+
},
|
|
10180
|
+
{
|
|
10181
|
+
"path": "isDualHopper",
|
|
10182
|
+
"valueType": "boolean"
|
|
10183
|
+
},
|
|
10184
|
+
{
|
|
10185
|
+
"path": "childLock",
|
|
10186
|
+
"valueType": "boolean"
|
|
10187
|
+
},
|
|
10188
|
+
{
|
|
10189
|
+
"path": "indicatorLight",
|
|
10190
|
+
"valueType": "boolean"
|
|
10191
|
+
},
|
|
10192
|
+
{
|
|
10193
|
+
"path": "feedSound",
|
|
10194
|
+
"valueType": "boolean"
|
|
10195
|
+
},
|
|
10196
|
+
{
|
|
10197
|
+
"path": "volume",
|
|
10198
|
+
"valueType": "number"
|
|
10199
|
+
}
|
|
10200
|
+
],
|
|
10201
|
+
"power-meter": [
|
|
10202
|
+
{
|
|
10203
|
+
"path": "watts",
|
|
10204
|
+
"valueType": "number"
|
|
10205
|
+
},
|
|
10206
|
+
{
|
|
10207
|
+
"path": "kwhTotal",
|
|
10208
|
+
"valueType": "number"
|
|
10209
|
+
},
|
|
10210
|
+
{
|
|
10211
|
+
"path": "volts",
|
|
10212
|
+
"valueType": "number"
|
|
10213
|
+
},
|
|
10214
|
+
{
|
|
10215
|
+
"path": "amps",
|
|
10216
|
+
"valueType": "number"
|
|
10217
|
+
},
|
|
10218
|
+
{
|
|
10219
|
+
"path": "va",
|
|
10220
|
+
"valueType": "number"
|
|
10221
|
+
},
|
|
10222
|
+
{
|
|
10223
|
+
"path": "powerFactor",
|
|
10224
|
+
"valueType": "number"
|
|
10225
|
+
},
|
|
10226
|
+
{
|
|
10227
|
+
"path": "unit",
|
|
10228
|
+
"valueType": "string"
|
|
10229
|
+
},
|
|
10230
|
+
{
|
|
10231
|
+
"path": "precision",
|
|
10232
|
+
"valueType": "number"
|
|
10233
|
+
}
|
|
10234
|
+
],
|
|
10235
|
+
"presence": [
|
|
10236
|
+
{
|
|
10237
|
+
"path": "state",
|
|
10238
|
+
"valueType": "string"
|
|
10239
|
+
},
|
|
10240
|
+
{
|
|
10241
|
+
"path": "location",
|
|
10242
|
+
"valueType": "string"
|
|
10243
|
+
},
|
|
10244
|
+
{
|
|
10245
|
+
"path": "gps.latitude",
|
|
10246
|
+
"valueType": "number"
|
|
10247
|
+
},
|
|
10248
|
+
{
|
|
10249
|
+
"path": "gps.longitude",
|
|
10250
|
+
"valueType": "number"
|
|
10251
|
+
},
|
|
10252
|
+
{
|
|
10253
|
+
"path": "gps.accuracyMeters",
|
|
10254
|
+
"valueType": "number"
|
|
10255
|
+
},
|
|
10256
|
+
{
|
|
10257
|
+
"path": "batteryPercent",
|
|
10258
|
+
"valueType": "number"
|
|
10259
|
+
}
|
|
10260
|
+
],
|
|
10261
|
+
"pressure-sensor": [
|
|
10262
|
+
{
|
|
10263
|
+
"path": "hpa",
|
|
10264
|
+
"valueType": "number"
|
|
10265
|
+
},
|
|
10266
|
+
{
|
|
10267
|
+
"path": "unit",
|
|
10268
|
+
"valueType": "string"
|
|
10269
|
+
},
|
|
10270
|
+
{
|
|
10271
|
+
"path": "precision",
|
|
10272
|
+
"valueType": "number"
|
|
10273
|
+
}
|
|
10274
|
+
],
|
|
10275
|
+
"privacy-mask": [{
|
|
10276
|
+
"path": "enabled",
|
|
10277
|
+
"valueType": "boolean"
|
|
10278
|
+
}, {
|
|
10279
|
+
"path": "audioEnabled",
|
|
10280
|
+
"valueType": "boolean"
|
|
10281
|
+
}],
|
|
10282
|
+
"ptz": [
|
|
10283
|
+
{
|
|
10284
|
+
"path": "pan",
|
|
10285
|
+
"valueType": "number"
|
|
10286
|
+
},
|
|
10287
|
+
{
|
|
10288
|
+
"path": "tilt",
|
|
10289
|
+
"valueType": "number"
|
|
10290
|
+
},
|
|
10291
|
+
{
|
|
10292
|
+
"path": "zoom",
|
|
10293
|
+
"valueType": "number"
|
|
10294
|
+
},
|
|
10295
|
+
{
|
|
10296
|
+
"path": "autofocus",
|
|
10297
|
+
"valueType": "boolean"
|
|
10298
|
+
}
|
|
10299
|
+
],
|
|
10300
|
+
"ptz-autotrack": [
|
|
10301
|
+
{
|
|
10302
|
+
"path": "enabled",
|
|
10303
|
+
"valueType": "boolean"
|
|
10304
|
+
},
|
|
10305
|
+
{
|
|
10306
|
+
"path": "currentSettings.targetType",
|
|
10307
|
+
"valueType": "string"
|
|
10308
|
+
},
|
|
10309
|
+
{
|
|
10310
|
+
"path": "currentSettings.stopDelaySeconds",
|
|
10311
|
+
"valueType": "number"
|
|
10312
|
+
},
|
|
10313
|
+
{
|
|
10314
|
+
"path": "currentSettings.disappearDelaySeconds",
|
|
10315
|
+
"valueType": "number"
|
|
10316
|
+
}
|
|
10317
|
+
],
|
|
10318
|
+
"recording-archive": [
|
|
10319
|
+
{
|
|
10320
|
+
"path": "deviceId",
|
|
10321
|
+
"valueType": "number"
|
|
10322
|
+
},
|
|
10323
|
+
{
|
|
10324
|
+
"path": "enabled",
|
|
10325
|
+
"valueType": "boolean"
|
|
10326
|
+
},
|
|
10327
|
+
{
|
|
10328
|
+
"path": "activeMode",
|
|
10329
|
+
"valueType": "enum",
|
|
10330
|
+
"enumValues": [
|
|
10331
|
+
"off",
|
|
10332
|
+
"events",
|
|
10333
|
+
"continuous",
|
|
10334
|
+
"on-device-decision"
|
|
10335
|
+
]
|
|
10336
|
+
},
|
|
10337
|
+
{
|
|
10338
|
+
"path": "nodeId",
|
|
10339
|
+
"valueType": "string"
|
|
10340
|
+
},
|
|
10341
|
+
{
|
|
10342
|
+
"path": "storageBytes",
|
|
10343
|
+
"valueType": "number"
|
|
10344
|
+
}
|
|
10345
|
+
],
|
|
10346
|
+
"recording-onboard": [
|
|
10347
|
+
{
|
|
10348
|
+
"path": "primaryTrackId",
|
|
10349
|
+
"valueType": "string"
|
|
10350
|
+
},
|
|
10351
|
+
{
|
|
10352
|
+
"path": "enabled",
|
|
10353
|
+
"valueType": "boolean"
|
|
10354
|
+
},
|
|
10355
|
+
{
|
|
10356
|
+
"path": "overwriteWhenFull",
|
|
10357
|
+
"valueType": "boolean"
|
|
10358
|
+
},
|
|
10359
|
+
{
|
|
10360
|
+
"path": "preRecordSec",
|
|
10361
|
+
"valueType": "number"
|
|
10362
|
+
},
|
|
10363
|
+
{
|
|
10364
|
+
"path": "postRecordSec",
|
|
10365
|
+
"valueType": "number"
|
|
10366
|
+
},
|
|
10367
|
+
{
|
|
10368
|
+
"path": "segmentMinutes",
|
|
10369
|
+
"valueType": "number"
|
|
10370
|
+
},
|
|
10371
|
+
{
|
|
10372
|
+
"path": "unreadableWindows",
|
|
10373
|
+
"valueType": "number"
|
|
10374
|
+
},
|
|
10375
|
+
{
|
|
10376
|
+
"path": "recordingToNowhere",
|
|
10377
|
+
"valueType": "boolean"
|
|
10378
|
+
}
|
|
10379
|
+
],
|
|
10380
|
+
"recording-signal": [{
|
|
10381
|
+
"path": "active",
|
|
10382
|
+
"valueType": "boolean"
|
|
10383
|
+
}, {
|
|
10384
|
+
"path": "reason",
|
|
10385
|
+
"valueType": "string"
|
|
10386
|
+
}],
|
|
10387
|
+
"running-state": [
|
|
10388
|
+
{
|
|
10389
|
+
"path": "running",
|
|
10390
|
+
"valueType": "boolean"
|
|
10391
|
+
},
|
|
10392
|
+
{
|
|
10393
|
+
"path": "since",
|
|
10394
|
+
"valueType": "number"
|
|
10395
|
+
},
|
|
10396
|
+
{
|
|
10397
|
+
"path": "source",
|
|
10398
|
+
"valueType": "enum",
|
|
10399
|
+
"enumValues": ["native", "assigned"]
|
|
10400
|
+
},
|
|
10401
|
+
{
|
|
10402
|
+
"path": "phase",
|
|
10403
|
+
"valueType": "string"
|
|
10404
|
+
}
|
|
10405
|
+
],
|
|
10406
|
+
"script-runner": [
|
|
10407
|
+
{
|
|
10408
|
+
"path": "isRunning",
|
|
10409
|
+
"valueType": "boolean"
|
|
10410
|
+
},
|
|
10411
|
+
{
|
|
10412
|
+
"path": "lastRunAt",
|
|
10413
|
+
"valueType": "number"
|
|
10414
|
+
},
|
|
10415
|
+
{
|
|
10416
|
+
"path": "lastRunSuccess",
|
|
10417
|
+
"valueType": "boolean"
|
|
10418
|
+
},
|
|
10419
|
+
{
|
|
10420
|
+
"path": "lastError",
|
|
10421
|
+
"valueType": "string"
|
|
10422
|
+
}
|
|
10423
|
+
],
|
|
10424
|
+
"smoke": [{
|
|
10425
|
+
"path": "detected",
|
|
10426
|
+
"valueType": "boolean"
|
|
10427
|
+
}],
|
|
10428
|
+
"snapshot": [
|
|
10429
|
+
{
|
|
10430
|
+
"path": "lastCapturedAt",
|
|
10431
|
+
"valueType": "number"
|
|
10432
|
+
},
|
|
10433
|
+
{
|
|
10434
|
+
"path": "cacheAgeMs",
|
|
10435
|
+
"valueType": "number"
|
|
10436
|
+
},
|
|
10437
|
+
{
|
|
10438
|
+
"path": "lastBytes",
|
|
10439
|
+
"valueType": "number"
|
|
10440
|
+
},
|
|
10441
|
+
{
|
|
10442
|
+
"path": "lastStreamId",
|
|
10443
|
+
"valueType": "string"
|
|
10444
|
+
}
|
|
10445
|
+
],
|
|
10446
|
+
"stream-params": [
|
|
10447
|
+
{
|
|
10448
|
+
"path": "main.width",
|
|
10449
|
+
"valueType": "number"
|
|
10450
|
+
},
|
|
10451
|
+
{
|
|
10452
|
+
"path": "main.height",
|
|
10453
|
+
"valueType": "number"
|
|
10454
|
+
},
|
|
10455
|
+
{
|
|
10456
|
+
"path": "main.codec",
|
|
10457
|
+
"valueType": "enum",
|
|
10458
|
+
"enumValues": ["h264", "h265"]
|
|
10459
|
+
},
|
|
10460
|
+
{
|
|
10461
|
+
"path": "main.framerate",
|
|
10462
|
+
"valueType": "number"
|
|
10463
|
+
},
|
|
10464
|
+
{
|
|
10465
|
+
"path": "main.bitrate",
|
|
10466
|
+
"valueType": "number"
|
|
10467
|
+
},
|
|
10468
|
+
{
|
|
10469
|
+
"path": "main.bitrateMode",
|
|
10470
|
+
"valueType": "enum",
|
|
10471
|
+
"enumValues": ["vbr", "cbr"]
|
|
10472
|
+
},
|
|
10473
|
+
{
|
|
10474
|
+
"path": "main.encoderProfile",
|
|
10475
|
+
"valueType": "enum",
|
|
10476
|
+
"enumValues": [
|
|
10477
|
+
"high",
|
|
10478
|
+
"main",
|
|
10479
|
+
"baseline"
|
|
10480
|
+
]
|
|
10481
|
+
},
|
|
10482
|
+
{
|
|
10483
|
+
"path": "main.gop",
|
|
10484
|
+
"valueType": "number"
|
|
10485
|
+
},
|
|
10486
|
+
{
|
|
10487
|
+
"path": "main.audio",
|
|
10488
|
+
"valueType": "boolean"
|
|
10489
|
+
},
|
|
10490
|
+
{
|
|
10491
|
+
"path": "sub.width",
|
|
10492
|
+
"valueType": "number"
|
|
10493
|
+
},
|
|
10494
|
+
{
|
|
10495
|
+
"path": "sub.height",
|
|
10496
|
+
"valueType": "number"
|
|
10497
|
+
},
|
|
10498
|
+
{
|
|
10499
|
+
"path": "sub.codec",
|
|
10500
|
+
"valueType": "enum",
|
|
10501
|
+
"enumValues": ["h264", "h265"]
|
|
10502
|
+
},
|
|
10503
|
+
{
|
|
10504
|
+
"path": "sub.framerate",
|
|
10505
|
+
"valueType": "number"
|
|
10506
|
+
},
|
|
10507
|
+
{
|
|
10508
|
+
"path": "sub.bitrate",
|
|
10509
|
+
"valueType": "number"
|
|
10510
|
+
},
|
|
10511
|
+
{
|
|
10512
|
+
"path": "sub.bitrateMode",
|
|
10513
|
+
"valueType": "enum",
|
|
10514
|
+
"enumValues": ["vbr", "cbr"]
|
|
10515
|
+
},
|
|
10516
|
+
{
|
|
10517
|
+
"path": "sub.encoderProfile",
|
|
10518
|
+
"valueType": "enum",
|
|
10519
|
+
"enumValues": [
|
|
10520
|
+
"high",
|
|
10521
|
+
"main",
|
|
10522
|
+
"baseline"
|
|
10523
|
+
]
|
|
10524
|
+
},
|
|
10525
|
+
{
|
|
10526
|
+
"path": "sub.gop",
|
|
10527
|
+
"valueType": "number"
|
|
10528
|
+
},
|
|
10529
|
+
{
|
|
10530
|
+
"path": "sub.audio",
|
|
10531
|
+
"valueType": "boolean"
|
|
10532
|
+
},
|
|
10533
|
+
{
|
|
10534
|
+
"path": "ext.width",
|
|
10535
|
+
"valueType": "number"
|
|
10536
|
+
},
|
|
10537
|
+
{
|
|
10538
|
+
"path": "ext.height",
|
|
10539
|
+
"valueType": "number"
|
|
10540
|
+
},
|
|
10541
|
+
{
|
|
10542
|
+
"path": "ext.codec",
|
|
10543
|
+
"valueType": "enum",
|
|
10544
|
+
"enumValues": ["h264", "h265"]
|
|
10545
|
+
},
|
|
10546
|
+
{
|
|
10547
|
+
"path": "ext.framerate",
|
|
10548
|
+
"valueType": "number"
|
|
10549
|
+
},
|
|
10550
|
+
{
|
|
10551
|
+
"path": "ext.bitrate",
|
|
10552
|
+
"valueType": "number"
|
|
10553
|
+
},
|
|
10554
|
+
{
|
|
10555
|
+
"path": "ext.bitrateMode",
|
|
10556
|
+
"valueType": "enum",
|
|
10557
|
+
"enumValues": ["vbr", "cbr"]
|
|
10558
|
+
},
|
|
10559
|
+
{
|
|
10560
|
+
"path": "ext.encoderProfile",
|
|
10561
|
+
"valueType": "enum",
|
|
10562
|
+
"enumValues": [
|
|
10563
|
+
"high",
|
|
10564
|
+
"main",
|
|
10565
|
+
"baseline"
|
|
10566
|
+
]
|
|
10567
|
+
},
|
|
10568
|
+
{
|
|
10569
|
+
"path": "ext.gop",
|
|
10570
|
+
"valueType": "number"
|
|
10571
|
+
},
|
|
10572
|
+
{
|
|
10573
|
+
"path": "ext.audio",
|
|
10574
|
+
"valueType": "boolean"
|
|
10575
|
+
}
|
|
10576
|
+
],
|
|
10577
|
+
"switch": [{
|
|
10578
|
+
"path": "on",
|
|
10579
|
+
"valueType": "boolean"
|
|
10580
|
+
}],
|
|
10581
|
+
"tamper": [{
|
|
10582
|
+
"path": "tampered",
|
|
10583
|
+
"valueType": "boolean"
|
|
10584
|
+
}],
|
|
10585
|
+
"temperature-sensor": [
|
|
10586
|
+
{
|
|
10587
|
+
"path": "celsius",
|
|
10588
|
+
"valueType": "number"
|
|
10589
|
+
},
|
|
10590
|
+
{
|
|
10591
|
+
"path": "unit",
|
|
10592
|
+
"valueType": "string"
|
|
10593
|
+
},
|
|
10594
|
+
{
|
|
10595
|
+
"path": "precision",
|
|
10596
|
+
"valueType": "number"
|
|
10597
|
+
}
|
|
10598
|
+
],
|
|
10599
|
+
"update": [
|
|
10600
|
+
{
|
|
10601
|
+
"path": "currentVersion",
|
|
10602
|
+
"valueType": "string"
|
|
10603
|
+
},
|
|
10604
|
+
{
|
|
10605
|
+
"path": "availableVersion",
|
|
10606
|
+
"valueType": "string"
|
|
10607
|
+
},
|
|
10608
|
+
{
|
|
10609
|
+
"path": "updatable",
|
|
10610
|
+
"valueType": "boolean"
|
|
10611
|
+
},
|
|
10612
|
+
{
|
|
10613
|
+
"path": "state",
|
|
10614
|
+
"valueType": "string"
|
|
10615
|
+
},
|
|
10616
|
+
{
|
|
10617
|
+
"path": "inProgress",
|
|
10618
|
+
"valueType": "boolean"
|
|
10619
|
+
}
|
|
10620
|
+
],
|
|
10621
|
+
"vacuum-control": [
|
|
10622
|
+
{
|
|
10623
|
+
"path": "state",
|
|
10624
|
+
"valueType": "enum",
|
|
10625
|
+
"enumValues": [
|
|
10626
|
+
"idle",
|
|
10627
|
+
"cleaning",
|
|
10628
|
+
"paused",
|
|
10629
|
+
"returning",
|
|
10630
|
+
"docked",
|
|
10631
|
+
"drying",
|
|
10632
|
+
"error"
|
|
10633
|
+
]
|
|
10634
|
+
},
|
|
10635
|
+
{
|
|
10636
|
+
"path": "batteryLevel",
|
|
10637
|
+
"valueType": "number"
|
|
10638
|
+
},
|
|
10639
|
+
{
|
|
10640
|
+
"path": "fanSpeed",
|
|
10641
|
+
"valueType": "string"
|
|
10642
|
+
},
|
|
10643
|
+
{
|
|
10644
|
+
"path": "progressPercent",
|
|
10645
|
+
"valueType": "number"
|
|
10646
|
+
},
|
|
10647
|
+
{
|
|
10648
|
+
"path": "errorCode",
|
|
10649
|
+
"valueType": "number"
|
|
10650
|
+
},
|
|
10651
|
+
{
|
|
10652
|
+
"path": "errorLabel",
|
|
10653
|
+
"valueType": "string"
|
|
10654
|
+
}
|
|
10655
|
+
],
|
|
10656
|
+
"valve": [{
|
|
10657
|
+
"path": "state",
|
|
10658
|
+
"valueType": "enum",
|
|
10659
|
+
"enumValues": [
|
|
10660
|
+
"open",
|
|
10661
|
+
"opening",
|
|
10662
|
+
"closing",
|
|
10663
|
+
"closed",
|
|
10664
|
+
"stopped"
|
|
10665
|
+
]
|
|
10666
|
+
}, {
|
|
10667
|
+
"path": "position",
|
|
10668
|
+
"valueType": "number"
|
|
10669
|
+
}],
|
|
10670
|
+
"vibration": [{
|
|
10671
|
+
"path": "detected",
|
|
10672
|
+
"valueType": "boolean"
|
|
10673
|
+
}],
|
|
10674
|
+
"water-heater": [
|
|
10675
|
+
{
|
|
10676
|
+
"path": "currentTemp",
|
|
10677
|
+
"valueType": "number"
|
|
10678
|
+
},
|
|
10679
|
+
{
|
|
10680
|
+
"path": "targetTemp",
|
|
10681
|
+
"valueType": "number"
|
|
10682
|
+
},
|
|
10683
|
+
{
|
|
10684
|
+
"path": "operationMode",
|
|
10685
|
+
"valueType": "string"
|
|
10686
|
+
},
|
|
10687
|
+
{
|
|
10688
|
+
"path": "away",
|
|
10689
|
+
"valueType": "boolean"
|
|
10690
|
+
},
|
|
10691
|
+
{
|
|
10692
|
+
"path": "minTemp",
|
|
10693
|
+
"valueType": "number"
|
|
10694
|
+
},
|
|
10695
|
+
{
|
|
10696
|
+
"path": "maxTemp",
|
|
10697
|
+
"valueType": "number"
|
|
10698
|
+
}
|
|
10699
|
+
],
|
|
10700
|
+
"weather": [
|
|
10701
|
+
{
|
|
10702
|
+
"path": "condition",
|
|
10703
|
+
"valueType": "string"
|
|
10704
|
+
},
|
|
10705
|
+
{
|
|
10706
|
+
"path": "temperature",
|
|
10707
|
+
"valueType": "number"
|
|
10708
|
+
},
|
|
10709
|
+
{
|
|
10710
|
+
"path": "temperatureUnit",
|
|
10711
|
+
"valueType": "string"
|
|
10712
|
+
},
|
|
10713
|
+
{
|
|
10714
|
+
"path": "humidity",
|
|
10715
|
+
"valueType": "number"
|
|
10716
|
+
},
|
|
10717
|
+
{
|
|
10718
|
+
"path": "pressure",
|
|
10719
|
+
"valueType": "number"
|
|
10720
|
+
},
|
|
10721
|
+
{
|
|
10722
|
+
"path": "pressureUnit",
|
|
10723
|
+
"valueType": "string"
|
|
10724
|
+
},
|
|
10725
|
+
{
|
|
10726
|
+
"path": "windSpeed",
|
|
10727
|
+
"valueType": "number"
|
|
10728
|
+
},
|
|
10729
|
+
{
|
|
10730
|
+
"path": "windSpeedUnit",
|
|
10731
|
+
"valueType": "string"
|
|
10732
|
+
},
|
|
10733
|
+
{
|
|
10734
|
+
"path": "windBearing",
|
|
10735
|
+
"valueType": "number"
|
|
10736
|
+
}
|
|
10737
|
+
],
|
|
10738
|
+
"zone-analytics": [
|
|
10739
|
+
{
|
|
10740
|
+
"path": "ts",
|
|
10741
|
+
"valueType": "number"
|
|
10742
|
+
},
|
|
10743
|
+
{
|
|
10744
|
+
"path": "frameWidth",
|
|
10745
|
+
"valueType": "number"
|
|
10746
|
+
},
|
|
10747
|
+
{
|
|
10748
|
+
"path": "frameHeight",
|
|
10749
|
+
"valueType": "number"
|
|
10750
|
+
},
|
|
10751
|
+
{
|
|
10752
|
+
"path": "frame.totalObjects",
|
|
10753
|
+
"valueType": "number"
|
|
10754
|
+
},
|
|
10755
|
+
{
|
|
10756
|
+
"path": "frame.standingObjects",
|
|
10757
|
+
"valueType": "number"
|
|
10758
|
+
},
|
|
10759
|
+
{
|
|
10760
|
+
"path": "frame.transientObjects",
|
|
10761
|
+
"valueType": "number"
|
|
10762
|
+
},
|
|
10763
|
+
{
|
|
10764
|
+
"path": "unzoned.totalObjects",
|
|
10765
|
+
"valueType": "number"
|
|
10766
|
+
},
|
|
10767
|
+
{
|
|
10768
|
+
"path": "unzoned.standingObjects",
|
|
10769
|
+
"valueType": "number"
|
|
10770
|
+
},
|
|
10771
|
+
{
|
|
10772
|
+
"path": "unzoned.transientObjects",
|
|
10773
|
+
"valueType": "number"
|
|
10774
|
+
}
|
|
10775
|
+
]
|
|
10776
|
+
});
|
|
8803
10777
|
object({
|
|
8804
10778
|
code: string().regex(/^[a-z][a-z0-9-]*(\.[a-z0-9-]+)+$/),
|
|
8805
10779
|
params: record(string(), union([string(), number()])).optional()
|
|
@@ -9148,7 +11122,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
9148
11122
|
return DeviceRole;
|
|
9149
11123
|
}({});
|
|
9150
11124
|
//#endregion
|
|
9151
|
-
//#region ../types/dist/composition-
|
|
11125
|
+
//#region ../types/dist/composition-kEl9mevu.mjs
|
|
9152
11126
|
/**
|
|
9153
11127
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
9154
11128
|
*
|
|
@@ -12381,7 +14355,7 @@ var LogChannelDescriptorSchema = object({
|
|
|
12381
14355
|
* `true` is a PROMISE with two halves, and both must hold: the gate is
|
|
12382
14356
|
* consulted with the numeric device id, AND every line the channel admits
|
|
12383
14357
|
* carries `tags: { deviceId }` with that same numeric id. The second half is
|
|
12384
|
-
* what makes `| json | deviceId="
|
|
14358
|
+
* what makes `| json | deviceId="102"` work in Loki — `loki-payload.ts`
|
|
12385
14359
|
* keeps `deviceId` out of the stream labels for cardinality, so the tag in
|
|
12386
14360
|
* the body is the only way to filter.
|
|
12387
14361
|
*
|
|
@@ -12569,7 +14543,7 @@ var ModelVariantGroupSchema = object({
|
|
|
12569
14543
|
precision: _enum(["fp32", "int8"]).optional(),
|
|
12570
14544
|
/**
|
|
12571
14545
|
* Training / latency-variant axis. Omit ⇒ the standard build. `test` marks
|
|
12572
|
-
* an alternate training of the same family (
|
|
14546
|
+
* an alternate training of the same family (plugin catalog `relu_test`); chip
|
|
12573
14547
|
* label is "Test".
|
|
12574
14548
|
*/
|
|
12575
14549
|
optimization: _enum(["standard", "test"]).optional(),
|
|
@@ -12821,8 +14795,8 @@ var ModelCatalogEntrySchema = object({
|
|
|
12821
14795
|
provider: ModelProviderIdSchema.optional(),
|
|
12822
14796
|
/**
|
|
12823
14797
|
* Per-MODEL class map override. Absent ⇒ the step's `StepDefinition.classMap`
|
|
12824
|
-
* applies (
|
|
12825
|
-
* labels already ARE the CamStack macros (
|
|
14798
|
+
* applies (plus catalog / COCO public catalog). Set on a custom model whose raw
|
|
14799
|
+
* labels already ARE the CamStack macros (plugin catalog identity map).
|
|
12826
14800
|
*/
|
|
12827
14801
|
classMap: DetectionCatalogClassMapSchema.optional(),
|
|
12828
14802
|
/**
|
|
@@ -15808,7 +17782,7 @@ method(object({
|
|
|
15808
17782
|
* `1` is real time and is the ONLY value that allows the copy branch —
|
|
15809
17783
|
* anything else forces `libx264` over the window. That was priced
|
|
15810
17784
|
* before it was chosen: a per-event burst measured at 0.23 s and 254 KB
|
|
15811
|
-
* on a real
|
|
17785
|
+
* on a real 101 720p cut, against 922 KB for the copy it replaces. A
|
|
15812
17786
|
* re-encode is capped at 720p (`EVENT_CLIP_ENCODE_MAX_WIDTH`), because
|
|
15813
17787
|
* once the decode is forced the width stops being free.
|
|
15814
17788
|
*/
|
|
@@ -16228,6 +18202,7 @@ var CompositionRunStatusSchema = _enum([
|
|
|
16228
18202
|
"starting",
|
|
16229
18203
|
"running",
|
|
16230
18204
|
"degraded",
|
|
18205
|
+
"incomplete",
|
|
16231
18206
|
"failed"
|
|
16232
18207
|
]);
|
|
16233
18208
|
var CompositionFieldStateKindSchema = _enum([
|
|
@@ -16441,6 +18416,7 @@ var CoreBlockStatusSchema = _enum([
|
|
|
16441
18416
|
"starting",
|
|
16442
18417
|
"running",
|
|
16443
18418
|
"degraded",
|
|
18419
|
+
"incomplete",
|
|
16444
18420
|
"failed"
|
|
16445
18421
|
]);
|
|
16446
18422
|
/** path → TypeScript source for a multi-file block. */
|
|
@@ -38364,7 +40340,7 @@ var PRIMARY_CATEGORIES = new Set(ENTRIES.map((e) => e.primaryCategory));
|
|
|
38364
40340
|
* `locationKey` is ALWAYS {@link locationIconKey} of the label — never the
|
|
38365
40341
|
* operator's casing. The registry matches labels trimmed + case-insensitively
|
|
38366
40342
|
* everywhere (`addLocation`, `removeLocation`, `renameLocation`), and a
|
|
38367
|
-
* case-only rename (`
|
|
40343
|
+
* case-only rename (`kitchen` → `Kitchen`) is a real edit this repo supports; a
|
|
38368
40344
|
* map keyed on the displayed casing would orphan its entry on exactly that
|
|
38369
40345
|
* edit. Consumers join by keying their own label through `locationIconKey`.
|
|
38370
40346
|
*/
|
|
@@ -38389,7 +40365,7 @@ var LocationDescriptionAssignmentSchema = object({
|
|
|
38389
40365
|
/**
|
|
38390
40366
|
* A SITE ZONE — a named part of the property that several locations belong to.
|
|
38391
40367
|
*
|
|
38392
|
-
* "
|
|
40368
|
+
* "Night zone" holds every bedroom; "Zona giorno" the living room and the
|
|
38393
40369
|
* kitchen. A camera belongs to exactly one location, and a location to at most
|
|
38394
40370
|
* one zone, so a camera's zone is derived and never stored on the device: the
|
|
38395
40371
|
* whole point of this entity is that grouping rooms touches no device row.
|
|
@@ -38418,7 +40394,7 @@ var LocationDescriptionAssignmentSchema = object({
|
|
|
38418
40394
|
* the locations inside it.
|
|
38419
40395
|
*
|
|
38420
40396
|
* The LABEL is carried alongside the key because the key is lossy on purpose —
|
|
38421
|
-
* a surface must show "
|
|
40397
|
+
* a surface must show "Night zone", not "night zone". Locations are carried
|
|
38422
40398
|
* here, rather than left to a second call, because every consumer wants both
|
|
38423
40399
|
* at once and a viewer that asked twice could render a zone whose membership
|
|
38424
40400
|
* it has not fetched yet.
|
|
@@ -40531,8 +42507,8 @@ var LoadContributionSchema = object({
|
|
|
40531
42507
|
"unattributable"
|
|
40532
42508
|
]),
|
|
40533
42509
|
/**
|
|
40534
|
-
* What ONE entry is, in the contributor's own words — `
|
|
40535
|
-
* `
|
|
42510
|
+
* What ONE entry is, in the contributor's own words — `101/high`,
|
|
42511
|
+
* `102/native`, `cuda:0 shared pool`. Free text because the unit differs per
|
|
40536
42512
|
* family and inventing a common one would lose the only information that
|
|
40537
42513
|
* makes two entries for the same camera distinguishable.
|
|
40538
42514
|
*/
|
|
@@ -43492,7 +45468,7 @@ var NcConditionsSchema = object({
|
|
|
43492
45468
|
* with the list under it is worse than no switch (D62).
|
|
43493
45469
|
*
|
|
43494
45470
|
* MEMBERS ARE FACE-GALLERY `Identity.id`s (uuid), not display names. A name is
|
|
43495
|
-
* renameable, and a rule authored on "
|
|
45471
|
+
* renameable, and a rule authored on "Alice" went silently dark the moment
|
|
43496
45472
|
* the operator fixed the spelling. The id reaches the record on
|
|
43497
45473
|
* `LabelAttribution.identityId`; the name is what the editor shows and what
|
|
43498
45474
|
* `{{label}}` renders.
|
|
@@ -44043,7 +46019,7 @@ var NcRulePatchSchema = NcRuleInputSchema.partial().extend({
|
|
|
44043
46019
|
* A rule scoped to one camera and one zone silently became a rule that
|
|
44044
46020
|
* matches EVERY event on EVERY camera, and lost its `media` policy
|
|
44045
46021
|
* (zoneCrop / gif / clip / frame) and its `priority` at the same time. Seen
|
|
44046
|
-
* live on 2026-08-12: a rule scoped to device
|
|
46022
|
+
* live on 2026-08-12: a rule scoped to device 102 fired on 104 and 101
|
|
44047
46023
|
* within a minute of a two-field patch.
|
|
44048
46024
|
*
|
|
44049
46025
|
* So every defaulted field is re-declared here WITHOUT its default. The
|
|
@@ -45856,7 +47832,7 @@ var LabelAttributionSchema = object({
|
|
|
45856
47832
|
* `Identity.id` or a plate-gallery `Vehicle.id` (both `randomUUID`).
|
|
45857
47833
|
*
|
|
45858
47834
|
* The text alone is a DISPLAY NAME, and a display name is renameable: a
|
|
45859
|
-
* notification rule authored on "
|
|
47835
|
+
* notification rule authored on "Alice" stopped matching the moment the
|
|
45860
47836
|
* operator fixed the spelling in the gallery, and nothing said so. The id is
|
|
45861
47837
|
* the thing that does not move, so it is what a rule matches on
|
|
45862
47838
|
* (`NcConditions.identities`) and the text is what a human is shown.
|
|
@@ -48395,7 +50371,7 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
48395
50371
|
/**
|
|
48396
50372
|
* Root-supplied detections for the tree's ROOT step (D730). Set by
|
|
48397
50373
|
* `runDetailSubtree` when the camera's root model supplies a crop-kind
|
|
48398
|
-
* step (a
|
|
50374
|
+
* step (a plus catalog `license_plate` for `plate-detection`): the step is
|
|
48399
50375
|
* NOT inferred, these boxes are its output, and its children (the plate
|
|
48400
50376
|
* reader) run on them through their own crop policy. Boxes are in the
|
|
48401
50377
|
* PIXELS of the image this call carries. Absent ⇒ the root step runs.
|
|
@@ -50028,7 +52004,7 @@ var RunnerCameraConfigSchema = object({
|
|
|
50028
52004
|
* detection session that asks for history. What shipped was a last-moment
|
|
50029
52005
|
* discard — `FrameSlot`'s throttle compares wall clocks, and ~4 s of media
|
|
50030
52006
|
* arriving inside a few hundred ms of wall clock looks to it like one frame's
|
|
50031
|
-
* worth. Device
|
|
52007
|
+
* worth. Device 102, 2026-09-08: a re-run of the SAME model over the stored
|
|
50032
52008
|
* recording scored the subject `vehicle 0.5669` — above the 0.50 floor —
|
|
50033
52009
|
* 1.68 s BEFORE the live track was born, on a frame that was in the pre-roll,
|
|
50034
52010
|
* was decoded, and was freed.
|
|
@@ -52058,7 +54034,7 @@ method(_void(), ProviderInfoSchema, { auth: "admin" }), method(object({ config:
|
|
|
52058
54034
|
* The signals a device can emit to WAKE its own stream.
|
|
52059
54035
|
*
|
|
52060
54036
|
* A camera whose stream is built on demand sleeps until something asks for it,
|
|
52061
|
-
* and "something" cannot be a consumer that is merely attached — a
|
|
54037
|
+
* and "something" cannot be a consumer that is merely attached — a external-catalog
|
|
52062
54038
|
* puller holds a session open for ever, and treating that as demand would keep
|
|
52063
54039
|
* a battery camera awake for ever, which is the whole thing the battery is for
|
|
52064
54040
|
* (D173). So the wake has to come from the CAMERA: an event it noticed by
|
|
@@ -52745,7 +54721,7 @@ var ClipSchema = object({
|
|
|
52745
54721
|
* {@link MAX_CLIP_EVENT_IDS}. Empty on footage-only clips.
|
|
52746
54722
|
*
|
|
52747
54723
|
* Bounded because it is not a payload the surface pages through: one visit on
|
|
52748
|
-
* device
|
|
54724
|
+
* device 101 carried 2 345 ids, and `eventIds` was 99% of a 153 KB
|
|
52749
54725
|
* camera-day. Read {@link eventCount} for the true total.
|
|
52750
54726
|
*/
|
|
52751
54727
|
eventIds: array(string()).optional(),
|
|
@@ -52890,7 +54866,7 @@ var ClipPlaybackSchema = object({
|
|
|
52890
54866
|
* camera has no recordings", which is the defect this whole line of work is
|
|
52891
54867
|
* about: a battery camera nobody woke (`sleeping`), a camera that could not be
|
|
52892
54868
|
* reached at all (`unreachable`, also what a provider that THREW reports), a
|
|
52893
|
-
* camera whose SD card is not mounted (`no-storage`, measured on
|
|
54869
|
+
* camera whose SD card is not mounted (`no-storage`, measured on 106 —
|
|
52894
54870
|
* `HddInfo mount 0`, honestly nothing to list rather than "no clips"), and a
|
|
52895
54871
|
* camera whose OWN index disagrees with its OWN calendar (`index-empty`,
|
|
52896
54872
|
* measured on 618: the calendar marks 3–20 September, days 6–20 list zero
|
|
@@ -53155,7 +55131,7 @@ DeviceType.Camera, method(object({
|
|
|
53155
55131
|
*
|
|
53156
55132
|
* It was optional, documented as "absent means the device's BOUND
|
|
53157
55133
|
* provider, which is CamStack on every camera". No code implemented
|
|
53158
|
-
* that. Measured on the live hub 2026-09-20 — device
|
|
55134
|
+
* that. Measured on the live hub 2026-09-20 — device 107, bound to
|
|
53159
55135
|
* `recorder` AND `provider-reolink` — a bare call with `limit: 3`
|
|
53160
55136
|
* answered SIX rows, three from each source, merged newest-first:
|
|
53161
55137
|
* `device-collection-dispatch.ts` simply left the fan-out un-narrowed,
|
|
@@ -54233,7 +56209,10 @@ object({
|
|
|
54233
56209
|
DeviceType.Sensor;
|
|
54234
56210
|
object({
|
|
54235
56211
|
/** Current illuminance in lux (lx). */
|
|
54236
|
-
lux: number().min(0)
|
|
56212
|
+
lux: number().min(0).meta({
|
|
56213
|
+
unit: "lx",
|
|
56214
|
+
label: "Illuminance"
|
|
56215
|
+
}),
|
|
54237
56216
|
/** Ms epoch when the slice was last updated. */
|
|
54238
56217
|
lastFetchedAt: number(),
|
|
54239
56218
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -54389,7 +56368,10 @@ var BatteryStatusSchema = object({
|
|
|
54389
56368
|
* Consumers must SKIP a null rather than coerce it — `battery-band` already
|
|
54390
56369
|
* declines to band a non-finite reading, which is the correct shape.
|
|
54391
56370
|
*/
|
|
54392
|
-
percentage: number().min(0).max(100).nullable()
|
|
56371
|
+
percentage: number().min(0).max(100).nullable().meta({
|
|
56372
|
+
unit: "%",
|
|
56373
|
+
label: "Charge"
|
|
56374
|
+
}),
|
|
54393
56375
|
/**
|
|
54394
56376
|
* Charging source. `'dc'` covers wall/USB adapters; `'solar'` is
|
|
54395
56377
|
* Reolink-specific for the Solar Panel 2 accessory (will become
|
|
@@ -54408,13 +56390,13 @@ var BatteryStatusSchema = object({
|
|
|
54408
56390
|
"solar",
|
|
54409
56391
|
"none",
|
|
54410
56392
|
"unknown"
|
|
54411
|
-
]),
|
|
56393
|
+
]).meta({ label: "Charging source" }),
|
|
54412
56394
|
/**
|
|
54413
56395
|
* True when the camera firmware has gone into low-power mode. Battery
|
|
54414
56396
|
* providers MUST avoid polling during sleep — reading the battery
|
|
54415
56397
|
* wakes the camera up and drains charge.
|
|
54416
56398
|
*/
|
|
54417
|
-
sleeping: boolean(),
|
|
56399
|
+
sleeping: boolean().meta({ label: "Sleeping" }),
|
|
54418
56400
|
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
54419
56401
|
lastUpdated: number(),
|
|
54420
56402
|
/**
|
|
@@ -54454,7 +56436,7 @@ var BatteryStatusSchema = object({
|
|
|
54454
56436
|
* sub-threshold = low). UI MUST render "Normal"/"Low" instead of a
|
|
54455
56437
|
* misleading exact percentage. Absent/false → genuine 0–100 % reading.
|
|
54456
56438
|
*/
|
|
54457
|
-
binary: boolean().optional()
|
|
56439
|
+
binary: boolean().optional().meta({ label: "Binary indicator" })
|
|
54458
56440
|
});
|
|
54459
56441
|
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat;
|
|
54460
56442
|
method(object({
|
|
@@ -54469,7 +56451,7 @@ method(object({
|
|
|
54469
56451
|
status: BatteryStatusSchema
|
|
54470
56452
|
});
|
|
54471
56453
|
object({
|
|
54472
|
-
on: boolean(),
|
|
56454
|
+
on: boolean().meta({ label: "On" }),
|
|
54473
56455
|
/** Ms epoch of the last transition. 0 if never observed. */
|
|
54474
56456
|
lastChangedAt: number()
|
|
54475
56457
|
});
|
|
@@ -54727,7 +56709,7 @@ var GridLayoutCellSchema = object({
|
|
|
54727
56709
|
*
|
|
54728
56710
|
* A grid's `high` composes its sources' `high` and its `low` their `low`, so a
|
|
54729
56711
|
* profile is on offer only when EVERY source can serve it. The refusal NAMES
|
|
54730
|
-
* the sources, because "this grid has no low" is not a finding — "
|
|
56712
|
+
* the sources, because "this grid has no low" is not a finding — "101 has no
|
|
54731
56713
|
* low" is, and it is the one an operator can act on.
|
|
54732
56714
|
*/
|
|
54733
56715
|
var GridProfileOfferSchema = object({
|
|
@@ -56278,7 +58260,10 @@ DeviceType.Humidifier, method(object({
|
|
|
56278
58260
|
});
|
|
56279
58261
|
object({
|
|
56280
58262
|
/** Current relative humidity, 0..100. */
|
|
56281
|
-
percent: number().min(0).max(100)
|
|
58263
|
+
percent: number().min(0).max(100).meta({
|
|
58264
|
+
unit: "%",
|
|
58265
|
+
label: "Humidity"
|
|
58266
|
+
}),
|
|
56282
58267
|
/** Ms epoch when the slice was last updated. */
|
|
56283
58268
|
lastFetchedAt: number(),
|
|
56284
58269
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -59055,9 +61040,15 @@ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema)
|
|
|
59055
61040
|
});
|
|
59056
61041
|
object({
|
|
59057
61042
|
/** Instantaneous power draw in watts. */
|
|
59058
|
-
watts: number().optional()
|
|
61043
|
+
watts: number().optional().meta({
|
|
61044
|
+
unit: "W",
|
|
61045
|
+
label: "Power"
|
|
61046
|
+
}),
|
|
59059
61047
|
/** Cumulative energy in kilowatt-hours since the meter was reset. */
|
|
59060
|
-
kwhTotal: number().optional()
|
|
61048
|
+
kwhTotal: number().optional().meta({
|
|
61049
|
+
unit: "kWh",
|
|
61050
|
+
label: "Energy"
|
|
61051
|
+
}),
|
|
59061
61052
|
/** Voltage in volts. */
|
|
59062
61053
|
volts: number().optional(),
|
|
59063
61054
|
/** Current in amperes. */
|
|
@@ -59376,9 +61367,9 @@ var PtzOptionsSchema = object({
|
|
|
59376
61367
|
* Reolink preset 0, Hikvision preset '1', Dahua preset 1 -- and on this fleet
|
|
59377
61368
|
* not one of the three cameras honours its own:
|
|
59378
61369
|
*
|
|
59379
|
-
*
|
|
59380
|
-
* 1438
|
|
59381
|
-
* 3836
|
|
61370
|
+
* 107 Camera camera Carol (reolink) preset 0 holds "stanza"
|
|
61371
|
+
* 1438 Camera dispensa (hikvision) preset 1 holds "Credenza"
|
|
61372
|
+
* 3836 Camera studio (amcrest) preset 1 holds "Preset1"
|
|
59382
61373
|
*
|
|
59383
61374
|
* So `goHome` meant "go wherever the operator happened to save in slot 0 or 1",
|
|
59384
61375
|
* and two of the three swallowed the failure in a bare `catch`. For autotrack
|
|
@@ -59525,7 +61516,7 @@ object({
|
|
|
59525
61516
|
running: boolean().nullable(),
|
|
59526
61517
|
/** Epoch ms the current boolean began; null while `running` is null. */
|
|
59527
61518
|
since: number().nullable(),
|
|
59528
|
-
source: RunningStateSourceSchema,
|
|
61519
|
+
source: RunningStateSourceSchema.meta({ label: "Source" }),
|
|
59529
61520
|
phase: string().nullable(),
|
|
59530
61521
|
/** null until a reading has been published (D393). */
|
|
59531
61522
|
lastFetchedAt: number().nullable()
|
|
@@ -59578,7 +61569,7 @@ var RecordingAvailabilitySchema = object({
|
|
|
59578
61569
|
* would look identical. But the answer used to say nothing about that, so a
|
|
59579
61570
|
* caller asking "what can I export?" read the single preferred profile as
|
|
59580
61571
|
* the only one that exists — on this deployment every camera records `high`
|
|
59581
|
-
* AND `low`, the low tree holding 14 GB for camera
|
|
61572
|
+
* AND `low`, the low tree holding 14 GB for camera 101 alone, and the export
|
|
59582
61573
|
* UI could not see it.
|
|
59583
61574
|
*
|
|
59584
61575
|
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
@@ -59677,7 +61668,7 @@ var RecordingSourceOptionsSchema = object({
|
|
|
59677
61668
|
* `sparse` = gaps are the absence of one, and must be drawn as such.
|
|
59678
61669
|
*
|
|
59679
61670
|
* Not an onboard-only concession: measured 2026-09-24, OUR bar covers 98.8 %
|
|
59680
|
-
* of
|
|
61671
|
+
* of 107's day and 1.2 % of 1436's. It is a fact about a (source, camera)
|
|
59681
61672
|
* pair, and ours answers it per camera from `deriveRecordingMode`. */
|
|
59682
61673
|
coverage: _enum(["continuous", "sparse"]),
|
|
59683
61674
|
/** Where the playhead may be put.
|
|
@@ -59753,7 +61744,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(RecordingSourceS
|
|
|
59753
61744
|
* merely discouraged (D554 amended).
|
|
59754
61745
|
*
|
|
59755
61746
|
* It was learned the expensive way on `videoclips.listClips`: measured
|
|
59756
|
-
* on the live hub 2026-09-20, device
|
|
61747
|
+
* on the live hub 2026-09-20, device 107 bound to `recorder` AND
|
|
59757
61748
|
* `provider-reolink`, a bare call with `limit: 3` answered SIX rows,
|
|
59758
61749
|
* three from each source, merged — `device-collection-dispatch.ts`
|
|
59759
61750
|
* leaves an unpinned fan-out un-narrowed, so absence buys the union the
|
|
@@ -60354,7 +62345,7 @@ var ExportSpeedSchema = number().min(.25).max(32);
|
|
|
60354
62345
|
* on a 10 h window holding 29,393 s of footage every range landed late by the
|
|
60355
62346
|
* gap accumulated before it — up to 6,607 s, well past EOF. Nothing matched,
|
|
60356
62347
|
* the video was a uniform timelapse, and the log line reported the five ranges
|
|
60357
|
-
* that had been ASKED for (2026-08-13, export `57d14363`, camera
|
|
62348
|
+
* that had been ASKED for (2026-08-13, export `57d14363`, camera 101).
|
|
60358
62349
|
*
|
|
60359
62350
|
* Relative and not absolute epoch, because an absolute epoch would make every
|
|
60360
62351
|
* call site responsible for the same subtraction.
|
|
@@ -60988,7 +62979,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), RecordingSignalStatusS
|
|
|
60988
62979
|
* which put a "Scenes" tab on one camera's detail page. That is the wrong shape
|
|
60989
62980
|
* for the thing: a scene is a standing question about the property ("is the bin
|
|
60990
62981
|
* still out"), and the operator's question is "which of my scenes have tripped",
|
|
60991
|
-
* across every camera at once — not "what does camera
|
|
62982
|
+
* across every camera at once — not "what does camera 102 think". Buried one
|
|
60992
62983
|
* camera deep it also could not be found. The surface is now a top-level admin
|
|
60993
62984
|
* page (`/scenes`, `pages/Scenes.tsx`) that lists every scene on every camera and
|
|
60994
62985
|
* picks the camera inside the create flow, the same shape Events and Faces have.
|
|
@@ -61571,7 +63562,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), StreamParamsOptionsSch
|
|
|
61571
63562
|
auth: "admin"
|
|
61572
63563
|
}), method(object({ deviceId: number() }), unknown().nullable());
|
|
61573
63564
|
object({
|
|
61574
|
-
on: boolean(),
|
|
63565
|
+
on: boolean().meta({ label: "On" }),
|
|
61575
63566
|
/** Ms epoch of the last state change. Useful for UI "X minutes ago". */
|
|
61576
63567
|
lastChangedAt: number()
|
|
61577
63568
|
});
|
|
@@ -62134,7 +64125,10 @@ object({
|
|
|
62134
64125
|
DeviceType.Sensor;
|
|
62135
64126
|
object({
|
|
62136
64127
|
/** Current temperature in Celsius. */
|
|
62137
|
-
celsius: number()
|
|
64128
|
+
celsius: number().meta({
|
|
64129
|
+
unit: "°C",
|
|
64130
|
+
label: "Temperature"
|
|
64131
|
+
}),
|
|
62138
64132
|
/** Ms epoch when the slice was last updated (push or poll). */
|
|
62139
64133
|
lastFetchedAt: number(),
|
|
62140
64134
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -63384,6 +65378,10 @@ var trainingCapability = {
|
|
|
63384
65378
|
}
|
|
63385
65379
|
};
|
|
63386
65380
|
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
65381
|
+
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;
|
|
65382
|
+
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
65383
|
+
DeviceRole.BinarySensor, DeviceRole.MotionSensor;
|
|
65384
|
+
new Set(CAP_NAMES);
|
|
63387
65385
|
Object.freeze({
|
|
63388
65386
|
person: .5,
|
|
63389
65387
|
vehicle: .5,
|
|
@@ -76321,7 +78319,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
76321
78319
|
state: [{
|
|
76322
78320
|
kind: "boolean",
|
|
76323
78321
|
field: "on",
|
|
76324
|
-
label: t("
|
|
78322
|
+
label: t("On", "Acceso"),
|
|
76325
78323
|
whenTrue: t("When {device} turns active", "Quando {device} si attiva"),
|
|
76326
78324
|
whenFalse: t("When {device} turns inactive", "Quando {device} si disattiva"),
|
|
76327
78325
|
icon: "toggle-right"
|
|
@@ -79745,7 +81743,6 @@ Object.freeze({
|
|
|
79745
81743
|
"smtp-provider": "email"
|
|
79746
81744
|
});
|
|
79747
81745
|
DeviceType.Camera;
|
|
79748
|
-
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;
|
|
79749
81746
|
/**
|
|
79750
81747
|
* A saved Customize assignment (D936). The schema is the type: callers use
|
|
79751
81748
|
* `z.infer`, they do not restate the shape.
|
|
@@ -79834,7 +81831,6 @@ object({
|
|
|
79834
81831
|
]),
|
|
79835
81832
|
reason: string().nullable()
|
|
79836
81833
|
});
|
|
79837
|
-
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
79838
81834
|
var G711_SCALE_CORRECTION_DB = {
|
|
79839
81835
|
PCMU: 20 * Math.log10(4),
|
|
79840
81836
|
PCMA: 20 * Math.log10(8)
|
|
@@ -80207,7 +82203,7 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
80207
82203
|
{
|
|
80208
82204
|
name: "summaryStreams",
|
|
80209
82205
|
label: "Summary: streams offline",
|
|
80210
|
-
example: "
|
|
82206
|
+
example: "Front door (high) — since 06:40",
|
|
80211
82207
|
kinds: ["stream-offline", "stream-online"]
|
|
80212
82208
|
},
|
|
80213
82209
|
{
|
|
@@ -80225,13 +82221,13 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
80225
82221
|
{
|
|
80226
82222
|
name: "summaryDetection",
|
|
80227
82223
|
label: "Summary: cameras detecting nothing",
|
|
80228
|
-
example: "
|
|
82224
|
+
example: "Front door — since 05:10",
|
|
80229
82225
|
kinds: ["detection-blind"]
|
|
80230
82226
|
},
|
|
80231
82227
|
{
|
|
80232
82228
|
name: "summaryNodes",
|
|
80233
82229
|
label: "Summary: nodes",
|
|
80234
|
-
example: "
|
|
82230
|
+
example: "agent-a — offline since 03:00",
|
|
80235
82231
|
kinds: [
|
|
80236
82232
|
"node-offline",
|
|
80237
82233
|
"node-online",
|