@camstack/addon-training 0.1.99 → 0.1.101
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-DBC9oNEy.mjs → MotionZonesSettings-BJesO_kB.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-MPmxoEGa.mjs → PrivacyMaskSettings-BdPxtLGP.mjs} +2 -2
- package/dist/{SceneMonitorEditor-q8rm9EAO.mjs → SceneMonitorEditor-DZPmgWAn.mjs} +2 -2
- package/dist/_stub.js +5673 -5485
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-DgVZ6skW.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-1Dc2a8Cs.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BEP4kcPJ.mjs +26 -0
- package/dist/addon-training.css +1 -1
- package/dist/{dist-DNGtQV92.mjs → dist-Bfob1jSz.mjs} +174 -122
- package/dist/{dist-D0sqORzx.js → dist-DjTcrGXt.js} +174 -122
- package/dist/{hostInit-DA4zjIvT.mjs → hostInit-2grmKwjr.mjs} +2 -2
- package/dist/index.js +1 -1
- package/dist/orchestrator/training.addon.js +1 -1
- package/dist/orchestrator/training.addon.mjs +1 -1
- package/dist/{player-overlays-aX4eEmgd.mjs → player-overlays-CTRTi-rS.mjs} +1 -1
- package/dist/providers/modal/training-modal.addon.js +1 -1
- package/dist/providers/modal/training-modal.addon.mjs +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-D9ViDal5.mjs → responsive-BcjqJDUO.mjs} +1 -1
- package/dist/{scene-monitor-copy-B7FtvYkD.mjs → scene-monitor-copy-BIGdNSLV.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-aLdhRRQr.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-DNBqRVkn.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-4mdhpGoW.mjs +0 -26
|
@@ -5580,7 +5580,7 @@ var ZodIssueCode = {
|
|
|
5580
5580
|
var ZodFirstPartyTypeKind;
|
|
5581
5581
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5582
5582
|
//#endregion
|
|
5583
|
-
//#region ../types/dist/sleep-
|
|
5583
|
+
//#region ../types/dist/sleep-Crlmu_tO.mjs
|
|
5584
5584
|
/**
|
|
5585
5585
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5586
5586
|
* window to float samples (D455).
|
|
@@ -9067,11 +9067,11 @@ var CAP_NAMES = Object.freeze([
|
|
|
9067
9067
|
Object.freeze({
|
|
9068
9068
|
"air-quality-sensor": [
|
|
9069
9069
|
{
|
|
9070
|
-
"path": "
|
|
9070
|
+
"path": "co2",
|
|
9071
9071
|
"valueType": "number"
|
|
9072
9072
|
},
|
|
9073
9073
|
{
|
|
9074
|
-
"path": "
|
|
9074
|
+
"path": "voc",
|
|
9075
9075
|
"valueType": "number"
|
|
9076
9076
|
},
|
|
9077
9077
|
{
|
|
@@ -9121,7 +9121,7 @@ Object.freeze({
|
|
|
9121
9121
|
}
|
|
9122
9122
|
],
|
|
9123
9123
|
"ambient-light-sensor": [{
|
|
9124
|
-
"path": "
|
|
9124
|
+
"path": "illuminance",
|
|
9125
9125
|
"valueType": "number"
|
|
9126
9126
|
}],
|
|
9127
9127
|
"audio-metrics": [
|
|
@@ -9182,7 +9182,7 @@ Object.freeze({
|
|
|
9182
9182
|
],
|
|
9183
9183
|
"battery": [
|
|
9184
9184
|
{
|
|
9185
|
-
"path": "
|
|
9185
|
+
"path": "level",
|
|
9186
9186
|
"valueType": "number"
|
|
9187
9187
|
},
|
|
9188
9188
|
{
|
|
@@ -9204,7 +9204,7 @@ Object.freeze({
|
|
|
9204
9204
|
"valueType": "number"
|
|
9205
9205
|
},
|
|
9206
9206
|
{
|
|
9207
|
-
"path": "
|
|
9207
|
+
"path": "voltage",
|
|
9208
9208
|
"valueType": "number"
|
|
9209
9209
|
},
|
|
9210
9210
|
{
|
|
@@ -9225,7 +9225,7 @@ Object.freeze({
|
|
|
9225
9225
|
"valueType": "boolean"
|
|
9226
9226
|
}],
|
|
9227
9227
|
"brightness": [{
|
|
9228
|
-
"path": "
|
|
9228
|
+
"path": "level",
|
|
9229
9229
|
"valueType": "number"
|
|
9230
9230
|
}],
|
|
9231
9231
|
"broker": [{
|
|
@@ -9426,7 +9426,7 @@ Object.freeze({
|
|
|
9426
9426
|
"valueType": "number"
|
|
9427
9427
|
},
|
|
9428
9428
|
{
|
|
9429
|
-
"path": "
|
|
9429
|
+
"path": "colorTemperature",
|
|
9430
9430
|
"valueType": "number"
|
|
9431
9431
|
}
|
|
9432
9432
|
],
|
|
@@ -9605,15 +9605,15 @@ Object.freeze({
|
|
|
9605
9605
|
"valueType": "string"
|
|
9606
9606
|
},
|
|
9607
9607
|
{
|
|
9608
|
-
"path": "
|
|
9608
|
+
"path": "remaining",
|
|
9609
9609
|
"valueType": "number"
|
|
9610
9610
|
},
|
|
9611
9611
|
{
|
|
9612
|
-
"path": "
|
|
9612
|
+
"path": "delayedStart",
|
|
9613
9613
|
"valueType": "number"
|
|
9614
9614
|
},
|
|
9615
9615
|
{
|
|
9616
|
-
"path": "
|
|
9616
|
+
"path": "progress",
|
|
9617
9617
|
"valueType": "number"
|
|
9618
9618
|
},
|
|
9619
9619
|
{
|
|
@@ -9727,7 +9727,7 @@ Object.freeze({
|
|
|
9727
9727
|
],
|
|
9728
9728
|
"fan-control": [
|
|
9729
9729
|
{
|
|
9730
|
-
"path": "
|
|
9730
|
+
"path": "speed",
|
|
9731
9731
|
"valueType": "number"
|
|
9732
9732
|
},
|
|
9733
9733
|
{
|
|
@@ -9827,7 +9827,7 @@ Object.freeze({
|
|
|
9827
9827
|
}
|
|
9828
9828
|
],
|
|
9829
9829
|
"humidity-sensor": [{
|
|
9830
|
-
"path": "
|
|
9830
|
+
"path": "humidity",
|
|
9831
9831
|
"valueType": "number"
|
|
9832
9832
|
}],
|
|
9833
9833
|
"image": [{
|
|
@@ -9937,7 +9937,7 @@ Object.freeze({
|
|
|
9937
9937
|
"valueType": "number"
|
|
9938
9938
|
},
|
|
9939
9939
|
{
|
|
9940
|
-
"path": "
|
|
9940
|
+
"path": "progress",
|
|
9941
9941
|
"valueType": "number"
|
|
9942
9942
|
},
|
|
9943
9943
|
{
|
|
@@ -10016,11 +10016,11 @@ Object.freeze({
|
|
|
10016
10016
|
"valueType": "string"
|
|
10017
10017
|
},
|
|
10018
10018
|
{
|
|
10019
|
-
"path": "
|
|
10019
|
+
"path": "position",
|
|
10020
10020
|
"valueType": "number"
|
|
10021
10021
|
},
|
|
10022
10022
|
{
|
|
10023
|
-
"path": "
|
|
10023
|
+
"path": "duration",
|
|
10024
10024
|
"valueType": "number"
|
|
10025
10025
|
},
|
|
10026
10026
|
{
|
|
@@ -10122,11 +10122,11 @@ Object.freeze({
|
|
|
10122
10122
|
]
|
|
10123
10123
|
},
|
|
10124
10124
|
{
|
|
10125
|
-
"path": "
|
|
10125
|
+
"path": "signal",
|
|
10126
10126
|
"valueType": "number"
|
|
10127
10127
|
},
|
|
10128
10128
|
{
|
|
10129
|
-
"path": "
|
|
10129
|
+
"path": "rssi",
|
|
10130
10130
|
"valueType": "number"
|
|
10131
10131
|
},
|
|
10132
10132
|
{
|
|
@@ -10257,23 +10257,23 @@ Object.freeze({
|
|
|
10257
10257
|
],
|
|
10258
10258
|
"power-meter": [
|
|
10259
10259
|
{
|
|
10260
|
-
"path": "
|
|
10260
|
+
"path": "power",
|
|
10261
10261
|
"valueType": "number"
|
|
10262
10262
|
},
|
|
10263
10263
|
{
|
|
10264
|
-
"path": "
|
|
10264
|
+
"path": "energy",
|
|
10265
10265
|
"valueType": "number"
|
|
10266
10266
|
},
|
|
10267
10267
|
{
|
|
10268
|
-
"path": "
|
|
10268
|
+
"path": "voltage",
|
|
10269
10269
|
"valueType": "number"
|
|
10270
10270
|
},
|
|
10271
10271
|
{
|
|
10272
|
-
"path": "
|
|
10272
|
+
"path": "current",
|
|
10273
10273
|
"valueType": "number"
|
|
10274
10274
|
},
|
|
10275
10275
|
{
|
|
10276
|
-
"path": "
|
|
10276
|
+
"path": "apparentPower",
|
|
10277
10277
|
"valueType": "number"
|
|
10278
10278
|
},
|
|
10279
10279
|
{
|
|
@@ -10301,14 +10301,10 @@ Object.freeze({
|
|
|
10301
10301
|
{
|
|
10302
10302
|
"path": "gps.accuracyMeters",
|
|
10303
10303
|
"valueType": "number"
|
|
10304
|
-
},
|
|
10305
|
-
{
|
|
10306
|
-
"path": "batteryPercent",
|
|
10307
|
-
"valueType": "number"
|
|
10308
10304
|
}
|
|
10309
10305
|
],
|
|
10310
10306
|
"pressure-sensor": [{
|
|
10311
|
-
"path": "
|
|
10307
|
+
"path": "pressure",
|
|
10312
10308
|
"valueType": "number"
|
|
10313
10309
|
}],
|
|
10314
10310
|
"privacy-mask": [{
|
|
@@ -10622,7 +10618,7 @@ Object.freeze({
|
|
|
10622
10618
|
"valueType": "boolean"
|
|
10623
10619
|
}],
|
|
10624
10620
|
"temperature-sensor": [{
|
|
10625
|
-
"path": "
|
|
10621
|
+
"path": "temperature",
|
|
10626
10622
|
"valueType": "number"
|
|
10627
10623
|
}],
|
|
10628
10624
|
"update": [
|
|
@@ -10670,7 +10666,7 @@ Object.freeze({
|
|
|
10670
10666
|
"valueType": "string"
|
|
10671
10667
|
},
|
|
10672
10668
|
{
|
|
10673
|
-
"path": "
|
|
10669
|
+
"path": "progress",
|
|
10674
10670
|
"valueType": "number"
|
|
10675
10671
|
},
|
|
10676
10672
|
{
|
|
@@ -11145,7 +11141,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
11145
11141
|
return DeviceRole;
|
|
11146
11142
|
}({});
|
|
11147
11143
|
//#endregion
|
|
11148
|
-
//#region ../types/dist/composition-
|
|
11144
|
+
//#region ../types/dist/composition-DwA0uVW5.mjs
|
|
11149
11145
|
/**
|
|
11150
11146
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
11151
11147
|
*
|
|
@@ -18810,7 +18806,7 @@ var CompositionEventPlanSchema = object({
|
|
|
18810
18806
|
stateField: string(),
|
|
18811
18807
|
fieldKey: string()
|
|
18812
18808
|
});
|
|
18813
|
-
/** One refusal, named (D391). `path` points into the composition, e.g. `features[0].fields.
|
|
18809
|
+
/** One refusal, named (D391). `path` points into the composition, e.g. `features[0].fields.temperature`. */
|
|
18814
18810
|
var CompositionProblemSchema = object({
|
|
18815
18811
|
code: _enum([
|
|
18816
18812
|
"reserved-variant",
|
|
@@ -19092,12 +19088,13 @@ var CHANGED = {
|
|
|
19092
19088
|
expr: "now"
|
|
19093
19089
|
};
|
|
19094
19090
|
function numeric(input) {
|
|
19091
|
+
const { alsoFrom, ...base } = input;
|
|
19095
19092
|
return {
|
|
19096
|
-
...
|
|
19093
|
+
...base,
|
|
19097
19094
|
family: "numeric",
|
|
19098
19095
|
deviceType: DeviceType.Sensor,
|
|
19099
19096
|
memberDeviceType: DeviceType.Sensor,
|
|
19100
|
-
memberDeviceTypes: [DeviceType.Sensor],
|
|
19097
|
+
memberDeviceTypes: [DeviceType.Sensor, ...alsoFrom?.deviceTypes ?? []],
|
|
19101
19098
|
activeWhen: void 0,
|
|
19102
19099
|
commandCaps: [],
|
|
19103
19100
|
baseUnit: baseUnitOf(input.quantity),
|
|
@@ -19105,9 +19102,10 @@ function numeric(input) {
|
|
|
19105
19102
|
accept: [{
|
|
19106
19103
|
cap: input.outputCap,
|
|
19107
19104
|
fieldPath: input.outputField
|
|
19108
|
-
}]
|
|
19105
|
+
}, ...alsoFrom === void 0 ? [] : [alsoFrom.accept]]
|
|
19109
19106
|
};
|
|
19110
19107
|
}
|
|
19108
|
+
var CLIMATE_DEVICES = [DeviceType.Thermostat, DeviceType.Climate];
|
|
19111
19109
|
function binary(input) {
|
|
19112
19110
|
return {
|
|
19113
19111
|
...input,
|
|
@@ -19129,29 +19127,43 @@ var GROUP_TEMPLATES = [
|
|
|
19129
19127
|
summary: "Mean, median, min, max or sum of temperatures. Offline and unknown members are left out, never read as 0 °C.",
|
|
19130
19128
|
role: DeviceRole.TemperatureSensor,
|
|
19131
19129
|
outputCap: "temperature-sensor",
|
|
19132
|
-
outputField: "
|
|
19130
|
+
outputField: "temperature",
|
|
19133
19131
|
quantity: "temperature",
|
|
19134
19132
|
defaultAggregate: "mean",
|
|
19135
19133
|
empty: "null",
|
|
19136
|
-
companions: [NOW$2]
|
|
19134
|
+
companions: [NOW$2],
|
|
19135
|
+
alsoFrom: {
|
|
19136
|
+
deviceTypes: CLIMATE_DEVICES,
|
|
19137
|
+
accept: {
|
|
19138
|
+
cap: "climate-control",
|
|
19139
|
+
fieldPath: "currentTemp"
|
|
19140
|
+
}
|
|
19141
|
+
}
|
|
19137
19142
|
}),
|
|
19138
19143
|
numeric({
|
|
19139
19144
|
id: "humidity",
|
|
19140
19145
|
summary: "Humidity in percent. Offline and unknown members are left out, never read as 0 %.",
|
|
19141
19146
|
role: DeviceRole.HumiditySensor,
|
|
19142
19147
|
outputCap: "humidity-sensor",
|
|
19143
|
-
outputField: "
|
|
19148
|
+
outputField: "humidity",
|
|
19144
19149
|
quantity: "humidity",
|
|
19145
19150
|
defaultAggregate: "mean",
|
|
19146
19151
|
empty: "null",
|
|
19147
|
-
companions: [NOW$2]
|
|
19152
|
+
companions: [NOW$2],
|
|
19153
|
+
alsoFrom: {
|
|
19154
|
+
deviceTypes: CLIMATE_DEVICES,
|
|
19155
|
+
accept: {
|
|
19156
|
+
cap: "climate-control",
|
|
19157
|
+
fieldPath: "currentHumidity"
|
|
19158
|
+
}
|
|
19159
|
+
}
|
|
19148
19160
|
}),
|
|
19149
19161
|
numeric({
|
|
19150
19162
|
id: "pressure",
|
|
19151
19163
|
summary: "Pressure in hectopascals. Offline and unknown members are left out, never read as 0 hPa.",
|
|
19152
19164
|
role: DeviceRole.PressureSensor,
|
|
19153
19165
|
outputCap: "pressure-sensor",
|
|
19154
|
-
outputField: "
|
|
19166
|
+
outputField: "pressure",
|
|
19155
19167
|
quantity: "pressure",
|
|
19156
19168
|
defaultAggregate: "mean",
|
|
19157
19169
|
empty: "null",
|
|
@@ -19162,7 +19174,7 @@ var GROUP_TEMPLATES = [
|
|
|
19162
19174
|
summary: "Illuminance in lux. Offline and unknown members are left out, never read as 0 lx.",
|
|
19163
19175
|
role: DeviceRole.AmbientLightSensor,
|
|
19164
19176
|
outputCap: "ambient-light-sensor",
|
|
19165
|
-
outputField: "
|
|
19177
|
+
outputField: "illuminance",
|
|
19166
19178
|
quantity: "illuminance",
|
|
19167
19179
|
defaultAggregate: "mean",
|
|
19168
19180
|
empty: "null",
|
|
@@ -19173,7 +19185,7 @@ var GROUP_TEMPLATES = [
|
|
|
19173
19185
|
summary: "Power in watts, summed by default. Nobody reporting omits the key rather than writing 0 W.",
|
|
19174
19186
|
role: DeviceRole.PowerSensor,
|
|
19175
19187
|
outputCap: "power-meter",
|
|
19176
|
-
outputField: "
|
|
19188
|
+
outputField: "power",
|
|
19177
19189
|
quantity: "power",
|
|
19178
19190
|
defaultAggregate: "sum",
|
|
19179
19191
|
empty: "omit",
|
|
@@ -19184,7 +19196,7 @@ var GROUP_TEMPLATES = [
|
|
|
19184
19196
|
summary: "Energy in kilowatt-hours, summed by default. Nobody reporting omits the key rather than writing 0 kWh.",
|
|
19185
19197
|
role: DeviceRole.EnergySensor,
|
|
19186
19198
|
outputCap: "power-meter",
|
|
19187
|
-
outputField: "
|
|
19199
|
+
outputField: "energy",
|
|
19188
19200
|
quantity: "energy",
|
|
19189
19201
|
defaultAggregate: "sum",
|
|
19190
19202
|
empty: "omit",
|
|
@@ -19195,7 +19207,7 @@ var GROUP_TEMPLATES = [
|
|
|
19195
19207
|
summary: "Battery charge in percent. Offline and unknown members are left out, never read as 0 %.",
|
|
19196
19208
|
role: DeviceRole.BatterySensor,
|
|
19197
19209
|
outputCap: "battery",
|
|
19198
|
-
outputField: "
|
|
19210
|
+
outputField: "level",
|
|
19199
19211
|
quantity: "percentage",
|
|
19200
19212
|
defaultAggregate: "mean",
|
|
19201
19213
|
empty: "null",
|
|
@@ -44650,6 +44662,43 @@ var NotificationActionSchema = object({
|
|
|
44650
44662
|
*/
|
|
44651
44663
|
mode: _enum(["navigate", "background"]).optional()
|
|
44652
44664
|
});
|
|
44665
|
+
/** A delivery parameter value: what a notifier declared it takes. */
|
|
44666
|
+
var DeliveryParamValueSchema = union([
|
|
44667
|
+
string(),
|
|
44668
|
+
number(),
|
|
44669
|
+
boolean()
|
|
44670
|
+
]);
|
|
44671
|
+
/**
|
|
44672
|
+
* One extra delivery parameter a notifier KIND declares (D938). A rule that
|
|
44673
|
+
* addresses a target of that kind may set it; a kind that declares nothing is
|
|
44674
|
+
* never handed one. The admin UI derives its control from this descriptor —
|
|
44675
|
+
* no editor knows a service by name.
|
|
44676
|
+
*
|
|
44677
|
+
* Optional fields are `.optional()`, never `.default()` (a Zod default does not
|
|
44678
|
+
* run on the addon cap path).
|
|
44679
|
+
*/
|
|
44680
|
+
var DeliveryParamSchema = object({
|
|
44681
|
+
key: string().min(1),
|
|
44682
|
+
label: string(),
|
|
44683
|
+
/** i18n key of the label, resolved by the declaring addon's namespace. */
|
|
44684
|
+
labelKey: string().optional(),
|
|
44685
|
+
type: _enum([
|
|
44686
|
+
"enum",
|
|
44687
|
+
"number",
|
|
44688
|
+
"boolean",
|
|
44689
|
+
"string"
|
|
44690
|
+
]),
|
|
44691
|
+
/** `enum` only: the closed set of accepted values. */
|
|
44692
|
+
options: array(object({
|
|
44693
|
+
value: string(),
|
|
44694
|
+
label: string()
|
|
44695
|
+
})).optional(),
|
|
44696
|
+
/** `number` only. */
|
|
44697
|
+
min: number().optional(),
|
|
44698
|
+
max: number().optional(),
|
|
44699
|
+
/** What the notifier does when the rule sets nothing; shown as the placeholder. */
|
|
44700
|
+
default: DeliveryParamValueSchema.optional()
|
|
44701
|
+
});
|
|
44653
44702
|
/**
|
|
44654
44703
|
* The canonical notification. `body` is the only hard field (Apprise model).
|
|
44655
44704
|
* `priority` is a 5-level ORDINAL (1=lowest … 3=normal(default) … 5=urgent),
|
|
@@ -44672,7 +44721,13 @@ var NotificationSchema = object({
|
|
|
44672
44721
|
tag: string().optional(),
|
|
44673
44722
|
deviceId: number().optional(),
|
|
44674
44723
|
eventId: string().optional(),
|
|
44675
|
-
metadata: record(string(), unknown()).optional()
|
|
44724
|
+
metadata: record(string(), unknown()).optional(),
|
|
44725
|
+
/**
|
|
44726
|
+
* Values for the parameters the target's kind DECLARES in
|
|
44727
|
+
* {@link TargetKindSchema} `deliveryParams`. Already validated against the
|
|
44728
|
+
* declaration by the sender; a notifier reads only the keys it declared.
|
|
44729
|
+
*/
|
|
44730
|
+
delivery: record(string(), DeliveryParamValueSchema).optional()
|
|
44676
44731
|
});
|
|
44677
44732
|
/** One declared native severity/priority level for a kind. */
|
|
44678
44733
|
var TargetKindLevelSchema = object({
|
|
@@ -44778,6 +44833,11 @@ var TargetKindSchema = object({
|
|
|
44778
44833
|
*/
|
|
44779
44834
|
destinationKeys: array(string()).optional(),
|
|
44780
44835
|
supportsDiscovery: boolean(),
|
|
44836
|
+
/**
|
|
44837
|
+
* Extra delivery parameters a rule may set for a target of this kind (D938).
|
|
44838
|
+
* Absent = none; the rule editor then offers nothing.
|
|
44839
|
+
*/
|
|
44840
|
+
deliveryParams: array(DeliveryParamSchema).optional(),
|
|
44781
44841
|
caps: TargetKindCapsSchema
|
|
44782
44842
|
});
|
|
44783
44843
|
/**
|
|
@@ -56948,7 +57008,9 @@ var ManifestShapeSchema = object({
|
|
|
56948
57008
|
icon: string().optional()
|
|
56949
57009
|
}).optional(),
|
|
56950
57010
|
protected: boolean().optional(),
|
|
56951
|
-
removable: boolean().optional()
|
|
57011
|
+
removable: boolean().optional(),
|
|
57012
|
+
/** Declared Integrations-page block (mirror of `AddonDeclaration.integrationSection`). */
|
|
57013
|
+
integrationSection: _enum(["system", "providers"]).optional()
|
|
56952
57014
|
});
|
|
56953
57015
|
var AddonProcessSchema = object({
|
|
56954
57016
|
pid: number().optional(),
|
|
@@ -57313,9 +57375,9 @@ method(object({ nodeId: string().optional() }).optional(), array(AddonListItemSc
|
|
|
57313
57375
|
}), LogStreamEntrySchema, { kind: "subscription" });
|
|
57314
57376
|
object({
|
|
57315
57377
|
/** Carbon dioxide concentration in ppm. */
|
|
57316
|
-
|
|
57378
|
+
co2: number().min(0).optional().meta(readingMeta("concentration-volume")),
|
|
57317
57379
|
/** Total volatile organic compounds in ppb. */
|
|
57318
|
-
|
|
57380
|
+
voc: number().min(0).optional().meta(readingMeta("concentration-ppb")),
|
|
57319
57381
|
/** Particulate matter ≤ 2.5 μm in µg/m³. */
|
|
57320
57382
|
pm25: number().min(0).optional().meta(readingMeta("concentration-mass")),
|
|
57321
57383
|
/** Particulate matter ≤ 10 μm in µg/m³. */
|
|
@@ -57328,7 +57390,7 @@ object({
|
|
|
57328
57390
|
DeviceType.Sensor;
|
|
57329
57391
|
object({
|
|
57330
57392
|
/** Current illuminance in lux (lx). `null` when the sample was refused (D393). */
|
|
57331
|
-
|
|
57393
|
+
illuminance: number().min(0).nullable().meta(readingMeta("illuminance", {
|
|
57332
57394
|
precision: 0,
|
|
57333
57395
|
label: "Illuminance"
|
|
57334
57396
|
})),
|
|
@@ -57556,7 +57618,7 @@ var BatteryStatusSchema = object({
|
|
|
57556
57618
|
* Consumers must SKIP a null rather than coerce it — `battery-band` already
|
|
57557
57619
|
* declines to band a non-finite reading, which is the correct shape.
|
|
57558
57620
|
*/
|
|
57559
|
-
|
|
57621
|
+
level: number().min(0).max(100).nullable().meta(readingMeta("percentage", { label: "Charge" })),
|
|
57560
57622
|
/**
|
|
57561
57623
|
* Charging source. `'dc'` covers wall/USB adapters; `'solar'` is
|
|
57562
57624
|
* Reolink-specific for the Solar Panel 2 accessory (will become
|
|
@@ -57566,7 +57628,7 @@ var BatteryStatusSchema = object({
|
|
|
57566
57628
|
* `'unknown'` is the absence of an answer: the provider has not read the
|
|
57567
57629
|
* power fields yet, or the firmware reported neither. Before it existed,
|
|
57568
57630
|
* two unreadable fields produced `'none'`, and a camera nobody had reached
|
|
57569
|
-
* was drawn "on battery alone" — the same D315 defect `
|
|
57631
|
+
* was drawn "on battery alone" — the same D315 defect `level` closed
|
|
57570
57632
|
* by going nullable. Consumers SKIP it (no charger state published, no
|
|
57571
57633
|
* glyph, no HomeKit ChargingState) rather than coerce it either way.
|
|
57572
57634
|
*/
|
|
@@ -57590,7 +57652,7 @@ var BatteryStatusSchema = object({
|
|
|
57590
57652
|
* that only report charge. A second reading on this cap, not a second
|
|
57591
57653
|
* `numeric-sensor` on the same device.
|
|
57592
57654
|
*/
|
|
57593
|
-
|
|
57655
|
+
voltage: number().nullable().optional().meta(readingMeta("voltage", { label: "Voltage" })),
|
|
57594
57656
|
/**
|
|
57595
57657
|
* Ms epoch of the last time the device PROVED it was reachable — a
|
|
57596
57658
|
* completed firmware round-trip, an observed wake, or an inbound push
|
|
@@ -57624,7 +57686,7 @@ var BatteryStatusSchema = object({
|
|
|
57624
57686
|
/**
|
|
57625
57687
|
* True when the source is a BINARY low-battery indicator (HA
|
|
57626
57688
|
* `binary_sensor` device_class=battery / `LOW_BAT`) that has no real
|
|
57627
|
-
* charge level — `
|
|
57689
|
+
* charge level — `level` is then a coarse stand-in (100 = normal,
|
|
57628
57690
|
* sub-threshold = low). UI MUST render "Normal"/"Low" instead of a
|
|
57629
57691
|
* misleading exact percentage. Absent/false → genuine 0–100 % reading.
|
|
57630
57692
|
*/
|
|
@@ -57650,19 +57712,19 @@ object({
|
|
|
57650
57712
|
DeviceType.Sensor;
|
|
57651
57713
|
object({
|
|
57652
57714
|
/** Current level as 0..100 inclusive. Firmware-reported. */
|
|
57653
|
-
|
|
57715
|
+
level: number().min(0).max(100).meta(readingMeta("percentage")),
|
|
57654
57716
|
/** Ms epoch of the last operator-driven change. Useful for UI freshness. */
|
|
57655
57717
|
lastChangedAt: number()
|
|
57656
57718
|
});
|
|
57657
57719
|
DeviceType.Light, method(object({
|
|
57658
57720
|
deviceId: number().int().nonnegative(),
|
|
57659
|
-
|
|
57721
|
+
level: number().min(0).max(100)
|
|
57660
57722
|
}), _void(), {
|
|
57661
57723
|
kind: "mutation",
|
|
57662
57724
|
auth: "protected"
|
|
57663
57725
|
}), object({
|
|
57664
57726
|
deviceId: number(),
|
|
57665
|
-
|
|
57727
|
+
level: number().min(0).max(100),
|
|
57666
57728
|
lastChangedAt: number()
|
|
57667
57729
|
});
|
|
57668
57730
|
DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
@@ -58163,11 +58225,11 @@ var ColorInputSchema = discriminatedUnion("mode", [
|
|
|
58163
58225
|
}),
|
|
58164
58226
|
object({
|
|
58165
58227
|
mode: literal("mired"),
|
|
58166
|
-
|
|
58228
|
+
colorTemperature: number().int().min(50).max(1e3)
|
|
58167
58229
|
})
|
|
58168
58230
|
]);
|
|
58169
58231
|
object({
|
|
58170
|
-
/** Active color mode — which of `rgb` / `hsv` / `
|
|
58232
|
+
/** Active color mode — which of `rgb` / `hsv` / `colorTemperature` reflects
|
|
58171
58233
|
* the bulb's current state. */
|
|
58172
58234
|
mode: _enum([
|
|
58173
58235
|
"rgb",
|
|
@@ -58179,7 +58241,7 @@ object({
|
|
|
58179
58241
|
/** Populated when `mode === 'hsv'`. */
|
|
58180
58242
|
hsv: HsvTripletSchema.optional(),
|
|
58181
58243
|
/** Populated when `mode === 'mired'`. */
|
|
58182
|
-
|
|
58244
|
+
colorTemperature: number().int().optional().meta(readingMeta("colour-temperature")),
|
|
58183
58245
|
/** Ms epoch of the last operator-driven change. */
|
|
58184
58246
|
lastChangedAt: number()
|
|
58185
58247
|
});
|
|
@@ -58198,7 +58260,7 @@ DeviceType.Light, method(object({
|
|
|
58198
58260
|
]),
|
|
58199
58261
|
rgb: RgbTripletSchema.optional(),
|
|
58200
58262
|
hsv: HsvTripletSchema.optional(),
|
|
58201
|
-
|
|
58263
|
+
colorTemperature: number().int().optional(),
|
|
58202
58264
|
lastChangedAt: number()
|
|
58203
58265
|
});
|
|
58204
58266
|
var ConnectionTestOutcomeSchema = discriminatedUnion("outcome", [
|
|
@@ -58624,11 +58686,11 @@ object({
|
|
|
58624
58686
|
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
58625
58687
|
availablePrograms: array(string()),
|
|
58626
58688
|
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
58627
|
-
|
|
58689
|
+
remaining: number().int().nonnegative().nullable().meta(readingMeta("duration")),
|
|
58628
58690
|
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
58629
|
-
|
|
58691
|
+
delayedStart: number().int().nonnegative().nullable().meta(readingMeta("duration")),
|
|
58630
58692
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
58631
|
-
|
|
58693
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
58632
58694
|
/** True when the door is reported open; null when the door state is not known. */
|
|
58633
58695
|
doorOpen: boolean().nullable(),
|
|
58634
58696
|
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
@@ -59246,7 +59308,7 @@ var FanDirectionSchema = _enum(["forward", "reverse"]);
|
|
|
59246
59308
|
object({
|
|
59247
59309
|
/** Active speed as 0..100 inclusive. Null when the device has no
|
|
59248
59310
|
* speed surface (single-speed fan). */
|
|
59249
|
-
|
|
59311
|
+
speed: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
59250
59312
|
/** Speed granularity the device accepts (HA `percentage_step`, e.g. 25 for
|
|
59251
59313
|
* a 4-speed fan). Absent when unknown — the UI then falls back to step 1. */
|
|
59252
59314
|
percentageStep: number().positive().optional().meta(readingMeta("percentage")),
|
|
@@ -59266,7 +59328,7 @@ object({
|
|
|
59266
59328
|
});
|
|
59267
59329
|
DeviceType.Fan, method(object({
|
|
59268
59330
|
deviceId: number().int().nonnegative(),
|
|
59269
|
-
|
|
59331
|
+
speed: number().min(0).max(100)
|
|
59270
59332
|
}), _void(), {
|
|
59271
59333
|
kind: "mutation",
|
|
59272
59334
|
auth: "protected"
|
|
@@ -59449,7 +59511,7 @@ DeviceType.Humidifier, method(object({
|
|
|
59449
59511
|
});
|
|
59450
59512
|
object({
|
|
59451
59513
|
/** Current relative humidity, 0..100. `null` when the sample was refused (D393). */
|
|
59452
|
-
|
|
59514
|
+
humidity: number().min(0).max(100).nullable().meta(readingMeta("humidity", {
|
|
59453
59515
|
precision: 0,
|
|
59454
59516
|
label: "Humidity"
|
|
59455
59517
|
})),
|
|
@@ -59892,7 +59954,7 @@ object({
|
|
|
59892
59954
|
batteryLevel: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
59893
59955
|
/** 0..100 mowing-completion percentage of the current task, or null when no
|
|
59894
59956
|
* task is active / progress is unavailable. */
|
|
59895
|
-
|
|
59957
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
59896
59958
|
/** Current device/event code (dynamic — mostly status, sometimes an error),
|
|
59897
59959
|
* or null when unknown. */
|
|
59898
59960
|
currentCode: number().nullable().meta(readingMeta("none")),
|
|
@@ -60382,10 +60444,10 @@ object({
|
|
|
60382
60444
|
currentMedia: MediaInfoSchema.nullable(),
|
|
60383
60445
|
/** Current playback position in ms. Null when not seekable or
|
|
60384
60446
|
* nothing is playing. Pair with `DeviceFeature.MediaPlayerSeek`. */
|
|
60385
|
-
|
|
60447
|
+
position: number().int().nonnegative().nullable().meta(readingMeta("duration-ms")),
|
|
60386
60448
|
/** Total duration of the current media in ms. Null when unknown
|
|
60387
60449
|
* (live stream) or nothing is playing. */
|
|
60388
|
-
|
|
60450
|
+
duration: number().int().nonnegative().nullable().meta(readingMeta("duration-ms")),
|
|
60389
60451
|
/** Shuffle toggle. Null when no shuffle surface.
|
|
60390
60452
|
* Pair with `DeviceFeature.MediaPlayerShuffle`. */
|
|
60391
60453
|
shuffle: boolean().nullable(),
|
|
@@ -60412,7 +60474,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
|
|
|
60412
60474
|
auth: "protected"
|
|
60413
60475
|
}), method(object({
|
|
60414
60476
|
deviceId: number().int().nonnegative(),
|
|
60415
|
-
|
|
60477
|
+
position: number().int().nonnegative()
|
|
60416
60478
|
}), _void(), {
|
|
60417
60479
|
kind: "mutation",
|
|
60418
60480
|
auth: "protected"
|
|
@@ -61085,9 +61147,9 @@ var NetworkLinkStatusSchema = object({
|
|
|
61085
61147
|
* one whose reading has not landed must not be drawn at 0 %. Consumers
|
|
61086
61148
|
* SKIP a null rather than coerce it.
|
|
61087
61149
|
*/
|
|
61088
|
-
|
|
61150
|
+
signal: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
61089
61151
|
/** Raw received signal strength in dBm, when the firmware reports one. */
|
|
61090
|
-
|
|
61152
|
+
rssi: number().optional().meta(readingMeta("signal-level")),
|
|
61091
61153
|
/** Network name of a wireless link, when the firmware reports it. */
|
|
61092
61154
|
ssid: string().optional(),
|
|
61093
61155
|
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
@@ -62237,16 +62299,16 @@ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema)
|
|
|
62237
62299
|
auth: "admin"
|
|
62238
62300
|
});
|
|
62239
62301
|
object({
|
|
62240
|
-
/** Instantaneous power draw
|
|
62241
|
-
|
|
62302
|
+
/** Instantaneous power draw (watts). */
|
|
62303
|
+
power: number().optional().meta(readingMeta("power", { label: "Power" })),
|
|
62242
62304
|
/** Cumulative energy in kilowatt-hours since the meter was reset. */
|
|
62243
|
-
|
|
62244
|
-
/** Voltage
|
|
62245
|
-
|
|
62305
|
+
energy: number().optional().meta(readingMeta("energy", { label: "Energy" })),
|
|
62306
|
+
/** Voltage (volts). */
|
|
62307
|
+
voltage: number().optional().meta(readingMeta("voltage", { label: "Voltage" })),
|
|
62246
62308
|
/** Current in amperes. */
|
|
62247
|
-
|
|
62309
|
+
current: number().optional().meta(readingMeta("current", { label: "Current" })),
|
|
62248
62310
|
/** Apparent power in volt-amperes. */
|
|
62249
|
-
|
|
62311
|
+
apparentPower: number().optional().meta(readingMeta("apparent-power")),
|
|
62250
62312
|
/** Power factor (0..1) if reported. */
|
|
62251
62313
|
powerFactor: number().min(0).max(1).optional().meta(readingMeta("ratio")),
|
|
62252
62314
|
/** Ms epoch when the slice was last updated. */
|
|
@@ -62301,16 +62363,13 @@ object({
|
|
|
62301
62363
|
location: string().nullable(),
|
|
62302
62364
|
/** GPS coordinates when available. Null otherwise. */
|
|
62303
62365
|
gps: GpsLocationSchema.nullable(),
|
|
62304
|
-
/** Optional battery level of the tracking device (0..100). Null
|
|
62305
|
-
* when not reported. */
|
|
62306
|
-
batteryPercent: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
62307
62366
|
/** Ms epoch when the slice was last updated. */
|
|
62308
62367
|
lastChangedAt: number()
|
|
62309
62368
|
});
|
|
62310
62369
|
DeviceType.Presence;
|
|
62311
62370
|
object({
|
|
62312
62371
|
/** Current pressure in hPa. `null` when the sample was refused (D393). */
|
|
62313
|
-
|
|
62372
|
+
pressure: number().nullable().meta(readingMeta("pressure", { precision: 0 })),
|
|
62314
62373
|
/** Ms epoch when the slice was last updated. */
|
|
62315
62374
|
lastFetchedAt: number()
|
|
62316
62375
|
});
|
|
@@ -65313,7 +65372,7 @@ object({
|
|
|
65313
65372
|
DeviceType.Sensor;
|
|
65314
65373
|
object({
|
|
65315
65374
|
/** Current temperature in Celsius. `null` when the sample was refused (D393). */
|
|
65316
|
-
|
|
65375
|
+
temperature: number().nullable().meta(readingMeta("temperature", {
|
|
65317
65376
|
precision: 1,
|
|
65318
65377
|
label: "Temperature"
|
|
65319
65378
|
})),
|
|
@@ -65577,7 +65636,7 @@ object({
|
|
|
65577
65636
|
/** Speed tokens the hardware accepts — drives the UI selector. */
|
|
65578
65637
|
availableFanSpeeds: array(string()),
|
|
65579
65638
|
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
65580
|
-
|
|
65639
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
65581
65640
|
/** Current error code (0 / null = no error). */
|
|
65582
65641
|
errorCode: number().nullable().meta(readingMeta("none")),
|
|
65583
65642
|
/** Human label for {@link errorCode}, or null when none / undecodable. */
|
|
@@ -76649,7 +76708,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76649
76708
|
label: t("Full brightness", "Luminosità massima"),
|
|
76650
76709
|
phrase: t("Set {device} to full brightness", "Porta {device} alla massima luminosità"),
|
|
76651
76710
|
icon: "sun",
|
|
76652
|
-
args: {
|
|
76711
|
+
args: { level: 100 }
|
|
76653
76712
|
},
|
|
76654
76713
|
{
|
|
76655
76714
|
id: "brightness.half",
|
|
@@ -76657,7 +76716,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76657
76716
|
label: t("Half brightness", "Luminosità a metà"),
|
|
76658
76717
|
phrase: t("Dim {device} to half", "Abbassa {device} a metà luminosità"),
|
|
76659
76718
|
icon: "sun-dim",
|
|
76660
|
-
args: {
|
|
76719
|
+
args: { level: 50 }
|
|
76661
76720
|
},
|
|
76662
76721
|
{
|
|
76663
76722
|
id: "brightness.off",
|
|
@@ -76665,16 +76724,16 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76665
76724
|
label: t("Brightness off", "Luminosità a zero"),
|
|
76666
76725
|
phrase: t("Dim {device} to zero", "Abbassa {device} a zero"),
|
|
76667
76726
|
icon: "lightbulb-off",
|
|
76668
|
-
args: {
|
|
76727
|
+
args: { level: 0 }
|
|
76669
76728
|
},
|
|
76670
76729
|
{
|
|
76671
76730
|
id: "brightness.set",
|
|
76672
76731
|
method: "setBrightness",
|
|
76673
76732
|
label: t("Set brightness", "Imposta la luminosità"),
|
|
76674
|
-
phrase: t("Set the brightness of {device} to {
|
|
76733
|
+
phrase: t("Set the brightness of {device} to {level}", "Imposta la luminosità di {device} a {level}"),
|
|
76675
76734
|
icon: "sun-medium",
|
|
76676
76735
|
openArgs: [{
|
|
76677
|
-
key: "
|
|
76736
|
+
key: "level",
|
|
76678
76737
|
label: PERCENT,
|
|
76679
76738
|
offer: {
|
|
76680
76739
|
kind: "number",
|
|
@@ -76688,13 +76747,13 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76688
76747
|
],
|
|
76689
76748
|
state: [{
|
|
76690
76749
|
kind: "numeric",
|
|
76691
|
-
field: "
|
|
76750
|
+
field: "level",
|
|
76692
76751
|
quantity: t("the brightness", "la luminosità"),
|
|
76693
76752
|
label: t("Brightness", "Luminosità"),
|
|
76694
76753
|
unit: "%",
|
|
76695
76754
|
icon: "sun"
|
|
76696
76755
|
}],
|
|
76697
|
-
events: { onBrightnessChanged: { notOperatorFacing: "the `
|
|
76756
|
+
events: { onBrightnessChanged: { notOperatorFacing: "the `level` state trigger reads the same change" } }
|
|
76698
76757
|
},
|
|
76699
76758
|
color: {
|
|
76700
76759
|
scope: "device",
|
|
@@ -76708,7 +76767,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76708
76767
|
icon: "sun",
|
|
76709
76768
|
args: { color: {
|
|
76710
76769
|
mode: "mired",
|
|
76711
|
-
|
|
76770
|
+
colorTemperature: 370
|
|
76712
76771
|
} }
|
|
76713
76772
|
},
|
|
76714
76773
|
{
|
|
@@ -76719,7 +76778,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76719
76778
|
icon: "snowflake",
|
|
76720
76779
|
args: { color: {
|
|
76721
76780
|
mode: "mired",
|
|
76722
|
-
|
|
76781
|
+
colorTemperature: 200
|
|
76723
76782
|
} }
|
|
76724
76783
|
},
|
|
76725
76784
|
{
|
|
@@ -77333,7 +77392,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77333
77392
|
label: t("Fan off", "Ventilatore spento"),
|
|
77334
77393
|
phrase: t("Stop {device}", "Ferma {device}"),
|
|
77335
77394
|
icon: "power-off",
|
|
77336
|
-
args: {
|
|
77395
|
+
args: { speed: 0 }
|
|
77337
77396
|
},
|
|
77338
77397
|
{
|
|
77339
77398
|
id: "fan.full",
|
|
@@ -77341,16 +77400,16 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77341
77400
|
label: t("Fan full", "Ventilatore al massimo"),
|
|
77342
77401
|
phrase: t("Run {device} at full speed", "Porta {device} alla massima velocità"),
|
|
77343
77402
|
icon: "fan",
|
|
77344
|
-
args: {
|
|
77403
|
+
args: { speed: 100 }
|
|
77345
77404
|
},
|
|
77346
77405
|
{
|
|
77347
77406
|
id: "fan.speed",
|
|
77348
77407
|
method: "setPercentage",
|
|
77349
77408
|
label: t("Set speed", "Imposta la velocità"),
|
|
77350
|
-
phrase: t("Set the speed of {device} to {
|
|
77409
|
+
phrase: t("Set the speed of {device} to {speed}", "Imposta la velocità di {device} al {speed}"),
|
|
77351
77410
|
icon: "fan",
|
|
77352
77411
|
openArgs: [{
|
|
77353
|
-
key: "
|
|
77412
|
+
key: "speed",
|
|
77354
77413
|
label: t("Speed", "Velocità"),
|
|
77355
77414
|
offer: {
|
|
77356
77415
|
kind: "number",
|
|
@@ -77412,7 +77471,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77412
77471
|
],
|
|
77413
77472
|
state: [{
|
|
77414
77473
|
kind: "numeric",
|
|
77415
|
-
field: "
|
|
77474
|
+
field: "speed",
|
|
77416
77475
|
quantity: t("the speed", "la velocità"),
|
|
77417
77476
|
label: t("Speed", "Velocità"),
|
|
77418
77477
|
unit: "%",
|
|
@@ -78210,7 +78269,7 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
78210
78269
|
},
|
|
78211
78270
|
{
|
|
78212
78271
|
kind: "numeric",
|
|
78213
|
-
field: "
|
|
78272
|
+
field: "progress",
|
|
78214
78273
|
quantity: t("the cycle progress", "l’avanzamento del lavaggio"),
|
|
78215
78274
|
label: t("Progress", "Avanzamento"),
|
|
78216
78275
|
unit: "%",
|
|
@@ -78568,10 +78627,10 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
78568
78627
|
id: "media.seek",
|
|
78569
78628
|
method: "seek",
|
|
78570
78629
|
label: t("Seek", "Vai al punto"),
|
|
78571
|
-
phrase: t("Move {device} to {
|
|
78630
|
+
phrase: t("Move {device} to {position}", "Porta {device} al punto {position}"),
|
|
78572
78631
|
icon: "fast-forward",
|
|
78573
78632
|
openArgs: [{
|
|
78574
|
-
key: "
|
|
78633
|
+
key: "position",
|
|
78575
78634
|
label: t("Position", "Posizione"),
|
|
78576
78635
|
offer: {
|
|
78577
78636
|
kind: "number",
|
|
@@ -79620,7 +79679,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79620
79679
|
state: [
|
|
79621
79680
|
{
|
|
79622
79681
|
kind: "numeric",
|
|
79623
|
-
field: "
|
|
79682
|
+
field: "co2",
|
|
79624
79683
|
quantity: t("the CO₂", "la CO₂"),
|
|
79625
79684
|
label: t("CO₂", "CO₂"),
|
|
79626
79685
|
unit: "ppm",
|
|
@@ -79628,7 +79687,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79628
79687
|
},
|
|
79629
79688
|
{
|
|
79630
79689
|
kind: "numeric",
|
|
79631
|
-
field: "
|
|
79690
|
+
field: "voc",
|
|
79632
79691
|
quantity: t("the VOC level", "il livello di COV"),
|
|
79633
79692
|
label: t("VOC", "COV"),
|
|
79634
79693
|
unit: "ppb",
|
|
@@ -79664,7 +79723,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79664
79723
|
noun: t("Light level", "Luminosità ambiente"),
|
|
79665
79724
|
state: [{
|
|
79666
79725
|
kind: "numeric",
|
|
79667
|
-
field: "
|
|
79726
|
+
field: "illuminance",
|
|
79668
79727
|
quantity: t("the light level", "la luminosità"),
|
|
79669
79728
|
label: t("Illuminance", "Illuminamento"),
|
|
79670
79729
|
unit: "lx",
|
|
@@ -79867,7 +79926,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79867
79926
|
noun: t("Humidity", "Umidità"),
|
|
79868
79927
|
state: [{
|
|
79869
79928
|
kind: "numeric",
|
|
79870
|
-
field: "
|
|
79929
|
+
field: "humidity",
|
|
79871
79930
|
quantity: t("the humidity", "l’umidità"),
|
|
79872
79931
|
label: t("Humidity", "Umidità"),
|
|
79873
79932
|
unit: "%",
|
|
@@ -79915,7 +79974,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79915
79974
|
state: [
|
|
79916
79975
|
{
|
|
79917
79976
|
kind: "numeric",
|
|
79918
|
-
field: "
|
|
79977
|
+
field: "power",
|
|
79919
79978
|
quantity: t("the power draw", "il consumo"),
|
|
79920
79979
|
label: t("Power", "Potenza"),
|
|
79921
79980
|
unit: "W",
|
|
@@ -79923,7 +79982,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79923
79982
|
},
|
|
79924
79983
|
{
|
|
79925
79984
|
kind: "numeric",
|
|
79926
|
-
field: "
|
|
79985
|
+
field: "energy",
|
|
79927
79986
|
quantity: t("the energy used", "l’energia consumata"),
|
|
79928
79987
|
label: t("Energy", "Energia"),
|
|
79929
79988
|
unit: "kWh",
|
|
@@ -79931,7 +79990,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79931
79990
|
},
|
|
79932
79991
|
{
|
|
79933
79992
|
kind: "numeric",
|
|
79934
|
-
field: "
|
|
79993
|
+
field: "voltage",
|
|
79935
79994
|
quantity: t("the voltage", "la tensione"),
|
|
79936
79995
|
label: t("Voltage", "Tensione"),
|
|
79937
79996
|
unit: "V",
|
|
@@ -79939,7 +79998,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79939
79998
|
},
|
|
79940
79999
|
{
|
|
79941
80000
|
kind: "numeric",
|
|
79942
|
-
field: "
|
|
80001
|
+
field: "current",
|
|
79943
80002
|
quantity: t("the current", "la corrente"),
|
|
79944
80003
|
label: t("Current", "Corrente"),
|
|
79945
80004
|
unit: "A",
|
|
@@ -79956,13 +80015,6 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79956
80015
|
label: t("Where", "Posizione"),
|
|
79957
80016
|
phrase: t("When {device} is at {value}", "Quando {device} è in {value}"),
|
|
79958
80017
|
icon: "map-pin"
|
|
79959
|
-
}, {
|
|
79960
|
-
kind: "numeric",
|
|
79961
|
-
field: "batteryPercent",
|
|
79962
|
-
quantity: t("the phone battery", "la batteria del telefono"),
|
|
79963
|
-
label: t("Battery", "Batteria"),
|
|
79964
|
-
unit: "%",
|
|
79965
|
-
icon: "battery"
|
|
79966
80018
|
}]
|
|
79967
80019
|
},
|
|
79968
80020
|
"pressure-sensor": {
|
|
@@ -79970,7 +80022,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79970
80022
|
noun: t("Pressure", "Pressione"),
|
|
79971
80023
|
state: [{
|
|
79972
80024
|
kind: "numeric",
|
|
79973
|
-
field: "
|
|
80025
|
+
field: "pressure",
|
|
79974
80026
|
quantity: t("the pressure", "la pressione"),
|
|
79975
80027
|
label: t("Pressure", "Pressione"),
|
|
79976
80028
|
unit: "hPa",
|
|
@@ -80006,7 +80058,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80006
80058
|
noun: t("Temperature", "Temperatura"),
|
|
80007
80059
|
state: [{
|
|
80008
80060
|
kind: "numeric",
|
|
80009
|
-
field: "
|
|
80061
|
+
field: "temperature",
|
|
80010
80062
|
quantity: t("the temperature", "la temperatura"),
|
|
80011
80063
|
label: t("Temperature", "Temperatura"),
|
|
80012
80064
|
unit: "°C",
|
|
@@ -80077,7 +80129,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80077
80129
|
state: [
|
|
80078
80130
|
{
|
|
80079
80131
|
kind: "numeric",
|
|
80080
|
-
field: "
|
|
80132
|
+
field: "level",
|
|
80081
80133
|
quantity: t("the battery level", "il livello della batteria"),
|
|
80082
80134
|
label: t("Battery", "Batteria"),
|
|
80083
80135
|
unit: "%",
|
|
@@ -80119,7 +80171,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80119
80171
|
icon: "battery-charging"
|
|
80120
80172
|
}
|
|
80121
80173
|
],
|
|
80122
|
-
events: { onStatusChanged: { notOperatorFacing: "the
|
|
80174
|
+
events: { onStatusChanged: { notOperatorFacing: "the level / sleeping / charging state triggers each read one field of this change" } },
|
|
80123
80175
|
extraEvents: [{
|
|
80124
80176
|
category: EventCategory.DeviceAwake,
|
|
80125
80177
|
label: t("Woke up", "Risvegliato"),
|
|
@@ -80137,7 +80189,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80137
80189
|
noun: t("Network link", "Collegamento di rete"),
|
|
80138
80190
|
state: [{
|
|
80139
80191
|
kind: "numeric",
|
|
80140
|
-
field: "
|
|
80192
|
+
field: "signal",
|
|
80141
80193
|
quantity: t("the signal strength", "l’intensità del segnale"),
|
|
80142
80194
|
label: t("Signal", "Segnale"),
|
|
80143
80195
|
unit: "%",
|