@camstack/addon-model-studio 1.1.313 → 1.1.315
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/CHANGELOG.md +12 -0
- package/dist/{MotionZonesSettings-Bbq95ygz.mjs → MotionZonesSettings-CMawQJsh.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-ZpD6VN7X.mjs → PrivacyMaskSettings-CgnGd4mf.mjs} +4 -4
- package/dist/{SceneMonitorEditor-BvsLHttM.mjs → SceneMonitorEditor-DWT-TJnC.mjs} +3 -3
- package/dist/_stub.js +6607 -6476
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-vhAznt0g.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BMPYqtXC.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DX84dVuY.mjs +26 -0
- package/dist/addon-model-studio.css +1 -1
- package/dist/{hostInit-BIVqb0f7.mjs → hostInit-D55wgKus.mjs} +2 -2
- package/dist/model-studio.addon.js +174 -122
- package/dist/model-studio.addon.mjs +174 -122
- package/dist/{player-overlays-Dc4klu5U.mjs → player-overlays-BgD3YVin.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-D28CBU7-.mjs → responsive-LheddRXr.mjs} +1 -1
- package/dist/{scene-monitor-copy-KG_LV8wy.mjs → scene-monitor-copy-BwVALZ45.mjs} +1 -1
- package/dist/{square-BpIRNy9u.mjs → square-DmabZIoV.mjs} +1 -1
- package/dist/{trash-2-BwbD1FGM.mjs → trash-2-UrytgZd6.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CeE6-aSe.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-DEQI__Rz.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DxAMUMtD.mjs +0 -26
|
@@ -5842,7 +5842,7 @@ var ZodIssueCode = {
|
|
|
5842
5842
|
var ZodFirstPartyTypeKind;
|
|
5843
5843
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5844
5844
|
//#endregion
|
|
5845
|
-
//#region ../types/dist/sleep-
|
|
5845
|
+
//#region ../types/dist/sleep-Crlmu_tO.mjs
|
|
5846
5846
|
/**
|
|
5847
5847
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5848
5848
|
* window to float samples (D455).
|
|
@@ -9162,11 +9162,11 @@ var CAP_NAMES = Object.freeze([
|
|
|
9162
9162
|
Object.freeze({
|
|
9163
9163
|
"air-quality-sensor": [
|
|
9164
9164
|
{
|
|
9165
|
-
"path": "
|
|
9165
|
+
"path": "co2",
|
|
9166
9166
|
"valueType": "number"
|
|
9167
9167
|
},
|
|
9168
9168
|
{
|
|
9169
|
-
"path": "
|
|
9169
|
+
"path": "voc",
|
|
9170
9170
|
"valueType": "number"
|
|
9171
9171
|
},
|
|
9172
9172
|
{
|
|
@@ -9216,7 +9216,7 @@ Object.freeze({
|
|
|
9216
9216
|
}
|
|
9217
9217
|
],
|
|
9218
9218
|
"ambient-light-sensor": [{
|
|
9219
|
-
"path": "
|
|
9219
|
+
"path": "illuminance",
|
|
9220
9220
|
"valueType": "number"
|
|
9221
9221
|
}],
|
|
9222
9222
|
"audio-metrics": [
|
|
@@ -9277,7 +9277,7 @@ Object.freeze({
|
|
|
9277
9277
|
],
|
|
9278
9278
|
"battery": [
|
|
9279
9279
|
{
|
|
9280
|
-
"path": "
|
|
9280
|
+
"path": "level",
|
|
9281
9281
|
"valueType": "number"
|
|
9282
9282
|
},
|
|
9283
9283
|
{
|
|
@@ -9299,7 +9299,7 @@ Object.freeze({
|
|
|
9299
9299
|
"valueType": "number"
|
|
9300
9300
|
},
|
|
9301
9301
|
{
|
|
9302
|
-
"path": "
|
|
9302
|
+
"path": "voltage",
|
|
9303
9303
|
"valueType": "number"
|
|
9304
9304
|
},
|
|
9305
9305
|
{
|
|
@@ -9320,7 +9320,7 @@ Object.freeze({
|
|
|
9320
9320
|
"valueType": "boolean"
|
|
9321
9321
|
}],
|
|
9322
9322
|
"brightness": [{
|
|
9323
|
-
"path": "
|
|
9323
|
+
"path": "level",
|
|
9324
9324
|
"valueType": "number"
|
|
9325
9325
|
}],
|
|
9326
9326
|
"broker": [{
|
|
@@ -9521,7 +9521,7 @@ Object.freeze({
|
|
|
9521
9521
|
"valueType": "number"
|
|
9522
9522
|
},
|
|
9523
9523
|
{
|
|
9524
|
-
"path": "
|
|
9524
|
+
"path": "colorTemperature",
|
|
9525
9525
|
"valueType": "number"
|
|
9526
9526
|
}
|
|
9527
9527
|
],
|
|
@@ -9700,15 +9700,15 @@ Object.freeze({
|
|
|
9700
9700
|
"valueType": "string"
|
|
9701
9701
|
},
|
|
9702
9702
|
{
|
|
9703
|
-
"path": "
|
|
9703
|
+
"path": "remaining",
|
|
9704
9704
|
"valueType": "number"
|
|
9705
9705
|
},
|
|
9706
9706
|
{
|
|
9707
|
-
"path": "
|
|
9707
|
+
"path": "delayedStart",
|
|
9708
9708
|
"valueType": "number"
|
|
9709
9709
|
},
|
|
9710
9710
|
{
|
|
9711
|
-
"path": "
|
|
9711
|
+
"path": "progress",
|
|
9712
9712
|
"valueType": "number"
|
|
9713
9713
|
},
|
|
9714
9714
|
{
|
|
@@ -9822,7 +9822,7 @@ Object.freeze({
|
|
|
9822
9822
|
],
|
|
9823
9823
|
"fan-control": [
|
|
9824
9824
|
{
|
|
9825
|
-
"path": "
|
|
9825
|
+
"path": "speed",
|
|
9826
9826
|
"valueType": "number"
|
|
9827
9827
|
},
|
|
9828
9828
|
{
|
|
@@ -9922,7 +9922,7 @@ Object.freeze({
|
|
|
9922
9922
|
}
|
|
9923
9923
|
],
|
|
9924
9924
|
"humidity-sensor": [{
|
|
9925
|
-
"path": "
|
|
9925
|
+
"path": "humidity",
|
|
9926
9926
|
"valueType": "number"
|
|
9927
9927
|
}],
|
|
9928
9928
|
"image": [{
|
|
@@ -10032,7 +10032,7 @@ Object.freeze({
|
|
|
10032
10032
|
"valueType": "number"
|
|
10033
10033
|
},
|
|
10034
10034
|
{
|
|
10035
|
-
"path": "
|
|
10035
|
+
"path": "progress",
|
|
10036
10036
|
"valueType": "number"
|
|
10037
10037
|
},
|
|
10038
10038
|
{
|
|
@@ -10111,11 +10111,11 @@ Object.freeze({
|
|
|
10111
10111
|
"valueType": "string"
|
|
10112
10112
|
},
|
|
10113
10113
|
{
|
|
10114
|
-
"path": "
|
|
10114
|
+
"path": "position",
|
|
10115
10115
|
"valueType": "number"
|
|
10116
10116
|
},
|
|
10117
10117
|
{
|
|
10118
|
-
"path": "
|
|
10118
|
+
"path": "duration",
|
|
10119
10119
|
"valueType": "number"
|
|
10120
10120
|
},
|
|
10121
10121
|
{
|
|
@@ -10217,11 +10217,11 @@ Object.freeze({
|
|
|
10217
10217
|
]
|
|
10218
10218
|
},
|
|
10219
10219
|
{
|
|
10220
|
-
"path": "
|
|
10220
|
+
"path": "signal",
|
|
10221
10221
|
"valueType": "number"
|
|
10222
10222
|
},
|
|
10223
10223
|
{
|
|
10224
|
-
"path": "
|
|
10224
|
+
"path": "rssi",
|
|
10225
10225
|
"valueType": "number"
|
|
10226
10226
|
},
|
|
10227
10227
|
{
|
|
@@ -10352,23 +10352,23 @@ Object.freeze({
|
|
|
10352
10352
|
],
|
|
10353
10353
|
"power-meter": [
|
|
10354
10354
|
{
|
|
10355
|
-
"path": "
|
|
10355
|
+
"path": "power",
|
|
10356
10356
|
"valueType": "number"
|
|
10357
10357
|
},
|
|
10358
10358
|
{
|
|
10359
|
-
"path": "
|
|
10359
|
+
"path": "energy",
|
|
10360
10360
|
"valueType": "number"
|
|
10361
10361
|
},
|
|
10362
10362
|
{
|
|
10363
|
-
"path": "
|
|
10363
|
+
"path": "voltage",
|
|
10364
10364
|
"valueType": "number"
|
|
10365
10365
|
},
|
|
10366
10366
|
{
|
|
10367
|
-
"path": "
|
|
10367
|
+
"path": "current",
|
|
10368
10368
|
"valueType": "number"
|
|
10369
10369
|
},
|
|
10370
10370
|
{
|
|
10371
|
-
"path": "
|
|
10371
|
+
"path": "apparentPower",
|
|
10372
10372
|
"valueType": "number"
|
|
10373
10373
|
},
|
|
10374
10374
|
{
|
|
@@ -10396,14 +10396,10 @@ Object.freeze({
|
|
|
10396
10396
|
{
|
|
10397
10397
|
"path": "gps.accuracyMeters",
|
|
10398
10398
|
"valueType": "number"
|
|
10399
|
-
},
|
|
10400
|
-
{
|
|
10401
|
-
"path": "batteryPercent",
|
|
10402
|
-
"valueType": "number"
|
|
10403
10399
|
}
|
|
10404
10400
|
],
|
|
10405
10401
|
"pressure-sensor": [{
|
|
10406
|
-
"path": "
|
|
10402
|
+
"path": "pressure",
|
|
10407
10403
|
"valueType": "number"
|
|
10408
10404
|
}],
|
|
10409
10405
|
"privacy-mask": [{
|
|
@@ -10717,7 +10713,7 @@ Object.freeze({
|
|
|
10717
10713
|
"valueType": "boolean"
|
|
10718
10714
|
}],
|
|
10719
10715
|
"temperature-sensor": [{
|
|
10720
|
-
"path": "
|
|
10716
|
+
"path": "temperature",
|
|
10721
10717
|
"valueType": "number"
|
|
10722
10718
|
}],
|
|
10723
10719
|
"update": [
|
|
@@ -10765,7 +10761,7 @@ Object.freeze({
|
|
|
10765
10761
|
"valueType": "string"
|
|
10766
10762
|
},
|
|
10767
10763
|
{
|
|
10768
|
-
"path": "
|
|
10764
|
+
"path": "progress",
|
|
10769
10765
|
"valueType": "number"
|
|
10770
10766
|
},
|
|
10771
10767
|
{
|
|
@@ -11240,7 +11236,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
11240
11236
|
return DeviceRole;
|
|
11241
11237
|
}({});
|
|
11242
11238
|
//#endregion
|
|
11243
|
-
//#region ../types/dist/composition-
|
|
11239
|
+
//#region ../types/dist/composition-DwA0uVW5.mjs
|
|
11244
11240
|
/**
|
|
11245
11241
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
11246
11242
|
*
|
|
@@ -19026,7 +19022,7 @@ var CompositionEventPlanSchema = object({
|
|
|
19026
19022
|
stateField: string(),
|
|
19027
19023
|
fieldKey: string()
|
|
19028
19024
|
});
|
|
19029
|
-
/** One refusal, named (D391). `path` points into the composition, e.g. `features[0].fields.
|
|
19025
|
+
/** One refusal, named (D391). `path` points into the composition, e.g. `features[0].fields.temperature`. */
|
|
19030
19026
|
var CompositionProblemSchema = object({
|
|
19031
19027
|
code: _enum([
|
|
19032
19028
|
"reserved-variant",
|
|
@@ -19308,12 +19304,13 @@ var CHANGED = {
|
|
|
19308
19304
|
expr: "now"
|
|
19309
19305
|
};
|
|
19310
19306
|
function numeric(input) {
|
|
19307
|
+
const { alsoFrom, ...base } = input;
|
|
19311
19308
|
return {
|
|
19312
|
-
...
|
|
19309
|
+
...base,
|
|
19313
19310
|
family: "numeric",
|
|
19314
19311
|
deviceType: DeviceType.Sensor,
|
|
19315
19312
|
memberDeviceType: DeviceType.Sensor,
|
|
19316
|
-
memberDeviceTypes: [DeviceType.Sensor],
|
|
19313
|
+
memberDeviceTypes: [DeviceType.Sensor, ...alsoFrom?.deviceTypes ?? []],
|
|
19317
19314
|
activeWhen: void 0,
|
|
19318
19315
|
commandCaps: [],
|
|
19319
19316
|
baseUnit: baseUnitOf(input.quantity),
|
|
@@ -19321,9 +19318,10 @@ function numeric(input) {
|
|
|
19321
19318
|
accept: [{
|
|
19322
19319
|
cap: input.outputCap,
|
|
19323
19320
|
fieldPath: input.outputField
|
|
19324
|
-
}]
|
|
19321
|
+
}, ...alsoFrom === void 0 ? [] : [alsoFrom.accept]]
|
|
19325
19322
|
};
|
|
19326
19323
|
}
|
|
19324
|
+
var CLIMATE_DEVICES = [DeviceType.Thermostat, DeviceType.Climate];
|
|
19327
19325
|
function binary(input) {
|
|
19328
19326
|
return {
|
|
19329
19327
|
...input,
|
|
@@ -19345,29 +19343,43 @@ var GROUP_TEMPLATES = [
|
|
|
19345
19343
|
summary: "Mean, median, min, max or sum of temperatures. Offline and unknown members are left out, never read as 0 °C.",
|
|
19346
19344
|
role: DeviceRole.TemperatureSensor,
|
|
19347
19345
|
outputCap: "temperature-sensor",
|
|
19348
|
-
outputField: "
|
|
19346
|
+
outputField: "temperature",
|
|
19349
19347
|
quantity: "temperature",
|
|
19350
19348
|
defaultAggregate: "mean",
|
|
19351
19349
|
empty: "null",
|
|
19352
|
-
companions: [NOW$2]
|
|
19350
|
+
companions: [NOW$2],
|
|
19351
|
+
alsoFrom: {
|
|
19352
|
+
deviceTypes: CLIMATE_DEVICES,
|
|
19353
|
+
accept: {
|
|
19354
|
+
cap: "climate-control",
|
|
19355
|
+
fieldPath: "currentTemp"
|
|
19356
|
+
}
|
|
19357
|
+
}
|
|
19353
19358
|
}),
|
|
19354
19359
|
numeric({
|
|
19355
19360
|
id: "humidity",
|
|
19356
19361
|
summary: "Humidity in percent. Offline and unknown members are left out, never read as 0 %.",
|
|
19357
19362
|
role: DeviceRole.HumiditySensor,
|
|
19358
19363
|
outputCap: "humidity-sensor",
|
|
19359
|
-
outputField: "
|
|
19364
|
+
outputField: "humidity",
|
|
19360
19365
|
quantity: "humidity",
|
|
19361
19366
|
defaultAggregate: "mean",
|
|
19362
19367
|
empty: "null",
|
|
19363
|
-
companions: [NOW$2]
|
|
19368
|
+
companions: [NOW$2],
|
|
19369
|
+
alsoFrom: {
|
|
19370
|
+
deviceTypes: CLIMATE_DEVICES,
|
|
19371
|
+
accept: {
|
|
19372
|
+
cap: "climate-control",
|
|
19373
|
+
fieldPath: "currentHumidity"
|
|
19374
|
+
}
|
|
19375
|
+
}
|
|
19364
19376
|
}),
|
|
19365
19377
|
numeric({
|
|
19366
19378
|
id: "pressure",
|
|
19367
19379
|
summary: "Pressure in hectopascals. Offline and unknown members are left out, never read as 0 hPa.",
|
|
19368
19380
|
role: DeviceRole.PressureSensor,
|
|
19369
19381
|
outputCap: "pressure-sensor",
|
|
19370
|
-
outputField: "
|
|
19382
|
+
outputField: "pressure",
|
|
19371
19383
|
quantity: "pressure",
|
|
19372
19384
|
defaultAggregate: "mean",
|
|
19373
19385
|
empty: "null",
|
|
@@ -19378,7 +19390,7 @@ var GROUP_TEMPLATES = [
|
|
|
19378
19390
|
summary: "Illuminance in lux. Offline and unknown members are left out, never read as 0 lx.",
|
|
19379
19391
|
role: DeviceRole.AmbientLightSensor,
|
|
19380
19392
|
outputCap: "ambient-light-sensor",
|
|
19381
|
-
outputField: "
|
|
19393
|
+
outputField: "illuminance",
|
|
19382
19394
|
quantity: "illuminance",
|
|
19383
19395
|
defaultAggregate: "mean",
|
|
19384
19396
|
empty: "null",
|
|
@@ -19389,7 +19401,7 @@ var GROUP_TEMPLATES = [
|
|
|
19389
19401
|
summary: "Power in watts, summed by default. Nobody reporting omits the key rather than writing 0 W.",
|
|
19390
19402
|
role: DeviceRole.PowerSensor,
|
|
19391
19403
|
outputCap: "power-meter",
|
|
19392
|
-
outputField: "
|
|
19404
|
+
outputField: "power",
|
|
19393
19405
|
quantity: "power",
|
|
19394
19406
|
defaultAggregate: "sum",
|
|
19395
19407
|
empty: "omit",
|
|
@@ -19400,7 +19412,7 @@ var GROUP_TEMPLATES = [
|
|
|
19400
19412
|
summary: "Energy in kilowatt-hours, summed by default. Nobody reporting omits the key rather than writing 0 kWh.",
|
|
19401
19413
|
role: DeviceRole.EnergySensor,
|
|
19402
19414
|
outputCap: "power-meter",
|
|
19403
|
-
outputField: "
|
|
19415
|
+
outputField: "energy",
|
|
19404
19416
|
quantity: "energy",
|
|
19405
19417
|
defaultAggregate: "sum",
|
|
19406
19418
|
empty: "omit",
|
|
@@ -19411,7 +19423,7 @@ var GROUP_TEMPLATES = [
|
|
|
19411
19423
|
summary: "Battery charge in percent. Offline and unknown members are left out, never read as 0 %.",
|
|
19412
19424
|
role: DeviceRole.BatterySensor,
|
|
19413
19425
|
outputCap: "battery",
|
|
19414
|
-
outputField: "
|
|
19426
|
+
outputField: "level",
|
|
19415
19427
|
quantity: "percentage",
|
|
19416
19428
|
defaultAggregate: "mean",
|
|
19417
19429
|
empty: "null",
|
|
@@ -44900,6 +44912,43 @@ var NotificationActionSchema = object({
|
|
|
44900
44912
|
*/
|
|
44901
44913
|
mode: _enum(["navigate", "background"]).optional()
|
|
44902
44914
|
});
|
|
44915
|
+
/** A delivery parameter value: what a notifier declared it takes. */
|
|
44916
|
+
var DeliveryParamValueSchema = union([
|
|
44917
|
+
string(),
|
|
44918
|
+
number(),
|
|
44919
|
+
boolean()
|
|
44920
|
+
]);
|
|
44921
|
+
/**
|
|
44922
|
+
* One extra delivery parameter a notifier KIND declares (D938). A rule that
|
|
44923
|
+
* addresses a target of that kind may set it; a kind that declares nothing is
|
|
44924
|
+
* never handed one. The admin UI derives its control from this descriptor —
|
|
44925
|
+
* no editor knows a service by name.
|
|
44926
|
+
*
|
|
44927
|
+
* Optional fields are `.optional()`, never `.default()` (a Zod default does not
|
|
44928
|
+
* run on the addon cap path).
|
|
44929
|
+
*/
|
|
44930
|
+
var DeliveryParamSchema = object({
|
|
44931
|
+
key: string().min(1),
|
|
44932
|
+
label: string(),
|
|
44933
|
+
/** i18n key of the label, resolved by the declaring addon's namespace. */
|
|
44934
|
+
labelKey: string().optional(),
|
|
44935
|
+
type: _enum([
|
|
44936
|
+
"enum",
|
|
44937
|
+
"number",
|
|
44938
|
+
"boolean",
|
|
44939
|
+
"string"
|
|
44940
|
+
]),
|
|
44941
|
+
/** `enum` only: the closed set of accepted values. */
|
|
44942
|
+
options: array(object({
|
|
44943
|
+
value: string(),
|
|
44944
|
+
label: string()
|
|
44945
|
+
})).optional(),
|
|
44946
|
+
/** `number` only. */
|
|
44947
|
+
min: number().optional(),
|
|
44948
|
+
max: number().optional(),
|
|
44949
|
+
/** What the notifier does when the rule sets nothing; shown as the placeholder. */
|
|
44950
|
+
default: DeliveryParamValueSchema.optional()
|
|
44951
|
+
});
|
|
44903
44952
|
/**
|
|
44904
44953
|
* The canonical notification. `body` is the only hard field (Apprise model).
|
|
44905
44954
|
* `priority` is a 5-level ORDINAL (1=lowest … 3=normal(default) … 5=urgent),
|
|
@@ -44922,7 +44971,13 @@ var NotificationSchema = object({
|
|
|
44922
44971
|
tag: string().optional(),
|
|
44923
44972
|
deviceId: number().optional(),
|
|
44924
44973
|
eventId: string().optional(),
|
|
44925
|
-
metadata: record(string(), unknown()).optional()
|
|
44974
|
+
metadata: record(string(), unknown()).optional(),
|
|
44975
|
+
/**
|
|
44976
|
+
* Values for the parameters the target's kind DECLARES in
|
|
44977
|
+
* {@link TargetKindSchema} `deliveryParams`. Already validated against the
|
|
44978
|
+
* declaration by the sender; a notifier reads only the keys it declared.
|
|
44979
|
+
*/
|
|
44980
|
+
delivery: record(string(), DeliveryParamValueSchema).optional()
|
|
44926
44981
|
});
|
|
44927
44982
|
/** One declared native severity/priority level for a kind. */
|
|
44928
44983
|
var TargetKindLevelSchema = object({
|
|
@@ -45028,6 +45083,11 @@ var TargetKindSchema = object({
|
|
|
45028
45083
|
*/
|
|
45029
45084
|
destinationKeys: array(string()).optional(),
|
|
45030
45085
|
supportsDiscovery: boolean(),
|
|
45086
|
+
/**
|
|
45087
|
+
* Extra delivery parameters a rule may set for a target of this kind (D938).
|
|
45088
|
+
* Absent = none; the rule editor then offers nothing.
|
|
45089
|
+
*/
|
|
45090
|
+
deliveryParams: array(DeliveryParamSchema).optional(),
|
|
45031
45091
|
caps: TargetKindCapsSchema
|
|
45032
45092
|
});
|
|
45033
45093
|
/**
|
|
@@ -57198,7 +57258,9 @@ var ManifestShapeSchema = object({
|
|
|
57198
57258
|
icon: string().optional()
|
|
57199
57259
|
}).optional(),
|
|
57200
57260
|
protected: boolean().optional(),
|
|
57201
|
-
removable: boolean().optional()
|
|
57261
|
+
removable: boolean().optional(),
|
|
57262
|
+
/** Declared Integrations-page block (mirror of `AddonDeclaration.integrationSection`). */
|
|
57263
|
+
integrationSection: _enum(["system", "providers"]).optional()
|
|
57202
57264
|
});
|
|
57203
57265
|
var AddonProcessSchema = object({
|
|
57204
57266
|
pid: number().optional(),
|
|
@@ -57563,9 +57625,9 @@ method(object({ nodeId: string().optional() }).optional(), array(AddonListItemSc
|
|
|
57563
57625
|
}), LogStreamEntrySchema, { kind: "subscription" });
|
|
57564
57626
|
object({
|
|
57565
57627
|
/** Carbon dioxide concentration in ppm. */
|
|
57566
|
-
|
|
57628
|
+
co2: number().min(0).optional().meta(readingMeta("concentration-volume")),
|
|
57567
57629
|
/** Total volatile organic compounds in ppb. */
|
|
57568
|
-
|
|
57630
|
+
voc: number().min(0).optional().meta(readingMeta("concentration-ppb")),
|
|
57569
57631
|
/** Particulate matter ≤ 2.5 μm in µg/m³. */
|
|
57570
57632
|
pm25: number().min(0).optional().meta(readingMeta("concentration-mass")),
|
|
57571
57633
|
/** Particulate matter ≤ 10 μm in µg/m³. */
|
|
@@ -57578,7 +57640,7 @@ object({
|
|
|
57578
57640
|
DeviceType.Sensor;
|
|
57579
57641
|
object({
|
|
57580
57642
|
/** Current illuminance in lux (lx). `null` when the sample was refused (D393). */
|
|
57581
|
-
|
|
57643
|
+
illuminance: number().min(0).nullable().meta(readingMeta("illuminance", {
|
|
57582
57644
|
precision: 0,
|
|
57583
57645
|
label: "Illuminance"
|
|
57584
57646
|
})),
|
|
@@ -57806,7 +57868,7 @@ var BatteryStatusSchema = object({
|
|
|
57806
57868
|
* Consumers must SKIP a null rather than coerce it — `battery-band` already
|
|
57807
57869
|
* declines to band a non-finite reading, which is the correct shape.
|
|
57808
57870
|
*/
|
|
57809
|
-
|
|
57871
|
+
level: number().min(0).max(100).nullable().meta(readingMeta("percentage", { label: "Charge" })),
|
|
57810
57872
|
/**
|
|
57811
57873
|
* Charging source. `'dc'` covers wall/USB adapters; `'solar'` is
|
|
57812
57874
|
* Reolink-specific for the Solar Panel 2 accessory (will become
|
|
@@ -57816,7 +57878,7 @@ var BatteryStatusSchema = object({
|
|
|
57816
57878
|
* `'unknown'` is the absence of an answer: the provider has not read the
|
|
57817
57879
|
* power fields yet, or the firmware reported neither. Before it existed,
|
|
57818
57880
|
* two unreadable fields produced `'none'`, and a camera nobody had reached
|
|
57819
|
-
* was drawn "on battery alone" — the same D315 defect `
|
|
57881
|
+
* was drawn "on battery alone" — the same D315 defect `level` closed
|
|
57820
57882
|
* by going nullable. Consumers SKIP it (no charger state published, no
|
|
57821
57883
|
* glyph, no HomeKit ChargingState) rather than coerce it either way.
|
|
57822
57884
|
*/
|
|
@@ -57840,7 +57902,7 @@ var BatteryStatusSchema = object({
|
|
|
57840
57902
|
* that only report charge. A second reading on this cap, not a second
|
|
57841
57903
|
* `numeric-sensor` on the same device.
|
|
57842
57904
|
*/
|
|
57843
|
-
|
|
57905
|
+
voltage: number().nullable().optional().meta(readingMeta("voltage", { label: "Voltage" })),
|
|
57844
57906
|
/**
|
|
57845
57907
|
* Ms epoch of the last time the device PROVED it was reachable — a
|
|
57846
57908
|
* completed firmware round-trip, an observed wake, or an inbound push
|
|
@@ -57874,7 +57936,7 @@ var BatteryStatusSchema = object({
|
|
|
57874
57936
|
/**
|
|
57875
57937
|
* True when the source is a BINARY low-battery indicator (HA
|
|
57876
57938
|
* `binary_sensor` device_class=battery / `LOW_BAT`) that has no real
|
|
57877
|
-
* charge level — `
|
|
57939
|
+
* charge level — `level` is then a coarse stand-in (100 = normal,
|
|
57878
57940
|
* sub-threshold = low). UI MUST render "Normal"/"Low" instead of a
|
|
57879
57941
|
* misleading exact percentage. Absent/false → genuine 0–100 % reading.
|
|
57880
57942
|
*/
|
|
@@ -57900,19 +57962,19 @@ object({
|
|
|
57900
57962
|
DeviceType.Sensor;
|
|
57901
57963
|
object({
|
|
57902
57964
|
/** Current level as 0..100 inclusive. Firmware-reported. */
|
|
57903
|
-
|
|
57965
|
+
level: number().min(0).max(100).meta(readingMeta("percentage")),
|
|
57904
57966
|
/** Ms epoch of the last operator-driven change. Useful for UI freshness. */
|
|
57905
57967
|
lastChangedAt: number()
|
|
57906
57968
|
});
|
|
57907
57969
|
DeviceType.Light, method(object({
|
|
57908
57970
|
deviceId: number().int().nonnegative(),
|
|
57909
|
-
|
|
57971
|
+
level: number().min(0).max(100)
|
|
57910
57972
|
}), _void(), {
|
|
57911
57973
|
kind: "mutation",
|
|
57912
57974
|
auth: "protected"
|
|
57913
57975
|
}), object({
|
|
57914
57976
|
deviceId: number(),
|
|
57915
|
-
|
|
57977
|
+
level: number().min(0).max(100),
|
|
57916
57978
|
lastChangedAt: number()
|
|
57917
57979
|
});
|
|
57918
57980
|
DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
@@ -58413,11 +58475,11 @@ var ColorInputSchema = discriminatedUnion("mode", [
|
|
|
58413
58475
|
}),
|
|
58414
58476
|
object({
|
|
58415
58477
|
mode: literal("mired"),
|
|
58416
|
-
|
|
58478
|
+
colorTemperature: number().int().min(50).max(1e3)
|
|
58417
58479
|
})
|
|
58418
58480
|
]);
|
|
58419
58481
|
object({
|
|
58420
|
-
/** Active color mode — which of `rgb` / `hsv` / `
|
|
58482
|
+
/** Active color mode — which of `rgb` / `hsv` / `colorTemperature` reflects
|
|
58421
58483
|
* the bulb's current state. */
|
|
58422
58484
|
mode: _enum([
|
|
58423
58485
|
"rgb",
|
|
@@ -58429,7 +58491,7 @@ object({
|
|
|
58429
58491
|
/** Populated when `mode === 'hsv'`. */
|
|
58430
58492
|
hsv: HsvTripletSchema.optional(),
|
|
58431
58493
|
/** Populated when `mode === 'mired'`. */
|
|
58432
|
-
|
|
58494
|
+
colorTemperature: number().int().optional().meta(readingMeta("colour-temperature")),
|
|
58433
58495
|
/** Ms epoch of the last operator-driven change. */
|
|
58434
58496
|
lastChangedAt: number()
|
|
58435
58497
|
});
|
|
@@ -58448,7 +58510,7 @@ DeviceType.Light, method(object({
|
|
|
58448
58510
|
]),
|
|
58449
58511
|
rgb: RgbTripletSchema.optional(),
|
|
58450
58512
|
hsv: HsvTripletSchema.optional(),
|
|
58451
|
-
|
|
58513
|
+
colorTemperature: number().int().optional(),
|
|
58452
58514
|
lastChangedAt: number()
|
|
58453
58515
|
});
|
|
58454
58516
|
var ConnectionTestOutcomeSchema = discriminatedUnion("outcome", [
|
|
@@ -58874,11 +58936,11 @@ object({
|
|
|
58874
58936
|
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
58875
58937
|
availablePrograms: array(string()),
|
|
58876
58938
|
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
58877
|
-
|
|
58939
|
+
remaining: number().int().nonnegative().nullable().meta(readingMeta("duration")),
|
|
58878
58940
|
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
58879
|
-
|
|
58941
|
+
delayedStart: number().int().nonnegative().nullable().meta(readingMeta("duration")),
|
|
58880
58942
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
58881
|
-
|
|
58943
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
58882
58944
|
/** True when the door is reported open; null when the door state is not known. */
|
|
58883
58945
|
doorOpen: boolean().nullable(),
|
|
58884
58946
|
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
@@ -59496,7 +59558,7 @@ var FanDirectionSchema = _enum(["forward", "reverse"]);
|
|
|
59496
59558
|
object({
|
|
59497
59559
|
/** Active speed as 0..100 inclusive. Null when the device has no
|
|
59498
59560
|
* speed surface (single-speed fan). */
|
|
59499
|
-
|
|
59561
|
+
speed: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
59500
59562
|
/** Speed granularity the device accepts (HA `percentage_step`, e.g. 25 for
|
|
59501
59563
|
* a 4-speed fan). Absent when unknown — the UI then falls back to step 1. */
|
|
59502
59564
|
percentageStep: number().positive().optional().meta(readingMeta("percentage")),
|
|
@@ -59516,7 +59578,7 @@ object({
|
|
|
59516
59578
|
});
|
|
59517
59579
|
DeviceType.Fan, method(object({
|
|
59518
59580
|
deviceId: number().int().nonnegative(),
|
|
59519
|
-
|
|
59581
|
+
speed: number().min(0).max(100)
|
|
59520
59582
|
}), _void(), {
|
|
59521
59583
|
kind: "mutation",
|
|
59522
59584
|
auth: "protected"
|
|
@@ -59699,7 +59761,7 @@ DeviceType.Humidifier, method(object({
|
|
|
59699
59761
|
});
|
|
59700
59762
|
object({
|
|
59701
59763
|
/** Current relative humidity, 0..100. `null` when the sample was refused (D393). */
|
|
59702
|
-
|
|
59764
|
+
humidity: number().min(0).max(100).nullable().meta(readingMeta("humidity", {
|
|
59703
59765
|
precision: 0,
|
|
59704
59766
|
label: "Humidity"
|
|
59705
59767
|
})),
|
|
@@ -60142,7 +60204,7 @@ object({
|
|
|
60142
60204
|
batteryLevel: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
60143
60205
|
/** 0..100 mowing-completion percentage of the current task, or null when no
|
|
60144
60206
|
* task is active / progress is unavailable. */
|
|
60145
|
-
|
|
60207
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
60146
60208
|
/** Current device/event code (dynamic — mostly status, sometimes an error),
|
|
60147
60209
|
* or null when unknown. */
|
|
60148
60210
|
currentCode: number().nullable().meta(readingMeta("none")),
|
|
@@ -60632,10 +60694,10 @@ object({
|
|
|
60632
60694
|
currentMedia: MediaInfoSchema.nullable(),
|
|
60633
60695
|
/** Current playback position in ms. Null when not seekable or
|
|
60634
60696
|
* nothing is playing. Pair with `DeviceFeature.MediaPlayerSeek`. */
|
|
60635
|
-
|
|
60697
|
+
position: number().int().nonnegative().nullable().meta(readingMeta("duration-ms")),
|
|
60636
60698
|
/** Total duration of the current media in ms. Null when unknown
|
|
60637
60699
|
* (live stream) or nothing is playing. */
|
|
60638
|
-
|
|
60700
|
+
duration: number().int().nonnegative().nullable().meta(readingMeta("duration-ms")),
|
|
60639
60701
|
/** Shuffle toggle. Null when no shuffle surface.
|
|
60640
60702
|
* Pair with `DeviceFeature.MediaPlayerShuffle`. */
|
|
60641
60703
|
shuffle: boolean().nullable(),
|
|
@@ -60662,7 +60724,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
|
|
|
60662
60724
|
auth: "protected"
|
|
60663
60725
|
}), method(object({
|
|
60664
60726
|
deviceId: number().int().nonnegative(),
|
|
60665
|
-
|
|
60727
|
+
position: number().int().nonnegative()
|
|
60666
60728
|
}), _void(), {
|
|
60667
60729
|
kind: "mutation",
|
|
60668
60730
|
auth: "protected"
|
|
@@ -61335,9 +61397,9 @@ var NetworkLinkStatusSchema = object({
|
|
|
61335
61397
|
* one whose reading has not landed must not be drawn at 0 %. Consumers
|
|
61336
61398
|
* SKIP a null rather than coerce it.
|
|
61337
61399
|
*/
|
|
61338
|
-
|
|
61400
|
+
signal: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
61339
61401
|
/** Raw received signal strength in dBm, when the firmware reports one. */
|
|
61340
|
-
|
|
61402
|
+
rssi: number().optional().meta(readingMeta("signal-level")),
|
|
61341
61403
|
/** Network name of a wireless link, when the firmware reports it. */
|
|
61342
61404
|
ssid: string().optional(),
|
|
61343
61405
|
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
@@ -62487,16 +62549,16 @@ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema)
|
|
|
62487
62549
|
auth: "admin"
|
|
62488
62550
|
});
|
|
62489
62551
|
object({
|
|
62490
|
-
/** Instantaneous power draw
|
|
62491
|
-
|
|
62552
|
+
/** Instantaneous power draw (watts). */
|
|
62553
|
+
power: number().optional().meta(readingMeta("power", { label: "Power" })),
|
|
62492
62554
|
/** Cumulative energy in kilowatt-hours since the meter was reset. */
|
|
62493
|
-
|
|
62494
|
-
/** Voltage
|
|
62495
|
-
|
|
62555
|
+
energy: number().optional().meta(readingMeta("energy", { label: "Energy" })),
|
|
62556
|
+
/** Voltage (volts). */
|
|
62557
|
+
voltage: number().optional().meta(readingMeta("voltage", { label: "Voltage" })),
|
|
62496
62558
|
/** Current in amperes. */
|
|
62497
|
-
|
|
62559
|
+
current: number().optional().meta(readingMeta("current", { label: "Current" })),
|
|
62498
62560
|
/** Apparent power in volt-amperes. */
|
|
62499
|
-
|
|
62561
|
+
apparentPower: number().optional().meta(readingMeta("apparent-power")),
|
|
62500
62562
|
/** Power factor (0..1) if reported. */
|
|
62501
62563
|
powerFactor: number().min(0).max(1).optional().meta(readingMeta("ratio")),
|
|
62502
62564
|
/** Ms epoch when the slice was last updated. */
|
|
@@ -62551,16 +62613,13 @@ object({
|
|
|
62551
62613
|
location: string().nullable(),
|
|
62552
62614
|
/** GPS coordinates when available. Null otherwise. */
|
|
62553
62615
|
gps: GpsLocationSchema.nullable(),
|
|
62554
|
-
/** Optional battery level of the tracking device (0..100). Null
|
|
62555
|
-
* when not reported. */
|
|
62556
|
-
batteryPercent: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
62557
62616
|
/** Ms epoch when the slice was last updated. */
|
|
62558
62617
|
lastChangedAt: number()
|
|
62559
62618
|
});
|
|
62560
62619
|
DeviceType.Presence;
|
|
62561
62620
|
object({
|
|
62562
62621
|
/** Current pressure in hPa. `null` when the sample was refused (D393). */
|
|
62563
|
-
|
|
62622
|
+
pressure: number().nullable().meta(readingMeta("pressure", { precision: 0 })),
|
|
62564
62623
|
/** Ms epoch when the slice was last updated. */
|
|
62565
62624
|
lastFetchedAt: number()
|
|
62566
62625
|
});
|
|
@@ -65563,7 +65622,7 @@ object({
|
|
|
65563
65622
|
DeviceType.Sensor;
|
|
65564
65623
|
object({
|
|
65565
65624
|
/** Current temperature in Celsius. `null` when the sample was refused (D393). */
|
|
65566
|
-
|
|
65625
|
+
temperature: number().nullable().meta(readingMeta("temperature", {
|
|
65567
65626
|
precision: 1,
|
|
65568
65627
|
label: "Temperature"
|
|
65569
65628
|
})),
|
|
@@ -65827,7 +65886,7 @@ object({
|
|
|
65827
65886
|
/** Speed tokens the hardware accepts — drives the UI selector. */
|
|
65828
65887
|
availableFanSpeeds: array(string()),
|
|
65829
65888
|
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
65830
|
-
|
|
65889
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
65831
65890
|
/** Current error code (0 / null = no error). */
|
|
65832
65891
|
errorCode: number().nullable().meta(readingMeta("none")),
|
|
65833
65892
|
/** Human label for {@link errorCode}, or null when none / undecodable. */
|
|
@@ -76895,7 +76954,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76895
76954
|
label: t("Full brightness", "Luminosità massima"),
|
|
76896
76955
|
phrase: t("Set {device} to full brightness", "Porta {device} alla massima luminosità"),
|
|
76897
76956
|
icon: "sun",
|
|
76898
|
-
args: {
|
|
76957
|
+
args: { level: 100 }
|
|
76899
76958
|
},
|
|
76900
76959
|
{
|
|
76901
76960
|
id: "brightness.half",
|
|
@@ -76903,7 +76962,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76903
76962
|
label: t("Half brightness", "Luminosità a metà"),
|
|
76904
76963
|
phrase: t("Dim {device} to half", "Abbassa {device} a metà luminosità"),
|
|
76905
76964
|
icon: "sun-dim",
|
|
76906
|
-
args: {
|
|
76965
|
+
args: { level: 50 }
|
|
76907
76966
|
},
|
|
76908
76967
|
{
|
|
76909
76968
|
id: "brightness.off",
|
|
@@ -76911,16 +76970,16 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76911
76970
|
label: t("Brightness off", "Luminosità a zero"),
|
|
76912
76971
|
phrase: t("Dim {device} to zero", "Abbassa {device} a zero"),
|
|
76913
76972
|
icon: "lightbulb-off",
|
|
76914
|
-
args: {
|
|
76973
|
+
args: { level: 0 }
|
|
76915
76974
|
},
|
|
76916
76975
|
{
|
|
76917
76976
|
id: "brightness.set",
|
|
76918
76977
|
method: "setBrightness",
|
|
76919
76978
|
label: t("Set brightness", "Imposta la luminosità"),
|
|
76920
|
-
phrase: t("Set the brightness of {device} to {
|
|
76979
|
+
phrase: t("Set the brightness of {device} to {level}", "Imposta la luminosità di {device} a {level}"),
|
|
76921
76980
|
icon: "sun-medium",
|
|
76922
76981
|
openArgs: [{
|
|
76923
|
-
key: "
|
|
76982
|
+
key: "level",
|
|
76924
76983
|
label: PERCENT,
|
|
76925
76984
|
offer: {
|
|
76926
76985
|
kind: "number",
|
|
@@ -76934,13 +76993,13 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76934
76993
|
],
|
|
76935
76994
|
state: [{
|
|
76936
76995
|
kind: "numeric",
|
|
76937
|
-
field: "
|
|
76996
|
+
field: "level",
|
|
76938
76997
|
quantity: t("the brightness", "la luminosità"),
|
|
76939
76998
|
label: t("Brightness", "Luminosità"),
|
|
76940
76999
|
unit: "%",
|
|
76941
77000
|
icon: "sun"
|
|
76942
77001
|
}],
|
|
76943
|
-
events: { onBrightnessChanged: { notOperatorFacing: "the `
|
|
77002
|
+
events: { onBrightnessChanged: { notOperatorFacing: "the `level` state trigger reads the same change" } }
|
|
76944
77003
|
},
|
|
76945
77004
|
color: {
|
|
76946
77005
|
scope: "device",
|
|
@@ -76954,7 +77013,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76954
77013
|
icon: "sun",
|
|
76955
77014
|
args: { color: {
|
|
76956
77015
|
mode: "mired",
|
|
76957
|
-
|
|
77016
|
+
colorTemperature: 370
|
|
76958
77017
|
} }
|
|
76959
77018
|
},
|
|
76960
77019
|
{
|
|
@@ -76965,7 +77024,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76965
77024
|
icon: "snowflake",
|
|
76966
77025
|
args: { color: {
|
|
76967
77026
|
mode: "mired",
|
|
76968
|
-
|
|
77027
|
+
colorTemperature: 200
|
|
76969
77028
|
} }
|
|
76970
77029
|
},
|
|
76971
77030
|
{
|
|
@@ -77579,7 +77638,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77579
77638
|
label: t("Fan off", "Ventilatore spento"),
|
|
77580
77639
|
phrase: t("Stop {device}", "Ferma {device}"),
|
|
77581
77640
|
icon: "power-off",
|
|
77582
|
-
args: {
|
|
77641
|
+
args: { speed: 0 }
|
|
77583
77642
|
},
|
|
77584
77643
|
{
|
|
77585
77644
|
id: "fan.full",
|
|
@@ -77587,16 +77646,16 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77587
77646
|
label: t("Fan full", "Ventilatore al massimo"),
|
|
77588
77647
|
phrase: t("Run {device} at full speed", "Porta {device} alla massima velocità"),
|
|
77589
77648
|
icon: "fan",
|
|
77590
|
-
args: {
|
|
77649
|
+
args: { speed: 100 }
|
|
77591
77650
|
},
|
|
77592
77651
|
{
|
|
77593
77652
|
id: "fan.speed",
|
|
77594
77653
|
method: "setPercentage",
|
|
77595
77654
|
label: t("Set speed", "Imposta la velocità"),
|
|
77596
|
-
phrase: t("Set the speed of {device} to {
|
|
77655
|
+
phrase: t("Set the speed of {device} to {speed}", "Imposta la velocità di {device} al {speed}"),
|
|
77597
77656
|
icon: "fan",
|
|
77598
77657
|
openArgs: [{
|
|
77599
|
-
key: "
|
|
77658
|
+
key: "speed",
|
|
77600
77659
|
label: t("Speed", "Velocità"),
|
|
77601
77660
|
offer: {
|
|
77602
77661
|
kind: "number",
|
|
@@ -77658,7 +77717,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77658
77717
|
],
|
|
77659
77718
|
state: [{
|
|
77660
77719
|
kind: "numeric",
|
|
77661
|
-
field: "
|
|
77720
|
+
field: "speed",
|
|
77662
77721
|
quantity: t("the speed", "la velocità"),
|
|
77663
77722
|
label: t("Speed", "Velocità"),
|
|
77664
77723
|
unit: "%",
|
|
@@ -78456,7 +78515,7 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
78456
78515
|
},
|
|
78457
78516
|
{
|
|
78458
78517
|
kind: "numeric",
|
|
78459
|
-
field: "
|
|
78518
|
+
field: "progress",
|
|
78460
78519
|
quantity: t("the cycle progress", "l’avanzamento del lavaggio"),
|
|
78461
78520
|
label: t("Progress", "Avanzamento"),
|
|
78462
78521
|
unit: "%",
|
|
@@ -78814,10 +78873,10 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
78814
78873
|
id: "media.seek",
|
|
78815
78874
|
method: "seek",
|
|
78816
78875
|
label: t("Seek", "Vai al punto"),
|
|
78817
|
-
phrase: t("Move {device} to {
|
|
78876
|
+
phrase: t("Move {device} to {position}", "Porta {device} al punto {position}"),
|
|
78818
78877
|
icon: "fast-forward",
|
|
78819
78878
|
openArgs: [{
|
|
78820
|
-
key: "
|
|
78879
|
+
key: "position",
|
|
78821
78880
|
label: t("Position", "Posizione"),
|
|
78822
78881
|
offer: {
|
|
78823
78882
|
kind: "number",
|
|
@@ -79866,7 +79925,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79866
79925
|
state: [
|
|
79867
79926
|
{
|
|
79868
79927
|
kind: "numeric",
|
|
79869
|
-
field: "
|
|
79928
|
+
field: "co2",
|
|
79870
79929
|
quantity: t("the CO₂", "la CO₂"),
|
|
79871
79930
|
label: t("CO₂", "CO₂"),
|
|
79872
79931
|
unit: "ppm",
|
|
@@ -79874,7 +79933,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79874
79933
|
},
|
|
79875
79934
|
{
|
|
79876
79935
|
kind: "numeric",
|
|
79877
|
-
field: "
|
|
79936
|
+
field: "voc",
|
|
79878
79937
|
quantity: t("the VOC level", "il livello di COV"),
|
|
79879
79938
|
label: t("VOC", "COV"),
|
|
79880
79939
|
unit: "ppb",
|
|
@@ -79910,7 +79969,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79910
79969
|
noun: t("Light level", "Luminosità ambiente"),
|
|
79911
79970
|
state: [{
|
|
79912
79971
|
kind: "numeric",
|
|
79913
|
-
field: "
|
|
79972
|
+
field: "illuminance",
|
|
79914
79973
|
quantity: t("the light level", "la luminosità"),
|
|
79915
79974
|
label: t("Illuminance", "Illuminamento"),
|
|
79916
79975
|
unit: "lx",
|
|
@@ -80113,7 +80172,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80113
80172
|
noun: t("Humidity", "Umidità"),
|
|
80114
80173
|
state: [{
|
|
80115
80174
|
kind: "numeric",
|
|
80116
|
-
field: "
|
|
80175
|
+
field: "humidity",
|
|
80117
80176
|
quantity: t("the humidity", "l’umidità"),
|
|
80118
80177
|
label: t("Humidity", "Umidità"),
|
|
80119
80178
|
unit: "%",
|
|
@@ -80161,7 +80220,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80161
80220
|
state: [
|
|
80162
80221
|
{
|
|
80163
80222
|
kind: "numeric",
|
|
80164
|
-
field: "
|
|
80223
|
+
field: "power",
|
|
80165
80224
|
quantity: t("the power draw", "il consumo"),
|
|
80166
80225
|
label: t("Power", "Potenza"),
|
|
80167
80226
|
unit: "W",
|
|
@@ -80169,7 +80228,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80169
80228
|
},
|
|
80170
80229
|
{
|
|
80171
80230
|
kind: "numeric",
|
|
80172
|
-
field: "
|
|
80231
|
+
field: "energy",
|
|
80173
80232
|
quantity: t("the energy used", "l’energia consumata"),
|
|
80174
80233
|
label: t("Energy", "Energia"),
|
|
80175
80234
|
unit: "kWh",
|
|
@@ -80177,7 +80236,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80177
80236
|
},
|
|
80178
80237
|
{
|
|
80179
80238
|
kind: "numeric",
|
|
80180
|
-
field: "
|
|
80239
|
+
field: "voltage",
|
|
80181
80240
|
quantity: t("the voltage", "la tensione"),
|
|
80182
80241
|
label: t("Voltage", "Tensione"),
|
|
80183
80242
|
unit: "V",
|
|
@@ -80185,7 +80244,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80185
80244
|
},
|
|
80186
80245
|
{
|
|
80187
80246
|
kind: "numeric",
|
|
80188
|
-
field: "
|
|
80247
|
+
field: "current",
|
|
80189
80248
|
quantity: t("the current", "la corrente"),
|
|
80190
80249
|
label: t("Current", "Corrente"),
|
|
80191
80250
|
unit: "A",
|
|
@@ -80202,13 +80261,6 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80202
80261
|
label: t("Where", "Posizione"),
|
|
80203
80262
|
phrase: t("When {device} is at {value}", "Quando {device} è in {value}"),
|
|
80204
80263
|
icon: "map-pin"
|
|
80205
|
-
}, {
|
|
80206
|
-
kind: "numeric",
|
|
80207
|
-
field: "batteryPercent",
|
|
80208
|
-
quantity: t("the phone battery", "la batteria del telefono"),
|
|
80209
|
-
label: t("Battery", "Batteria"),
|
|
80210
|
-
unit: "%",
|
|
80211
|
-
icon: "battery"
|
|
80212
80264
|
}]
|
|
80213
80265
|
},
|
|
80214
80266
|
"pressure-sensor": {
|
|
@@ -80216,7 +80268,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80216
80268
|
noun: t("Pressure", "Pressione"),
|
|
80217
80269
|
state: [{
|
|
80218
80270
|
kind: "numeric",
|
|
80219
|
-
field: "
|
|
80271
|
+
field: "pressure",
|
|
80220
80272
|
quantity: t("the pressure", "la pressione"),
|
|
80221
80273
|
label: t("Pressure", "Pressione"),
|
|
80222
80274
|
unit: "hPa",
|
|
@@ -80252,7 +80304,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80252
80304
|
noun: t("Temperature", "Temperatura"),
|
|
80253
80305
|
state: [{
|
|
80254
80306
|
kind: "numeric",
|
|
80255
|
-
field: "
|
|
80307
|
+
field: "temperature",
|
|
80256
80308
|
quantity: t("the temperature", "la temperatura"),
|
|
80257
80309
|
label: t("Temperature", "Temperatura"),
|
|
80258
80310
|
unit: "°C",
|
|
@@ -80323,7 +80375,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80323
80375
|
state: [
|
|
80324
80376
|
{
|
|
80325
80377
|
kind: "numeric",
|
|
80326
|
-
field: "
|
|
80378
|
+
field: "level",
|
|
80327
80379
|
quantity: t("the battery level", "il livello della batteria"),
|
|
80328
80380
|
label: t("Battery", "Batteria"),
|
|
80329
80381
|
unit: "%",
|
|
@@ -80365,7 +80417,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80365
80417
|
icon: "battery-charging"
|
|
80366
80418
|
}
|
|
80367
80419
|
],
|
|
80368
|
-
events: { onStatusChanged: { notOperatorFacing: "the
|
|
80420
|
+
events: { onStatusChanged: { notOperatorFacing: "the level / sleeping / charging state triggers each read one field of this change" } },
|
|
80369
80421
|
extraEvents: [{
|
|
80370
80422
|
category: EventCategory.DeviceAwake,
|
|
80371
80423
|
label: t("Woke up", "Risvegliato"),
|
|
@@ -80383,7 +80435,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80383
80435
|
noun: t("Network link", "Collegamento di rete"),
|
|
80384
80436
|
state: [{
|
|
80385
80437
|
kind: "numeric",
|
|
80386
|
-
field: "
|
|
80438
|
+
field: "signal",
|
|
80387
80439
|
quantity: t("the signal strength", "l’intensità del segnale"),
|
|
80388
80440
|
label: t("Signal", "Segnale"),
|
|
80389
80441
|
unit: "%",
|