@camstack/addon-post-analysis 1.2.633 → 1.2.635
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/THIRD_PARTY_MODELS.md +2 -2
- package/dist/{clip-model-registry-CeNmplcH.js → clip-model-registry-BHSAAWz-.js} +2109 -74
- package/dist/{clip-model-registry-CCbbEBYS.mjs → clip-model-registry-CySP4L5r.mjs} +2104 -75
- package/dist/embedding-encoder/index.js +1 -1
- package/dist/embedding-encoder/index.mjs +1 -1
- package/dist/pipeline-analytics/_stub.js +1 -1
- package/dist/pipeline-analytics/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-ArpdWsMY.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_analytics_widgets-Cnd14w_u.mjs} +3 -3
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-j6sD2jfA.mjs +26 -0
- package/dist/pipeline-analytics/{hostInit-g5HpKRU7.mjs → hostInit-DxMujleG.mjs} +3 -3
- package/dist/pipeline-analytics/index.js +166 -1957
- package/dist/pipeline-analytics/index.mjs +165 -1956
- package/dist/pipeline-analytics/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/dist/pipeline-analytics/_virtual_mf___mfe_internal__addon_pipeline_analytics_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BQq3WNOE.mjs +0 -26
|
@@ -30,7 +30,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
30
30
|
}) : target, mod));
|
|
31
31
|
//#endregion
|
|
32
32
|
let node_crypto = require("node:crypto");
|
|
33
|
-
//#region ../types/dist/event-category-
|
|
33
|
+
//#region ../types/dist/event-category-DHXxB8t9.mjs
|
|
34
34
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
35
35
|
EventCategory["SystemBoot"] = "system.boot";
|
|
36
36
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -326,7 +326,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
326
326
|
* TRANSITION into that state (never per dispatch), and the node is dropped
|
|
327
327
|
* from the placement candidate set for as long as it holds.
|
|
328
328
|
*
|
|
329
|
-
* This exists because the state was previously invisible:
|
|
329
|
+
* This exists because the state was previously invisible: agent-a
|
|
330
330
|
* absorbed 283k inference errors in a day while still being handed cameras,
|
|
331
331
|
* and nothing in the system said so.
|
|
332
332
|
*
|
|
@@ -5663,7 +5663,7 @@ var ZodIssueCode = {
|
|
|
5663
5663
|
var ZodFirstPartyTypeKind;
|
|
5664
5664
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5665
5665
|
//#endregion
|
|
5666
|
-
//#region ../types/dist/sleep-
|
|
5666
|
+
//#region ../types/dist/sleep-BErAxhul.mjs
|
|
5667
5667
|
/**
|
|
5668
5668
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5669
5669
|
* window to float samples (D455).
|
|
@@ -8913,6 +8913,1981 @@ method(object({ deviceId: number() }), array(StreamSourceEntrySchema)), method(o
|
|
|
8913
8913
|
kind: "mutation",
|
|
8914
8914
|
auth: "admin"
|
|
8915
8915
|
}), method(object({ deviceId: number() }), unknown().nullable()), method(object({ deviceId: number() }), RawStateResultSchema.nullable(), { auth: "protected" });
|
|
8916
|
+
/** cap name -> the numeric state field whose strict advance IS the cap's one-shot event. */
|
|
8917
|
+
var CAP_ADVANCE_FIELDS = Object.freeze({ "doorbell": "lastPressedAt" });
|
|
8918
|
+
/** Every capability name, so addon code can check a name without the schema graph. */
|
|
8919
|
+
var CAP_NAMES = Object.freeze([
|
|
8920
|
+
"accessories",
|
|
8921
|
+
"addon-pages",
|
|
8922
|
+
"addon-pages-source",
|
|
8923
|
+
"addon-routes",
|
|
8924
|
+
"addon-settings",
|
|
8925
|
+
"addon-widgets",
|
|
8926
|
+
"addon-widgets-source",
|
|
8927
|
+
"addons",
|
|
8928
|
+
"admin-ui",
|
|
8929
|
+
"air-quality-sensor",
|
|
8930
|
+
"alarm-panel",
|
|
8931
|
+
"alerts",
|
|
8932
|
+
"ambient-light-sensor",
|
|
8933
|
+
"audio-analysis",
|
|
8934
|
+
"audio-analyzer",
|
|
8935
|
+
"audio-codec",
|
|
8936
|
+
"audio-metrics",
|
|
8937
|
+
"auth-provider",
|
|
8938
|
+
"automation-control",
|
|
8939
|
+
"backup",
|
|
8940
|
+
"battery",
|
|
8941
|
+
"binary",
|
|
8942
|
+
"brightness",
|
|
8943
|
+
"broker",
|
|
8944
|
+
"button",
|
|
8945
|
+
"calendar-source",
|
|
8946
|
+
"calendars",
|
|
8947
|
+
"camera-credentials",
|
|
8948
|
+
"camera-grid-layout",
|
|
8949
|
+
"camera-pipeline-config",
|
|
8950
|
+
"camera-streams",
|
|
8951
|
+
"carbon-monoxide",
|
|
8952
|
+
"climate-control",
|
|
8953
|
+
"color",
|
|
8954
|
+
"composer",
|
|
8955
|
+
"connection-test",
|
|
8956
|
+
"connectivity",
|
|
8957
|
+
"consumables",
|
|
8958
|
+
"contact",
|
|
8959
|
+
"control",
|
|
8960
|
+
"core-blocks",
|
|
8961
|
+
"cover",
|
|
8962
|
+
"custom-model-registry",
|
|
8963
|
+
"data-store-provider",
|
|
8964
|
+
"database-snapshot",
|
|
8965
|
+
"day-night",
|
|
8966
|
+
"decoder",
|
|
8967
|
+
"detection-pipeline",
|
|
8968
|
+
"device-admin-link",
|
|
8969
|
+
"device-adoption",
|
|
8970
|
+
"device-credentials",
|
|
8971
|
+
"device-discovery",
|
|
8972
|
+
"device-export",
|
|
8973
|
+
"device-extension",
|
|
8974
|
+
"device-history",
|
|
8975
|
+
"device-manager",
|
|
8976
|
+
"device-ops",
|
|
8977
|
+
"device-provider",
|
|
8978
|
+
"device-removal-hook",
|
|
8979
|
+
"device-state",
|
|
8980
|
+
"device-status",
|
|
8981
|
+
"dishwasher",
|
|
8982
|
+
"display-palette",
|
|
8983
|
+
"doorbell",
|
|
8984
|
+
"embedding-encoder",
|
|
8985
|
+
"enum-sensor",
|
|
8986
|
+
"event-emitter",
|
|
8987
|
+
"face-gallery",
|
|
8988
|
+
"failure-contribution",
|
|
8989
|
+
"fan-control",
|
|
8990
|
+
"feature-probe",
|
|
8991
|
+
"filesystem-browse",
|
|
8992
|
+
"flood",
|
|
8993
|
+
"gas",
|
|
8994
|
+
"heating-valve",
|
|
8995
|
+
"humidifier",
|
|
8996
|
+
"humidity-sensor",
|
|
8997
|
+
"image",
|
|
8998
|
+
"image-settings",
|
|
8999
|
+
"integrations",
|
|
9000
|
+
"intercom",
|
|
9001
|
+
"keychain",
|
|
9002
|
+
"keychain-admin",
|
|
9003
|
+
"lawn-mower-control",
|
|
9004
|
+
"llm",
|
|
9005
|
+
"llm-runtime",
|
|
9006
|
+
"load-contribution",
|
|
9007
|
+
"local-network",
|
|
9008
|
+
"lock-control",
|
|
9009
|
+
"log-channels",
|
|
9010
|
+
"log-destination",
|
|
9011
|
+
"login-method",
|
|
9012
|
+
"media-player",
|
|
9013
|
+
"mesh-network",
|
|
9014
|
+
"metrics-provider",
|
|
9015
|
+
"model-convert",
|
|
9016
|
+
"model-distributor",
|
|
9017
|
+
"motion",
|
|
9018
|
+
"motion-detection",
|
|
9019
|
+
"motion-trigger",
|
|
9020
|
+
"motion-zones",
|
|
9021
|
+
"mqtt-broker",
|
|
9022
|
+
"native-object-detection",
|
|
9023
|
+
"navigation",
|
|
9024
|
+
"network-access",
|
|
9025
|
+
"network-link",
|
|
9026
|
+
"network-quality",
|
|
9027
|
+
"node-certificates",
|
|
9028
|
+
"nodes",
|
|
9029
|
+
"notification-output",
|
|
9030
|
+
"notification-rules",
|
|
9031
|
+
"notifier",
|
|
9032
|
+
"numeric-sensor",
|
|
9033
|
+
"oauth-integration",
|
|
9034
|
+
"oidc-connections",
|
|
9035
|
+
"osd",
|
|
9036
|
+
"osd-manager",
|
|
9037
|
+
"pet-feeder",
|
|
9038
|
+
"pipeline-analytics",
|
|
9039
|
+
"pipeline-executor",
|
|
9040
|
+
"pipeline-orchestrator",
|
|
9041
|
+
"pipeline-runner",
|
|
9042
|
+
"plate-gallery",
|
|
9043
|
+
"platform-probe",
|
|
9044
|
+
"power-meter",
|
|
9045
|
+
"presence",
|
|
9046
|
+
"pressure-sensor",
|
|
9047
|
+
"privacy-mask",
|
|
9048
|
+
"ptz",
|
|
9049
|
+
"ptz-autotrack",
|
|
9050
|
+
"reboot",
|
|
9051
|
+
"record-entries",
|
|
9052
|
+
"recording",
|
|
9053
|
+
"recording-archive",
|
|
9054
|
+
"recording-export",
|
|
9055
|
+
"recording-onboard",
|
|
9056
|
+
"recording-signal",
|
|
9057
|
+
"records",
|
|
9058
|
+
"running-state",
|
|
9059
|
+
"scene-monitor",
|
|
9060
|
+
"script-runner",
|
|
9061
|
+
"server-management",
|
|
9062
|
+
"settings-store",
|
|
9063
|
+
"smoke",
|
|
9064
|
+
"smtp-provider",
|
|
9065
|
+
"snapshot",
|
|
9066
|
+
"sso-bridge",
|
|
9067
|
+
"storage",
|
|
9068
|
+
"storage-admin",
|
|
9069
|
+
"storage-evictable",
|
|
9070
|
+
"storage-migration",
|
|
9071
|
+
"storage-occupancy",
|
|
9072
|
+
"storage-provider",
|
|
9073
|
+
"stream-broker",
|
|
9074
|
+
"stream-catalog",
|
|
9075
|
+
"stream-params",
|
|
9076
|
+
"stream-signals",
|
|
9077
|
+
"switch",
|
|
9078
|
+
"system",
|
|
9079
|
+
"tamper",
|
|
9080
|
+
"temperature-sensor",
|
|
9081
|
+
"terminal-session",
|
|
9082
|
+
"toast",
|
|
9083
|
+
"training",
|
|
9084
|
+
"training-provider",
|
|
9085
|
+
"turn-provider",
|
|
9086
|
+
"update",
|
|
9087
|
+
"user-management",
|
|
9088
|
+
"user-passkeys",
|
|
9089
|
+
"vacuum-control",
|
|
9090
|
+
"valve",
|
|
9091
|
+
"vector-store",
|
|
9092
|
+
"vibration",
|
|
9093
|
+
"videoclips",
|
|
9094
|
+
"viewer-ui",
|
|
9095
|
+
"water-heater",
|
|
9096
|
+
"weather",
|
|
9097
|
+
"webrtc-session",
|
|
9098
|
+
"zone-analytics",
|
|
9099
|
+
"zone-rules",
|
|
9100
|
+
"zones"
|
|
9101
|
+
]);
|
|
9102
|
+
Object.freeze({
|
|
9103
|
+
"air-quality-sensor": [
|
|
9104
|
+
{
|
|
9105
|
+
"path": "co2Ppm",
|
|
9106
|
+
"valueType": "number"
|
|
9107
|
+
},
|
|
9108
|
+
{
|
|
9109
|
+
"path": "vocPpb",
|
|
9110
|
+
"valueType": "number"
|
|
9111
|
+
},
|
|
9112
|
+
{
|
|
9113
|
+
"path": "pm25",
|
|
9114
|
+
"valueType": "number"
|
|
9115
|
+
},
|
|
9116
|
+
{
|
|
9117
|
+
"path": "pm10",
|
|
9118
|
+
"valueType": "number"
|
|
9119
|
+
},
|
|
9120
|
+
{
|
|
9121
|
+
"path": "aqi",
|
|
9122
|
+
"valueType": "number"
|
|
9123
|
+
},
|
|
9124
|
+
{
|
|
9125
|
+
"path": "unit",
|
|
9126
|
+
"valueType": "string"
|
|
9127
|
+
},
|
|
9128
|
+
{
|
|
9129
|
+
"path": "precision",
|
|
9130
|
+
"valueType": "number"
|
|
9131
|
+
}
|
|
9132
|
+
],
|
|
9133
|
+
"alarm-panel": [
|
|
9134
|
+
{
|
|
9135
|
+
"path": "state",
|
|
9136
|
+
"valueType": "enum",
|
|
9137
|
+
"enumValues": [
|
|
9138
|
+
"disarmed",
|
|
9139
|
+
"armed_home",
|
|
9140
|
+
"armed_away",
|
|
9141
|
+
"armed_night",
|
|
9142
|
+
"armed_vacation",
|
|
9143
|
+
"armed_custom_bypass",
|
|
9144
|
+
"arming",
|
|
9145
|
+
"disarming",
|
|
9146
|
+
"pending",
|
|
9147
|
+
"triggered"
|
|
9148
|
+
]
|
|
9149
|
+
},
|
|
9150
|
+
{
|
|
9151
|
+
"path": "targetMode",
|
|
9152
|
+
"valueType": "enum",
|
|
9153
|
+
"enumValues": [
|
|
9154
|
+
"home",
|
|
9155
|
+
"away",
|
|
9156
|
+
"night",
|
|
9157
|
+
"vacation",
|
|
9158
|
+
"custom_bypass"
|
|
9159
|
+
]
|
|
9160
|
+
},
|
|
9161
|
+
{
|
|
9162
|
+
"path": "requiresCode",
|
|
9163
|
+
"valueType": "boolean"
|
|
9164
|
+
}
|
|
9165
|
+
],
|
|
9166
|
+
"ambient-light-sensor": [
|
|
9167
|
+
{
|
|
9168
|
+
"path": "lux",
|
|
9169
|
+
"valueType": "number"
|
|
9170
|
+
},
|
|
9171
|
+
{
|
|
9172
|
+
"path": "unit",
|
|
9173
|
+
"valueType": "string"
|
|
9174
|
+
},
|
|
9175
|
+
{
|
|
9176
|
+
"path": "precision",
|
|
9177
|
+
"valueType": "number"
|
|
9178
|
+
}
|
|
9179
|
+
],
|
|
9180
|
+
"audio-metrics": [
|
|
9181
|
+
{
|
|
9182
|
+
"path": "ts",
|
|
9183
|
+
"valueType": "number"
|
|
9184
|
+
},
|
|
9185
|
+
{
|
|
9186
|
+
"path": "windowSec",
|
|
9187
|
+
"valueType": "number"
|
|
9188
|
+
},
|
|
9189
|
+
{
|
|
9190
|
+
"path": "level.rms",
|
|
9191
|
+
"valueType": "number"
|
|
9192
|
+
},
|
|
9193
|
+
{
|
|
9194
|
+
"path": "level.dbfs",
|
|
9195
|
+
"valueType": "number"
|
|
9196
|
+
},
|
|
9197
|
+
{
|
|
9198
|
+
"path": "peakDbfs",
|
|
9199
|
+
"valueType": "number"
|
|
9200
|
+
},
|
|
9201
|
+
{
|
|
9202
|
+
"path": "avgDbfs",
|
|
9203
|
+
"valueType": "number"
|
|
9204
|
+
},
|
|
9205
|
+
{
|
|
9206
|
+
"path": "current.className",
|
|
9207
|
+
"valueType": "string"
|
|
9208
|
+
},
|
|
9209
|
+
{
|
|
9210
|
+
"path": "current.score",
|
|
9211
|
+
"valueType": "number"
|
|
9212
|
+
},
|
|
9213
|
+
{
|
|
9214
|
+
"path": "current.timestamp",
|
|
9215
|
+
"valueType": "number"
|
|
9216
|
+
}
|
|
9217
|
+
],
|
|
9218
|
+
"automation-control": [
|
|
9219
|
+
{
|
|
9220
|
+
"path": "enabled",
|
|
9221
|
+
"valueType": "boolean"
|
|
9222
|
+
},
|
|
9223
|
+
{
|
|
9224
|
+
"path": "isRunning",
|
|
9225
|
+
"valueType": "boolean"
|
|
9226
|
+
},
|
|
9227
|
+
{
|
|
9228
|
+
"path": "lastTriggeredAt",
|
|
9229
|
+
"valueType": "number"
|
|
9230
|
+
},
|
|
9231
|
+
{
|
|
9232
|
+
"path": "lastError",
|
|
9233
|
+
"valueType": "string"
|
|
9234
|
+
}
|
|
9235
|
+
],
|
|
9236
|
+
"battery": [
|
|
9237
|
+
{
|
|
9238
|
+
"path": "percentage",
|
|
9239
|
+
"valueType": "number"
|
|
9240
|
+
},
|
|
9241
|
+
{
|
|
9242
|
+
"path": "charging",
|
|
9243
|
+
"valueType": "enum",
|
|
9244
|
+
"enumValues": [
|
|
9245
|
+
"dc",
|
|
9246
|
+
"solar",
|
|
9247
|
+
"none",
|
|
9248
|
+
"unknown"
|
|
9249
|
+
]
|
|
9250
|
+
},
|
|
9251
|
+
{
|
|
9252
|
+
"path": "sleeping",
|
|
9253
|
+
"valueType": "boolean"
|
|
9254
|
+
},
|
|
9255
|
+
{
|
|
9256
|
+
"path": "lastUpdated",
|
|
9257
|
+
"valueType": "number"
|
|
9258
|
+
},
|
|
9259
|
+
{
|
|
9260
|
+
"path": "lastContactAt",
|
|
9261
|
+
"valueType": "number"
|
|
9262
|
+
},
|
|
9263
|
+
{
|
|
9264
|
+
"path": "lastFullRefreshAt",
|
|
9265
|
+
"valueType": "number"
|
|
9266
|
+
},
|
|
9267
|
+
{
|
|
9268
|
+
"path": "binary",
|
|
9269
|
+
"valueType": "boolean"
|
|
9270
|
+
}
|
|
9271
|
+
],
|
|
9272
|
+
"binary": [{
|
|
9273
|
+
"path": "on",
|
|
9274
|
+
"valueType": "boolean"
|
|
9275
|
+
}],
|
|
9276
|
+
"brightness": [{
|
|
9277
|
+
"path": "percentage",
|
|
9278
|
+
"valueType": "number"
|
|
9279
|
+
}],
|
|
9280
|
+
"broker": [{
|
|
9281
|
+
"path": "brokerCount",
|
|
9282
|
+
"valueType": "number"
|
|
9283
|
+
}, {
|
|
9284
|
+
"path": "connectedCount",
|
|
9285
|
+
"valueType": "number"
|
|
9286
|
+
}],
|
|
9287
|
+
"camera-credentials": [
|
|
9288
|
+
{
|
|
9289
|
+
"path": "host",
|
|
9290
|
+
"valueType": "string"
|
|
9291
|
+
},
|
|
9292
|
+
{
|
|
9293
|
+
"path": "port",
|
|
9294
|
+
"valueType": "number"
|
|
9295
|
+
},
|
|
9296
|
+
{
|
|
9297
|
+
"path": "onvifPort",
|
|
9298
|
+
"valueType": "number"
|
|
9299
|
+
},
|
|
9300
|
+
{
|
|
9301
|
+
"path": "rtspPort",
|
|
9302
|
+
"valueType": "number"
|
|
9303
|
+
},
|
|
9304
|
+
{
|
|
9305
|
+
"path": "https",
|
|
9306
|
+
"valueType": "boolean"
|
|
9307
|
+
},
|
|
9308
|
+
{
|
|
9309
|
+
"path": "hasUsername",
|
|
9310
|
+
"valueType": "boolean"
|
|
9311
|
+
},
|
|
9312
|
+
{
|
|
9313
|
+
"path": "hasPassword",
|
|
9314
|
+
"valueType": "boolean"
|
|
9315
|
+
},
|
|
9316
|
+
{
|
|
9317
|
+
"path": "onvifProfile",
|
|
9318
|
+
"valueType": "string"
|
|
9319
|
+
}
|
|
9320
|
+
],
|
|
9321
|
+
"camera-streams": [
|
|
9322
|
+
{
|
|
9323
|
+
"path": "online",
|
|
9324
|
+
"valueType": "boolean"
|
|
9325
|
+
},
|
|
9326
|
+
{
|
|
9327
|
+
"path": "slotStatuses.high",
|
|
9328
|
+
"valueType": "enum",
|
|
9329
|
+
"enumValues": [
|
|
9330
|
+
"unassigned",
|
|
9331
|
+
"idle",
|
|
9332
|
+
"connecting",
|
|
9333
|
+
"streaming",
|
|
9334
|
+
"error"
|
|
9335
|
+
]
|
|
9336
|
+
},
|
|
9337
|
+
{
|
|
9338
|
+
"path": "slotStatuses.mid",
|
|
9339
|
+
"valueType": "enum",
|
|
9340
|
+
"enumValues": [
|
|
9341
|
+
"unassigned",
|
|
9342
|
+
"idle",
|
|
9343
|
+
"connecting",
|
|
9344
|
+
"streaming",
|
|
9345
|
+
"error"
|
|
9346
|
+
]
|
|
9347
|
+
},
|
|
9348
|
+
{
|
|
9349
|
+
"path": "slotStatuses.low",
|
|
9350
|
+
"valueType": "enum",
|
|
9351
|
+
"enumValues": [
|
|
9352
|
+
"unassigned",
|
|
9353
|
+
"idle",
|
|
9354
|
+
"connecting",
|
|
9355
|
+
"streaming",
|
|
9356
|
+
"error"
|
|
9357
|
+
]
|
|
9358
|
+
},
|
|
9359
|
+
{
|
|
9360
|
+
"path": "slotErrors.high",
|
|
9361
|
+
"valueType": "string"
|
|
9362
|
+
},
|
|
9363
|
+
{
|
|
9364
|
+
"path": "slotErrors.mid",
|
|
9365
|
+
"valueType": "string"
|
|
9366
|
+
},
|
|
9367
|
+
{
|
|
9368
|
+
"path": "slotErrors.low",
|
|
9369
|
+
"valueType": "string"
|
|
9370
|
+
}
|
|
9371
|
+
],
|
|
9372
|
+
"carbon-monoxide": [{
|
|
9373
|
+
"path": "detected",
|
|
9374
|
+
"valueType": "boolean"
|
|
9375
|
+
}],
|
|
9376
|
+
"climate-control": [
|
|
9377
|
+
{
|
|
9378
|
+
"path": "mode",
|
|
9379
|
+
"valueType": "enum",
|
|
9380
|
+
"enumValues": [
|
|
9381
|
+
"off",
|
|
9382
|
+
"heat",
|
|
9383
|
+
"cool",
|
|
9384
|
+
"auto",
|
|
9385
|
+
"heat_cool",
|
|
9386
|
+
"fan_only",
|
|
9387
|
+
"dry"
|
|
9388
|
+
]
|
|
9389
|
+
},
|
|
9390
|
+
{
|
|
9391
|
+
"path": "fanMode",
|
|
9392
|
+
"valueType": "string"
|
|
9393
|
+
},
|
|
9394
|
+
{
|
|
9395
|
+
"path": "preset",
|
|
9396
|
+
"valueType": "string"
|
|
9397
|
+
},
|
|
9398
|
+
{
|
|
9399
|
+
"path": "target",
|
|
9400
|
+
"valueType": "number"
|
|
9401
|
+
},
|
|
9402
|
+
{
|
|
9403
|
+
"path": "targetHigh",
|
|
9404
|
+
"valueType": "number"
|
|
9405
|
+
},
|
|
9406
|
+
{
|
|
9407
|
+
"path": "targetLow",
|
|
9408
|
+
"valueType": "number"
|
|
9409
|
+
},
|
|
9410
|
+
{
|
|
9411
|
+
"path": "targetHumidity",
|
|
9412
|
+
"valueType": "number"
|
|
9413
|
+
},
|
|
9414
|
+
{
|
|
9415
|
+
"path": "currentTemp",
|
|
9416
|
+
"valueType": "number"
|
|
9417
|
+
},
|
|
9418
|
+
{
|
|
9419
|
+
"path": "currentHumidity",
|
|
9420
|
+
"valueType": "number"
|
|
9421
|
+
},
|
|
9422
|
+
{
|
|
9423
|
+
"path": "swingVertical",
|
|
9424
|
+
"valueType": "boolean"
|
|
9425
|
+
},
|
|
9426
|
+
{
|
|
9427
|
+
"path": "swingHorizontal",
|
|
9428
|
+
"valueType": "boolean"
|
|
9429
|
+
},
|
|
9430
|
+
{
|
|
9431
|
+
"path": "minTemp",
|
|
9432
|
+
"valueType": "number"
|
|
9433
|
+
},
|
|
9434
|
+
{
|
|
9435
|
+
"path": "maxTemp",
|
|
9436
|
+
"valueType": "number"
|
|
9437
|
+
},
|
|
9438
|
+
{
|
|
9439
|
+
"path": "tempStep",
|
|
9440
|
+
"valueType": "number"
|
|
9441
|
+
}
|
|
9442
|
+
],
|
|
9443
|
+
"color": [
|
|
9444
|
+
{
|
|
9445
|
+
"path": "mode",
|
|
9446
|
+
"valueType": "enum",
|
|
9447
|
+
"enumValues": [
|
|
9448
|
+
"rgb",
|
|
9449
|
+
"hsv",
|
|
9450
|
+
"mired"
|
|
9451
|
+
]
|
|
9452
|
+
},
|
|
9453
|
+
{
|
|
9454
|
+
"path": "rgb.r",
|
|
9455
|
+
"valueType": "number"
|
|
9456
|
+
},
|
|
9457
|
+
{
|
|
9458
|
+
"path": "rgb.g",
|
|
9459
|
+
"valueType": "number"
|
|
9460
|
+
},
|
|
9461
|
+
{
|
|
9462
|
+
"path": "rgb.b",
|
|
9463
|
+
"valueType": "number"
|
|
9464
|
+
},
|
|
9465
|
+
{
|
|
9466
|
+
"path": "hsv.h",
|
|
9467
|
+
"valueType": "number"
|
|
9468
|
+
},
|
|
9469
|
+
{
|
|
9470
|
+
"path": "hsv.s",
|
|
9471
|
+
"valueType": "number"
|
|
9472
|
+
},
|
|
9473
|
+
{
|
|
9474
|
+
"path": "hsv.v",
|
|
9475
|
+
"valueType": "number"
|
|
9476
|
+
},
|
|
9477
|
+
{
|
|
9478
|
+
"path": "mireds",
|
|
9479
|
+
"valueType": "number"
|
|
9480
|
+
}
|
|
9481
|
+
],
|
|
9482
|
+
"connectivity": [{
|
|
9483
|
+
"path": "connected",
|
|
9484
|
+
"valueType": "boolean"
|
|
9485
|
+
}],
|
|
9486
|
+
"contact": [{
|
|
9487
|
+
"path": "entryOpen",
|
|
9488
|
+
"valueType": "boolean"
|
|
9489
|
+
}],
|
|
9490
|
+
"control": [
|
|
9491
|
+
{
|
|
9492
|
+
"path": "kind",
|
|
9493
|
+
"valueType": "enum",
|
|
9494
|
+
"enumValues": [
|
|
9495
|
+
"numeric",
|
|
9496
|
+
"select",
|
|
9497
|
+
"text",
|
|
9498
|
+
"datetime"
|
|
9499
|
+
]
|
|
9500
|
+
},
|
|
9501
|
+
{
|
|
9502
|
+
"path": "unit",
|
|
9503
|
+
"valueType": "string"
|
|
9504
|
+
},
|
|
9505
|
+
{
|
|
9506
|
+
"path": "min",
|
|
9507
|
+
"valueType": "number"
|
|
9508
|
+
},
|
|
9509
|
+
{
|
|
9510
|
+
"path": "max",
|
|
9511
|
+
"valueType": "number"
|
|
9512
|
+
},
|
|
9513
|
+
{
|
|
9514
|
+
"path": "step",
|
|
9515
|
+
"valueType": "number"
|
|
9516
|
+
},
|
|
9517
|
+
{
|
|
9518
|
+
"path": "precision",
|
|
9519
|
+
"valueType": "number"
|
|
9520
|
+
},
|
|
9521
|
+
{
|
|
9522
|
+
"path": "format",
|
|
9523
|
+
"valueType": "enum",
|
|
9524
|
+
"enumValues": [
|
|
9525
|
+
"date",
|
|
9526
|
+
"time",
|
|
9527
|
+
"datetime"
|
|
9528
|
+
]
|
|
9529
|
+
}
|
|
9530
|
+
],
|
|
9531
|
+
"cover": [
|
|
9532
|
+
{
|
|
9533
|
+
"path": "state",
|
|
9534
|
+
"valueType": "enum",
|
|
9535
|
+
"enumValues": [
|
|
9536
|
+
"open",
|
|
9537
|
+
"opening",
|
|
9538
|
+
"closing",
|
|
9539
|
+
"closed",
|
|
9540
|
+
"stopped"
|
|
9541
|
+
]
|
|
9542
|
+
},
|
|
9543
|
+
{
|
|
9544
|
+
"path": "position",
|
|
9545
|
+
"valueType": "number"
|
|
9546
|
+
},
|
|
9547
|
+
{
|
|
9548
|
+
"path": "tiltPosition",
|
|
9549
|
+
"valueType": "number"
|
|
9550
|
+
}
|
|
9551
|
+
],
|
|
9552
|
+
"day-night": [
|
|
9553
|
+
{
|
|
9554
|
+
"path": "mode",
|
|
9555
|
+
"valueType": "enum",
|
|
9556
|
+
"enumValues": [
|
|
9557
|
+
"auto",
|
|
9558
|
+
"day",
|
|
9559
|
+
"night",
|
|
9560
|
+
"schedule"
|
|
9561
|
+
]
|
|
9562
|
+
},
|
|
9563
|
+
{
|
|
9564
|
+
"path": "sensitivity",
|
|
9565
|
+
"valueType": "number"
|
|
9566
|
+
},
|
|
9567
|
+
{
|
|
9568
|
+
"path": "switchDelaySec",
|
|
9569
|
+
"valueType": "number"
|
|
9570
|
+
}
|
|
9571
|
+
],
|
|
9572
|
+
"device-adoption": [
|
|
9573
|
+
{
|
|
9574
|
+
"path": "lastDiscoveryAt",
|
|
9575
|
+
"valueType": "number"
|
|
9576
|
+
},
|
|
9577
|
+
{
|
|
9578
|
+
"path": "candidateCount",
|
|
9579
|
+
"valueType": "number"
|
|
9580
|
+
},
|
|
9581
|
+
{
|
|
9582
|
+
"path": "adoptedCount",
|
|
9583
|
+
"valueType": "number"
|
|
9584
|
+
},
|
|
9585
|
+
{
|
|
9586
|
+
"path": "lastError",
|
|
9587
|
+
"valueType": "string"
|
|
9588
|
+
}
|
|
9589
|
+
],
|
|
9590
|
+
"device-discovery": [{
|
|
9591
|
+
"path": "lastDiscoveryAt",
|
|
9592
|
+
"valueType": "number"
|
|
9593
|
+
}, {
|
|
9594
|
+
"path": "lastError",
|
|
9595
|
+
"valueType": "string"
|
|
9596
|
+
}],
|
|
9597
|
+
"device-export": [
|
|
9598
|
+
{
|
|
9599
|
+
"path": "linkState",
|
|
9600
|
+
"valueType": "enum",
|
|
9601
|
+
"enumValues": [
|
|
9602
|
+
"unlinked",
|
|
9603
|
+
"linked",
|
|
9604
|
+
"error"
|
|
9605
|
+
]
|
|
9606
|
+
},
|
|
9607
|
+
{
|
|
9608
|
+
"path": "exposedDeviceCount",
|
|
9609
|
+
"valueType": "number"
|
|
9610
|
+
},
|
|
9611
|
+
{
|
|
9612
|
+
"path": "error",
|
|
9613
|
+
"valueType": "string"
|
|
9614
|
+
},
|
|
9615
|
+
{
|
|
9616
|
+
"path": "setup.qr",
|
|
9617
|
+
"valueType": "string"
|
|
9618
|
+
},
|
|
9619
|
+
{
|
|
9620
|
+
"path": "setup.note",
|
|
9621
|
+
"valueType": "string"
|
|
9622
|
+
}
|
|
9623
|
+
],
|
|
9624
|
+
"device-status": [{
|
|
9625
|
+
"path": "online",
|
|
9626
|
+
"valueType": "boolean"
|
|
9627
|
+
}],
|
|
9628
|
+
"dishwasher": [
|
|
9629
|
+
{
|
|
9630
|
+
"path": "availability",
|
|
9631
|
+
"valueType": "enum",
|
|
9632
|
+
"enumValues": [
|
|
9633
|
+
"available",
|
|
9634
|
+
"offline",
|
|
9635
|
+
"description-missing"
|
|
9636
|
+
]
|
|
9637
|
+
},
|
|
9638
|
+
{
|
|
9639
|
+
"path": "state",
|
|
9640
|
+
"valueType": "enum",
|
|
9641
|
+
"enumValues": [
|
|
9642
|
+
"idle",
|
|
9643
|
+
"running",
|
|
9644
|
+
"paused",
|
|
9645
|
+
"finished",
|
|
9646
|
+
"error",
|
|
9647
|
+
"unavailable"
|
|
9648
|
+
]
|
|
9649
|
+
},
|
|
9650
|
+
{
|
|
9651
|
+
"path": "operationState",
|
|
9652
|
+
"valueType": "enum",
|
|
9653
|
+
"enumValues": [
|
|
9654
|
+
"Inactive",
|
|
9655
|
+
"Ready",
|
|
9656
|
+
"DelayedStart",
|
|
9657
|
+
"Run",
|
|
9658
|
+
"Pause",
|
|
9659
|
+
"ActionRequired",
|
|
9660
|
+
"Finished",
|
|
9661
|
+
"Error",
|
|
9662
|
+
"Aborting"
|
|
9663
|
+
]
|
|
9664
|
+
},
|
|
9665
|
+
{
|
|
9666
|
+
"path": "program",
|
|
9667
|
+
"valueType": "string"
|
|
9668
|
+
},
|
|
9669
|
+
{
|
|
9670
|
+
"path": "selectedProgram",
|
|
9671
|
+
"valueType": "string"
|
|
9672
|
+
},
|
|
9673
|
+
{
|
|
9674
|
+
"path": "remainingSeconds",
|
|
9675
|
+
"valueType": "number"
|
|
9676
|
+
},
|
|
9677
|
+
{
|
|
9678
|
+
"path": "delayedStartSeconds",
|
|
9679
|
+
"valueType": "number"
|
|
9680
|
+
},
|
|
9681
|
+
{
|
|
9682
|
+
"path": "progressPercent",
|
|
9683
|
+
"valueType": "number"
|
|
9684
|
+
},
|
|
9685
|
+
{
|
|
9686
|
+
"path": "doorOpen",
|
|
9687
|
+
"valueType": "boolean"
|
|
9688
|
+
},
|
|
9689
|
+
{
|
|
9690
|
+
"path": "doorLocked",
|
|
9691
|
+
"valueType": "boolean"
|
|
9692
|
+
},
|
|
9693
|
+
{
|
|
9694
|
+
"path": "remoteStartAllowed",
|
|
9695
|
+
"valueType": "boolean"
|
|
9696
|
+
},
|
|
9697
|
+
{
|
|
9698
|
+
"path": "remoteControlActive",
|
|
9699
|
+
"valueType": "boolean"
|
|
9700
|
+
},
|
|
9701
|
+
{
|
|
9702
|
+
"path": "localControlActive",
|
|
9703
|
+
"valueType": "boolean"
|
|
9704
|
+
},
|
|
9705
|
+
{
|
|
9706
|
+
"path": "powerOn",
|
|
9707
|
+
"valueType": "boolean"
|
|
9708
|
+
},
|
|
9709
|
+
{
|
|
9710
|
+
"path": "powerState",
|
|
9711
|
+
"valueType": "string"
|
|
9712
|
+
},
|
|
9713
|
+
{
|
|
9714
|
+
"path": "filterCleaningDue",
|
|
9715
|
+
"valueType": "boolean"
|
|
9716
|
+
},
|
|
9717
|
+
{
|
|
9718
|
+
"path": "machineCareDue",
|
|
9719
|
+
"valueType": "boolean"
|
|
9720
|
+
},
|
|
9721
|
+
{
|
|
9722
|
+
"path": "machineCareRemainingRuns",
|
|
9723
|
+
"valueType": "number"
|
|
9724
|
+
},
|
|
9725
|
+
{
|
|
9726
|
+
"path": "halfLoad",
|
|
9727
|
+
"valueType": "boolean"
|
|
9728
|
+
},
|
|
9729
|
+
{
|
|
9730
|
+
"path": "hygienePlus",
|
|
9731
|
+
"valueType": "boolean"
|
|
9732
|
+
},
|
|
9733
|
+
{
|
|
9734
|
+
"path": "extraDry",
|
|
9735
|
+
"valueType": "boolean"
|
|
9736
|
+
},
|
|
9737
|
+
{
|
|
9738
|
+
"path": "intensiveZone",
|
|
9739
|
+
"valueType": "boolean"
|
|
9740
|
+
},
|
|
9741
|
+
{
|
|
9742
|
+
"path": "varioSpeedPlus",
|
|
9743
|
+
"valueType": "boolean"
|
|
9744
|
+
},
|
|
9745
|
+
{
|
|
9746
|
+
"path": "childLock",
|
|
9747
|
+
"valueType": "boolean"
|
|
9748
|
+
},
|
|
9749
|
+
{
|
|
9750
|
+
"path": "errorCode",
|
|
9751
|
+
"valueType": "number"
|
|
9752
|
+
},
|
|
9753
|
+
{
|
|
9754
|
+
"path": "errorLabel",
|
|
9755
|
+
"valueType": "string"
|
|
9756
|
+
}
|
|
9757
|
+
],
|
|
9758
|
+
"doorbell": [{
|
|
9759
|
+
"path": "lastPressedAt",
|
|
9760
|
+
"valueType": "number"
|
|
9761
|
+
}, {
|
|
9762
|
+
"path": "pressCountSinceStart",
|
|
9763
|
+
"valueType": "number"
|
|
9764
|
+
}],
|
|
9765
|
+
"enum-sensor": [{
|
|
9766
|
+
"path": "value",
|
|
9767
|
+
"valueType": "string"
|
|
9768
|
+
}, {
|
|
9769
|
+
"path": "format",
|
|
9770
|
+
"valueType": "enum",
|
|
9771
|
+
"enumValues": [
|
|
9772
|
+
"date",
|
|
9773
|
+
"time",
|
|
9774
|
+
"datetime"
|
|
9775
|
+
]
|
|
9776
|
+
}],
|
|
9777
|
+
"event-emitter": [
|
|
9778
|
+
{
|
|
9779
|
+
"path": "lastEvent.deviceId",
|
|
9780
|
+
"valueType": "number"
|
|
9781
|
+
},
|
|
9782
|
+
{
|
|
9783
|
+
"path": "lastEvent.eventType",
|
|
9784
|
+
"valueType": "string"
|
|
9785
|
+
},
|
|
9786
|
+
{
|
|
9787
|
+
"path": "lastEvent.timestamp",
|
|
9788
|
+
"valueType": "number"
|
|
9789
|
+
},
|
|
9790
|
+
{
|
|
9791
|
+
"path": "lastEvent.seq",
|
|
9792
|
+
"valueType": "number"
|
|
9793
|
+
},
|
|
9794
|
+
{
|
|
9795
|
+
"path": "eventCountSinceStart",
|
|
9796
|
+
"valueType": "number"
|
|
9797
|
+
}
|
|
9798
|
+
],
|
|
9799
|
+
"fan-control": [
|
|
9800
|
+
{
|
|
9801
|
+
"path": "percentage",
|
|
9802
|
+
"valueType": "number"
|
|
9803
|
+
},
|
|
9804
|
+
{
|
|
9805
|
+
"path": "percentageStep",
|
|
9806
|
+
"valueType": "number"
|
|
9807
|
+
},
|
|
9808
|
+
{
|
|
9809
|
+
"path": "preset",
|
|
9810
|
+
"valueType": "string"
|
|
9811
|
+
},
|
|
9812
|
+
{
|
|
9813
|
+
"path": "direction",
|
|
9814
|
+
"valueType": "enum",
|
|
9815
|
+
"enumValues": ["forward", "reverse"]
|
|
9816
|
+
},
|
|
9817
|
+
{
|
|
9818
|
+
"path": "oscillating",
|
|
9819
|
+
"valueType": "boolean"
|
|
9820
|
+
}
|
|
9821
|
+
],
|
|
9822
|
+
"feature-probe": [
|
|
9823
|
+
{
|
|
9824
|
+
"path": "deviceType",
|
|
9825
|
+
"valueType": "string"
|
|
9826
|
+
},
|
|
9827
|
+
{
|
|
9828
|
+
"path": "model",
|
|
9829
|
+
"valueType": "string"
|
|
9830
|
+
},
|
|
9831
|
+
{
|
|
9832
|
+
"path": "channelCount",
|
|
9833
|
+
"valueType": "number"
|
|
9834
|
+
},
|
|
9835
|
+
{
|
|
9836
|
+
"path": "lastProbedAt",
|
|
9837
|
+
"valueType": "number"
|
|
9838
|
+
}
|
|
9839
|
+
],
|
|
9840
|
+
"flood": [{
|
|
9841
|
+
"path": "flooded",
|
|
9842
|
+
"valueType": "boolean"
|
|
9843
|
+
}],
|
|
9844
|
+
"gas": [{
|
|
9845
|
+
"path": "detected",
|
|
9846
|
+
"valueType": "boolean"
|
|
9847
|
+
}],
|
|
9848
|
+
"heating-valve": [{
|
|
9849
|
+
"path": "position",
|
|
9850
|
+
"valueType": "number"
|
|
9851
|
+
}],
|
|
9852
|
+
"humidifier": [
|
|
9853
|
+
{
|
|
9854
|
+
"path": "on",
|
|
9855
|
+
"valueType": "boolean"
|
|
9856
|
+
},
|
|
9857
|
+
{
|
|
9858
|
+
"path": "currentHumidity",
|
|
9859
|
+
"valueType": "number"
|
|
9860
|
+
},
|
|
9861
|
+
{
|
|
9862
|
+
"path": "targetHumidity",
|
|
9863
|
+
"valueType": "number"
|
|
9864
|
+
},
|
|
9865
|
+
{
|
|
9866
|
+
"path": "mode",
|
|
9867
|
+
"valueType": "string"
|
|
9868
|
+
},
|
|
9869
|
+
{
|
|
9870
|
+
"path": "action",
|
|
9871
|
+
"valueType": "string"
|
|
9872
|
+
},
|
|
9873
|
+
{
|
|
9874
|
+
"path": "minHumidity",
|
|
9875
|
+
"valueType": "number"
|
|
9876
|
+
},
|
|
9877
|
+
{
|
|
9878
|
+
"path": "maxHumidity",
|
|
9879
|
+
"valueType": "number"
|
|
9880
|
+
}
|
|
9881
|
+
],
|
|
9882
|
+
"humidity-sensor": [
|
|
9883
|
+
{
|
|
9884
|
+
"path": "percent",
|
|
9885
|
+
"valueType": "number"
|
|
9886
|
+
},
|
|
9887
|
+
{
|
|
9888
|
+
"path": "unit",
|
|
9889
|
+
"valueType": "string"
|
|
9890
|
+
},
|
|
9891
|
+
{
|
|
9892
|
+
"path": "precision",
|
|
9893
|
+
"valueType": "number"
|
|
9894
|
+
}
|
|
9895
|
+
],
|
|
9896
|
+
"image": [{
|
|
9897
|
+
"path": "url",
|
|
9898
|
+
"valueType": "string"
|
|
9899
|
+
}, {
|
|
9900
|
+
"path": "lastUpdated",
|
|
9901
|
+
"valueType": "number"
|
|
9902
|
+
}],
|
|
9903
|
+
"image-settings": [
|
|
9904
|
+
{
|
|
9905
|
+
"path": "brightness",
|
|
9906
|
+
"valueType": "number"
|
|
9907
|
+
},
|
|
9908
|
+
{
|
|
9909
|
+
"path": "contrast",
|
|
9910
|
+
"valueType": "number"
|
|
9911
|
+
},
|
|
9912
|
+
{
|
|
9913
|
+
"path": "saturation",
|
|
9914
|
+
"valueType": "number"
|
|
9915
|
+
},
|
|
9916
|
+
{
|
|
9917
|
+
"path": "sharpness",
|
|
9918
|
+
"valueType": "number"
|
|
9919
|
+
},
|
|
9920
|
+
{
|
|
9921
|
+
"path": "mirror",
|
|
9922
|
+
"valueType": "boolean"
|
|
9923
|
+
},
|
|
9924
|
+
{
|
|
9925
|
+
"path": "flip",
|
|
9926
|
+
"valueType": "boolean"
|
|
9927
|
+
},
|
|
9928
|
+
{
|
|
9929
|
+
"path": "rotate",
|
|
9930
|
+
"valueType": "enum",
|
|
9931
|
+
"enumValues": [
|
|
9932
|
+
"0",
|
|
9933
|
+
"90",
|
|
9934
|
+
"180",
|
|
9935
|
+
"270"
|
|
9936
|
+
]
|
|
9937
|
+
},
|
|
9938
|
+
{
|
|
9939
|
+
"path": "whiteBalance",
|
|
9940
|
+
"valueType": "enum",
|
|
9941
|
+
"enumValues": ["auto", "manual"]
|
|
9942
|
+
},
|
|
9943
|
+
{
|
|
9944
|
+
"path": "warmth",
|
|
9945
|
+
"valueType": "number"
|
|
9946
|
+
},
|
|
9947
|
+
{
|
|
9948
|
+
"path": "exposureMode",
|
|
9949
|
+
"valueType": "enum",
|
|
9950
|
+
"enumValues": ["auto", "manual"]
|
|
9951
|
+
},
|
|
9952
|
+
{
|
|
9953
|
+
"path": "backlightMode",
|
|
9954
|
+
"valueType": "enum",
|
|
9955
|
+
"enumValues": [
|
|
9956
|
+
"off",
|
|
9957
|
+
"blc",
|
|
9958
|
+
"wdr",
|
|
9959
|
+
"hlc"
|
|
9960
|
+
]
|
|
9961
|
+
}
|
|
9962
|
+
],
|
|
9963
|
+
"intercom": [
|
|
9964
|
+
{
|
|
9965
|
+
"path": "talking",
|
|
9966
|
+
"valueType": "boolean"
|
|
9967
|
+
},
|
|
9968
|
+
{
|
|
9969
|
+
"path": "lastSessionAt",
|
|
9970
|
+
"valueType": "number"
|
|
9971
|
+
},
|
|
9972
|
+
{
|
|
9973
|
+
"path": "ability.sampleRate",
|
|
9974
|
+
"valueType": "number"
|
|
9975
|
+
},
|
|
9976
|
+
{
|
|
9977
|
+
"path": "ability.duplex",
|
|
9978
|
+
"valueType": "enum",
|
|
9979
|
+
"enumValues": ["half", "full"]
|
|
9980
|
+
},
|
|
9981
|
+
{
|
|
9982
|
+
"path": "ability.maxBacklogMs",
|
|
9983
|
+
"valueType": "number"
|
|
9984
|
+
}
|
|
9985
|
+
],
|
|
9986
|
+
"lawn-mower-control": [
|
|
9987
|
+
{
|
|
9988
|
+
"path": "activity",
|
|
9989
|
+
"valueType": "enum",
|
|
9990
|
+
"enumValues": [
|
|
9991
|
+
"idle",
|
|
9992
|
+
"mowing",
|
|
9993
|
+
"paused",
|
|
9994
|
+
"docked",
|
|
9995
|
+
"error"
|
|
9996
|
+
]
|
|
9997
|
+
},
|
|
9998
|
+
{
|
|
9999
|
+
"path": "batteryLevel",
|
|
10000
|
+
"valueType": "number"
|
|
10001
|
+
},
|
|
10002
|
+
{
|
|
10003
|
+
"path": "progressPercent",
|
|
10004
|
+
"valueType": "number"
|
|
10005
|
+
},
|
|
10006
|
+
{
|
|
10007
|
+
"path": "currentCode",
|
|
10008
|
+
"valueType": "number"
|
|
10009
|
+
},
|
|
10010
|
+
{
|
|
10011
|
+
"path": "currentCodeLabel",
|
|
10012
|
+
"valueType": "string"
|
|
10013
|
+
},
|
|
10014
|
+
{
|
|
10015
|
+
"path": "severity",
|
|
10016
|
+
"valueType": "enum",
|
|
10017
|
+
"enumValues": [
|
|
10018
|
+
"info",
|
|
10019
|
+
"warning",
|
|
10020
|
+
"error"
|
|
10021
|
+
]
|
|
10022
|
+
}
|
|
10023
|
+
],
|
|
10024
|
+
"lock-control": [{
|
|
10025
|
+
"path": "state",
|
|
10026
|
+
"valueType": "enum",
|
|
10027
|
+
"enumValues": [
|
|
10028
|
+
"locked",
|
|
10029
|
+
"unlocked",
|
|
10030
|
+
"locking",
|
|
10031
|
+
"unlocking",
|
|
10032
|
+
"jammed"
|
|
10033
|
+
]
|
|
10034
|
+
}],
|
|
10035
|
+
"media-player": [
|
|
10036
|
+
{
|
|
10037
|
+
"path": "state",
|
|
10038
|
+
"valueType": "enum",
|
|
10039
|
+
"enumValues": [
|
|
10040
|
+
"off",
|
|
10041
|
+
"on",
|
|
10042
|
+
"idle",
|
|
10043
|
+
"playing",
|
|
10044
|
+
"paused",
|
|
10045
|
+
"buffering",
|
|
10046
|
+
"standby"
|
|
10047
|
+
]
|
|
10048
|
+
},
|
|
10049
|
+
{
|
|
10050
|
+
"path": "volumeLevel",
|
|
10051
|
+
"valueType": "number"
|
|
10052
|
+
},
|
|
10053
|
+
{
|
|
10054
|
+
"path": "isMuted",
|
|
10055
|
+
"valueType": "boolean"
|
|
10056
|
+
},
|
|
10057
|
+
{
|
|
10058
|
+
"path": "source",
|
|
10059
|
+
"valueType": "string"
|
|
10060
|
+
},
|
|
10061
|
+
{
|
|
10062
|
+
"path": "currentMedia.type",
|
|
10063
|
+
"valueType": "string"
|
|
10064
|
+
},
|
|
10065
|
+
{
|
|
10066
|
+
"path": "currentMedia.title",
|
|
10067
|
+
"valueType": "string"
|
|
10068
|
+
},
|
|
10069
|
+
{
|
|
10070
|
+
"path": "currentMedia.artist",
|
|
10071
|
+
"valueType": "string"
|
|
10072
|
+
},
|
|
10073
|
+
{
|
|
10074
|
+
"path": "currentMedia.album",
|
|
10075
|
+
"valueType": "string"
|
|
10076
|
+
},
|
|
10077
|
+
{
|
|
10078
|
+
"path": "currentMedia.imageUrl",
|
|
10079
|
+
"valueType": "string"
|
|
10080
|
+
},
|
|
10081
|
+
{
|
|
10082
|
+
"path": "positionMs",
|
|
10083
|
+
"valueType": "number"
|
|
10084
|
+
},
|
|
10085
|
+
{
|
|
10086
|
+
"path": "durationMs",
|
|
10087
|
+
"valueType": "number"
|
|
10088
|
+
},
|
|
10089
|
+
{
|
|
10090
|
+
"path": "shuffle",
|
|
10091
|
+
"valueType": "boolean"
|
|
10092
|
+
},
|
|
10093
|
+
{
|
|
10094
|
+
"path": "repeat",
|
|
10095
|
+
"valueType": "enum",
|
|
10096
|
+
"enumValues": [
|
|
10097
|
+
"off",
|
|
10098
|
+
"all",
|
|
10099
|
+
"one"
|
|
10100
|
+
]
|
|
10101
|
+
}
|
|
10102
|
+
],
|
|
10103
|
+
"motion": [
|
|
10104
|
+
{
|
|
10105
|
+
"path": "detected",
|
|
10106
|
+
"valueType": "boolean"
|
|
10107
|
+
},
|
|
10108
|
+
{
|
|
10109
|
+
"path": "lastDetectedAt",
|
|
10110
|
+
"valueType": "number"
|
|
10111
|
+
},
|
|
10112
|
+
{
|
|
10113
|
+
"path": "autoClearAfterMs",
|
|
10114
|
+
"valueType": "number"
|
|
10115
|
+
}
|
|
10116
|
+
],
|
|
10117
|
+
"motion-trigger": [{
|
|
10118
|
+
"path": "enabled",
|
|
10119
|
+
"valueType": "boolean"
|
|
10120
|
+
}],
|
|
10121
|
+
"motion-zones": [{
|
|
10122
|
+
"path": "enabled",
|
|
10123
|
+
"valueType": "boolean"
|
|
10124
|
+
}, {
|
|
10125
|
+
"path": "sensitivity",
|
|
10126
|
+
"valueType": "number"
|
|
10127
|
+
}],
|
|
10128
|
+
"mqtt-broker": [{
|
|
10129
|
+
"path": "brokerCount",
|
|
10130
|
+
"valueType": "number"
|
|
10131
|
+
}, {
|
|
10132
|
+
"path": "embeddedRunning",
|
|
10133
|
+
"valueType": "boolean"
|
|
10134
|
+
}],
|
|
10135
|
+
"native-object-detection": [{
|
|
10136
|
+
"path": "enabled",
|
|
10137
|
+
"valueType": "boolean"
|
|
10138
|
+
}],
|
|
10139
|
+
"navigation": [
|
|
10140
|
+
{
|
|
10141
|
+
"path": "mode",
|
|
10142
|
+
"valueType": "enum",
|
|
10143
|
+
"enumValues": [
|
|
10144
|
+
"idle",
|
|
10145
|
+
"cleaning",
|
|
10146
|
+
"spot",
|
|
10147
|
+
"following",
|
|
10148
|
+
"goto",
|
|
10149
|
+
"returning",
|
|
10150
|
+
"paused",
|
|
10151
|
+
"unknown"
|
|
10152
|
+
]
|
|
10153
|
+
},
|
|
10154
|
+
{
|
|
10155
|
+
"path": "following",
|
|
10156
|
+
"valueType": "boolean"
|
|
10157
|
+
},
|
|
10158
|
+
{
|
|
10159
|
+
"path": "flash",
|
|
10160
|
+
"valueType": "boolean"
|
|
10161
|
+
},
|
|
10162
|
+
{
|
|
10163
|
+
"path": "lightMode",
|
|
10164
|
+
"valueType": "enum",
|
|
10165
|
+
"enumValues": ["auto", "manual"]
|
|
10166
|
+
},
|
|
10167
|
+
{
|
|
10168
|
+
"path": "lightLevel",
|
|
10169
|
+
"valueType": "number"
|
|
10170
|
+
}
|
|
10171
|
+
],
|
|
10172
|
+
"network-link": [
|
|
10173
|
+
{
|
|
10174
|
+
"path": "type",
|
|
10175
|
+
"valueType": "enum",
|
|
10176
|
+
"enumValues": [
|
|
10177
|
+
"wifi",
|
|
10178
|
+
"ethernet",
|
|
10179
|
+
"cellular",
|
|
10180
|
+
"unknown"
|
|
10181
|
+
]
|
|
10182
|
+
},
|
|
10183
|
+
{
|
|
10184
|
+
"path": "signalPercent",
|
|
10185
|
+
"valueType": "number"
|
|
10186
|
+
},
|
|
10187
|
+
{
|
|
10188
|
+
"path": "rssiDbm",
|
|
10189
|
+
"valueType": "number"
|
|
10190
|
+
},
|
|
10191
|
+
{
|
|
10192
|
+
"path": "ssid",
|
|
10193
|
+
"valueType": "string"
|
|
10194
|
+
},
|
|
10195
|
+
{
|
|
10196
|
+
"path": "lastUpdated",
|
|
10197
|
+
"valueType": "number"
|
|
10198
|
+
}
|
|
10199
|
+
],
|
|
10200
|
+
"notifier": [
|
|
10201
|
+
{
|
|
10202
|
+
"path": "lastSentAt",
|
|
10203
|
+
"valueType": "number"
|
|
10204
|
+
},
|
|
10205
|
+
{
|
|
10206
|
+
"path": "lastError",
|
|
10207
|
+
"valueType": "string"
|
|
10208
|
+
},
|
|
10209
|
+
{
|
|
10210
|
+
"path": "queueDepth",
|
|
10211
|
+
"valueType": "number"
|
|
10212
|
+
},
|
|
10213
|
+
{
|
|
10214
|
+
"path": "supports.image",
|
|
10215
|
+
"valueType": "boolean"
|
|
10216
|
+
},
|
|
10217
|
+
{
|
|
10218
|
+
"path": "supports.priority",
|
|
10219
|
+
"valueType": "boolean"
|
|
10220
|
+
},
|
|
10221
|
+
{
|
|
10222
|
+
"path": "supports.data",
|
|
10223
|
+
"valueType": "boolean"
|
|
10224
|
+
},
|
|
10225
|
+
{
|
|
10226
|
+
"path": "supports.actions",
|
|
10227
|
+
"valueType": "boolean"
|
|
10228
|
+
},
|
|
10229
|
+
{
|
|
10230
|
+
"path": "supports.recipients",
|
|
10231
|
+
"valueType": "boolean"
|
|
10232
|
+
}
|
|
10233
|
+
],
|
|
10234
|
+
"numeric-sensor": [
|
|
10235
|
+
{
|
|
10236
|
+
"path": "value",
|
|
10237
|
+
"valueType": "number"
|
|
10238
|
+
},
|
|
10239
|
+
{
|
|
10240
|
+
"path": "unit",
|
|
10241
|
+
"valueType": "string"
|
|
10242
|
+
},
|
|
10243
|
+
{
|
|
10244
|
+
"path": "precision",
|
|
10245
|
+
"valueType": "number"
|
|
10246
|
+
}
|
|
10247
|
+
],
|
|
10248
|
+
"pet-feeder": [
|
|
10249
|
+
{
|
|
10250
|
+
"path": "foodLevel",
|
|
10251
|
+
"valueType": "number"
|
|
10252
|
+
},
|
|
10253
|
+
{
|
|
10254
|
+
"path": "food1",
|
|
10255
|
+
"valueType": "number"
|
|
10256
|
+
},
|
|
10257
|
+
{
|
|
10258
|
+
"path": "food2",
|
|
10259
|
+
"valueType": "number"
|
|
10260
|
+
},
|
|
10261
|
+
{
|
|
10262
|
+
"path": "lowFood",
|
|
10263
|
+
"valueType": "boolean"
|
|
10264
|
+
},
|
|
10265
|
+
{
|
|
10266
|
+
"path": "batteryPower",
|
|
10267
|
+
"valueType": "number"
|
|
10268
|
+
},
|
|
10269
|
+
{
|
|
10270
|
+
"path": "desiccantLeftDays",
|
|
10271
|
+
"valueType": "number"
|
|
10272
|
+
},
|
|
10273
|
+
{
|
|
10274
|
+
"path": "feeding",
|
|
10275
|
+
"valueType": "boolean"
|
|
10276
|
+
},
|
|
10277
|
+
{
|
|
10278
|
+
"path": "status",
|
|
10279
|
+
"valueType": "enum",
|
|
10280
|
+
"enumValues": [
|
|
10281
|
+
"normal",
|
|
10282
|
+
"offline",
|
|
10283
|
+
"on_batteries"
|
|
10284
|
+
]
|
|
10285
|
+
},
|
|
10286
|
+
{
|
|
10287
|
+
"path": "error",
|
|
10288
|
+
"valueType": "string"
|
|
10289
|
+
},
|
|
10290
|
+
{
|
|
10291
|
+
"path": "errorCode",
|
|
10292
|
+
"valueType": "number"
|
|
10293
|
+
},
|
|
10294
|
+
{
|
|
10295
|
+
"path": "isDualHopper",
|
|
10296
|
+
"valueType": "boolean"
|
|
10297
|
+
},
|
|
10298
|
+
{
|
|
10299
|
+
"path": "childLock",
|
|
10300
|
+
"valueType": "boolean"
|
|
10301
|
+
},
|
|
10302
|
+
{
|
|
10303
|
+
"path": "indicatorLight",
|
|
10304
|
+
"valueType": "boolean"
|
|
10305
|
+
},
|
|
10306
|
+
{
|
|
10307
|
+
"path": "feedSound",
|
|
10308
|
+
"valueType": "boolean"
|
|
10309
|
+
},
|
|
10310
|
+
{
|
|
10311
|
+
"path": "volume",
|
|
10312
|
+
"valueType": "number"
|
|
10313
|
+
}
|
|
10314
|
+
],
|
|
10315
|
+
"power-meter": [
|
|
10316
|
+
{
|
|
10317
|
+
"path": "watts",
|
|
10318
|
+
"valueType": "number"
|
|
10319
|
+
},
|
|
10320
|
+
{
|
|
10321
|
+
"path": "kwhTotal",
|
|
10322
|
+
"valueType": "number"
|
|
10323
|
+
},
|
|
10324
|
+
{
|
|
10325
|
+
"path": "volts",
|
|
10326
|
+
"valueType": "number"
|
|
10327
|
+
},
|
|
10328
|
+
{
|
|
10329
|
+
"path": "amps",
|
|
10330
|
+
"valueType": "number"
|
|
10331
|
+
},
|
|
10332
|
+
{
|
|
10333
|
+
"path": "va",
|
|
10334
|
+
"valueType": "number"
|
|
10335
|
+
},
|
|
10336
|
+
{
|
|
10337
|
+
"path": "powerFactor",
|
|
10338
|
+
"valueType": "number"
|
|
10339
|
+
},
|
|
10340
|
+
{
|
|
10341
|
+
"path": "unit",
|
|
10342
|
+
"valueType": "string"
|
|
10343
|
+
},
|
|
10344
|
+
{
|
|
10345
|
+
"path": "precision",
|
|
10346
|
+
"valueType": "number"
|
|
10347
|
+
}
|
|
10348
|
+
],
|
|
10349
|
+
"presence": [
|
|
10350
|
+
{
|
|
10351
|
+
"path": "state",
|
|
10352
|
+
"valueType": "string"
|
|
10353
|
+
},
|
|
10354
|
+
{
|
|
10355
|
+
"path": "location",
|
|
10356
|
+
"valueType": "string"
|
|
10357
|
+
},
|
|
10358
|
+
{
|
|
10359
|
+
"path": "gps.latitude",
|
|
10360
|
+
"valueType": "number"
|
|
10361
|
+
},
|
|
10362
|
+
{
|
|
10363
|
+
"path": "gps.longitude",
|
|
10364
|
+
"valueType": "number"
|
|
10365
|
+
},
|
|
10366
|
+
{
|
|
10367
|
+
"path": "gps.accuracyMeters",
|
|
10368
|
+
"valueType": "number"
|
|
10369
|
+
},
|
|
10370
|
+
{
|
|
10371
|
+
"path": "batteryPercent",
|
|
10372
|
+
"valueType": "number"
|
|
10373
|
+
}
|
|
10374
|
+
],
|
|
10375
|
+
"pressure-sensor": [
|
|
10376
|
+
{
|
|
10377
|
+
"path": "hpa",
|
|
10378
|
+
"valueType": "number"
|
|
10379
|
+
},
|
|
10380
|
+
{
|
|
10381
|
+
"path": "unit",
|
|
10382
|
+
"valueType": "string"
|
|
10383
|
+
},
|
|
10384
|
+
{
|
|
10385
|
+
"path": "precision",
|
|
10386
|
+
"valueType": "number"
|
|
10387
|
+
}
|
|
10388
|
+
],
|
|
10389
|
+
"privacy-mask": [{
|
|
10390
|
+
"path": "enabled",
|
|
10391
|
+
"valueType": "boolean"
|
|
10392
|
+
}, {
|
|
10393
|
+
"path": "audioEnabled",
|
|
10394
|
+
"valueType": "boolean"
|
|
10395
|
+
}],
|
|
10396
|
+
"ptz": [
|
|
10397
|
+
{
|
|
10398
|
+
"path": "pan",
|
|
10399
|
+
"valueType": "number"
|
|
10400
|
+
},
|
|
10401
|
+
{
|
|
10402
|
+
"path": "tilt",
|
|
10403
|
+
"valueType": "number"
|
|
10404
|
+
},
|
|
10405
|
+
{
|
|
10406
|
+
"path": "zoom",
|
|
10407
|
+
"valueType": "number"
|
|
10408
|
+
},
|
|
10409
|
+
{
|
|
10410
|
+
"path": "autofocus",
|
|
10411
|
+
"valueType": "boolean"
|
|
10412
|
+
}
|
|
10413
|
+
],
|
|
10414
|
+
"ptz-autotrack": [
|
|
10415
|
+
{
|
|
10416
|
+
"path": "enabled",
|
|
10417
|
+
"valueType": "boolean"
|
|
10418
|
+
},
|
|
10419
|
+
{
|
|
10420
|
+
"path": "currentSettings.targetType",
|
|
10421
|
+
"valueType": "string"
|
|
10422
|
+
},
|
|
10423
|
+
{
|
|
10424
|
+
"path": "currentSettings.stopDelaySeconds",
|
|
10425
|
+
"valueType": "number"
|
|
10426
|
+
},
|
|
10427
|
+
{
|
|
10428
|
+
"path": "currentSettings.disappearDelaySeconds",
|
|
10429
|
+
"valueType": "number"
|
|
10430
|
+
}
|
|
10431
|
+
],
|
|
10432
|
+
"recording-archive": [
|
|
10433
|
+
{
|
|
10434
|
+
"path": "deviceId",
|
|
10435
|
+
"valueType": "number"
|
|
10436
|
+
},
|
|
10437
|
+
{
|
|
10438
|
+
"path": "enabled",
|
|
10439
|
+
"valueType": "boolean"
|
|
10440
|
+
},
|
|
10441
|
+
{
|
|
10442
|
+
"path": "activeMode",
|
|
10443
|
+
"valueType": "enum",
|
|
10444
|
+
"enumValues": [
|
|
10445
|
+
"off",
|
|
10446
|
+
"events",
|
|
10447
|
+
"continuous",
|
|
10448
|
+
"on-device-decision"
|
|
10449
|
+
]
|
|
10450
|
+
},
|
|
10451
|
+
{
|
|
10452
|
+
"path": "nodeId",
|
|
10453
|
+
"valueType": "string"
|
|
10454
|
+
},
|
|
10455
|
+
{
|
|
10456
|
+
"path": "storageBytes",
|
|
10457
|
+
"valueType": "number"
|
|
10458
|
+
}
|
|
10459
|
+
],
|
|
10460
|
+
"recording-onboard": [
|
|
10461
|
+
{
|
|
10462
|
+
"path": "primaryTrackId",
|
|
10463
|
+
"valueType": "string"
|
|
10464
|
+
},
|
|
10465
|
+
{
|
|
10466
|
+
"path": "enabled",
|
|
10467
|
+
"valueType": "boolean"
|
|
10468
|
+
},
|
|
10469
|
+
{
|
|
10470
|
+
"path": "overwriteWhenFull",
|
|
10471
|
+
"valueType": "boolean"
|
|
10472
|
+
},
|
|
10473
|
+
{
|
|
10474
|
+
"path": "preRecordSec",
|
|
10475
|
+
"valueType": "number"
|
|
10476
|
+
},
|
|
10477
|
+
{
|
|
10478
|
+
"path": "postRecordSec",
|
|
10479
|
+
"valueType": "number"
|
|
10480
|
+
},
|
|
10481
|
+
{
|
|
10482
|
+
"path": "segmentMinutes",
|
|
10483
|
+
"valueType": "number"
|
|
10484
|
+
},
|
|
10485
|
+
{
|
|
10486
|
+
"path": "unreadableWindows",
|
|
10487
|
+
"valueType": "number"
|
|
10488
|
+
},
|
|
10489
|
+
{
|
|
10490
|
+
"path": "recordingToNowhere",
|
|
10491
|
+
"valueType": "boolean"
|
|
10492
|
+
}
|
|
10493
|
+
],
|
|
10494
|
+
"recording-signal": [{
|
|
10495
|
+
"path": "active",
|
|
10496
|
+
"valueType": "boolean"
|
|
10497
|
+
}, {
|
|
10498
|
+
"path": "reason",
|
|
10499
|
+
"valueType": "string"
|
|
10500
|
+
}],
|
|
10501
|
+
"running-state": [
|
|
10502
|
+
{
|
|
10503
|
+
"path": "running",
|
|
10504
|
+
"valueType": "boolean"
|
|
10505
|
+
},
|
|
10506
|
+
{
|
|
10507
|
+
"path": "since",
|
|
10508
|
+
"valueType": "number"
|
|
10509
|
+
},
|
|
10510
|
+
{
|
|
10511
|
+
"path": "source",
|
|
10512
|
+
"valueType": "enum",
|
|
10513
|
+
"enumValues": ["native", "assigned"]
|
|
10514
|
+
},
|
|
10515
|
+
{
|
|
10516
|
+
"path": "phase",
|
|
10517
|
+
"valueType": "string"
|
|
10518
|
+
}
|
|
10519
|
+
],
|
|
10520
|
+
"script-runner": [
|
|
10521
|
+
{
|
|
10522
|
+
"path": "isRunning",
|
|
10523
|
+
"valueType": "boolean"
|
|
10524
|
+
},
|
|
10525
|
+
{
|
|
10526
|
+
"path": "lastRunAt",
|
|
10527
|
+
"valueType": "number"
|
|
10528
|
+
},
|
|
10529
|
+
{
|
|
10530
|
+
"path": "lastRunSuccess",
|
|
10531
|
+
"valueType": "boolean"
|
|
10532
|
+
},
|
|
10533
|
+
{
|
|
10534
|
+
"path": "lastError",
|
|
10535
|
+
"valueType": "string"
|
|
10536
|
+
}
|
|
10537
|
+
],
|
|
10538
|
+
"smoke": [{
|
|
10539
|
+
"path": "detected",
|
|
10540
|
+
"valueType": "boolean"
|
|
10541
|
+
}],
|
|
10542
|
+
"snapshot": [
|
|
10543
|
+
{
|
|
10544
|
+
"path": "lastCapturedAt",
|
|
10545
|
+
"valueType": "number"
|
|
10546
|
+
},
|
|
10547
|
+
{
|
|
10548
|
+
"path": "cacheAgeMs",
|
|
10549
|
+
"valueType": "number"
|
|
10550
|
+
},
|
|
10551
|
+
{
|
|
10552
|
+
"path": "lastBytes",
|
|
10553
|
+
"valueType": "number"
|
|
10554
|
+
},
|
|
10555
|
+
{
|
|
10556
|
+
"path": "lastStreamId",
|
|
10557
|
+
"valueType": "string"
|
|
10558
|
+
}
|
|
10559
|
+
],
|
|
10560
|
+
"stream-params": [
|
|
10561
|
+
{
|
|
10562
|
+
"path": "main.width",
|
|
10563
|
+
"valueType": "number"
|
|
10564
|
+
},
|
|
10565
|
+
{
|
|
10566
|
+
"path": "main.height",
|
|
10567
|
+
"valueType": "number"
|
|
10568
|
+
},
|
|
10569
|
+
{
|
|
10570
|
+
"path": "main.codec",
|
|
10571
|
+
"valueType": "enum",
|
|
10572
|
+
"enumValues": ["h264", "h265"]
|
|
10573
|
+
},
|
|
10574
|
+
{
|
|
10575
|
+
"path": "main.framerate",
|
|
10576
|
+
"valueType": "number"
|
|
10577
|
+
},
|
|
10578
|
+
{
|
|
10579
|
+
"path": "main.bitrate",
|
|
10580
|
+
"valueType": "number"
|
|
10581
|
+
},
|
|
10582
|
+
{
|
|
10583
|
+
"path": "main.bitrateMode",
|
|
10584
|
+
"valueType": "enum",
|
|
10585
|
+
"enumValues": ["vbr", "cbr"]
|
|
10586
|
+
},
|
|
10587
|
+
{
|
|
10588
|
+
"path": "main.encoderProfile",
|
|
10589
|
+
"valueType": "enum",
|
|
10590
|
+
"enumValues": [
|
|
10591
|
+
"high",
|
|
10592
|
+
"main",
|
|
10593
|
+
"baseline"
|
|
10594
|
+
]
|
|
10595
|
+
},
|
|
10596
|
+
{
|
|
10597
|
+
"path": "main.gop",
|
|
10598
|
+
"valueType": "number"
|
|
10599
|
+
},
|
|
10600
|
+
{
|
|
10601
|
+
"path": "main.audio",
|
|
10602
|
+
"valueType": "boolean"
|
|
10603
|
+
},
|
|
10604
|
+
{
|
|
10605
|
+
"path": "sub.width",
|
|
10606
|
+
"valueType": "number"
|
|
10607
|
+
},
|
|
10608
|
+
{
|
|
10609
|
+
"path": "sub.height",
|
|
10610
|
+
"valueType": "number"
|
|
10611
|
+
},
|
|
10612
|
+
{
|
|
10613
|
+
"path": "sub.codec",
|
|
10614
|
+
"valueType": "enum",
|
|
10615
|
+
"enumValues": ["h264", "h265"]
|
|
10616
|
+
},
|
|
10617
|
+
{
|
|
10618
|
+
"path": "sub.framerate",
|
|
10619
|
+
"valueType": "number"
|
|
10620
|
+
},
|
|
10621
|
+
{
|
|
10622
|
+
"path": "sub.bitrate",
|
|
10623
|
+
"valueType": "number"
|
|
10624
|
+
},
|
|
10625
|
+
{
|
|
10626
|
+
"path": "sub.bitrateMode",
|
|
10627
|
+
"valueType": "enum",
|
|
10628
|
+
"enumValues": ["vbr", "cbr"]
|
|
10629
|
+
},
|
|
10630
|
+
{
|
|
10631
|
+
"path": "sub.encoderProfile",
|
|
10632
|
+
"valueType": "enum",
|
|
10633
|
+
"enumValues": [
|
|
10634
|
+
"high",
|
|
10635
|
+
"main",
|
|
10636
|
+
"baseline"
|
|
10637
|
+
]
|
|
10638
|
+
},
|
|
10639
|
+
{
|
|
10640
|
+
"path": "sub.gop",
|
|
10641
|
+
"valueType": "number"
|
|
10642
|
+
},
|
|
10643
|
+
{
|
|
10644
|
+
"path": "sub.audio",
|
|
10645
|
+
"valueType": "boolean"
|
|
10646
|
+
},
|
|
10647
|
+
{
|
|
10648
|
+
"path": "ext.width",
|
|
10649
|
+
"valueType": "number"
|
|
10650
|
+
},
|
|
10651
|
+
{
|
|
10652
|
+
"path": "ext.height",
|
|
10653
|
+
"valueType": "number"
|
|
10654
|
+
},
|
|
10655
|
+
{
|
|
10656
|
+
"path": "ext.codec",
|
|
10657
|
+
"valueType": "enum",
|
|
10658
|
+
"enumValues": ["h264", "h265"]
|
|
10659
|
+
},
|
|
10660
|
+
{
|
|
10661
|
+
"path": "ext.framerate",
|
|
10662
|
+
"valueType": "number"
|
|
10663
|
+
},
|
|
10664
|
+
{
|
|
10665
|
+
"path": "ext.bitrate",
|
|
10666
|
+
"valueType": "number"
|
|
10667
|
+
},
|
|
10668
|
+
{
|
|
10669
|
+
"path": "ext.bitrateMode",
|
|
10670
|
+
"valueType": "enum",
|
|
10671
|
+
"enumValues": ["vbr", "cbr"]
|
|
10672
|
+
},
|
|
10673
|
+
{
|
|
10674
|
+
"path": "ext.encoderProfile",
|
|
10675
|
+
"valueType": "enum",
|
|
10676
|
+
"enumValues": [
|
|
10677
|
+
"high",
|
|
10678
|
+
"main",
|
|
10679
|
+
"baseline"
|
|
10680
|
+
]
|
|
10681
|
+
},
|
|
10682
|
+
{
|
|
10683
|
+
"path": "ext.gop",
|
|
10684
|
+
"valueType": "number"
|
|
10685
|
+
},
|
|
10686
|
+
{
|
|
10687
|
+
"path": "ext.audio",
|
|
10688
|
+
"valueType": "boolean"
|
|
10689
|
+
}
|
|
10690
|
+
],
|
|
10691
|
+
"switch": [{
|
|
10692
|
+
"path": "on",
|
|
10693
|
+
"valueType": "boolean"
|
|
10694
|
+
}],
|
|
10695
|
+
"tamper": [{
|
|
10696
|
+
"path": "tampered",
|
|
10697
|
+
"valueType": "boolean"
|
|
10698
|
+
}],
|
|
10699
|
+
"temperature-sensor": [
|
|
10700
|
+
{
|
|
10701
|
+
"path": "celsius",
|
|
10702
|
+
"valueType": "number"
|
|
10703
|
+
},
|
|
10704
|
+
{
|
|
10705
|
+
"path": "unit",
|
|
10706
|
+
"valueType": "string"
|
|
10707
|
+
},
|
|
10708
|
+
{
|
|
10709
|
+
"path": "precision",
|
|
10710
|
+
"valueType": "number"
|
|
10711
|
+
}
|
|
10712
|
+
],
|
|
10713
|
+
"update": [
|
|
10714
|
+
{
|
|
10715
|
+
"path": "currentVersion",
|
|
10716
|
+
"valueType": "string"
|
|
10717
|
+
},
|
|
10718
|
+
{
|
|
10719
|
+
"path": "availableVersion",
|
|
10720
|
+
"valueType": "string"
|
|
10721
|
+
},
|
|
10722
|
+
{
|
|
10723
|
+
"path": "updatable",
|
|
10724
|
+
"valueType": "boolean"
|
|
10725
|
+
},
|
|
10726
|
+
{
|
|
10727
|
+
"path": "state",
|
|
10728
|
+
"valueType": "string"
|
|
10729
|
+
},
|
|
10730
|
+
{
|
|
10731
|
+
"path": "inProgress",
|
|
10732
|
+
"valueType": "boolean"
|
|
10733
|
+
}
|
|
10734
|
+
],
|
|
10735
|
+
"vacuum-control": [
|
|
10736
|
+
{
|
|
10737
|
+
"path": "state",
|
|
10738
|
+
"valueType": "enum",
|
|
10739
|
+
"enumValues": [
|
|
10740
|
+
"idle",
|
|
10741
|
+
"cleaning",
|
|
10742
|
+
"paused",
|
|
10743
|
+
"returning",
|
|
10744
|
+
"docked",
|
|
10745
|
+
"drying",
|
|
10746
|
+
"error"
|
|
10747
|
+
]
|
|
10748
|
+
},
|
|
10749
|
+
{
|
|
10750
|
+
"path": "batteryLevel",
|
|
10751
|
+
"valueType": "number"
|
|
10752
|
+
},
|
|
10753
|
+
{
|
|
10754
|
+
"path": "fanSpeed",
|
|
10755
|
+
"valueType": "string"
|
|
10756
|
+
},
|
|
10757
|
+
{
|
|
10758
|
+
"path": "progressPercent",
|
|
10759
|
+
"valueType": "number"
|
|
10760
|
+
},
|
|
10761
|
+
{
|
|
10762
|
+
"path": "errorCode",
|
|
10763
|
+
"valueType": "number"
|
|
10764
|
+
},
|
|
10765
|
+
{
|
|
10766
|
+
"path": "errorLabel",
|
|
10767
|
+
"valueType": "string"
|
|
10768
|
+
}
|
|
10769
|
+
],
|
|
10770
|
+
"valve": [{
|
|
10771
|
+
"path": "state",
|
|
10772
|
+
"valueType": "enum",
|
|
10773
|
+
"enumValues": [
|
|
10774
|
+
"open",
|
|
10775
|
+
"opening",
|
|
10776
|
+
"closing",
|
|
10777
|
+
"closed",
|
|
10778
|
+
"stopped"
|
|
10779
|
+
]
|
|
10780
|
+
}, {
|
|
10781
|
+
"path": "position",
|
|
10782
|
+
"valueType": "number"
|
|
10783
|
+
}],
|
|
10784
|
+
"vibration": [{
|
|
10785
|
+
"path": "detected",
|
|
10786
|
+
"valueType": "boolean"
|
|
10787
|
+
}],
|
|
10788
|
+
"water-heater": [
|
|
10789
|
+
{
|
|
10790
|
+
"path": "currentTemp",
|
|
10791
|
+
"valueType": "number"
|
|
10792
|
+
},
|
|
10793
|
+
{
|
|
10794
|
+
"path": "targetTemp",
|
|
10795
|
+
"valueType": "number"
|
|
10796
|
+
},
|
|
10797
|
+
{
|
|
10798
|
+
"path": "operationMode",
|
|
10799
|
+
"valueType": "string"
|
|
10800
|
+
},
|
|
10801
|
+
{
|
|
10802
|
+
"path": "away",
|
|
10803
|
+
"valueType": "boolean"
|
|
10804
|
+
},
|
|
10805
|
+
{
|
|
10806
|
+
"path": "minTemp",
|
|
10807
|
+
"valueType": "number"
|
|
10808
|
+
},
|
|
10809
|
+
{
|
|
10810
|
+
"path": "maxTemp",
|
|
10811
|
+
"valueType": "number"
|
|
10812
|
+
}
|
|
10813
|
+
],
|
|
10814
|
+
"weather": [
|
|
10815
|
+
{
|
|
10816
|
+
"path": "condition",
|
|
10817
|
+
"valueType": "string"
|
|
10818
|
+
},
|
|
10819
|
+
{
|
|
10820
|
+
"path": "temperature",
|
|
10821
|
+
"valueType": "number"
|
|
10822
|
+
},
|
|
10823
|
+
{
|
|
10824
|
+
"path": "temperatureUnit",
|
|
10825
|
+
"valueType": "string"
|
|
10826
|
+
},
|
|
10827
|
+
{
|
|
10828
|
+
"path": "humidity",
|
|
10829
|
+
"valueType": "number"
|
|
10830
|
+
},
|
|
10831
|
+
{
|
|
10832
|
+
"path": "pressure",
|
|
10833
|
+
"valueType": "number"
|
|
10834
|
+
},
|
|
10835
|
+
{
|
|
10836
|
+
"path": "pressureUnit",
|
|
10837
|
+
"valueType": "string"
|
|
10838
|
+
},
|
|
10839
|
+
{
|
|
10840
|
+
"path": "windSpeed",
|
|
10841
|
+
"valueType": "number"
|
|
10842
|
+
},
|
|
10843
|
+
{
|
|
10844
|
+
"path": "windSpeedUnit",
|
|
10845
|
+
"valueType": "string"
|
|
10846
|
+
},
|
|
10847
|
+
{
|
|
10848
|
+
"path": "windBearing",
|
|
10849
|
+
"valueType": "number"
|
|
10850
|
+
}
|
|
10851
|
+
],
|
|
10852
|
+
"zone-analytics": [
|
|
10853
|
+
{
|
|
10854
|
+
"path": "ts",
|
|
10855
|
+
"valueType": "number"
|
|
10856
|
+
},
|
|
10857
|
+
{
|
|
10858
|
+
"path": "frameWidth",
|
|
10859
|
+
"valueType": "number"
|
|
10860
|
+
},
|
|
10861
|
+
{
|
|
10862
|
+
"path": "frameHeight",
|
|
10863
|
+
"valueType": "number"
|
|
10864
|
+
},
|
|
10865
|
+
{
|
|
10866
|
+
"path": "frame.totalObjects",
|
|
10867
|
+
"valueType": "number"
|
|
10868
|
+
},
|
|
10869
|
+
{
|
|
10870
|
+
"path": "frame.standingObjects",
|
|
10871
|
+
"valueType": "number"
|
|
10872
|
+
},
|
|
10873
|
+
{
|
|
10874
|
+
"path": "frame.transientObjects",
|
|
10875
|
+
"valueType": "number"
|
|
10876
|
+
},
|
|
10877
|
+
{
|
|
10878
|
+
"path": "unzoned.totalObjects",
|
|
10879
|
+
"valueType": "number"
|
|
10880
|
+
},
|
|
10881
|
+
{
|
|
10882
|
+
"path": "unzoned.standingObjects",
|
|
10883
|
+
"valueType": "number"
|
|
10884
|
+
},
|
|
10885
|
+
{
|
|
10886
|
+
"path": "unzoned.transientObjects",
|
|
10887
|
+
"valueType": "number"
|
|
10888
|
+
}
|
|
10889
|
+
]
|
|
10890
|
+
});
|
|
8916
10891
|
/**
|
|
8917
10892
|
* AUTO-GENERATED by scripts/generate-device-scoped-caps.ts — DO NOT EDIT.
|
|
8918
10893
|
*
|
|
@@ -9412,7 +11387,7 @@ function errMsg(err) {
|
|
|
9412
11387
|
return String(err);
|
|
9413
11388
|
}
|
|
9414
11389
|
//#endregion
|
|
9415
|
-
//#region ../types/dist/composition-
|
|
11390
|
+
//#region ../types/dist/composition-kEl9mevu.mjs
|
|
9416
11391
|
/**
|
|
9417
11392
|
* Deterministic SHA-256 hash of an arbitrary serialisable value. The
|
|
9418
11393
|
* canonical form sorts object keys alphabetically at every depth so two
|
|
@@ -10665,7 +12640,7 @@ function gifDeriveSpeed(gifSpeed, videoSpeed) {
|
|
|
10665
12640
|
* runs at `fps / speed` in SOURCE time and `setpts` multiplies what survived.
|
|
10666
12641
|
* The trailing `fps` re-declares the rate, which is NOT redundant: `setpts`
|
|
10667
12642
|
* leaves the filter link advertising the sampled rate and the gif muxer
|
|
10668
|
-
* believes the link — measured on
|
|
12643
|
+
* believes the link — measured on 101 as a 3.01 s gif of ten frames.
|
|
10669
12644
|
*/
|
|
10670
12645
|
function gifFilterComplex(input) {
|
|
10671
12646
|
const speed = input.speed > 0 ? input.speed : 1;
|
|
@@ -11551,7 +13526,7 @@ function retrainRevisionConflictMessage(frameId, conflict) {
|
|
|
11551
13526
|
* ── Why a TABLE and not a log line ─────────────────────────────────────────
|
|
11552
13527
|
* `logs.query` is an in-memory ring. Measured on the live hub on 2026-09-08 it
|
|
11553
13528
|
* held 40 000 entries covering 38 minutes — the whole ring is under an hour of
|
|
11554
|
-
* fleet traffic. Every question this data is for ("how often, on camera
|
|
13529
|
+
* fleet traffic. Every question this data is for ("how often, on camera 102,
|
|
11555
13530
|
* over the week the operator complained about") outlives that ring by two
|
|
11556
13531
|
* orders of magnitude, and a previous investigation in this repo was blocked
|
|
11557
13532
|
* for precisely this reason. The gate ALREADY writes a log line per decision
|
|
@@ -11810,7 +13785,7 @@ var BirthDecisionQueryInputSchema = object({
|
|
|
11810
13785
|
* - A per-device bound multiplies by the fleet — 30 cameras at 500 each is
|
|
11811
13786
|
* 15 000 rows to protect a corpus that only ever gets read fleet-wide (the
|
|
11812
13787
|
* thing being mined is "what keeps going wrong", not "what goes wrong on
|
|
11813
|
-
*
|
|
13788
|
+
* 102"). One global ceiling is one number to reason about.
|
|
11814
13789
|
* - An AGE bound would delete the corpus for being old, which is the failure
|
|
11815
13790
|
* being fixed: a note from six months ago is the most valuable row in the
|
|
11816
13791
|
* table precisely because the pattern it describes has had time to repeat.
|
|
@@ -13359,7 +15334,7 @@ var LogChannelDescriptorSchema = object({
|
|
|
13359
15334
|
* `true` is a PROMISE with two halves, and both must hold: the gate is
|
|
13360
15335
|
* consulted with the numeric device id, AND every line the channel admits
|
|
13361
15336
|
* carries `tags: { deviceId }` with that same numeric id. The second half is
|
|
13362
|
-
* what makes `| json | deviceId="
|
|
15337
|
+
* what makes `| json | deviceId="102"` work in Loki — `loki-payload.ts`
|
|
13363
15338
|
* keeps `deviceId` out of the stream labels for cardinality, so the tag in
|
|
13364
15339
|
* the body is the only way to filter.
|
|
13365
15340
|
*
|
|
@@ -13735,7 +15710,7 @@ var ModelVariantGroupSchema = object({
|
|
|
13735
15710
|
precision: _enum(["fp32", "int8"]).optional(),
|
|
13736
15711
|
/**
|
|
13737
15712
|
* Training / latency-variant axis. Omit ⇒ the standard build. `test` marks
|
|
13738
|
-
* an alternate training of the same family (
|
|
15713
|
+
* an alternate training of the same family (plugin catalog `relu_test`); chip
|
|
13739
15714
|
* label is "Test".
|
|
13740
15715
|
*/
|
|
13741
15716
|
optimization: _enum(["standard", "test"]).optional(),
|
|
@@ -13987,8 +15962,8 @@ var ModelCatalogEntrySchema = object({
|
|
|
13987
15962
|
provider: ModelProviderIdSchema.optional(),
|
|
13988
15963
|
/**
|
|
13989
15964
|
* Per-MODEL class map override. Absent ⇒ the step's `StepDefinition.classMap`
|
|
13990
|
-
* applies (
|
|
13991
|
-
* labels already ARE the CamStack macros (
|
|
15965
|
+
* applies (plus catalog / COCO public catalog). Set on a custom model whose raw
|
|
15966
|
+
* labels already ARE the CamStack macros (plugin catalog identity map).
|
|
13992
15967
|
*/
|
|
13993
15968
|
classMap: DetectionCatalogClassMapSchema.optional(),
|
|
13994
15969
|
/**
|
|
@@ -16976,7 +18951,7 @@ method(object({
|
|
|
16976
18951
|
* `1` is real time and is the ONLY value that allows the copy branch —
|
|
16977
18952
|
* anything else forces `libx264` over the window. That was priced
|
|
16978
18953
|
* before it was chosen: a per-event burst measured at 0.23 s and 254 KB
|
|
16979
|
-
* on a real
|
|
18954
|
+
* on a real 101 720p cut, against 922 KB for the copy it replaces. A
|
|
16980
18955
|
* re-encode is capped at 720p (`EVENT_CLIP_ENCODE_MAX_WIDTH`), because
|
|
16981
18956
|
* once the decode is forced the width stops being free.
|
|
16982
18957
|
*/
|
|
@@ -17506,6 +19481,7 @@ var CompositionRunStatusSchema = _enum([
|
|
|
17506
19481
|
"starting",
|
|
17507
19482
|
"running",
|
|
17508
19483
|
"degraded",
|
|
19484
|
+
"incomplete",
|
|
17509
19485
|
"failed"
|
|
17510
19486
|
]);
|
|
17511
19487
|
var CompositionFieldStateKindSchema = _enum([
|
|
@@ -17726,6 +19702,7 @@ var CoreBlockStatusSchema = _enum([
|
|
|
17726
19702
|
"starting",
|
|
17727
19703
|
"running",
|
|
17728
19704
|
"degraded",
|
|
19705
|
+
"incomplete",
|
|
17729
19706
|
"failed"
|
|
17730
19707
|
]);
|
|
17731
19708
|
/** path → TypeScript source for a multi-file block. */
|
|
@@ -39760,7 +41737,7 @@ var PRIMARY_CATEGORIES = new Set(ENTRIES.map((e) => e.primaryCategory));
|
|
|
39760
41737
|
* `locationKey` is ALWAYS {@link locationIconKey} of the label — never the
|
|
39761
41738
|
* operator's casing. The registry matches labels trimmed + case-insensitively
|
|
39762
41739
|
* everywhere (`addLocation`, `removeLocation`, `renameLocation`), and a
|
|
39763
|
-
* case-only rename (`
|
|
41740
|
+
* case-only rename (`kitchen` → `Kitchen`) is a real edit this repo supports; a
|
|
39764
41741
|
* map keyed on the displayed casing would orphan its entry on exactly that
|
|
39765
41742
|
* edit. Consumers join by keying their own label through `locationIconKey`.
|
|
39766
41743
|
*/
|
|
@@ -39785,7 +41762,7 @@ var LocationDescriptionAssignmentSchema = object({
|
|
|
39785
41762
|
/**
|
|
39786
41763
|
* A SITE ZONE — a named part of the property that several locations belong to.
|
|
39787
41764
|
*
|
|
39788
|
-
* "
|
|
41765
|
+
* "Night zone" holds every bedroom; "Zona giorno" the living room and the
|
|
39789
41766
|
* kitchen. A camera belongs to exactly one location, and a location to at most
|
|
39790
41767
|
* one zone, so a camera's zone is derived and never stored on the device: the
|
|
39791
41768
|
* whole point of this entity is that grouping rooms touches no device row.
|
|
@@ -39814,7 +41791,7 @@ var LocationDescriptionAssignmentSchema = object({
|
|
|
39814
41791
|
* the locations inside it.
|
|
39815
41792
|
*
|
|
39816
41793
|
* The LABEL is carried alongside the key because the key is lossy on purpose —
|
|
39817
|
-
* a surface must show "
|
|
41794
|
+
* a surface must show "Night zone", not "night zone". Locations are carried
|
|
39818
41795
|
* here, rather than left to a second call, because every consumer wants both
|
|
39819
41796
|
* at once and a viewer that asked twice could render a zone whose membership
|
|
39820
41797
|
* it has not fetched yet.
|
|
@@ -42124,8 +44101,8 @@ var LoadContributionSchema = object({
|
|
|
42124
44101
|
"unattributable"
|
|
42125
44102
|
]),
|
|
42126
44103
|
/**
|
|
42127
|
-
* What ONE entry is, in the contributor's own words — `
|
|
42128
|
-
* `
|
|
44104
|
+
* What ONE entry is, in the contributor's own words — `101/high`,
|
|
44105
|
+
* `102/native`, `cuda:0 shared pool`. Free text because the unit differs per
|
|
42129
44106
|
* family and inventing a common one would lose the only information that
|
|
42130
44107
|
* makes two entries for the same camera distinguishable.
|
|
42131
44108
|
*/
|
|
@@ -45192,7 +47169,7 @@ var NcConditionsSchema = object({
|
|
|
45192
47169
|
* with the list under it is worse than no switch (D62).
|
|
45193
47170
|
*
|
|
45194
47171
|
* MEMBERS ARE FACE-GALLERY `Identity.id`s (uuid), not display names. A name is
|
|
45195
|
-
* renameable, and a rule authored on "
|
|
47172
|
+
* renameable, and a rule authored on "Alice" went silently dark the moment
|
|
45196
47173
|
* the operator fixed the spelling. The id reaches the record on
|
|
45197
47174
|
* `LabelAttribution.identityId`; the name is what the editor shows and what
|
|
45198
47175
|
* `{{label}}` renders.
|
|
@@ -45775,7 +47752,7 @@ var NcRulePatchSchema = NcRuleInputSchema.partial().extend({
|
|
|
45775
47752
|
* A rule scoped to one camera and one zone silently became a rule that
|
|
45776
47753
|
* matches EVERY event on EVERY camera, and lost its `media` policy
|
|
45777
47754
|
* (zoneCrop / gif / clip / frame) and its `priority` at the same time. Seen
|
|
45778
|
-
* live on 2026-08-12: a rule scoped to device
|
|
47755
|
+
* live on 2026-08-12: a rule scoped to device 102 fired on 104 and 101
|
|
45779
47756
|
* within a minute of a two-field patch.
|
|
45780
47757
|
*
|
|
45781
47758
|
* So every defaulted field is re-declared here WITHOUT its default. The
|
|
@@ -47303,8 +49280,8 @@ var NcAlarmSensorsSchema = object({
|
|
|
47303
49280
|
* own `sustainSeconds` (29 s on this hub), so its clip is anchored well in the
|
|
47304
49281
|
* past — and the other source, the recordings, cannot cover a recent moment:
|
|
47305
49282
|
* measured against `recording.getAvailability` for a 10 s window at several
|
|
47306
|
-
* anchors, full coverage arrived at −18 s on device
|
|
47307
|
-
*
|
|
49283
|
+
* anchors, full coverage arrived at −18 s on device 104 and −26 s on 101 and
|
|
49284
|
+
* 102. That edge is a PHASE of the 10-second segment cycle, not a number. The
|
|
47308
49285
|
* ring therefore has to hold the moment until the recordings can take it over:
|
|
47309
49286
|
* the worst measured phase (26 s) plus the confirmation lag (29 s) is 55 s, and
|
|
47310
49287
|
* 60 is the round number above it.
|
|
@@ -48509,7 +50486,7 @@ var LabelAttributionSchema = object({
|
|
|
48509
50486
|
* `Identity.id` or a plate-gallery `Vehicle.id` (both `randomUUID`).
|
|
48510
50487
|
*
|
|
48511
50488
|
* The text alone is a DISPLAY NAME, and a display name is renameable: a
|
|
48512
|
-
* notification rule authored on "
|
|
50489
|
+
* notification rule authored on "Alice" stopped matching the moment the
|
|
48513
50490
|
* operator fixed the spelling in the gallery, and nothing said so. The id is
|
|
48514
50491
|
* the thing that does not move, so it is what a rule matches on
|
|
48515
50492
|
* (`NcConditions.identities`) and the text is what a human is shown.
|
|
@@ -51296,7 +53273,7 @@ var pipelineAnalyticsCapability = {
|
|
|
51296
53273
|
* audio, stopping at the first hit — so on the live hub, where object
|
|
51297
53274
|
* events own no media of their own and 299 883 of 300 559 media rows are
|
|
51298
53275
|
* motion-owned, EVERY object event resolved to its motion namesake. A
|
|
51299
|
-
* track from 17:34 on camera
|
|
53276
|
+
* track from 17:34 on camera 101 was served a snapshot from 22:35 eleven
|
|
51300
53277
|
* days earlier, silently.
|
|
51301
53278
|
*
|
|
51302
53279
|
* D476 had already disambiguated the KEY (`motion:` vs `object:`); this is
|
|
@@ -51846,7 +53823,7 @@ method(_void(), array(PipelineEngineChoiceSchema)), method(_void(), PipelineEngi
|
|
|
51846
53823
|
/**
|
|
51847
53824
|
* Root-supplied detections for the tree's ROOT step (D730). Set by
|
|
51848
53825
|
* `runDetailSubtree` when the camera's root model supplies a crop-kind
|
|
51849
|
-
* step (a
|
|
53826
|
+
* step (a plus catalog `license_plate` for `plate-detection`): the step is
|
|
51850
53827
|
* NOT inferred, these boxes are its output, and its children (the plate
|
|
51851
53828
|
* reader) run on them through their own crop policy. Boxes are in the
|
|
51852
53829
|
* PIXELS of the image this call carries. Absent ⇒ the root step runs.
|
|
@@ -53523,7 +55500,7 @@ var RunnerCameraConfigSchema = object({
|
|
|
53523
55500
|
* detection session that asks for history. What shipped was a last-moment
|
|
53524
55501
|
* discard — `FrameSlot`'s throttle compares wall clocks, and ~4 s of media
|
|
53525
55502
|
* arriving inside a few hundred ms of wall clock looks to it like one frame's
|
|
53526
|
-
* worth. Device
|
|
55503
|
+
* worth. Device 102, 2026-09-08: a re-run of the SAME model over the stored
|
|
53527
55504
|
* recording scored the subject `vehicle 0.5669` — above the 0.50 floor —
|
|
53528
55505
|
* 1.68 s BEFORE the live track was born, on a frame that was in the pre-roll,
|
|
53529
55506
|
* was decoded, and was freed.
|
|
@@ -55601,7 +57578,7 @@ method(_void(), ProviderInfoSchema, { auth: "admin" }), method(object({ config:
|
|
|
55601
57578
|
* The signals a device can emit to WAKE its own stream.
|
|
55602
57579
|
*
|
|
55603
57580
|
* A camera whose stream is built on demand sleeps until something asks for it,
|
|
55604
|
-
* and "something" cannot be a consumer that is merely attached — a
|
|
57581
|
+
* and "something" cannot be a consumer that is merely attached — a external-catalog
|
|
55605
57582
|
* puller holds a session open for ever, and treating that as demand would keep
|
|
55606
57583
|
* a battery camera awake for ever, which is the whole thing the battery is for
|
|
55607
57584
|
* (D173). So the wake has to come from the CAMERA: an event it noticed by
|
|
@@ -56335,7 +58312,7 @@ var ClipSchema = object({
|
|
|
56335
58312
|
* {@link MAX_CLIP_EVENT_IDS}. Empty on footage-only clips.
|
|
56336
58313
|
*
|
|
56337
58314
|
* Bounded because it is not a payload the surface pages through: one visit on
|
|
56338
|
-
* device
|
|
58315
|
+
* device 101 carried 2 345 ids, and `eventIds` was 99% of a 153 KB
|
|
56339
58316
|
* camera-day. Read {@link eventCount} for the true total.
|
|
56340
58317
|
*/
|
|
56341
58318
|
eventIds: array(string()).optional(),
|
|
@@ -56480,7 +58457,7 @@ var ClipPlaybackSchema = object({
|
|
|
56480
58457
|
* camera has no recordings", which is the defect this whole line of work is
|
|
56481
58458
|
* about: a battery camera nobody woke (`sleeping`), a camera that could not be
|
|
56482
58459
|
* reached at all (`unreachable`, also what a provider that THREW reports), a
|
|
56483
|
-
* camera whose SD card is not mounted (`no-storage`, measured on
|
|
58460
|
+
* camera whose SD card is not mounted (`no-storage`, measured on 106 —
|
|
56484
58461
|
* `HddInfo mount 0`, honestly nothing to list rather than "no clips"), and a
|
|
56485
58462
|
* camera whose OWN index disagrees with its OWN calendar (`index-empty`,
|
|
56486
58463
|
* measured on 618: the calendar marks 3–20 September, days 6–20 list zero
|
|
@@ -56745,7 +58722,7 @@ DeviceType.Camera, method(object({
|
|
|
56745
58722
|
*
|
|
56746
58723
|
* It was optional, documented as "absent means the device's BOUND
|
|
56747
58724
|
* provider, which is CamStack on every camera". No code implemented
|
|
56748
|
-
* that. Measured on the live hub 2026-09-20 — device
|
|
58725
|
+
* that. Measured on the live hub 2026-09-20 — device 107, bound to
|
|
56749
58726
|
* `recorder` AND `provider-reolink` — a bare call with `limit: 3`
|
|
56750
58727
|
* answered SIX rows, three from each source, merged newest-first:
|
|
56751
58728
|
* `device-collection-dispatch.ts` simply left the fan-out un-narrowed,
|
|
@@ -57888,7 +59865,10 @@ var airQualitySensorCapability = {
|
|
|
57888
59865
|
*/
|
|
57889
59866
|
var AmbientLightSensorStatusSchema = object({
|
|
57890
59867
|
/** Current illuminance in lux (lx). */
|
|
57891
|
-
lux: number().min(0)
|
|
59868
|
+
lux: number().min(0).meta({
|
|
59869
|
+
unit: "lx",
|
|
59870
|
+
label: "Illuminance"
|
|
59871
|
+
}),
|
|
57892
59872
|
/** Ms epoch when the slice was last updated. */
|
|
57893
59873
|
lastFetchedAt: number(),
|
|
57894
59874
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -57931,7 +59911,12 @@ var ambientLightSensorCapability = {
|
|
|
57931
59911
|
} } },
|
|
57932
59912
|
/** Clock fields: written, but excluded from the compare that decides
|
|
57933
59913
|
* whether persisting is worth a SQLite commit. */
|
|
57934
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
59914
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
59915
|
+
customize: {
|
|
59916
|
+
version: 1,
|
|
59917
|
+
advanced: "derive",
|
|
59918
|
+
targets: []
|
|
59919
|
+
}
|
|
57935
59920
|
};
|
|
57936
59921
|
/**
|
|
57937
59922
|
* Per-class audio metrics aggregated over a sliding window.
|
|
@@ -58158,7 +60143,10 @@ var BatteryStatusSchema = object({
|
|
|
58158
60143
|
* Consumers must SKIP a null rather than coerce it — `battery-band` already
|
|
58159
60144
|
* declines to band a non-finite reading, which is the correct shape.
|
|
58160
60145
|
*/
|
|
58161
|
-
percentage: number().min(0).max(100).nullable()
|
|
60146
|
+
percentage: number().min(0).max(100).nullable().meta({
|
|
60147
|
+
unit: "%",
|
|
60148
|
+
label: "Charge"
|
|
60149
|
+
}),
|
|
58162
60150
|
/**
|
|
58163
60151
|
* Charging source. `'dc'` covers wall/USB adapters; `'solar'` is
|
|
58164
60152
|
* Reolink-specific for the Solar Panel 2 accessory (will become
|
|
@@ -58177,13 +60165,13 @@ var BatteryStatusSchema = object({
|
|
|
58177
60165
|
"solar",
|
|
58178
60166
|
"none",
|
|
58179
60167
|
"unknown"
|
|
58180
|
-
]),
|
|
60168
|
+
]).meta({ label: "Charging source" }),
|
|
58181
60169
|
/**
|
|
58182
60170
|
* True when the camera firmware has gone into low-power mode. Battery
|
|
58183
60171
|
* providers MUST avoid polling during sleep — reading the battery
|
|
58184
60172
|
* wakes the camera up and drains charge.
|
|
58185
60173
|
*/
|
|
58186
|
-
sleeping: boolean(),
|
|
60174
|
+
sleeping: boolean().meta({ label: "Sleeping" }),
|
|
58187
60175
|
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
58188
60176
|
lastUpdated: number(),
|
|
58189
60177
|
/**
|
|
@@ -58223,7 +60211,7 @@ var BatteryStatusSchema = object({
|
|
|
58223
60211
|
* sub-threshold = low). UI MUST render "Normal"/"Low" instead of a
|
|
58224
60212
|
* misleading exact percentage. Absent/false → genuine 0–100 % reading.
|
|
58225
60213
|
*/
|
|
58226
|
-
binary: boolean().optional()
|
|
60214
|
+
binary: boolean().optional().meta({ label: "Binary indicator" })
|
|
58227
60215
|
});
|
|
58228
60216
|
var BATTERY_DEVICE_TYPES = [
|
|
58229
60217
|
DeviceType.Camera,
|
|
@@ -58237,6 +60225,7 @@ var BATTERY_DEVICE_TYPES = [
|
|
|
58237
60225
|
/** Generic Customize target for the percentage reading (D936). */
|
|
58238
60226
|
var batteryCustomize = {
|
|
58239
60227
|
version: 1,
|
|
60228
|
+
advanced: "derive",
|
|
58240
60229
|
targets: [{
|
|
58241
60230
|
id: "percentage",
|
|
58242
60231
|
cardinality: "scalar",
|
|
@@ -58387,7 +60376,7 @@ onStatusChanged: { data: object({
|
|
|
58387
60376
|
* with the right HomeKit / Alexa display category.
|
|
58388
60377
|
*/
|
|
58389
60378
|
var BinaryStatusSchema = object({
|
|
58390
|
-
on: boolean(),
|
|
60379
|
+
on: boolean().meta({ label: "On" }),
|
|
58391
60380
|
/** Ms epoch of the last transition. 0 if never observed. */
|
|
58392
60381
|
lastChangedAt: number()
|
|
58393
60382
|
});
|
|
@@ -58416,7 +60405,12 @@ var binaryCapability = {
|
|
|
58416
60405
|
history: { fields: { on: { kind: "boolean" } } },
|
|
58417
60406
|
/** Clock fields: written, but excluded from the compare that decides
|
|
58418
60407
|
* whether persisting is worth a SQLite commit. */
|
|
58419
|
-
volatileStateFields: ["lastChangedAt"]
|
|
60408
|
+
volatileStateFields: ["lastChangedAt"],
|
|
60409
|
+
customize: {
|
|
60410
|
+
version: 1,
|
|
60411
|
+
advanced: "derive",
|
|
60412
|
+
targets: []
|
|
60413
|
+
}
|
|
58420
60414
|
};
|
|
58421
60415
|
/**
|
|
58422
60416
|
* Dimmable-light brightness control. Co-exists with `switch` on the
|
|
@@ -58749,7 +60743,7 @@ var GridLayoutCellSchema = object({
|
|
|
58749
60743
|
*
|
|
58750
60744
|
* A grid's `high` composes its sources' `high` and its `low` their `low`, so a
|
|
58751
60745
|
* profile is on offer only when EVERY source can serve it. The refusal NAMES
|
|
58752
|
-
* the sources, because "this grid has no low" is not a finding — "
|
|
60746
|
+
* the sources, because "this grid has no low" is not a finding — "101 has no
|
|
58753
60747
|
* low" is, and it is the one an operator can act on.
|
|
58754
60748
|
*/
|
|
58755
60749
|
var GridProfileOfferSchema = object({
|
|
@@ -61343,7 +63337,10 @@ var humidifierCapability = {
|
|
|
61343
63337
|
*/
|
|
61344
63338
|
var HumiditySensorStatusSchema = object({
|
|
61345
63339
|
/** Current relative humidity, 0..100. */
|
|
61346
|
-
percent: number().min(0).max(100)
|
|
63340
|
+
percent: number().min(0).max(100).meta({
|
|
63341
|
+
unit: "%",
|
|
63342
|
+
label: "Humidity"
|
|
63343
|
+
}),
|
|
61347
63344
|
/** Ms epoch when the slice was last updated. */
|
|
61348
63345
|
lastFetchedAt: number(),
|
|
61349
63346
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -61385,7 +63382,12 @@ var humiditySensorCapability = {
|
|
|
61385
63382
|
} } },
|
|
61386
63383
|
/** Clock fields: written, but excluded from the compare that decides
|
|
61387
63384
|
* whether persisting is worth a SQLite commit. */
|
|
61388
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
63385
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
63386
|
+
customize: {
|
|
63387
|
+
version: 1,
|
|
63388
|
+
advanced: "derive",
|
|
63389
|
+
targets: []
|
|
63390
|
+
}
|
|
61389
63391
|
};
|
|
61390
63392
|
/**
|
|
61391
63393
|
* Image display cap. Models a single still image exposed by an integration —
|
|
@@ -65099,9 +67101,15 @@ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema)
|
|
|
65099
67101
|
*/
|
|
65100
67102
|
var PowerMeterStatusSchema = object({
|
|
65101
67103
|
/** Instantaneous power draw in watts. */
|
|
65102
|
-
watts: number().optional()
|
|
67104
|
+
watts: number().optional().meta({
|
|
67105
|
+
unit: "W",
|
|
67106
|
+
label: "Power"
|
|
67107
|
+
}),
|
|
65103
67108
|
/** Cumulative energy in kilowatt-hours since the meter was reset. */
|
|
65104
|
-
kwhTotal: number().optional()
|
|
67109
|
+
kwhTotal: number().optional().meta({
|
|
67110
|
+
unit: "kWh",
|
|
67111
|
+
label: "Energy"
|
|
67112
|
+
}),
|
|
65105
67113
|
/** Voltage in volts. */
|
|
65106
67114
|
volts: number().optional(),
|
|
65107
67115
|
/** Current in amperes. */
|
|
@@ -65186,7 +67194,12 @@ var powerMeterCapability = {
|
|
|
65186
67194
|
} },
|
|
65187
67195
|
/** Clock fields: written, but excluded from the compare that decides
|
|
65188
67196
|
* whether persisting is worth a SQLite commit. */
|
|
65189
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
67197
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
67198
|
+
customize: {
|
|
67199
|
+
version: 1,
|
|
67200
|
+
advanced: "derive",
|
|
67201
|
+
targets: []
|
|
67202
|
+
}
|
|
65190
67203
|
};
|
|
65191
67204
|
/**
|
|
65192
67205
|
* Presence cap. Models HA `person.*` and `device_tracker.*` entities
|
|
@@ -65608,9 +67621,9 @@ var PtzOptionsSchema = object({
|
|
|
65608
67621
|
* Reolink preset 0, Hikvision preset '1', Dahua preset 1 -- and on this fleet
|
|
65609
67622
|
* not one of the three cameras honours its own:
|
|
65610
67623
|
*
|
|
65611
|
-
*
|
|
65612
|
-
* 1438
|
|
65613
|
-
* 3836
|
|
67624
|
+
* 107 Camera camera Carol (reolink) preset 0 holds "stanza"
|
|
67625
|
+
* 1438 Camera dispensa (hikvision) preset 1 holds "Credenza"
|
|
67626
|
+
* 3836 Camera studio (amcrest) preset 1 holds "Preset1"
|
|
65614
67627
|
*
|
|
65615
67628
|
* So `goHome` meant "go wherever the operator happened to save in slot 0 or 1",
|
|
65616
67629
|
* and two of the three swallowed the failure in a bare `catch`. For autotrack
|
|
@@ -65854,7 +67867,7 @@ var RunningStateStatusSchema = object({
|
|
|
65854
67867
|
running: boolean().nullable(),
|
|
65855
67868
|
/** Epoch ms the current boolean began; null while `running` is null. */
|
|
65856
67869
|
since: number().nullable(),
|
|
65857
|
-
source: RunningStateSourceSchema,
|
|
67870
|
+
source: RunningStateSourceSchema.meta({ label: "Source" }),
|
|
65858
67871
|
phase: string().nullable(),
|
|
65859
67872
|
/** null until a reading has been published (D393). */
|
|
65860
67873
|
lastFetchedAt: number().nullable()
|
|
@@ -65868,6 +67881,7 @@ var RUNNING_DEVICE_TYPES = Object.values(DeviceType);
|
|
|
65868
67881
|
/** Generic Customize target for the running boolean (D936). */
|
|
65869
67882
|
var runningCustomize = {
|
|
65870
67883
|
version: 1,
|
|
67884
|
+
advanced: "derive",
|
|
65871
67885
|
targets: [{
|
|
65872
67886
|
id: "running",
|
|
65873
67887
|
cardinality: "scalar",
|
|
@@ -66009,7 +68023,7 @@ var RecordingAvailabilitySchema = object({
|
|
|
66009
68023
|
* would look identical. But the answer used to say nothing about that, so a
|
|
66010
68024
|
* caller asking "what can I export?" read the single preferred profile as
|
|
66011
68025
|
* the only one that exists — on this deployment every camera records `high`
|
|
66012
|
-
* AND `low`, the low tree holding 14 GB for camera
|
|
68026
|
+
* AND `low`, the low tree holding 14 GB for camera 101 alone, and the export
|
|
66013
68027
|
* UI could not see it.
|
|
66014
68028
|
*
|
|
66015
68029
|
* Cheap: it is the same shallow directory read the profile CHOICE already
|
|
@@ -66108,7 +68122,7 @@ var RecordingSourceOptionsSchema = object({
|
|
|
66108
68122
|
* `sparse` = gaps are the absence of one, and must be drawn as such.
|
|
66109
68123
|
*
|
|
66110
68124
|
* Not an onboard-only concession: measured 2026-09-24, OUR bar covers 98.8 %
|
|
66111
|
-
* of
|
|
68125
|
+
* of 107's day and 1.2 % of 1436's. It is a fact about a (source, camera)
|
|
66112
68126
|
* pair, and ours answers it per camera from `deriveRecordingMode`. */
|
|
66113
68127
|
coverage: _enum(["continuous", "sparse"]),
|
|
66114
68128
|
/** Where the playhead may be put.
|
|
@@ -66184,7 +68198,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(RecordingSourceS
|
|
|
66184
68198
|
* merely discouraged (D554 amended).
|
|
66185
68199
|
*
|
|
66186
68200
|
* It was learned the expensive way on `videoclips.listClips`: measured
|
|
66187
|
-
* on the live hub 2026-09-20, device
|
|
68201
|
+
* on the live hub 2026-09-20, device 107 bound to `recorder` AND
|
|
66188
68202
|
* `provider-reolink`, a bare call with `limit: 3` answered SIX rows,
|
|
66189
68203
|
* three from each source, merged — `device-collection-dispatch.ts`
|
|
66190
68204
|
* leaves an unpinned fan-out un-narrowed, so absence buys the union the
|
|
@@ -66785,7 +68799,7 @@ var ExportSpeedSchema = number().min(.25).max(32);
|
|
|
66785
68799
|
* on a 10 h window holding 29,393 s of footage every range landed late by the
|
|
66786
68800
|
* gap accumulated before it — up to 6,607 s, well past EOF. Nothing matched,
|
|
66787
68801
|
* the video was a uniform timelapse, and the log line reported the five ranges
|
|
66788
|
-
* that had been ASKED for (2026-08-13, export `57d14363`, camera
|
|
68802
|
+
* that had been ASKED for (2026-08-13, export `57d14363`, camera 101).
|
|
66789
68803
|
*
|
|
66790
68804
|
* Relative and not absolute epoch, because an absolute epoch would make every
|
|
66791
68805
|
* call site responsible for the same subtraction.
|
|
@@ -67525,7 +69539,7 @@ getStatus: method(object({ deviceId: number() }), RecordingSignalStatusSchema) }
|
|
|
67525
69539
|
* which put a "Scenes" tab on one camera's detail page. That is the wrong shape
|
|
67526
69540
|
* for the thing: a scene is a standing question about the property ("is the bin
|
|
67527
69541
|
* still out"), and the operator's question is "which of my scenes have tripped",
|
|
67528
|
-
* across every camera at once — not "what does camera
|
|
69542
|
+
* across every camera at once — not "what does camera 102 think". Buried one
|
|
67529
69543
|
* camera deep it also could not be found. The surface is now a top-level admin
|
|
67530
69544
|
* page (`/scenes`, `pages/Scenes.tsx`) that lists every scene on every camera and
|
|
67531
69545
|
* picks the camera inside the create flow, the same shape Events and Faces have.
|
|
@@ -68402,7 +70416,7 @@ var streamParamsCapability = {
|
|
|
68402
70416
|
* `getSettingsUISchema()` surface.
|
|
68403
70417
|
*/
|
|
68404
70418
|
var SwitchStatusSchema = object({
|
|
68405
|
-
on: boolean(),
|
|
70419
|
+
on: boolean().meta({ label: "On" }),
|
|
68406
70420
|
/** Ms epoch of the last state change. Useful for UI "X minutes ago". */
|
|
68407
70421
|
lastChangedAt: number()
|
|
68408
70422
|
});
|
|
@@ -68461,7 +70475,12 @@ var switchCapability = {
|
|
|
68461
70475
|
label: "On",
|
|
68462
70476
|
kind: "boolean"
|
|
68463
70477
|
}
|
|
68464
|
-
}] }
|
|
70478
|
+
}] },
|
|
70479
|
+
customize: {
|
|
70480
|
+
version: 1,
|
|
70481
|
+
advanced: "derive",
|
|
70482
|
+
targets: []
|
|
70483
|
+
}
|
|
68465
70484
|
};
|
|
68466
70485
|
/** C0 controls, DEL and the C1 range: none of them belongs in a name. */
|
|
68467
70486
|
function hasControlCharacter(value) {
|
|
@@ -69057,7 +71076,10 @@ var tamperCapability = {
|
|
|
69057
71076
|
*/
|
|
69058
71077
|
var TemperatureSensorStatusSchema = object({
|
|
69059
71078
|
/** Current temperature in Celsius. */
|
|
69060
|
-
celsius: number()
|
|
71079
|
+
celsius: number().meta({
|
|
71080
|
+
unit: "°C",
|
|
71081
|
+
label: "Temperature"
|
|
71082
|
+
}),
|
|
69061
71083
|
/** Ms epoch when the slice was last updated (push or poll). */
|
|
69062
71084
|
lastFetchedAt: number(),
|
|
69063
71085
|
/** Live display unit from the upstream source (e.g. HA
|
|
@@ -69100,7 +71122,12 @@ var temperatureSensorCapability = {
|
|
|
69100
71122
|
} } },
|
|
69101
71123
|
/** Clock fields: written, but excluded from the compare that decides
|
|
69102
71124
|
* whether persisting is worth a SQLite commit. */
|
|
69103
|
-
volatileStateFields: ["lastFetchedAt"]
|
|
71125
|
+
volatileStateFields: ["lastFetchedAt"],
|
|
71126
|
+
customize: {
|
|
71127
|
+
version: 1,
|
|
71128
|
+
advanced: "derive",
|
|
71129
|
+
targets: []
|
|
71130
|
+
}
|
|
69104
71131
|
};
|
|
69105
71132
|
/**
|
|
69106
71133
|
* toast — system-scoped singleton capability that streams toast
|
|
@@ -70646,6 +72673,10 @@ method(object({}), array(TrainingBaseModelSchema).readonly(), { auth: "admin" })
|
|
|
70646
72673
|
auth: "admin"
|
|
70647
72674
|
});
|
|
70648
72675
|
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
72676
|
+
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;
|
|
72677
|
+
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
72678
|
+
DeviceRole.BinarySensor, DeviceRole.MotionSensor;
|
|
72679
|
+
new Set(CAP_NAMES);
|
|
70649
72680
|
Object.freeze({
|
|
70650
72681
|
person: .5,
|
|
70651
72682
|
vehicle: .5,
|
|
@@ -84697,7 +86728,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
84697
86728
|
state: [{
|
|
84698
86729
|
kind: "boolean",
|
|
84699
86730
|
field: "on",
|
|
84700
|
-
label: t("
|
|
86731
|
+
label: t("On", "Acceso"),
|
|
84701
86732
|
whenTrue: t("When {device} turns active", "Quando {device} si attiva"),
|
|
84702
86733
|
whenFalse: t("When {device} turns inactive", "Quando {device} si disattiva"),
|
|
84703
86734
|
icon: "toggle-right"
|
|
@@ -88218,7 +90249,6 @@ var BucketAccumulator = class {
|
|
|
88218
90249
|
}
|
|
88219
90250
|
};
|
|
88220
90251
|
DeviceType.Camera;
|
|
88221
|
-
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;
|
|
88222
90252
|
/**
|
|
88223
90253
|
* A saved Customize assignment (D936). The schema is the type: callers use
|
|
88224
90254
|
* `z.infer`, they do not restate the shape.
|
|
@@ -88307,7 +90337,6 @@ object({
|
|
|
88307
90337
|
]),
|
|
88308
90338
|
reason: string().nullable()
|
|
88309
90339
|
});
|
|
88310
|
-
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
88311
90340
|
var G711_SCALE_CORRECTION_DB = {
|
|
88312
90341
|
PCMU: 20 * Math.log10(4),
|
|
88313
90342
|
PCMA: 20 * Math.log10(8)
|
|
@@ -90058,7 +92087,7 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
90058
92087
|
{
|
|
90059
92088
|
name: "summaryStreams",
|
|
90060
92089
|
label: "Summary: streams offline",
|
|
90061
|
-
example: "
|
|
92090
|
+
example: "Front door (high) — since 06:40",
|
|
90062
92091
|
kinds: ["stream-offline", "stream-online"]
|
|
90063
92092
|
},
|
|
90064
92093
|
{
|
|
@@ -90076,13 +92105,13 @@ var STATE_SUMMARY_SECTION_VARS = [
|
|
|
90076
92105
|
{
|
|
90077
92106
|
name: "summaryDetection",
|
|
90078
92107
|
label: "Summary: cameras detecting nothing",
|
|
90079
|
-
example: "
|
|
92108
|
+
example: "Front door — since 05:10",
|
|
90080
92109
|
kinds: ["detection-blind"]
|
|
90081
92110
|
},
|
|
90082
92111
|
{
|
|
90083
92112
|
name: "summaryNodes",
|
|
90084
92113
|
label: "Summary: nodes",
|
|
90085
|
-
example: "
|
|
92114
|
+
example: "agent-a — offline since 03:00",
|
|
90086
92115
|
kinds: [
|
|
90087
92116
|
"node-offline",
|
|
90088
92117
|
"node-online",
|
|
@@ -90166,7 +92195,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
90166
92195
|
{
|
|
90167
92196
|
name: "camera",
|
|
90168
92197
|
label: "Camera",
|
|
90169
|
-
example: "
|
|
92198
|
+
example: "Front door",
|
|
90170
92199
|
group: "subject",
|
|
90171
92200
|
families: ["rule", "timelapse"],
|
|
90172
92201
|
systemEventKinds: [...DEVICE_EVENTS, "export-completed"]
|
|
@@ -90334,7 +92363,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
90334
92363
|
{
|
|
90335
92364
|
name: "rule",
|
|
90336
92365
|
label: "Rule name",
|
|
90337
|
-
example: "
|
|
92366
|
+
example: "Front door notte",
|
|
90338
92367
|
group: "rule",
|
|
90339
92368
|
families: [
|
|
90340
92369
|
"rule",
|
|
@@ -90435,7 +92464,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
90435
92464
|
{
|
|
90436
92465
|
name: "deviceName",
|
|
90437
92466
|
label: "Device",
|
|
90438
|
-
example: "
|
|
92467
|
+
example: "Front door",
|
|
90439
92468
|
group: "system",
|
|
90440
92469
|
families: ["rule"],
|
|
90441
92470
|
fields: [...RULE_TEXT],
|
|
@@ -90445,7 +92474,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
90445
92474
|
{
|
|
90446
92475
|
name: "locations",
|
|
90447
92476
|
label: "Intrusion locations",
|
|
90448
|
-
example: "
|
|
92477
|
+
example: "Front door, Hallway, Hall",
|
|
90449
92478
|
group: "system",
|
|
90450
92479
|
families: ["rule"],
|
|
90451
92480
|
fields: [...RULE_TEXT],
|
|
@@ -90455,7 +92484,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
90455
92484
|
{
|
|
90456
92485
|
name: "deviceId",
|
|
90457
92486
|
label: "Device id",
|
|
90458
|
-
example: "
|
|
92487
|
+
example: "102",
|
|
90459
92488
|
group: "system",
|
|
90460
92489
|
families: ["rule"],
|
|
90461
92490
|
fields: [...RULE_TEXT],
|
|
@@ -90543,7 +92572,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
90543
92572
|
{
|
|
90544
92573
|
name: "nodeName",
|
|
90545
92574
|
label: "Node name",
|
|
90546
|
-
example: "
|
|
92575
|
+
example: "agent-a",
|
|
90547
92576
|
group: "system",
|
|
90548
92577
|
families: ["rule"],
|
|
90549
92578
|
fields: [...RULE_TEXT],
|
|
@@ -90564,7 +92593,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
90564
92593
|
name: "devices",
|
|
90565
92594
|
label: "Devices",
|
|
90566
92595
|
description: "node-inference-unavailable: the affected cameras, comma-joined. Alarm arm / arming / refusal: HOW MANY devices are armed (or open).",
|
|
90567
|
-
example: "
|
|
92596
|
+
example: "Front door, Garage",
|
|
90568
92597
|
group: "system",
|
|
90569
92598
|
families: ["rule"],
|
|
90570
92599
|
fields: [...RULE_TEXT],
|
|
@@ -90765,7 +92794,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
90765
92794
|
name: "nodes",
|
|
90766
92795
|
label: "Nodes",
|
|
90767
92796
|
description: "Comma-joined node ids, when an update spans more than one — the single-node case names it through {{nodeId}} instead. `incomingFromUpdateAvailable` (event-intake.ts) fills `nodes` from ONE shared textParams object for both addon- and server-update-available, exactly like packageName/currentVersion/latestVersion/count — only the shipped TEXT (system.server-update-available.body.onNodes) reads it today, but the var is real on both kinds.",
|
|
90768
|
-
example: "hub,
|
|
92797
|
+
example: "hub, agent-a",
|
|
90769
92798
|
group: "system",
|
|
90770
92799
|
families: ["rule"],
|
|
90771
92800
|
fields: [...RULE_TEXT],
|
|
@@ -90876,7 +92905,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
90876
92905
|
{
|
|
90877
92906
|
name: "title",
|
|
90878
92907
|
label: "Export or alert title",
|
|
90879
|
-
example: "
|
|
92908
|
+
example: "Front door 08:00",
|
|
90880
92909
|
group: "system",
|
|
90881
92910
|
families: ["rule"],
|
|
90882
92911
|
fields: [...RULE_TEXT],
|
|
@@ -90990,7 +93019,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
90990
93019
|
name: "names",
|
|
90991
93020
|
label: "Device names",
|
|
90992
93021
|
description: "Armed / arming: the Active devices (or every skipped name when none are Active). Refusal: the open sensors.",
|
|
90993
|
-
example: "
|
|
93022
|
+
example: "Front door, Garage",
|
|
90994
93023
|
group: "system",
|
|
90995
93024
|
families: ["rule"],
|
|
90996
93025
|
fields: [...RULE_TEXT],
|
|
@@ -91038,7 +93067,7 @@ var NC_TEMPLATE_VARS = [
|
|
|
91038
93067
|
name: "bypassedNames",
|
|
91039
93068
|
label: "Bypassed sensors",
|
|
91040
93069
|
description: "Sensors the operator armed around because they were open.",
|
|
91041
|
-
example: "Finestra
|
|
93070
|
+
example: "Finestra porch",
|
|
91042
93071
|
group: "system",
|
|
91043
93072
|
families: ["rule"],
|
|
91044
93073
|
fields: [...RULE_TEXT],
|
|
@@ -92090,7 +94119,7 @@ var TimelapseRuleInputSchema = object({
|
|
|
92090
94119
|
* The caption a rule that never set one gets.
|
|
92091
94120
|
*
|
|
92092
94121
|
* Rendered through the ordinary `{{var}}` pass at delivery, so a rule created
|
|
92093
|
-
* before this field existed still reads "Timelapse
|
|
94122
|
+
* before this field existed still reads "Timelapse Camera front door" and
|
|
92094
94123
|
* not the literal braces.
|
|
92095
94124
|
*/
|
|
92096
94125
|
var DEFAULT_TIMELAPSE_PREVIEW_TEXT = "Timelapse {{camera}}";
|
|
@@ -93286,6 +95315,12 @@ Object.defineProperty(exports, "BucketAccumulator", {
|
|
|
93286
95315
|
return BucketAccumulator;
|
|
93287
95316
|
}
|
|
93288
95317
|
});
|
|
95318
|
+
Object.defineProperty(exports, "CAP_ADVANCE_FIELDS", {
|
|
95319
|
+
enumerable: true,
|
|
95320
|
+
get: function() {
|
|
95321
|
+
return CAP_ADVANCE_FIELDS;
|
|
95322
|
+
}
|
|
95323
|
+
});
|
|
93289
95324
|
Object.defineProperty(exports, "CLIP_EMBEDDING_STEP_ID", {
|
|
93290
95325
|
enumerable: true,
|
|
93291
95326
|
get: function() {
|