@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
|
@@ -5816,7 +5816,7 @@ var ZodIssueCode = {
|
|
|
5816
5816
|
var ZodFirstPartyTypeKind;
|
|
5817
5817
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5818
5818
|
//#endregion
|
|
5819
|
-
//#region ../types/dist/sleep-
|
|
5819
|
+
//#region ../types/dist/sleep-Crlmu_tO.mjs
|
|
5820
5820
|
/**
|
|
5821
5821
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5822
5822
|
* window to float samples (D455).
|
|
@@ -9136,11 +9136,11 @@ var CAP_NAMES = Object.freeze([
|
|
|
9136
9136
|
Object.freeze({
|
|
9137
9137
|
"air-quality-sensor": [
|
|
9138
9138
|
{
|
|
9139
|
-
"path": "
|
|
9139
|
+
"path": "co2",
|
|
9140
9140
|
"valueType": "number"
|
|
9141
9141
|
},
|
|
9142
9142
|
{
|
|
9143
|
-
"path": "
|
|
9143
|
+
"path": "voc",
|
|
9144
9144
|
"valueType": "number"
|
|
9145
9145
|
},
|
|
9146
9146
|
{
|
|
@@ -9190,7 +9190,7 @@ Object.freeze({
|
|
|
9190
9190
|
}
|
|
9191
9191
|
],
|
|
9192
9192
|
"ambient-light-sensor": [{
|
|
9193
|
-
"path": "
|
|
9193
|
+
"path": "illuminance",
|
|
9194
9194
|
"valueType": "number"
|
|
9195
9195
|
}],
|
|
9196
9196
|
"audio-metrics": [
|
|
@@ -9251,7 +9251,7 @@ Object.freeze({
|
|
|
9251
9251
|
],
|
|
9252
9252
|
"battery": [
|
|
9253
9253
|
{
|
|
9254
|
-
"path": "
|
|
9254
|
+
"path": "level",
|
|
9255
9255
|
"valueType": "number"
|
|
9256
9256
|
},
|
|
9257
9257
|
{
|
|
@@ -9273,7 +9273,7 @@ Object.freeze({
|
|
|
9273
9273
|
"valueType": "number"
|
|
9274
9274
|
},
|
|
9275
9275
|
{
|
|
9276
|
-
"path": "
|
|
9276
|
+
"path": "voltage",
|
|
9277
9277
|
"valueType": "number"
|
|
9278
9278
|
},
|
|
9279
9279
|
{
|
|
@@ -9294,7 +9294,7 @@ Object.freeze({
|
|
|
9294
9294
|
"valueType": "boolean"
|
|
9295
9295
|
}],
|
|
9296
9296
|
"brightness": [{
|
|
9297
|
-
"path": "
|
|
9297
|
+
"path": "level",
|
|
9298
9298
|
"valueType": "number"
|
|
9299
9299
|
}],
|
|
9300
9300
|
"broker": [{
|
|
@@ -9495,7 +9495,7 @@ Object.freeze({
|
|
|
9495
9495
|
"valueType": "number"
|
|
9496
9496
|
},
|
|
9497
9497
|
{
|
|
9498
|
-
"path": "
|
|
9498
|
+
"path": "colorTemperature",
|
|
9499
9499
|
"valueType": "number"
|
|
9500
9500
|
}
|
|
9501
9501
|
],
|
|
@@ -9674,15 +9674,15 @@ Object.freeze({
|
|
|
9674
9674
|
"valueType": "string"
|
|
9675
9675
|
},
|
|
9676
9676
|
{
|
|
9677
|
-
"path": "
|
|
9677
|
+
"path": "remaining",
|
|
9678
9678
|
"valueType": "number"
|
|
9679
9679
|
},
|
|
9680
9680
|
{
|
|
9681
|
-
"path": "
|
|
9681
|
+
"path": "delayedStart",
|
|
9682
9682
|
"valueType": "number"
|
|
9683
9683
|
},
|
|
9684
9684
|
{
|
|
9685
|
-
"path": "
|
|
9685
|
+
"path": "progress",
|
|
9686
9686
|
"valueType": "number"
|
|
9687
9687
|
},
|
|
9688
9688
|
{
|
|
@@ -9796,7 +9796,7 @@ Object.freeze({
|
|
|
9796
9796
|
],
|
|
9797
9797
|
"fan-control": [
|
|
9798
9798
|
{
|
|
9799
|
-
"path": "
|
|
9799
|
+
"path": "speed",
|
|
9800
9800
|
"valueType": "number"
|
|
9801
9801
|
},
|
|
9802
9802
|
{
|
|
@@ -9896,7 +9896,7 @@ Object.freeze({
|
|
|
9896
9896
|
}
|
|
9897
9897
|
],
|
|
9898
9898
|
"humidity-sensor": [{
|
|
9899
|
-
"path": "
|
|
9899
|
+
"path": "humidity",
|
|
9900
9900
|
"valueType": "number"
|
|
9901
9901
|
}],
|
|
9902
9902
|
"image": [{
|
|
@@ -10006,7 +10006,7 @@ Object.freeze({
|
|
|
10006
10006
|
"valueType": "number"
|
|
10007
10007
|
},
|
|
10008
10008
|
{
|
|
10009
|
-
"path": "
|
|
10009
|
+
"path": "progress",
|
|
10010
10010
|
"valueType": "number"
|
|
10011
10011
|
},
|
|
10012
10012
|
{
|
|
@@ -10085,11 +10085,11 @@ Object.freeze({
|
|
|
10085
10085
|
"valueType": "string"
|
|
10086
10086
|
},
|
|
10087
10087
|
{
|
|
10088
|
-
"path": "
|
|
10088
|
+
"path": "position",
|
|
10089
10089
|
"valueType": "number"
|
|
10090
10090
|
},
|
|
10091
10091
|
{
|
|
10092
|
-
"path": "
|
|
10092
|
+
"path": "duration",
|
|
10093
10093
|
"valueType": "number"
|
|
10094
10094
|
},
|
|
10095
10095
|
{
|
|
@@ -10191,11 +10191,11 @@ Object.freeze({
|
|
|
10191
10191
|
]
|
|
10192
10192
|
},
|
|
10193
10193
|
{
|
|
10194
|
-
"path": "
|
|
10194
|
+
"path": "signal",
|
|
10195
10195
|
"valueType": "number"
|
|
10196
10196
|
},
|
|
10197
10197
|
{
|
|
10198
|
-
"path": "
|
|
10198
|
+
"path": "rssi",
|
|
10199
10199
|
"valueType": "number"
|
|
10200
10200
|
},
|
|
10201
10201
|
{
|
|
@@ -10326,23 +10326,23 @@ Object.freeze({
|
|
|
10326
10326
|
],
|
|
10327
10327
|
"power-meter": [
|
|
10328
10328
|
{
|
|
10329
|
-
"path": "
|
|
10329
|
+
"path": "power",
|
|
10330
10330
|
"valueType": "number"
|
|
10331
10331
|
},
|
|
10332
10332
|
{
|
|
10333
|
-
"path": "
|
|
10333
|
+
"path": "energy",
|
|
10334
10334
|
"valueType": "number"
|
|
10335
10335
|
},
|
|
10336
10336
|
{
|
|
10337
|
-
"path": "
|
|
10337
|
+
"path": "voltage",
|
|
10338
10338
|
"valueType": "number"
|
|
10339
10339
|
},
|
|
10340
10340
|
{
|
|
10341
|
-
"path": "
|
|
10341
|
+
"path": "current",
|
|
10342
10342
|
"valueType": "number"
|
|
10343
10343
|
},
|
|
10344
10344
|
{
|
|
10345
|
-
"path": "
|
|
10345
|
+
"path": "apparentPower",
|
|
10346
10346
|
"valueType": "number"
|
|
10347
10347
|
},
|
|
10348
10348
|
{
|
|
@@ -10370,14 +10370,10 @@ Object.freeze({
|
|
|
10370
10370
|
{
|
|
10371
10371
|
"path": "gps.accuracyMeters",
|
|
10372
10372
|
"valueType": "number"
|
|
10373
|
-
},
|
|
10374
|
-
{
|
|
10375
|
-
"path": "batteryPercent",
|
|
10376
|
-
"valueType": "number"
|
|
10377
10373
|
}
|
|
10378
10374
|
],
|
|
10379
10375
|
"pressure-sensor": [{
|
|
10380
|
-
"path": "
|
|
10376
|
+
"path": "pressure",
|
|
10381
10377
|
"valueType": "number"
|
|
10382
10378
|
}],
|
|
10383
10379
|
"privacy-mask": [{
|
|
@@ -10691,7 +10687,7 @@ Object.freeze({
|
|
|
10691
10687
|
"valueType": "boolean"
|
|
10692
10688
|
}],
|
|
10693
10689
|
"temperature-sensor": [{
|
|
10694
|
-
"path": "
|
|
10690
|
+
"path": "temperature",
|
|
10695
10691
|
"valueType": "number"
|
|
10696
10692
|
}],
|
|
10697
10693
|
"update": [
|
|
@@ -10739,7 +10735,7 @@ Object.freeze({
|
|
|
10739
10735
|
"valueType": "string"
|
|
10740
10736
|
},
|
|
10741
10737
|
{
|
|
10742
|
-
"path": "
|
|
10738
|
+
"path": "progress",
|
|
10743
10739
|
"valueType": "number"
|
|
10744
10740
|
},
|
|
10745
10741
|
{
|
|
@@ -11214,7 +11210,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
11214
11210
|
return DeviceRole;
|
|
11215
11211
|
}({});
|
|
11216
11212
|
//#endregion
|
|
11217
|
-
//#region ../types/dist/composition-
|
|
11213
|
+
//#region ../types/dist/composition-DwA0uVW5.mjs
|
|
11218
11214
|
/**
|
|
11219
11215
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
11220
11216
|
*
|
|
@@ -19000,7 +18996,7 @@ var CompositionEventPlanSchema = object({
|
|
|
19000
18996
|
stateField: string(),
|
|
19001
18997
|
fieldKey: string()
|
|
19002
18998
|
});
|
|
19003
|
-
/** One refusal, named (D391). `path` points into the composition, e.g. `features[0].fields.
|
|
18999
|
+
/** One refusal, named (D391). `path` points into the composition, e.g. `features[0].fields.temperature`. */
|
|
19004
19000
|
var CompositionProblemSchema = object({
|
|
19005
19001
|
code: _enum([
|
|
19006
19002
|
"reserved-variant",
|
|
@@ -19282,12 +19278,13 @@ var CHANGED = {
|
|
|
19282
19278
|
expr: "now"
|
|
19283
19279
|
};
|
|
19284
19280
|
function numeric(input) {
|
|
19281
|
+
const { alsoFrom, ...base } = input;
|
|
19285
19282
|
return {
|
|
19286
|
-
...
|
|
19283
|
+
...base,
|
|
19287
19284
|
family: "numeric",
|
|
19288
19285
|
deviceType: DeviceType.Sensor,
|
|
19289
19286
|
memberDeviceType: DeviceType.Sensor,
|
|
19290
|
-
memberDeviceTypes: [DeviceType.Sensor],
|
|
19287
|
+
memberDeviceTypes: [DeviceType.Sensor, ...alsoFrom?.deviceTypes ?? []],
|
|
19291
19288
|
activeWhen: void 0,
|
|
19292
19289
|
commandCaps: [],
|
|
19293
19290
|
baseUnit: baseUnitOf(input.quantity),
|
|
@@ -19295,9 +19292,10 @@ function numeric(input) {
|
|
|
19295
19292
|
accept: [{
|
|
19296
19293
|
cap: input.outputCap,
|
|
19297
19294
|
fieldPath: input.outputField
|
|
19298
|
-
}]
|
|
19295
|
+
}, ...alsoFrom === void 0 ? [] : [alsoFrom.accept]]
|
|
19299
19296
|
};
|
|
19300
19297
|
}
|
|
19298
|
+
var CLIMATE_DEVICES = [DeviceType.Thermostat, DeviceType.Climate];
|
|
19301
19299
|
function binary(input) {
|
|
19302
19300
|
return {
|
|
19303
19301
|
...input,
|
|
@@ -19319,29 +19317,43 @@ var GROUP_TEMPLATES = [
|
|
|
19319
19317
|
summary: "Mean, median, min, max or sum of temperatures. Offline and unknown members are left out, never read as 0 °C.",
|
|
19320
19318
|
role: DeviceRole.TemperatureSensor,
|
|
19321
19319
|
outputCap: "temperature-sensor",
|
|
19322
|
-
outputField: "
|
|
19320
|
+
outputField: "temperature",
|
|
19323
19321
|
quantity: "temperature",
|
|
19324
19322
|
defaultAggregate: "mean",
|
|
19325
19323
|
empty: "null",
|
|
19326
|
-
companions: [NOW$2]
|
|
19324
|
+
companions: [NOW$2],
|
|
19325
|
+
alsoFrom: {
|
|
19326
|
+
deviceTypes: CLIMATE_DEVICES,
|
|
19327
|
+
accept: {
|
|
19328
|
+
cap: "climate-control",
|
|
19329
|
+
fieldPath: "currentTemp"
|
|
19330
|
+
}
|
|
19331
|
+
}
|
|
19327
19332
|
}),
|
|
19328
19333
|
numeric({
|
|
19329
19334
|
id: "humidity",
|
|
19330
19335
|
summary: "Humidity in percent. Offline and unknown members are left out, never read as 0 %.",
|
|
19331
19336
|
role: DeviceRole.HumiditySensor,
|
|
19332
19337
|
outputCap: "humidity-sensor",
|
|
19333
|
-
outputField: "
|
|
19338
|
+
outputField: "humidity",
|
|
19334
19339
|
quantity: "humidity",
|
|
19335
19340
|
defaultAggregate: "mean",
|
|
19336
19341
|
empty: "null",
|
|
19337
|
-
companions: [NOW$2]
|
|
19342
|
+
companions: [NOW$2],
|
|
19343
|
+
alsoFrom: {
|
|
19344
|
+
deviceTypes: CLIMATE_DEVICES,
|
|
19345
|
+
accept: {
|
|
19346
|
+
cap: "climate-control",
|
|
19347
|
+
fieldPath: "currentHumidity"
|
|
19348
|
+
}
|
|
19349
|
+
}
|
|
19338
19350
|
}),
|
|
19339
19351
|
numeric({
|
|
19340
19352
|
id: "pressure",
|
|
19341
19353
|
summary: "Pressure in hectopascals. Offline and unknown members are left out, never read as 0 hPa.",
|
|
19342
19354
|
role: DeviceRole.PressureSensor,
|
|
19343
19355
|
outputCap: "pressure-sensor",
|
|
19344
|
-
outputField: "
|
|
19356
|
+
outputField: "pressure",
|
|
19345
19357
|
quantity: "pressure",
|
|
19346
19358
|
defaultAggregate: "mean",
|
|
19347
19359
|
empty: "null",
|
|
@@ -19352,7 +19364,7 @@ var GROUP_TEMPLATES = [
|
|
|
19352
19364
|
summary: "Illuminance in lux. Offline and unknown members are left out, never read as 0 lx.",
|
|
19353
19365
|
role: DeviceRole.AmbientLightSensor,
|
|
19354
19366
|
outputCap: "ambient-light-sensor",
|
|
19355
|
-
outputField: "
|
|
19367
|
+
outputField: "illuminance",
|
|
19356
19368
|
quantity: "illuminance",
|
|
19357
19369
|
defaultAggregate: "mean",
|
|
19358
19370
|
empty: "null",
|
|
@@ -19363,7 +19375,7 @@ var GROUP_TEMPLATES = [
|
|
|
19363
19375
|
summary: "Power in watts, summed by default. Nobody reporting omits the key rather than writing 0 W.",
|
|
19364
19376
|
role: DeviceRole.PowerSensor,
|
|
19365
19377
|
outputCap: "power-meter",
|
|
19366
|
-
outputField: "
|
|
19378
|
+
outputField: "power",
|
|
19367
19379
|
quantity: "power",
|
|
19368
19380
|
defaultAggregate: "sum",
|
|
19369
19381
|
empty: "omit",
|
|
@@ -19374,7 +19386,7 @@ var GROUP_TEMPLATES = [
|
|
|
19374
19386
|
summary: "Energy in kilowatt-hours, summed by default. Nobody reporting omits the key rather than writing 0 kWh.",
|
|
19375
19387
|
role: DeviceRole.EnergySensor,
|
|
19376
19388
|
outputCap: "power-meter",
|
|
19377
|
-
outputField: "
|
|
19389
|
+
outputField: "energy",
|
|
19378
19390
|
quantity: "energy",
|
|
19379
19391
|
defaultAggregate: "sum",
|
|
19380
19392
|
empty: "omit",
|
|
@@ -19385,7 +19397,7 @@ var GROUP_TEMPLATES = [
|
|
|
19385
19397
|
summary: "Battery charge in percent. Offline and unknown members are left out, never read as 0 %.",
|
|
19386
19398
|
role: DeviceRole.BatterySensor,
|
|
19387
19399
|
outputCap: "battery",
|
|
19388
|
-
outputField: "
|
|
19400
|
+
outputField: "level",
|
|
19389
19401
|
quantity: "percentage",
|
|
19390
19402
|
defaultAggregate: "mean",
|
|
19391
19403
|
empty: "null",
|
|
@@ -44874,6 +44886,43 @@ var NotificationActionSchema = object({
|
|
|
44874
44886
|
*/
|
|
44875
44887
|
mode: _enum(["navigate", "background"]).optional()
|
|
44876
44888
|
});
|
|
44889
|
+
/** A delivery parameter value: what a notifier declared it takes. */
|
|
44890
|
+
var DeliveryParamValueSchema = union([
|
|
44891
|
+
string(),
|
|
44892
|
+
number(),
|
|
44893
|
+
boolean()
|
|
44894
|
+
]);
|
|
44895
|
+
/**
|
|
44896
|
+
* One extra delivery parameter a notifier KIND declares (D938). A rule that
|
|
44897
|
+
* addresses a target of that kind may set it; a kind that declares nothing is
|
|
44898
|
+
* never handed one. The admin UI derives its control from this descriptor —
|
|
44899
|
+
* no editor knows a service by name.
|
|
44900
|
+
*
|
|
44901
|
+
* Optional fields are `.optional()`, never `.default()` (a Zod default does not
|
|
44902
|
+
* run on the addon cap path).
|
|
44903
|
+
*/
|
|
44904
|
+
var DeliveryParamSchema = object({
|
|
44905
|
+
key: string().min(1),
|
|
44906
|
+
label: string(),
|
|
44907
|
+
/** i18n key of the label, resolved by the declaring addon's namespace. */
|
|
44908
|
+
labelKey: string().optional(),
|
|
44909
|
+
type: _enum([
|
|
44910
|
+
"enum",
|
|
44911
|
+
"number",
|
|
44912
|
+
"boolean",
|
|
44913
|
+
"string"
|
|
44914
|
+
]),
|
|
44915
|
+
/** `enum` only: the closed set of accepted values. */
|
|
44916
|
+
options: array(object({
|
|
44917
|
+
value: string(),
|
|
44918
|
+
label: string()
|
|
44919
|
+
})).optional(),
|
|
44920
|
+
/** `number` only. */
|
|
44921
|
+
min: number().optional(),
|
|
44922
|
+
max: number().optional(),
|
|
44923
|
+
/** What the notifier does when the rule sets nothing; shown as the placeholder. */
|
|
44924
|
+
default: DeliveryParamValueSchema.optional()
|
|
44925
|
+
});
|
|
44877
44926
|
/**
|
|
44878
44927
|
* The canonical notification. `body` is the only hard field (Apprise model).
|
|
44879
44928
|
* `priority` is a 5-level ORDINAL (1=lowest … 3=normal(default) … 5=urgent),
|
|
@@ -44896,7 +44945,13 @@ var NotificationSchema = object({
|
|
|
44896
44945
|
tag: string().optional(),
|
|
44897
44946
|
deviceId: number().optional(),
|
|
44898
44947
|
eventId: string().optional(),
|
|
44899
|
-
metadata: record(string(), unknown()).optional()
|
|
44948
|
+
metadata: record(string(), unknown()).optional(),
|
|
44949
|
+
/**
|
|
44950
|
+
* Values for the parameters the target's kind DECLARES in
|
|
44951
|
+
* {@link TargetKindSchema} `deliveryParams`. Already validated against the
|
|
44952
|
+
* declaration by the sender; a notifier reads only the keys it declared.
|
|
44953
|
+
*/
|
|
44954
|
+
delivery: record(string(), DeliveryParamValueSchema).optional()
|
|
44900
44955
|
});
|
|
44901
44956
|
/** One declared native severity/priority level for a kind. */
|
|
44902
44957
|
var TargetKindLevelSchema = object({
|
|
@@ -45002,6 +45057,11 @@ var TargetKindSchema = object({
|
|
|
45002
45057
|
*/
|
|
45003
45058
|
destinationKeys: array(string()).optional(),
|
|
45004
45059
|
supportsDiscovery: boolean(),
|
|
45060
|
+
/**
|
|
45061
|
+
* Extra delivery parameters a rule may set for a target of this kind (D938).
|
|
45062
|
+
* Absent = none; the rule editor then offers nothing.
|
|
45063
|
+
*/
|
|
45064
|
+
deliveryParams: array(DeliveryParamSchema).optional(),
|
|
45005
45065
|
caps: TargetKindCapsSchema
|
|
45006
45066
|
});
|
|
45007
45067
|
/**
|
|
@@ -57172,7 +57232,9 @@ var ManifestShapeSchema = object({
|
|
|
57172
57232
|
icon: string().optional()
|
|
57173
57233
|
}).optional(),
|
|
57174
57234
|
protected: boolean().optional(),
|
|
57175
|
-
removable: boolean().optional()
|
|
57235
|
+
removable: boolean().optional(),
|
|
57236
|
+
/** Declared Integrations-page block (mirror of `AddonDeclaration.integrationSection`). */
|
|
57237
|
+
integrationSection: _enum(["system", "providers"]).optional()
|
|
57176
57238
|
});
|
|
57177
57239
|
var AddonProcessSchema = object({
|
|
57178
57240
|
pid: number().optional(),
|
|
@@ -57537,9 +57599,9 @@ method(object({ nodeId: string().optional() }).optional(), array(AddonListItemSc
|
|
|
57537
57599
|
}), LogStreamEntrySchema, { kind: "subscription" });
|
|
57538
57600
|
object({
|
|
57539
57601
|
/** Carbon dioxide concentration in ppm. */
|
|
57540
|
-
|
|
57602
|
+
co2: number().min(0).optional().meta(readingMeta("concentration-volume")),
|
|
57541
57603
|
/** Total volatile organic compounds in ppb. */
|
|
57542
|
-
|
|
57604
|
+
voc: number().min(0).optional().meta(readingMeta("concentration-ppb")),
|
|
57543
57605
|
/** Particulate matter ≤ 2.5 μm in µg/m³. */
|
|
57544
57606
|
pm25: number().min(0).optional().meta(readingMeta("concentration-mass")),
|
|
57545
57607
|
/** Particulate matter ≤ 10 μm in µg/m³. */
|
|
@@ -57552,7 +57614,7 @@ object({
|
|
|
57552
57614
|
DeviceType.Sensor;
|
|
57553
57615
|
object({
|
|
57554
57616
|
/** Current illuminance in lux (lx). `null` when the sample was refused (D393). */
|
|
57555
|
-
|
|
57617
|
+
illuminance: number().min(0).nullable().meta(readingMeta("illuminance", {
|
|
57556
57618
|
precision: 0,
|
|
57557
57619
|
label: "Illuminance"
|
|
57558
57620
|
})),
|
|
@@ -57780,7 +57842,7 @@ var BatteryStatusSchema = object({
|
|
|
57780
57842
|
* Consumers must SKIP a null rather than coerce it — `battery-band` already
|
|
57781
57843
|
* declines to band a non-finite reading, which is the correct shape.
|
|
57782
57844
|
*/
|
|
57783
|
-
|
|
57845
|
+
level: number().min(0).max(100).nullable().meta(readingMeta("percentage", { label: "Charge" })),
|
|
57784
57846
|
/**
|
|
57785
57847
|
* Charging source. `'dc'` covers wall/USB adapters; `'solar'` is
|
|
57786
57848
|
* Reolink-specific for the Solar Panel 2 accessory (will become
|
|
@@ -57790,7 +57852,7 @@ var BatteryStatusSchema = object({
|
|
|
57790
57852
|
* `'unknown'` is the absence of an answer: the provider has not read the
|
|
57791
57853
|
* power fields yet, or the firmware reported neither. Before it existed,
|
|
57792
57854
|
* two unreadable fields produced `'none'`, and a camera nobody had reached
|
|
57793
|
-
* was drawn "on battery alone" — the same D315 defect `
|
|
57855
|
+
* was drawn "on battery alone" — the same D315 defect `level` closed
|
|
57794
57856
|
* by going nullable. Consumers SKIP it (no charger state published, no
|
|
57795
57857
|
* glyph, no HomeKit ChargingState) rather than coerce it either way.
|
|
57796
57858
|
*/
|
|
@@ -57814,7 +57876,7 @@ var BatteryStatusSchema = object({
|
|
|
57814
57876
|
* that only report charge. A second reading on this cap, not a second
|
|
57815
57877
|
* `numeric-sensor` on the same device.
|
|
57816
57878
|
*/
|
|
57817
|
-
|
|
57879
|
+
voltage: number().nullable().optional().meta(readingMeta("voltage", { label: "Voltage" })),
|
|
57818
57880
|
/**
|
|
57819
57881
|
* Ms epoch of the last time the device PROVED it was reachable — a
|
|
57820
57882
|
* completed firmware round-trip, an observed wake, or an inbound push
|
|
@@ -57848,7 +57910,7 @@ var BatteryStatusSchema = object({
|
|
|
57848
57910
|
/**
|
|
57849
57911
|
* True when the source is a BINARY low-battery indicator (HA
|
|
57850
57912
|
* `binary_sensor` device_class=battery / `LOW_BAT`) that has no real
|
|
57851
|
-
* charge level — `
|
|
57913
|
+
* charge level — `level` is then a coarse stand-in (100 = normal,
|
|
57852
57914
|
* sub-threshold = low). UI MUST render "Normal"/"Low" instead of a
|
|
57853
57915
|
* misleading exact percentage. Absent/false → genuine 0–100 % reading.
|
|
57854
57916
|
*/
|
|
@@ -57874,19 +57936,19 @@ object({
|
|
|
57874
57936
|
DeviceType.Sensor;
|
|
57875
57937
|
object({
|
|
57876
57938
|
/** Current level as 0..100 inclusive. Firmware-reported. */
|
|
57877
|
-
|
|
57939
|
+
level: number().min(0).max(100).meta(readingMeta("percentage")),
|
|
57878
57940
|
/** Ms epoch of the last operator-driven change. Useful for UI freshness. */
|
|
57879
57941
|
lastChangedAt: number()
|
|
57880
57942
|
});
|
|
57881
57943
|
DeviceType.Light, method(object({
|
|
57882
57944
|
deviceId: number().int().nonnegative(),
|
|
57883
|
-
|
|
57945
|
+
level: number().min(0).max(100)
|
|
57884
57946
|
}), _void(), {
|
|
57885
57947
|
kind: "mutation",
|
|
57886
57948
|
auth: "protected"
|
|
57887
57949
|
}), object({
|
|
57888
57950
|
deviceId: number(),
|
|
57889
|
-
|
|
57951
|
+
level: number().min(0).max(100),
|
|
57890
57952
|
lastChangedAt: number()
|
|
57891
57953
|
});
|
|
57892
57954
|
DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
@@ -58387,11 +58449,11 @@ var ColorInputSchema = discriminatedUnion("mode", [
|
|
|
58387
58449
|
}),
|
|
58388
58450
|
object({
|
|
58389
58451
|
mode: literal("mired"),
|
|
58390
|
-
|
|
58452
|
+
colorTemperature: number().int().min(50).max(1e3)
|
|
58391
58453
|
})
|
|
58392
58454
|
]);
|
|
58393
58455
|
object({
|
|
58394
|
-
/** Active color mode — which of `rgb` / `hsv` / `
|
|
58456
|
+
/** Active color mode — which of `rgb` / `hsv` / `colorTemperature` reflects
|
|
58395
58457
|
* the bulb's current state. */
|
|
58396
58458
|
mode: _enum([
|
|
58397
58459
|
"rgb",
|
|
@@ -58403,7 +58465,7 @@ object({
|
|
|
58403
58465
|
/** Populated when `mode === 'hsv'`. */
|
|
58404
58466
|
hsv: HsvTripletSchema.optional(),
|
|
58405
58467
|
/** Populated when `mode === 'mired'`. */
|
|
58406
|
-
|
|
58468
|
+
colorTemperature: number().int().optional().meta(readingMeta("colour-temperature")),
|
|
58407
58469
|
/** Ms epoch of the last operator-driven change. */
|
|
58408
58470
|
lastChangedAt: number()
|
|
58409
58471
|
});
|
|
@@ -58422,7 +58484,7 @@ DeviceType.Light, method(object({
|
|
|
58422
58484
|
]),
|
|
58423
58485
|
rgb: RgbTripletSchema.optional(),
|
|
58424
58486
|
hsv: HsvTripletSchema.optional(),
|
|
58425
|
-
|
|
58487
|
+
colorTemperature: number().int().optional(),
|
|
58426
58488
|
lastChangedAt: number()
|
|
58427
58489
|
});
|
|
58428
58490
|
var ConnectionTestOutcomeSchema = discriminatedUnion("outcome", [
|
|
@@ -58848,11 +58910,11 @@ object({
|
|
|
58848
58910
|
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
58849
58911
|
availablePrograms: array(string()),
|
|
58850
58912
|
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
58851
|
-
|
|
58913
|
+
remaining: number().int().nonnegative().nullable().meta(readingMeta("duration")),
|
|
58852
58914
|
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
58853
|
-
|
|
58915
|
+
delayedStart: number().int().nonnegative().nullable().meta(readingMeta("duration")),
|
|
58854
58916
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
58855
|
-
|
|
58917
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
58856
58918
|
/** True when the door is reported open; null when the door state is not known. */
|
|
58857
58919
|
doorOpen: boolean().nullable(),
|
|
58858
58920
|
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
@@ -59470,7 +59532,7 @@ var FanDirectionSchema = _enum(["forward", "reverse"]);
|
|
|
59470
59532
|
object({
|
|
59471
59533
|
/** Active speed as 0..100 inclusive. Null when the device has no
|
|
59472
59534
|
* speed surface (single-speed fan). */
|
|
59473
|
-
|
|
59535
|
+
speed: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
59474
59536
|
/** Speed granularity the device accepts (HA `percentage_step`, e.g. 25 for
|
|
59475
59537
|
* a 4-speed fan). Absent when unknown — the UI then falls back to step 1. */
|
|
59476
59538
|
percentageStep: number().positive().optional().meta(readingMeta("percentage")),
|
|
@@ -59490,7 +59552,7 @@ object({
|
|
|
59490
59552
|
});
|
|
59491
59553
|
DeviceType.Fan, method(object({
|
|
59492
59554
|
deviceId: number().int().nonnegative(),
|
|
59493
|
-
|
|
59555
|
+
speed: number().min(0).max(100)
|
|
59494
59556
|
}), _void(), {
|
|
59495
59557
|
kind: "mutation",
|
|
59496
59558
|
auth: "protected"
|
|
@@ -59673,7 +59735,7 @@ DeviceType.Humidifier, method(object({
|
|
|
59673
59735
|
});
|
|
59674
59736
|
object({
|
|
59675
59737
|
/** Current relative humidity, 0..100. `null` when the sample was refused (D393). */
|
|
59676
|
-
|
|
59738
|
+
humidity: number().min(0).max(100).nullable().meta(readingMeta("humidity", {
|
|
59677
59739
|
precision: 0,
|
|
59678
59740
|
label: "Humidity"
|
|
59679
59741
|
})),
|
|
@@ -60116,7 +60178,7 @@ object({
|
|
|
60116
60178
|
batteryLevel: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
60117
60179
|
/** 0..100 mowing-completion percentage of the current task, or null when no
|
|
60118
60180
|
* task is active / progress is unavailable. */
|
|
60119
|
-
|
|
60181
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
60120
60182
|
/** Current device/event code (dynamic — mostly status, sometimes an error),
|
|
60121
60183
|
* or null when unknown. */
|
|
60122
60184
|
currentCode: number().nullable().meta(readingMeta("none")),
|
|
@@ -60606,10 +60668,10 @@ object({
|
|
|
60606
60668
|
currentMedia: MediaInfoSchema.nullable(),
|
|
60607
60669
|
/** Current playback position in ms. Null when not seekable or
|
|
60608
60670
|
* nothing is playing. Pair with `DeviceFeature.MediaPlayerSeek`. */
|
|
60609
|
-
|
|
60671
|
+
position: number().int().nonnegative().nullable().meta(readingMeta("duration-ms")),
|
|
60610
60672
|
/** Total duration of the current media in ms. Null when unknown
|
|
60611
60673
|
* (live stream) or nothing is playing. */
|
|
60612
|
-
|
|
60674
|
+
duration: number().int().nonnegative().nullable().meta(readingMeta("duration-ms")),
|
|
60613
60675
|
/** Shuffle toggle. Null when no shuffle surface.
|
|
60614
60676
|
* Pair with `DeviceFeature.MediaPlayerShuffle`. */
|
|
60615
60677
|
shuffle: boolean().nullable(),
|
|
@@ -60636,7 +60698,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
|
|
|
60636
60698
|
auth: "protected"
|
|
60637
60699
|
}), method(object({
|
|
60638
60700
|
deviceId: number().int().nonnegative(),
|
|
60639
|
-
|
|
60701
|
+
position: number().int().nonnegative()
|
|
60640
60702
|
}), _void(), {
|
|
60641
60703
|
kind: "mutation",
|
|
60642
60704
|
auth: "protected"
|
|
@@ -61309,9 +61371,9 @@ var NetworkLinkStatusSchema = object({
|
|
|
61309
61371
|
* one whose reading has not landed must not be drawn at 0 %. Consumers
|
|
61310
61372
|
* SKIP a null rather than coerce it.
|
|
61311
61373
|
*/
|
|
61312
|
-
|
|
61374
|
+
signal: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
61313
61375
|
/** Raw received signal strength in dBm, when the firmware reports one. */
|
|
61314
|
-
|
|
61376
|
+
rssi: number().optional().meta(readingMeta("signal-level")),
|
|
61315
61377
|
/** Network name of a wireless link, when the firmware reports it. */
|
|
61316
61378
|
ssid: string().optional(),
|
|
61317
61379
|
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
@@ -62461,16 +62523,16 @@ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema)
|
|
|
62461
62523
|
auth: "admin"
|
|
62462
62524
|
});
|
|
62463
62525
|
object({
|
|
62464
|
-
/** Instantaneous power draw
|
|
62465
|
-
|
|
62526
|
+
/** Instantaneous power draw (watts). */
|
|
62527
|
+
power: number().optional().meta(readingMeta("power", { label: "Power" })),
|
|
62466
62528
|
/** Cumulative energy in kilowatt-hours since the meter was reset. */
|
|
62467
|
-
|
|
62468
|
-
/** Voltage
|
|
62469
|
-
|
|
62529
|
+
energy: number().optional().meta(readingMeta("energy", { label: "Energy" })),
|
|
62530
|
+
/** Voltage (volts). */
|
|
62531
|
+
voltage: number().optional().meta(readingMeta("voltage", { label: "Voltage" })),
|
|
62470
62532
|
/** Current in amperes. */
|
|
62471
|
-
|
|
62533
|
+
current: number().optional().meta(readingMeta("current", { label: "Current" })),
|
|
62472
62534
|
/** Apparent power in volt-amperes. */
|
|
62473
|
-
|
|
62535
|
+
apparentPower: number().optional().meta(readingMeta("apparent-power")),
|
|
62474
62536
|
/** Power factor (0..1) if reported. */
|
|
62475
62537
|
powerFactor: number().min(0).max(1).optional().meta(readingMeta("ratio")),
|
|
62476
62538
|
/** Ms epoch when the slice was last updated. */
|
|
@@ -62525,16 +62587,13 @@ object({
|
|
|
62525
62587
|
location: string().nullable(),
|
|
62526
62588
|
/** GPS coordinates when available. Null otherwise. */
|
|
62527
62589
|
gps: GpsLocationSchema.nullable(),
|
|
62528
|
-
/** Optional battery level of the tracking device (0..100). Null
|
|
62529
|
-
* when not reported. */
|
|
62530
|
-
batteryPercent: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
62531
62590
|
/** Ms epoch when the slice was last updated. */
|
|
62532
62591
|
lastChangedAt: number()
|
|
62533
62592
|
});
|
|
62534
62593
|
DeviceType.Presence;
|
|
62535
62594
|
object({
|
|
62536
62595
|
/** Current pressure in hPa. `null` when the sample was refused (D393). */
|
|
62537
|
-
|
|
62596
|
+
pressure: number().nullable().meta(readingMeta("pressure", { precision: 0 })),
|
|
62538
62597
|
/** Ms epoch when the slice was last updated. */
|
|
62539
62598
|
lastFetchedAt: number()
|
|
62540
62599
|
});
|
|
@@ -65537,7 +65596,7 @@ object({
|
|
|
65537
65596
|
DeviceType.Sensor;
|
|
65538
65597
|
object({
|
|
65539
65598
|
/** Current temperature in Celsius. `null` when the sample was refused (D393). */
|
|
65540
|
-
|
|
65599
|
+
temperature: number().nullable().meta(readingMeta("temperature", {
|
|
65541
65600
|
precision: 1,
|
|
65542
65601
|
label: "Temperature"
|
|
65543
65602
|
})),
|
|
@@ -65801,7 +65860,7 @@ object({
|
|
|
65801
65860
|
/** Speed tokens the hardware accepts — drives the UI selector. */
|
|
65802
65861
|
availableFanSpeeds: array(string()),
|
|
65803
65862
|
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
65804
|
-
|
|
65863
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
65805
65864
|
/** Current error code (0 / null = no error). */
|
|
65806
65865
|
errorCode: number().nullable().meta(readingMeta("none")),
|
|
65807
65866
|
/** Human label for {@link errorCode}, or null when none / undecodable. */
|
|
@@ -76869,7 +76928,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76869
76928
|
label: t("Full brightness", "Luminosità massima"),
|
|
76870
76929
|
phrase: t("Set {device} to full brightness", "Porta {device} alla massima luminosità"),
|
|
76871
76930
|
icon: "sun",
|
|
76872
|
-
args: {
|
|
76931
|
+
args: { level: 100 }
|
|
76873
76932
|
},
|
|
76874
76933
|
{
|
|
76875
76934
|
id: "brightness.half",
|
|
@@ -76877,7 +76936,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76877
76936
|
label: t("Half brightness", "Luminosità a metà"),
|
|
76878
76937
|
phrase: t("Dim {device} to half", "Abbassa {device} a metà luminosità"),
|
|
76879
76938
|
icon: "sun-dim",
|
|
76880
|
-
args: {
|
|
76939
|
+
args: { level: 50 }
|
|
76881
76940
|
},
|
|
76882
76941
|
{
|
|
76883
76942
|
id: "brightness.off",
|
|
@@ -76885,16 +76944,16 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76885
76944
|
label: t("Brightness off", "Luminosità a zero"),
|
|
76886
76945
|
phrase: t("Dim {device} to zero", "Abbassa {device} a zero"),
|
|
76887
76946
|
icon: "lightbulb-off",
|
|
76888
|
-
args: {
|
|
76947
|
+
args: { level: 0 }
|
|
76889
76948
|
},
|
|
76890
76949
|
{
|
|
76891
76950
|
id: "brightness.set",
|
|
76892
76951
|
method: "setBrightness",
|
|
76893
76952
|
label: t("Set brightness", "Imposta la luminosità"),
|
|
76894
|
-
phrase: t("Set the brightness of {device} to {
|
|
76953
|
+
phrase: t("Set the brightness of {device} to {level}", "Imposta la luminosità di {device} a {level}"),
|
|
76895
76954
|
icon: "sun-medium",
|
|
76896
76955
|
openArgs: [{
|
|
76897
|
-
key: "
|
|
76956
|
+
key: "level",
|
|
76898
76957
|
label: PERCENT,
|
|
76899
76958
|
offer: {
|
|
76900
76959
|
kind: "number",
|
|
@@ -76908,13 +76967,13 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76908
76967
|
],
|
|
76909
76968
|
state: [{
|
|
76910
76969
|
kind: "numeric",
|
|
76911
|
-
field: "
|
|
76970
|
+
field: "level",
|
|
76912
76971
|
quantity: t("the brightness", "la luminosità"),
|
|
76913
76972
|
label: t("Brightness", "Luminosità"),
|
|
76914
76973
|
unit: "%",
|
|
76915
76974
|
icon: "sun"
|
|
76916
76975
|
}],
|
|
76917
|
-
events: { onBrightnessChanged: { notOperatorFacing: "the `
|
|
76976
|
+
events: { onBrightnessChanged: { notOperatorFacing: "the `level` state trigger reads the same change" } }
|
|
76918
76977
|
},
|
|
76919
76978
|
color: {
|
|
76920
76979
|
scope: "device",
|
|
@@ -76928,7 +76987,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76928
76987
|
icon: "sun",
|
|
76929
76988
|
args: { color: {
|
|
76930
76989
|
mode: "mired",
|
|
76931
|
-
|
|
76990
|
+
colorTemperature: 370
|
|
76932
76991
|
} }
|
|
76933
76992
|
},
|
|
76934
76993
|
{
|
|
@@ -76939,7 +76998,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76939
76998
|
icon: "snowflake",
|
|
76940
76999
|
args: { color: {
|
|
76941
77000
|
mode: "mired",
|
|
76942
|
-
|
|
77001
|
+
colorTemperature: 200
|
|
76943
77002
|
} }
|
|
76944
77003
|
},
|
|
76945
77004
|
{
|
|
@@ -77553,7 +77612,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77553
77612
|
label: t("Fan off", "Ventilatore spento"),
|
|
77554
77613
|
phrase: t("Stop {device}", "Ferma {device}"),
|
|
77555
77614
|
icon: "power-off",
|
|
77556
|
-
args: {
|
|
77615
|
+
args: { speed: 0 }
|
|
77557
77616
|
},
|
|
77558
77617
|
{
|
|
77559
77618
|
id: "fan.full",
|
|
@@ -77561,16 +77620,16 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77561
77620
|
label: t("Fan full", "Ventilatore al massimo"),
|
|
77562
77621
|
phrase: t("Run {device} at full speed", "Porta {device} alla massima velocità"),
|
|
77563
77622
|
icon: "fan",
|
|
77564
|
-
args: {
|
|
77623
|
+
args: { speed: 100 }
|
|
77565
77624
|
},
|
|
77566
77625
|
{
|
|
77567
77626
|
id: "fan.speed",
|
|
77568
77627
|
method: "setPercentage",
|
|
77569
77628
|
label: t("Set speed", "Imposta la velocità"),
|
|
77570
|
-
phrase: t("Set the speed of {device} to {
|
|
77629
|
+
phrase: t("Set the speed of {device} to {speed}", "Imposta la velocità di {device} al {speed}"),
|
|
77571
77630
|
icon: "fan",
|
|
77572
77631
|
openArgs: [{
|
|
77573
|
-
key: "
|
|
77632
|
+
key: "speed",
|
|
77574
77633
|
label: t("Speed", "Velocità"),
|
|
77575
77634
|
offer: {
|
|
77576
77635
|
kind: "number",
|
|
@@ -77632,7 +77691,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77632
77691
|
],
|
|
77633
77692
|
state: [{
|
|
77634
77693
|
kind: "numeric",
|
|
77635
|
-
field: "
|
|
77694
|
+
field: "speed",
|
|
77636
77695
|
quantity: t("the speed", "la velocità"),
|
|
77637
77696
|
label: t("Speed", "Velocità"),
|
|
77638
77697
|
unit: "%",
|
|
@@ -78430,7 +78489,7 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
78430
78489
|
},
|
|
78431
78490
|
{
|
|
78432
78491
|
kind: "numeric",
|
|
78433
|
-
field: "
|
|
78492
|
+
field: "progress",
|
|
78434
78493
|
quantity: t("the cycle progress", "l’avanzamento del lavaggio"),
|
|
78435
78494
|
label: t("Progress", "Avanzamento"),
|
|
78436
78495
|
unit: "%",
|
|
@@ -78788,10 +78847,10 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
78788
78847
|
id: "media.seek",
|
|
78789
78848
|
method: "seek",
|
|
78790
78849
|
label: t("Seek", "Vai al punto"),
|
|
78791
|
-
phrase: t("Move {device} to {
|
|
78850
|
+
phrase: t("Move {device} to {position}", "Porta {device} al punto {position}"),
|
|
78792
78851
|
icon: "fast-forward",
|
|
78793
78852
|
openArgs: [{
|
|
78794
|
-
key: "
|
|
78853
|
+
key: "position",
|
|
78795
78854
|
label: t("Position", "Posizione"),
|
|
78796
78855
|
offer: {
|
|
78797
78856
|
kind: "number",
|
|
@@ -79840,7 +79899,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79840
79899
|
state: [
|
|
79841
79900
|
{
|
|
79842
79901
|
kind: "numeric",
|
|
79843
|
-
field: "
|
|
79902
|
+
field: "co2",
|
|
79844
79903
|
quantity: t("the CO₂", "la CO₂"),
|
|
79845
79904
|
label: t("CO₂", "CO₂"),
|
|
79846
79905
|
unit: "ppm",
|
|
@@ -79848,7 +79907,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79848
79907
|
},
|
|
79849
79908
|
{
|
|
79850
79909
|
kind: "numeric",
|
|
79851
|
-
field: "
|
|
79910
|
+
field: "voc",
|
|
79852
79911
|
quantity: t("the VOC level", "il livello di COV"),
|
|
79853
79912
|
label: t("VOC", "COV"),
|
|
79854
79913
|
unit: "ppb",
|
|
@@ -79884,7 +79943,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79884
79943
|
noun: t("Light level", "Luminosità ambiente"),
|
|
79885
79944
|
state: [{
|
|
79886
79945
|
kind: "numeric",
|
|
79887
|
-
field: "
|
|
79946
|
+
field: "illuminance",
|
|
79888
79947
|
quantity: t("the light level", "la luminosità"),
|
|
79889
79948
|
label: t("Illuminance", "Illuminamento"),
|
|
79890
79949
|
unit: "lx",
|
|
@@ -80087,7 +80146,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80087
80146
|
noun: t("Humidity", "Umidità"),
|
|
80088
80147
|
state: [{
|
|
80089
80148
|
kind: "numeric",
|
|
80090
|
-
field: "
|
|
80149
|
+
field: "humidity",
|
|
80091
80150
|
quantity: t("the humidity", "l’umidità"),
|
|
80092
80151
|
label: t("Humidity", "Umidità"),
|
|
80093
80152
|
unit: "%",
|
|
@@ -80135,7 +80194,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80135
80194
|
state: [
|
|
80136
80195
|
{
|
|
80137
80196
|
kind: "numeric",
|
|
80138
|
-
field: "
|
|
80197
|
+
field: "power",
|
|
80139
80198
|
quantity: t("the power draw", "il consumo"),
|
|
80140
80199
|
label: t("Power", "Potenza"),
|
|
80141
80200
|
unit: "W",
|
|
@@ -80143,7 +80202,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80143
80202
|
},
|
|
80144
80203
|
{
|
|
80145
80204
|
kind: "numeric",
|
|
80146
|
-
field: "
|
|
80205
|
+
field: "energy",
|
|
80147
80206
|
quantity: t("the energy used", "l’energia consumata"),
|
|
80148
80207
|
label: t("Energy", "Energia"),
|
|
80149
80208
|
unit: "kWh",
|
|
@@ -80151,7 +80210,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80151
80210
|
},
|
|
80152
80211
|
{
|
|
80153
80212
|
kind: "numeric",
|
|
80154
|
-
field: "
|
|
80213
|
+
field: "voltage",
|
|
80155
80214
|
quantity: t("the voltage", "la tensione"),
|
|
80156
80215
|
label: t("Voltage", "Tensione"),
|
|
80157
80216
|
unit: "V",
|
|
@@ -80159,7 +80218,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80159
80218
|
},
|
|
80160
80219
|
{
|
|
80161
80220
|
kind: "numeric",
|
|
80162
|
-
field: "
|
|
80221
|
+
field: "current",
|
|
80163
80222
|
quantity: t("the current", "la corrente"),
|
|
80164
80223
|
label: t("Current", "Corrente"),
|
|
80165
80224
|
unit: "A",
|
|
@@ -80176,13 +80235,6 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80176
80235
|
label: t("Where", "Posizione"),
|
|
80177
80236
|
phrase: t("When {device} is at {value}", "Quando {device} è in {value}"),
|
|
80178
80237
|
icon: "map-pin"
|
|
80179
|
-
}, {
|
|
80180
|
-
kind: "numeric",
|
|
80181
|
-
field: "batteryPercent",
|
|
80182
|
-
quantity: t("the phone battery", "la batteria del telefono"),
|
|
80183
|
-
label: t("Battery", "Batteria"),
|
|
80184
|
-
unit: "%",
|
|
80185
|
-
icon: "battery"
|
|
80186
80238
|
}]
|
|
80187
80239
|
},
|
|
80188
80240
|
"pressure-sensor": {
|
|
@@ -80190,7 +80242,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80190
80242
|
noun: t("Pressure", "Pressione"),
|
|
80191
80243
|
state: [{
|
|
80192
80244
|
kind: "numeric",
|
|
80193
|
-
field: "
|
|
80245
|
+
field: "pressure",
|
|
80194
80246
|
quantity: t("the pressure", "la pressione"),
|
|
80195
80247
|
label: t("Pressure", "Pressione"),
|
|
80196
80248
|
unit: "hPa",
|
|
@@ -80226,7 +80278,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80226
80278
|
noun: t("Temperature", "Temperatura"),
|
|
80227
80279
|
state: [{
|
|
80228
80280
|
kind: "numeric",
|
|
80229
|
-
field: "
|
|
80281
|
+
field: "temperature",
|
|
80230
80282
|
quantity: t("the temperature", "la temperatura"),
|
|
80231
80283
|
label: t("Temperature", "Temperatura"),
|
|
80232
80284
|
unit: "°C",
|
|
@@ -80297,7 +80349,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80297
80349
|
state: [
|
|
80298
80350
|
{
|
|
80299
80351
|
kind: "numeric",
|
|
80300
|
-
field: "
|
|
80352
|
+
field: "level",
|
|
80301
80353
|
quantity: t("the battery level", "il livello della batteria"),
|
|
80302
80354
|
label: t("Battery", "Batteria"),
|
|
80303
80355
|
unit: "%",
|
|
@@ -80339,7 +80391,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80339
80391
|
icon: "battery-charging"
|
|
80340
80392
|
}
|
|
80341
80393
|
],
|
|
80342
|
-
events: { onStatusChanged: { notOperatorFacing: "the
|
|
80394
|
+
events: { onStatusChanged: { notOperatorFacing: "the level / sleeping / charging state triggers each read one field of this change" } },
|
|
80343
80395
|
extraEvents: [{
|
|
80344
80396
|
category: EventCategory.DeviceAwake,
|
|
80345
80397
|
label: t("Woke up", "Risvegliato"),
|
|
@@ -80357,7 +80409,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80357
80409
|
noun: t("Network link", "Collegamento di rete"),
|
|
80358
80410
|
state: [{
|
|
80359
80411
|
kind: "numeric",
|
|
80360
|
-
field: "
|
|
80412
|
+
field: "signal",
|
|
80361
80413
|
quantity: t("the signal strength", "l’intensità del segnale"),
|
|
80362
80414
|
label: t("Signal", "Segnale"),
|
|
80363
80415
|
unit: "%",
|