@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
|
@@ -5613,7 +5613,7 @@ var ZodIssueCode = {
|
|
|
5613
5613
|
var ZodFirstPartyTypeKind;
|
|
5614
5614
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5615
5615
|
//#endregion
|
|
5616
|
-
//#region ../types/dist/sleep-
|
|
5616
|
+
//#region ../types/dist/sleep-Crlmu_tO.mjs
|
|
5617
5617
|
/**
|
|
5618
5618
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5619
5619
|
* window to float samples (D455).
|
|
@@ -9100,11 +9100,11 @@ var CAP_NAMES = Object.freeze([
|
|
|
9100
9100
|
Object.freeze({
|
|
9101
9101
|
"air-quality-sensor": [
|
|
9102
9102
|
{
|
|
9103
|
-
"path": "
|
|
9103
|
+
"path": "co2",
|
|
9104
9104
|
"valueType": "number"
|
|
9105
9105
|
},
|
|
9106
9106
|
{
|
|
9107
|
-
"path": "
|
|
9107
|
+
"path": "voc",
|
|
9108
9108
|
"valueType": "number"
|
|
9109
9109
|
},
|
|
9110
9110
|
{
|
|
@@ -9154,7 +9154,7 @@ Object.freeze({
|
|
|
9154
9154
|
}
|
|
9155
9155
|
],
|
|
9156
9156
|
"ambient-light-sensor": [{
|
|
9157
|
-
"path": "
|
|
9157
|
+
"path": "illuminance",
|
|
9158
9158
|
"valueType": "number"
|
|
9159
9159
|
}],
|
|
9160
9160
|
"audio-metrics": [
|
|
@@ -9215,7 +9215,7 @@ Object.freeze({
|
|
|
9215
9215
|
],
|
|
9216
9216
|
"battery": [
|
|
9217
9217
|
{
|
|
9218
|
-
"path": "
|
|
9218
|
+
"path": "level",
|
|
9219
9219
|
"valueType": "number"
|
|
9220
9220
|
},
|
|
9221
9221
|
{
|
|
@@ -9237,7 +9237,7 @@ Object.freeze({
|
|
|
9237
9237
|
"valueType": "number"
|
|
9238
9238
|
},
|
|
9239
9239
|
{
|
|
9240
|
-
"path": "
|
|
9240
|
+
"path": "voltage",
|
|
9241
9241
|
"valueType": "number"
|
|
9242
9242
|
},
|
|
9243
9243
|
{
|
|
@@ -9258,7 +9258,7 @@ Object.freeze({
|
|
|
9258
9258
|
"valueType": "boolean"
|
|
9259
9259
|
}],
|
|
9260
9260
|
"brightness": [{
|
|
9261
|
-
"path": "
|
|
9261
|
+
"path": "level",
|
|
9262
9262
|
"valueType": "number"
|
|
9263
9263
|
}],
|
|
9264
9264
|
"broker": [{
|
|
@@ -9459,7 +9459,7 @@ Object.freeze({
|
|
|
9459
9459
|
"valueType": "number"
|
|
9460
9460
|
},
|
|
9461
9461
|
{
|
|
9462
|
-
"path": "
|
|
9462
|
+
"path": "colorTemperature",
|
|
9463
9463
|
"valueType": "number"
|
|
9464
9464
|
}
|
|
9465
9465
|
],
|
|
@@ -9638,15 +9638,15 @@ Object.freeze({
|
|
|
9638
9638
|
"valueType": "string"
|
|
9639
9639
|
},
|
|
9640
9640
|
{
|
|
9641
|
-
"path": "
|
|
9641
|
+
"path": "remaining",
|
|
9642
9642
|
"valueType": "number"
|
|
9643
9643
|
},
|
|
9644
9644
|
{
|
|
9645
|
-
"path": "
|
|
9645
|
+
"path": "delayedStart",
|
|
9646
9646
|
"valueType": "number"
|
|
9647
9647
|
},
|
|
9648
9648
|
{
|
|
9649
|
-
"path": "
|
|
9649
|
+
"path": "progress",
|
|
9650
9650
|
"valueType": "number"
|
|
9651
9651
|
},
|
|
9652
9652
|
{
|
|
@@ -9760,7 +9760,7 @@ Object.freeze({
|
|
|
9760
9760
|
],
|
|
9761
9761
|
"fan-control": [
|
|
9762
9762
|
{
|
|
9763
|
-
"path": "
|
|
9763
|
+
"path": "speed",
|
|
9764
9764
|
"valueType": "number"
|
|
9765
9765
|
},
|
|
9766
9766
|
{
|
|
@@ -9860,7 +9860,7 @@ Object.freeze({
|
|
|
9860
9860
|
}
|
|
9861
9861
|
],
|
|
9862
9862
|
"humidity-sensor": [{
|
|
9863
|
-
"path": "
|
|
9863
|
+
"path": "humidity",
|
|
9864
9864
|
"valueType": "number"
|
|
9865
9865
|
}],
|
|
9866
9866
|
"image": [{
|
|
@@ -9970,7 +9970,7 @@ Object.freeze({
|
|
|
9970
9970
|
"valueType": "number"
|
|
9971
9971
|
},
|
|
9972
9972
|
{
|
|
9973
|
-
"path": "
|
|
9973
|
+
"path": "progress",
|
|
9974
9974
|
"valueType": "number"
|
|
9975
9975
|
},
|
|
9976
9976
|
{
|
|
@@ -10049,11 +10049,11 @@ Object.freeze({
|
|
|
10049
10049
|
"valueType": "string"
|
|
10050
10050
|
},
|
|
10051
10051
|
{
|
|
10052
|
-
"path": "
|
|
10052
|
+
"path": "position",
|
|
10053
10053
|
"valueType": "number"
|
|
10054
10054
|
},
|
|
10055
10055
|
{
|
|
10056
|
-
"path": "
|
|
10056
|
+
"path": "duration",
|
|
10057
10057
|
"valueType": "number"
|
|
10058
10058
|
},
|
|
10059
10059
|
{
|
|
@@ -10155,11 +10155,11 @@ Object.freeze({
|
|
|
10155
10155
|
]
|
|
10156
10156
|
},
|
|
10157
10157
|
{
|
|
10158
|
-
"path": "
|
|
10158
|
+
"path": "signal",
|
|
10159
10159
|
"valueType": "number"
|
|
10160
10160
|
},
|
|
10161
10161
|
{
|
|
10162
|
-
"path": "
|
|
10162
|
+
"path": "rssi",
|
|
10163
10163
|
"valueType": "number"
|
|
10164
10164
|
},
|
|
10165
10165
|
{
|
|
@@ -10290,23 +10290,23 @@ Object.freeze({
|
|
|
10290
10290
|
],
|
|
10291
10291
|
"power-meter": [
|
|
10292
10292
|
{
|
|
10293
|
-
"path": "
|
|
10293
|
+
"path": "power",
|
|
10294
10294
|
"valueType": "number"
|
|
10295
10295
|
},
|
|
10296
10296
|
{
|
|
10297
|
-
"path": "
|
|
10297
|
+
"path": "energy",
|
|
10298
10298
|
"valueType": "number"
|
|
10299
10299
|
},
|
|
10300
10300
|
{
|
|
10301
|
-
"path": "
|
|
10301
|
+
"path": "voltage",
|
|
10302
10302
|
"valueType": "number"
|
|
10303
10303
|
},
|
|
10304
10304
|
{
|
|
10305
|
-
"path": "
|
|
10305
|
+
"path": "current",
|
|
10306
10306
|
"valueType": "number"
|
|
10307
10307
|
},
|
|
10308
10308
|
{
|
|
10309
|
-
"path": "
|
|
10309
|
+
"path": "apparentPower",
|
|
10310
10310
|
"valueType": "number"
|
|
10311
10311
|
},
|
|
10312
10312
|
{
|
|
@@ -10334,14 +10334,10 @@ Object.freeze({
|
|
|
10334
10334
|
{
|
|
10335
10335
|
"path": "gps.accuracyMeters",
|
|
10336
10336
|
"valueType": "number"
|
|
10337
|
-
},
|
|
10338
|
-
{
|
|
10339
|
-
"path": "batteryPercent",
|
|
10340
|
-
"valueType": "number"
|
|
10341
10337
|
}
|
|
10342
10338
|
],
|
|
10343
10339
|
"pressure-sensor": [{
|
|
10344
|
-
"path": "
|
|
10340
|
+
"path": "pressure",
|
|
10345
10341
|
"valueType": "number"
|
|
10346
10342
|
}],
|
|
10347
10343
|
"privacy-mask": [{
|
|
@@ -10655,7 +10651,7 @@ Object.freeze({
|
|
|
10655
10651
|
"valueType": "boolean"
|
|
10656
10652
|
}],
|
|
10657
10653
|
"temperature-sensor": [{
|
|
10658
|
-
"path": "
|
|
10654
|
+
"path": "temperature",
|
|
10659
10655
|
"valueType": "number"
|
|
10660
10656
|
}],
|
|
10661
10657
|
"update": [
|
|
@@ -10703,7 +10699,7 @@ Object.freeze({
|
|
|
10703
10699
|
"valueType": "string"
|
|
10704
10700
|
},
|
|
10705
10701
|
{
|
|
10706
|
-
"path": "
|
|
10702
|
+
"path": "progress",
|
|
10707
10703
|
"valueType": "number"
|
|
10708
10704
|
},
|
|
10709
10705
|
{
|
|
@@ -11178,7 +11174,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
11178
11174
|
return DeviceRole;
|
|
11179
11175
|
}({});
|
|
11180
11176
|
//#endregion
|
|
11181
|
-
//#region ../types/dist/composition-
|
|
11177
|
+
//#region ../types/dist/composition-DwA0uVW5.mjs
|
|
11182
11178
|
/**
|
|
11183
11179
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
11184
11180
|
*
|
|
@@ -18843,7 +18839,7 @@ var CompositionEventPlanSchema = object({
|
|
|
18843
18839
|
stateField: string(),
|
|
18844
18840
|
fieldKey: string()
|
|
18845
18841
|
});
|
|
18846
|
-
/** One refusal, named (D391). `path` points into the composition, e.g. `features[0].fields.
|
|
18842
|
+
/** One refusal, named (D391). `path` points into the composition, e.g. `features[0].fields.temperature`. */
|
|
18847
18843
|
var CompositionProblemSchema = object({
|
|
18848
18844
|
code: _enum([
|
|
18849
18845
|
"reserved-variant",
|
|
@@ -19125,12 +19121,13 @@ var CHANGED = {
|
|
|
19125
19121
|
expr: "now"
|
|
19126
19122
|
};
|
|
19127
19123
|
function numeric(input) {
|
|
19124
|
+
const { alsoFrom, ...base } = input;
|
|
19128
19125
|
return {
|
|
19129
|
-
...
|
|
19126
|
+
...base,
|
|
19130
19127
|
family: "numeric",
|
|
19131
19128
|
deviceType: DeviceType.Sensor,
|
|
19132
19129
|
memberDeviceType: DeviceType.Sensor,
|
|
19133
|
-
memberDeviceTypes: [DeviceType.Sensor],
|
|
19130
|
+
memberDeviceTypes: [DeviceType.Sensor, ...alsoFrom?.deviceTypes ?? []],
|
|
19134
19131
|
activeWhen: void 0,
|
|
19135
19132
|
commandCaps: [],
|
|
19136
19133
|
baseUnit: baseUnitOf(input.quantity),
|
|
@@ -19138,9 +19135,10 @@ function numeric(input) {
|
|
|
19138
19135
|
accept: [{
|
|
19139
19136
|
cap: input.outputCap,
|
|
19140
19137
|
fieldPath: input.outputField
|
|
19141
|
-
}]
|
|
19138
|
+
}, ...alsoFrom === void 0 ? [] : [alsoFrom.accept]]
|
|
19142
19139
|
};
|
|
19143
19140
|
}
|
|
19141
|
+
var CLIMATE_DEVICES = [DeviceType.Thermostat, DeviceType.Climate];
|
|
19144
19142
|
function binary(input) {
|
|
19145
19143
|
return {
|
|
19146
19144
|
...input,
|
|
@@ -19162,29 +19160,43 @@ var GROUP_TEMPLATES = [
|
|
|
19162
19160
|
summary: "Mean, median, min, max or sum of temperatures. Offline and unknown members are left out, never read as 0 °C.",
|
|
19163
19161
|
role: DeviceRole.TemperatureSensor,
|
|
19164
19162
|
outputCap: "temperature-sensor",
|
|
19165
|
-
outputField: "
|
|
19163
|
+
outputField: "temperature",
|
|
19166
19164
|
quantity: "temperature",
|
|
19167
19165
|
defaultAggregate: "mean",
|
|
19168
19166
|
empty: "null",
|
|
19169
|
-
companions: [NOW$2]
|
|
19167
|
+
companions: [NOW$2],
|
|
19168
|
+
alsoFrom: {
|
|
19169
|
+
deviceTypes: CLIMATE_DEVICES,
|
|
19170
|
+
accept: {
|
|
19171
|
+
cap: "climate-control",
|
|
19172
|
+
fieldPath: "currentTemp"
|
|
19173
|
+
}
|
|
19174
|
+
}
|
|
19170
19175
|
}),
|
|
19171
19176
|
numeric({
|
|
19172
19177
|
id: "humidity",
|
|
19173
19178
|
summary: "Humidity in percent. Offline and unknown members are left out, never read as 0 %.",
|
|
19174
19179
|
role: DeviceRole.HumiditySensor,
|
|
19175
19180
|
outputCap: "humidity-sensor",
|
|
19176
|
-
outputField: "
|
|
19181
|
+
outputField: "humidity",
|
|
19177
19182
|
quantity: "humidity",
|
|
19178
19183
|
defaultAggregate: "mean",
|
|
19179
19184
|
empty: "null",
|
|
19180
|
-
companions: [NOW$2]
|
|
19185
|
+
companions: [NOW$2],
|
|
19186
|
+
alsoFrom: {
|
|
19187
|
+
deviceTypes: CLIMATE_DEVICES,
|
|
19188
|
+
accept: {
|
|
19189
|
+
cap: "climate-control",
|
|
19190
|
+
fieldPath: "currentHumidity"
|
|
19191
|
+
}
|
|
19192
|
+
}
|
|
19181
19193
|
}),
|
|
19182
19194
|
numeric({
|
|
19183
19195
|
id: "pressure",
|
|
19184
19196
|
summary: "Pressure in hectopascals. Offline and unknown members are left out, never read as 0 hPa.",
|
|
19185
19197
|
role: DeviceRole.PressureSensor,
|
|
19186
19198
|
outputCap: "pressure-sensor",
|
|
19187
|
-
outputField: "
|
|
19199
|
+
outputField: "pressure",
|
|
19188
19200
|
quantity: "pressure",
|
|
19189
19201
|
defaultAggregate: "mean",
|
|
19190
19202
|
empty: "null",
|
|
@@ -19195,7 +19207,7 @@ var GROUP_TEMPLATES = [
|
|
|
19195
19207
|
summary: "Illuminance in lux. Offline and unknown members are left out, never read as 0 lx.",
|
|
19196
19208
|
role: DeviceRole.AmbientLightSensor,
|
|
19197
19209
|
outputCap: "ambient-light-sensor",
|
|
19198
|
-
outputField: "
|
|
19210
|
+
outputField: "illuminance",
|
|
19199
19211
|
quantity: "illuminance",
|
|
19200
19212
|
defaultAggregate: "mean",
|
|
19201
19213
|
empty: "null",
|
|
@@ -19206,7 +19218,7 @@ var GROUP_TEMPLATES = [
|
|
|
19206
19218
|
summary: "Power in watts, summed by default. Nobody reporting omits the key rather than writing 0 W.",
|
|
19207
19219
|
role: DeviceRole.PowerSensor,
|
|
19208
19220
|
outputCap: "power-meter",
|
|
19209
|
-
outputField: "
|
|
19221
|
+
outputField: "power",
|
|
19210
19222
|
quantity: "power",
|
|
19211
19223
|
defaultAggregate: "sum",
|
|
19212
19224
|
empty: "omit",
|
|
@@ -19217,7 +19229,7 @@ var GROUP_TEMPLATES = [
|
|
|
19217
19229
|
summary: "Energy in kilowatt-hours, summed by default. Nobody reporting omits the key rather than writing 0 kWh.",
|
|
19218
19230
|
role: DeviceRole.EnergySensor,
|
|
19219
19231
|
outputCap: "power-meter",
|
|
19220
|
-
outputField: "
|
|
19232
|
+
outputField: "energy",
|
|
19221
19233
|
quantity: "energy",
|
|
19222
19234
|
defaultAggregate: "sum",
|
|
19223
19235
|
empty: "omit",
|
|
@@ -19228,7 +19240,7 @@ var GROUP_TEMPLATES = [
|
|
|
19228
19240
|
summary: "Battery charge in percent. Offline and unknown members are left out, never read as 0 %.",
|
|
19229
19241
|
role: DeviceRole.BatterySensor,
|
|
19230
19242
|
outputCap: "battery",
|
|
19231
|
-
outputField: "
|
|
19243
|
+
outputField: "level",
|
|
19232
19244
|
quantity: "percentage",
|
|
19233
19245
|
defaultAggregate: "mean",
|
|
19234
19246
|
empty: "null",
|
|
@@ -44683,6 +44695,43 @@ var NotificationActionSchema = object({
|
|
|
44683
44695
|
*/
|
|
44684
44696
|
mode: _enum(["navigate", "background"]).optional()
|
|
44685
44697
|
});
|
|
44698
|
+
/** A delivery parameter value: what a notifier declared it takes. */
|
|
44699
|
+
var DeliveryParamValueSchema = union([
|
|
44700
|
+
string(),
|
|
44701
|
+
number(),
|
|
44702
|
+
boolean()
|
|
44703
|
+
]);
|
|
44704
|
+
/**
|
|
44705
|
+
* One extra delivery parameter a notifier KIND declares (D938). A rule that
|
|
44706
|
+
* addresses a target of that kind may set it; a kind that declares nothing is
|
|
44707
|
+
* never handed one. The admin UI derives its control from this descriptor —
|
|
44708
|
+
* no editor knows a service by name.
|
|
44709
|
+
*
|
|
44710
|
+
* Optional fields are `.optional()`, never `.default()` (a Zod default does not
|
|
44711
|
+
* run on the addon cap path).
|
|
44712
|
+
*/
|
|
44713
|
+
var DeliveryParamSchema = object({
|
|
44714
|
+
key: string().min(1),
|
|
44715
|
+
label: string(),
|
|
44716
|
+
/** i18n key of the label, resolved by the declaring addon's namespace. */
|
|
44717
|
+
labelKey: string().optional(),
|
|
44718
|
+
type: _enum([
|
|
44719
|
+
"enum",
|
|
44720
|
+
"number",
|
|
44721
|
+
"boolean",
|
|
44722
|
+
"string"
|
|
44723
|
+
]),
|
|
44724
|
+
/** `enum` only: the closed set of accepted values. */
|
|
44725
|
+
options: array(object({
|
|
44726
|
+
value: string(),
|
|
44727
|
+
label: string()
|
|
44728
|
+
})).optional(),
|
|
44729
|
+
/** `number` only. */
|
|
44730
|
+
min: number().optional(),
|
|
44731
|
+
max: number().optional(),
|
|
44732
|
+
/** What the notifier does when the rule sets nothing; shown as the placeholder. */
|
|
44733
|
+
default: DeliveryParamValueSchema.optional()
|
|
44734
|
+
});
|
|
44686
44735
|
/**
|
|
44687
44736
|
* The canonical notification. `body` is the only hard field (Apprise model).
|
|
44688
44737
|
* `priority` is a 5-level ORDINAL (1=lowest … 3=normal(default) … 5=urgent),
|
|
@@ -44705,7 +44754,13 @@ var NotificationSchema = object({
|
|
|
44705
44754
|
tag: string().optional(),
|
|
44706
44755
|
deviceId: number().optional(),
|
|
44707
44756
|
eventId: string().optional(),
|
|
44708
|
-
metadata: record(string(), unknown()).optional()
|
|
44757
|
+
metadata: record(string(), unknown()).optional(),
|
|
44758
|
+
/**
|
|
44759
|
+
* Values for the parameters the target's kind DECLARES in
|
|
44760
|
+
* {@link TargetKindSchema} `deliveryParams`. Already validated against the
|
|
44761
|
+
* declaration by the sender; a notifier reads only the keys it declared.
|
|
44762
|
+
*/
|
|
44763
|
+
delivery: record(string(), DeliveryParamValueSchema).optional()
|
|
44709
44764
|
});
|
|
44710
44765
|
/** One declared native severity/priority level for a kind. */
|
|
44711
44766
|
var TargetKindLevelSchema = object({
|
|
@@ -44811,6 +44866,11 @@ var TargetKindSchema = object({
|
|
|
44811
44866
|
*/
|
|
44812
44867
|
destinationKeys: array(string()).optional(),
|
|
44813
44868
|
supportsDiscovery: boolean(),
|
|
44869
|
+
/**
|
|
44870
|
+
* Extra delivery parameters a rule may set for a target of this kind (D938).
|
|
44871
|
+
* Absent = none; the rule editor then offers nothing.
|
|
44872
|
+
*/
|
|
44873
|
+
deliveryParams: array(DeliveryParamSchema).optional(),
|
|
44814
44874
|
caps: TargetKindCapsSchema
|
|
44815
44875
|
});
|
|
44816
44876
|
/**
|
|
@@ -56981,7 +57041,9 @@ var ManifestShapeSchema = object({
|
|
|
56981
57041
|
icon: string().optional()
|
|
56982
57042
|
}).optional(),
|
|
56983
57043
|
protected: boolean().optional(),
|
|
56984
|
-
removable: boolean().optional()
|
|
57044
|
+
removable: boolean().optional(),
|
|
57045
|
+
/** Declared Integrations-page block (mirror of `AddonDeclaration.integrationSection`). */
|
|
57046
|
+
integrationSection: _enum(["system", "providers"]).optional()
|
|
56985
57047
|
});
|
|
56986
57048
|
var AddonProcessSchema = object({
|
|
56987
57049
|
pid: number().optional(),
|
|
@@ -57346,9 +57408,9 @@ method(object({ nodeId: string().optional() }).optional(), array(AddonListItemSc
|
|
|
57346
57408
|
}), LogStreamEntrySchema, { kind: "subscription" });
|
|
57347
57409
|
object({
|
|
57348
57410
|
/** Carbon dioxide concentration in ppm. */
|
|
57349
|
-
|
|
57411
|
+
co2: number().min(0).optional().meta(readingMeta("concentration-volume")),
|
|
57350
57412
|
/** Total volatile organic compounds in ppb. */
|
|
57351
|
-
|
|
57413
|
+
voc: number().min(0).optional().meta(readingMeta("concentration-ppb")),
|
|
57352
57414
|
/** Particulate matter ≤ 2.5 μm in µg/m³. */
|
|
57353
57415
|
pm25: number().min(0).optional().meta(readingMeta("concentration-mass")),
|
|
57354
57416
|
/** Particulate matter ≤ 10 μm in µg/m³. */
|
|
@@ -57361,7 +57423,7 @@ object({
|
|
|
57361
57423
|
DeviceType.Sensor;
|
|
57362
57424
|
object({
|
|
57363
57425
|
/** Current illuminance in lux (lx). `null` when the sample was refused (D393). */
|
|
57364
|
-
|
|
57426
|
+
illuminance: number().min(0).nullable().meta(readingMeta("illuminance", {
|
|
57365
57427
|
precision: 0,
|
|
57366
57428
|
label: "Illuminance"
|
|
57367
57429
|
})),
|
|
@@ -57589,7 +57651,7 @@ var BatteryStatusSchema = object({
|
|
|
57589
57651
|
* Consumers must SKIP a null rather than coerce it — `battery-band` already
|
|
57590
57652
|
* declines to band a non-finite reading, which is the correct shape.
|
|
57591
57653
|
*/
|
|
57592
|
-
|
|
57654
|
+
level: number().min(0).max(100).nullable().meta(readingMeta("percentage", { label: "Charge" })),
|
|
57593
57655
|
/**
|
|
57594
57656
|
* Charging source. `'dc'` covers wall/USB adapters; `'solar'` is
|
|
57595
57657
|
* Reolink-specific for the Solar Panel 2 accessory (will become
|
|
@@ -57599,7 +57661,7 @@ var BatteryStatusSchema = object({
|
|
|
57599
57661
|
* `'unknown'` is the absence of an answer: the provider has not read the
|
|
57600
57662
|
* power fields yet, or the firmware reported neither. Before it existed,
|
|
57601
57663
|
* two unreadable fields produced `'none'`, and a camera nobody had reached
|
|
57602
|
-
* was drawn "on battery alone" — the same D315 defect `
|
|
57664
|
+
* was drawn "on battery alone" — the same D315 defect `level` closed
|
|
57603
57665
|
* by going nullable. Consumers SKIP it (no charger state published, no
|
|
57604
57666
|
* glyph, no HomeKit ChargingState) rather than coerce it either way.
|
|
57605
57667
|
*/
|
|
@@ -57623,7 +57685,7 @@ var BatteryStatusSchema = object({
|
|
|
57623
57685
|
* that only report charge. A second reading on this cap, not a second
|
|
57624
57686
|
* `numeric-sensor` on the same device.
|
|
57625
57687
|
*/
|
|
57626
|
-
|
|
57688
|
+
voltage: number().nullable().optional().meta(readingMeta("voltage", { label: "Voltage" })),
|
|
57627
57689
|
/**
|
|
57628
57690
|
* Ms epoch of the last time the device PROVED it was reachable — a
|
|
57629
57691
|
* completed firmware round-trip, an observed wake, or an inbound push
|
|
@@ -57657,7 +57719,7 @@ var BatteryStatusSchema = object({
|
|
|
57657
57719
|
/**
|
|
57658
57720
|
* True when the source is a BINARY low-battery indicator (HA
|
|
57659
57721
|
* `binary_sensor` device_class=battery / `LOW_BAT`) that has no real
|
|
57660
|
-
* charge level — `
|
|
57722
|
+
* charge level — `level` is then a coarse stand-in (100 = normal,
|
|
57661
57723
|
* sub-threshold = low). UI MUST render "Normal"/"Low" instead of a
|
|
57662
57724
|
* misleading exact percentage. Absent/false → genuine 0–100 % reading.
|
|
57663
57725
|
*/
|
|
@@ -57683,19 +57745,19 @@ object({
|
|
|
57683
57745
|
DeviceType.Sensor;
|
|
57684
57746
|
object({
|
|
57685
57747
|
/** Current level as 0..100 inclusive. Firmware-reported. */
|
|
57686
|
-
|
|
57748
|
+
level: number().min(0).max(100).meta(readingMeta("percentage")),
|
|
57687
57749
|
/** Ms epoch of the last operator-driven change. Useful for UI freshness. */
|
|
57688
57750
|
lastChangedAt: number()
|
|
57689
57751
|
});
|
|
57690
57752
|
DeviceType.Light, method(object({
|
|
57691
57753
|
deviceId: number().int().nonnegative(),
|
|
57692
|
-
|
|
57754
|
+
level: number().min(0).max(100)
|
|
57693
57755
|
}), _void(), {
|
|
57694
57756
|
kind: "mutation",
|
|
57695
57757
|
auth: "protected"
|
|
57696
57758
|
}), object({
|
|
57697
57759
|
deviceId: number(),
|
|
57698
|
-
|
|
57760
|
+
level: number().min(0).max(100),
|
|
57699
57761
|
lastChangedAt: number()
|
|
57700
57762
|
});
|
|
57701
57763
|
DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
@@ -58196,11 +58258,11 @@ var ColorInputSchema = discriminatedUnion("mode", [
|
|
|
58196
58258
|
}),
|
|
58197
58259
|
object({
|
|
58198
58260
|
mode: literal("mired"),
|
|
58199
|
-
|
|
58261
|
+
colorTemperature: number().int().min(50).max(1e3)
|
|
58200
58262
|
})
|
|
58201
58263
|
]);
|
|
58202
58264
|
object({
|
|
58203
|
-
/** Active color mode — which of `rgb` / `hsv` / `
|
|
58265
|
+
/** Active color mode — which of `rgb` / `hsv` / `colorTemperature` reflects
|
|
58204
58266
|
* the bulb's current state. */
|
|
58205
58267
|
mode: _enum([
|
|
58206
58268
|
"rgb",
|
|
@@ -58212,7 +58274,7 @@ object({
|
|
|
58212
58274
|
/** Populated when `mode === 'hsv'`. */
|
|
58213
58275
|
hsv: HsvTripletSchema.optional(),
|
|
58214
58276
|
/** Populated when `mode === 'mired'`. */
|
|
58215
|
-
|
|
58277
|
+
colorTemperature: number().int().optional().meta(readingMeta("colour-temperature")),
|
|
58216
58278
|
/** Ms epoch of the last operator-driven change. */
|
|
58217
58279
|
lastChangedAt: number()
|
|
58218
58280
|
});
|
|
@@ -58231,7 +58293,7 @@ DeviceType.Light, method(object({
|
|
|
58231
58293
|
]),
|
|
58232
58294
|
rgb: RgbTripletSchema.optional(),
|
|
58233
58295
|
hsv: HsvTripletSchema.optional(),
|
|
58234
|
-
|
|
58296
|
+
colorTemperature: number().int().optional(),
|
|
58235
58297
|
lastChangedAt: number()
|
|
58236
58298
|
});
|
|
58237
58299
|
var ConnectionTestOutcomeSchema = discriminatedUnion("outcome", [
|
|
@@ -58657,11 +58719,11 @@ object({
|
|
|
58657
58719
|
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
58658
58720
|
availablePrograms: array(string()),
|
|
58659
58721
|
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
58660
|
-
|
|
58722
|
+
remaining: number().int().nonnegative().nullable().meta(readingMeta("duration")),
|
|
58661
58723
|
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
58662
|
-
|
|
58724
|
+
delayedStart: number().int().nonnegative().nullable().meta(readingMeta("duration")),
|
|
58663
58725
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
58664
|
-
|
|
58726
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
58665
58727
|
/** True when the door is reported open; null when the door state is not known. */
|
|
58666
58728
|
doorOpen: boolean().nullable(),
|
|
58667
58729
|
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
@@ -59279,7 +59341,7 @@ var FanDirectionSchema = _enum(["forward", "reverse"]);
|
|
|
59279
59341
|
object({
|
|
59280
59342
|
/** Active speed as 0..100 inclusive. Null when the device has no
|
|
59281
59343
|
* speed surface (single-speed fan). */
|
|
59282
|
-
|
|
59344
|
+
speed: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
59283
59345
|
/** Speed granularity the device accepts (HA `percentage_step`, e.g. 25 for
|
|
59284
59346
|
* a 4-speed fan). Absent when unknown — the UI then falls back to step 1. */
|
|
59285
59347
|
percentageStep: number().positive().optional().meta(readingMeta("percentage")),
|
|
@@ -59299,7 +59361,7 @@ object({
|
|
|
59299
59361
|
});
|
|
59300
59362
|
DeviceType.Fan, method(object({
|
|
59301
59363
|
deviceId: number().int().nonnegative(),
|
|
59302
|
-
|
|
59364
|
+
speed: number().min(0).max(100)
|
|
59303
59365
|
}), _void(), {
|
|
59304
59366
|
kind: "mutation",
|
|
59305
59367
|
auth: "protected"
|
|
@@ -59482,7 +59544,7 @@ DeviceType.Humidifier, method(object({
|
|
|
59482
59544
|
});
|
|
59483
59545
|
object({
|
|
59484
59546
|
/** Current relative humidity, 0..100. `null` when the sample was refused (D393). */
|
|
59485
|
-
|
|
59547
|
+
humidity: number().min(0).max(100).nullable().meta(readingMeta("humidity", {
|
|
59486
59548
|
precision: 0,
|
|
59487
59549
|
label: "Humidity"
|
|
59488
59550
|
})),
|
|
@@ -59925,7 +59987,7 @@ object({
|
|
|
59925
59987
|
batteryLevel: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
59926
59988
|
/** 0..100 mowing-completion percentage of the current task, or null when no
|
|
59927
59989
|
* task is active / progress is unavailable. */
|
|
59928
|
-
|
|
59990
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
59929
59991
|
/** Current device/event code (dynamic — mostly status, sometimes an error),
|
|
59930
59992
|
* or null when unknown. */
|
|
59931
59993
|
currentCode: number().nullable().meta(readingMeta("none")),
|
|
@@ -60415,10 +60477,10 @@ object({
|
|
|
60415
60477
|
currentMedia: MediaInfoSchema.nullable(),
|
|
60416
60478
|
/** Current playback position in ms. Null when not seekable or
|
|
60417
60479
|
* nothing is playing. Pair with `DeviceFeature.MediaPlayerSeek`. */
|
|
60418
|
-
|
|
60480
|
+
position: number().int().nonnegative().nullable().meta(readingMeta("duration-ms")),
|
|
60419
60481
|
/** Total duration of the current media in ms. Null when unknown
|
|
60420
60482
|
* (live stream) or nothing is playing. */
|
|
60421
|
-
|
|
60483
|
+
duration: number().int().nonnegative().nullable().meta(readingMeta("duration-ms")),
|
|
60422
60484
|
/** Shuffle toggle. Null when no shuffle surface.
|
|
60423
60485
|
* Pair with `DeviceFeature.MediaPlayerShuffle`. */
|
|
60424
60486
|
shuffle: boolean().nullable(),
|
|
@@ -60445,7 +60507,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
|
|
|
60445
60507
|
auth: "protected"
|
|
60446
60508
|
}), method(object({
|
|
60447
60509
|
deviceId: number().int().nonnegative(),
|
|
60448
|
-
|
|
60510
|
+
position: number().int().nonnegative()
|
|
60449
60511
|
}), _void(), {
|
|
60450
60512
|
kind: "mutation",
|
|
60451
60513
|
auth: "protected"
|
|
@@ -61118,9 +61180,9 @@ var NetworkLinkStatusSchema = object({
|
|
|
61118
61180
|
* one whose reading has not landed must not be drawn at 0 %. Consumers
|
|
61119
61181
|
* SKIP a null rather than coerce it.
|
|
61120
61182
|
*/
|
|
61121
|
-
|
|
61183
|
+
signal: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
61122
61184
|
/** Raw received signal strength in dBm, when the firmware reports one. */
|
|
61123
|
-
|
|
61185
|
+
rssi: number().optional().meta(readingMeta("signal-level")),
|
|
61124
61186
|
/** Network name of a wireless link, when the firmware reports it. */
|
|
61125
61187
|
ssid: string().optional(),
|
|
61126
61188
|
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
@@ -62270,16 +62332,16 @@ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema)
|
|
|
62270
62332
|
auth: "admin"
|
|
62271
62333
|
});
|
|
62272
62334
|
object({
|
|
62273
|
-
/** Instantaneous power draw
|
|
62274
|
-
|
|
62335
|
+
/** Instantaneous power draw (watts). */
|
|
62336
|
+
power: number().optional().meta(readingMeta("power", { label: "Power" })),
|
|
62275
62337
|
/** Cumulative energy in kilowatt-hours since the meter was reset. */
|
|
62276
|
-
|
|
62277
|
-
/** Voltage
|
|
62278
|
-
|
|
62338
|
+
energy: number().optional().meta(readingMeta("energy", { label: "Energy" })),
|
|
62339
|
+
/** Voltage (volts). */
|
|
62340
|
+
voltage: number().optional().meta(readingMeta("voltage", { label: "Voltage" })),
|
|
62279
62341
|
/** Current in amperes. */
|
|
62280
|
-
|
|
62342
|
+
current: number().optional().meta(readingMeta("current", { label: "Current" })),
|
|
62281
62343
|
/** Apparent power in volt-amperes. */
|
|
62282
|
-
|
|
62344
|
+
apparentPower: number().optional().meta(readingMeta("apparent-power")),
|
|
62283
62345
|
/** Power factor (0..1) if reported. */
|
|
62284
62346
|
powerFactor: number().min(0).max(1).optional().meta(readingMeta("ratio")),
|
|
62285
62347
|
/** Ms epoch when the slice was last updated. */
|
|
@@ -62334,16 +62396,13 @@ object({
|
|
|
62334
62396
|
location: string().nullable(),
|
|
62335
62397
|
/** GPS coordinates when available. Null otherwise. */
|
|
62336
62398
|
gps: GpsLocationSchema.nullable(),
|
|
62337
|
-
/** Optional battery level of the tracking device (0..100). Null
|
|
62338
|
-
* when not reported. */
|
|
62339
|
-
batteryPercent: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
62340
62399
|
/** Ms epoch when the slice was last updated. */
|
|
62341
62400
|
lastChangedAt: number()
|
|
62342
62401
|
});
|
|
62343
62402
|
DeviceType.Presence;
|
|
62344
62403
|
object({
|
|
62345
62404
|
/** Current pressure in hPa. `null` when the sample was refused (D393). */
|
|
62346
|
-
|
|
62405
|
+
pressure: number().nullable().meta(readingMeta("pressure", { precision: 0 })),
|
|
62347
62406
|
/** Ms epoch when the slice was last updated. */
|
|
62348
62407
|
lastFetchedAt: number()
|
|
62349
62408
|
});
|
|
@@ -65346,7 +65405,7 @@ object({
|
|
|
65346
65405
|
DeviceType.Sensor;
|
|
65347
65406
|
object({
|
|
65348
65407
|
/** Current temperature in Celsius. `null` when the sample was refused (D393). */
|
|
65349
|
-
|
|
65408
|
+
temperature: number().nullable().meta(readingMeta("temperature", {
|
|
65350
65409
|
precision: 1,
|
|
65351
65410
|
label: "Temperature"
|
|
65352
65411
|
})),
|
|
@@ -65610,7 +65669,7 @@ object({
|
|
|
65610
65669
|
/** Speed tokens the hardware accepts — drives the UI selector. */
|
|
65611
65670
|
availableFanSpeeds: array(string()),
|
|
65612
65671
|
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
65613
|
-
|
|
65672
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
65614
65673
|
/** Current error code (0 / null = no error). */
|
|
65615
65674
|
errorCode: number().nullable().meta(readingMeta("none")),
|
|
65616
65675
|
/** Human label for {@link errorCode}, or null when none / undecodable. */
|
|
@@ -76682,7 +76741,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76682
76741
|
label: t("Full brightness", "Luminosità massima"),
|
|
76683
76742
|
phrase: t("Set {device} to full brightness", "Porta {device} alla massima luminosità"),
|
|
76684
76743
|
icon: "sun",
|
|
76685
|
-
args: {
|
|
76744
|
+
args: { level: 100 }
|
|
76686
76745
|
},
|
|
76687
76746
|
{
|
|
76688
76747
|
id: "brightness.half",
|
|
@@ -76690,7 +76749,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76690
76749
|
label: t("Half brightness", "Luminosità a metà"),
|
|
76691
76750
|
phrase: t("Dim {device} to half", "Abbassa {device} a metà luminosità"),
|
|
76692
76751
|
icon: "sun-dim",
|
|
76693
|
-
args: {
|
|
76752
|
+
args: { level: 50 }
|
|
76694
76753
|
},
|
|
76695
76754
|
{
|
|
76696
76755
|
id: "brightness.off",
|
|
@@ -76698,16 +76757,16 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76698
76757
|
label: t("Brightness off", "Luminosità a zero"),
|
|
76699
76758
|
phrase: t("Dim {device} to zero", "Abbassa {device} a zero"),
|
|
76700
76759
|
icon: "lightbulb-off",
|
|
76701
|
-
args: {
|
|
76760
|
+
args: { level: 0 }
|
|
76702
76761
|
},
|
|
76703
76762
|
{
|
|
76704
76763
|
id: "brightness.set",
|
|
76705
76764
|
method: "setBrightness",
|
|
76706
76765
|
label: t("Set brightness", "Imposta la luminosità"),
|
|
76707
|
-
phrase: t("Set the brightness of {device} to {
|
|
76766
|
+
phrase: t("Set the brightness of {device} to {level}", "Imposta la luminosità di {device} a {level}"),
|
|
76708
76767
|
icon: "sun-medium",
|
|
76709
76768
|
openArgs: [{
|
|
76710
|
-
key: "
|
|
76769
|
+
key: "level",
|
|
76711
76770
|
label: PERCENT,
|
|
76712
76771
|
offer: {
|
|
76713
76772
|
kind: "number",
|
|
@@ -76721,13 +76780,13 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76721
76780
|
],
|
|
76722
76781
|
state: [{
|
|
76723
76782
|
kind: "numeric",
|
|
76724
|
-
field: "
|
|
76783
|
+
field: "level",
|
|
76725
76784
|
quantity: t("the brightness", "la luminosità"),
|
|
76726
76785
|
label: t("Brightness", "Luminosità"),
|
|
76727
76786
|
unit: "%",
|
|
76728
76787
|
icon: "sun"
|
|
76729
76788
|
}],
|
|
76730
|
-
events: { onBrightnessChanged: { notOperatorFacing: "the `
|
|
76789
|
+
events: { onBrightnessChanged: { notOperatorFacing: "the `level` state trigger reads the same change" } }
|
|
76731
76790
|
},
|
|
76732
76791
|
color: {
|
|
76733
76792
|
scope: "device",
|
|
@@ -76741,7 +76800,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76741
76800
|
icon: "sun",
|
|
76742
76801
|
args: { color: {
|
|
76743
76802
|
mode: "mired",
|
|
76744
|
-
|
|
76803
|
+
colorTemperature: 370
|
|
76745
76804
|
} }
|
|
76746
76805
|
},
|
|
76747
76806
|
{
|
|
@@ -76752,7 +76811,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76752
76811
|
icon: "snowflake",
|
|
76753
76812
|
args: { color: {
|
|
76754
76813
|
mode: "mired",
|
|
76755
|
-
|
|
76814
|
+
colorTemperature: 200
|
|
76756
76815
|
} }
|
|
76757
76816
|
},
|
|
76758
76817
|
{
|
|
@@ -77366,7 +77425,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77366
77425
|
label: t("Fan off", "Ventilatore spento"),
|
|
77367
77426
|
phrase: t("Stop {device}", "Ferma {device}"),
|
|
77368
77427
|
icon: "power-off",
|
|
77369
|
-
args: {
|
|
77428
|
+
args: { speed: 0 }
|
|
77370
77429
|
},
|
|
77371
77430
|
{
|
|
77372
77431
|
id: "fan.full",
|
|
@@ -77374,16 +77433,16 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77374
77433
|
label: t("Fan full", "Ventilatore al massimo"),
|
|
77375
77434
|
phrase: t("Run {device} at full speed", "Porta {device} alla massima velocità"),
|
|
77376
77435
|
icon: "fan",
|
|
77377
|
-
args: {
|
|
77436
|
+
args: { speed: 100 }
|
|
77378
77437
|
},
|
|
77379
77438
|
{
|
|
77380
77439
|
id: "fan.speed",
|
|
77381
77440
|
method: "setPercentage",
|
|
77382
77441
|
label: t("Set speed", "Imposta la velocità"),
|
|
77383
|
-
phrase: t("Set the speed of {device} to {
|
|
77442
|
+
phrase: t("Set the speed of {device} to {speed}", "Imposta la velocità di {device} al {speed}"),
|
|
77384
77443
|
icon: "fan",
|
|
77385
77444
|
openArgs: [{
|
|
77386
|
-
key: "
|
|
77445
|
+
key: "speed",
|
|
77387
77446
|
label: t("Speed", "Velocità"),
|
|
77388
77447
|
offer: {
|
|
77389
77448
|
kind: "number",
|
|
@@ -77445,7 +77504,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77445
77504
|
],
|
|
77446
77505
|
state: [{
|
|
77447
77506
|
kind: "numeric",
|
|
77448
|
-
field: "
|
|
77507
|
+
field: "speed",
|
|
77449
77508
|
quantity: t("the speed", "la velocità"),
|
|
77450
77509
|
label: t("Speed", "Velocità"),
|
|
77451
77510
|
unit: "%",
|
|
@@ -78243,7 +78302,7 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
78243
78302
|
},
|
|
78244
78303
|
{
|
|
78245
78304
|
kind: "numeric",
|
|
78246
|
-
field: "
|
|
78305
|
+
field: "progress",
|
|
78247
78306
|
quantity: t("the cycle progress", "l’avanzamento del lavaggio"),
|
|
78248
78307
|
label: t("Progress", "Avanzamento"),
|
|
78249
78308
|
unit: "%",
|
|
@@ -78601,10 +78660,10 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
78601
78660
|
id: "media.seek",
|
|
78602
78661
|
method: "seek",
|
|
78603
78662
|
label: t("Seek", "Vai al punto"),
|
|
78604
|
-
phrase: t("Move {device} to {
|
|
78663
|
+
phrase: t("Move {device} to {position}", "Porta {device} al punto {position}"),
|
|
78605
78664
|
icon: "fast-forward",
|
|
78606
78665
|
openArgs: [{
|
|
78607
|
-
key: "
|
|
78666
|
+
key: "position",
|
|
78608
78667
|
label: t("Position", "Posizione"),
|
|
78609
78668
|
offer: {
|
|
78610
78669
|
kind: "number",
|
|
@@ -79653,7 +79712,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79653
79712
|
state: [
|
|
79654
79713
|
{
|
|
79655
79714
|
kind: "numeric",
|
|
79656
|
-
field: "
|
|
79715
|
+
field: "co2",
|
|
79657
79716
|
quantity: t("the CO₂", "la CO₂"),
|
|
79658
79717
|
label: t("CO₂", "CO₂"),
|
|
79659
79718
|
unit: "ppm",
|
|
@@ -79661,7 +79720,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79661
79720
|
},
|
|
79662
79721
|
{
|
|
79663
79722
|
kind: "numeric",
|
|
79664
|
-
field: "
|
|
79723
|
+
field: "voc",
|
|
79665
79724
|
quantity: t("the VOC level", "il livello di COV"),
|
|
79666
79725
|
label: t("VOC", "COV"),
|
|
79667
79726
|
unit: "ppb",
|
|
@@ -79697,7 +79756,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79697
79756
|
noun: t("Light level", "Luminosità ambiente"),
|
|
79698
79757
|
state: [{
|
|
79699
79758
|
kind: "numeric",
|
|
79700
|
-
field: "
|
|
79759
|
+
field: "illuminance",
|
|
79701
79760
|
quantity: t("the light level", "la luminosità"),
|
|
79702
79761
|
label: t("Illuminance", "Illuminamento"),
|
|
79703
79762
|
unit: "lx",
|
|
@@ -79900,7 +79959,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79900
79959
|
noun: t("Humidity", "Umidità"),
|
|
79901
79960
|
state: [{
|
|
79902
79961
|
kind: "numeric",
|
|
79903
|
-
field: "
|
|
79962
|
+
field: "humidity",
|
|
79904
79963
|
quantity: t("the humidity", "l’umidità"),
|
|
79905
79964
|
label: t("Humidity", "Umidità"),
|
|
79906
79965
|
unit: "%",
|
|
@@ -79948,7 +80007,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79948
80007
|
state: [
|
|
79949
80008
|
{
|
|
79950
80009
|
kind: "numeric",
|
|
79951
|
-
field: "
|
|
80010
|
+
field: "power",
|
|
79952
80011
|
quantity: t("the power draw", "il consumo"),
|
|
79953
80012
|
label: t("Power", "Potenza"),
|
|
79954
80013
|
unit: "W",
|
|
@@ -79956,7 +80015,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79956
80015
|
},
|
|
79957
80016
|
{
|
|
79958
80017
|
kind: "numeric",
|
|
79959
|
-
field: "
|
|
80018
|
+
field: "energy",
|
|
79960
80019
|
quantity: t("the energy used", "l’energia consumata"),
|
|
79961
80020
|
label: t("Energy", "Energia"),
|
|
79962
80021
|
unit: "kWh",
|
|
@@ -79964,7 +80023,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79964
80023
|
},
|
|
79965
80024
|
{
|
|
79966
80025
|
kind: "numeric",
|
|
79967
|
-
field: "
|
|
80026
|
+
field: "voltage",
|
|
79968
80027
|
quantity: t("the voltage", "la tensione"),
|
|
79969
80028
|
label: t("Voltage", "Tensione"),
|
|
79970
80029
|
unit: "V",
|
|
@@ -79972,7 +80031,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79972
80031
|
},
|
|
79973
80032
|
{
|
|
79974
80033
|
kind: "numeric",
|
|
79975
|
-
field: "
|
|
80034
|
+
field: "current",
|
|
79976
80035
|
quantity: t("the current", "la corrente"),
|
|
79977
80036
|
label: t("Current", "Corrente"),
|
|
79978
80037
|
unit: "A",
|
|
@@ -79989,13 +80048,6 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79989
80048
|
label: t("Where", "Posizione"),
|
|
79990
80049
|
phrase: t("When {device} is at {value}", "Quando {device} è in {value}"),
|
|
79991
80050
|
icon: "map-pin"
|
|
79992
|
-
}, {
|
|
79993
|
-
kind: "numeric",
|
|
79994
|
-
field: "batteryPercent",
|
|
79995
|
-
quantity: t("the phone battery", "la batteria del telefono"),
|
|
79996
|
-
label: t("Battery", "Batteria"),
|
|
79997
|
-
unit: "%",
|
|
79998
|
-
icon: "battery"
|
|
79999
80051
|
}]
|
|
80000
80052
|
},
|
|
80001
80053
|
"pressure-sensor": {
|
|
@@ -80003,7 +80055,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80003
80055
|
noun: t("Pressure", "Pressione"),
|
|
80004
80056
|
state: [{
|
|
80005
80057
|
kind: "numeric",
|
|
80006
|
-
field: "
|
|
80058
|
+
field: "pressure",
|
|
80007
80059
|
quantity: t("the pressure", "la pressione"),
|
|
80008
80060
|
label: t("Pressure", "Pressione"),
|
|
80009
80061
|
unit: "hPa",
|
|
@@ -80039,7 +80091,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80039
80091
|
noun: t("Temperature", "Temperatura"),
|
|
80040
80092
|
state: [{
|
|
80041
80093
|
kind: "numeric",
|
|
80042
|
-
field: "
|
|
80094
|
+
field: "temperature",
|
|
80043
80095
|
quantity: t("the temperature", "la temperatura"),
|
|
80044
80096
|
label: t("Temperature", "Temperatura"),
|
|
80045
80097
|
unit: "°C",
|
|
@@ -80110,7 +80162,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80110
80162
|
state: [
|
|
80111
80163
|
{
|
|
80112
80164
|
kind: "numeric",
|
|
80113
|
-
field: "
|
|
80165
|
+
field: "level",
|
|
80114
80166
|
quantity: t("the battery level", "il livello della batteria"),
|
|
80115
80167
|
label: t("Battery", "Batteria"),
|
|
80116
80168
|
unit: "%",
|
|
@@ -80152,7 +80204,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80152
80204
|
icon: "battery-charging"
|
|
80153
80205
|
}
|
|
80154
80206
|
],
|
|
80155
|
-
events: { onStatusChanged: { notOperatorFacing: "the
|
|
80207
|
+
events: { onStatusChanged: { notOperatorFacing: "the level / sleeping / charging state triggers each read one field of this change" } },
|
|
80156
80208
|
extraEvents: [{
|
|
80157
80209
|
category: EventCategory.DeviceAwake,
|
|
80158
80210
|
label: t("Woke up", "Risvegliato"),
|
|
@@ -80170,7 +80222,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80170
80222
|
noun: t("Network link", "Collegamento di rete"),
|
|
80171
80223
|
state: [{
|
|
80172
80224
|
kind: "numeric",
|
|
80173
|
-
field: "
|
|
80225
|
+
field: "signal",
|
|
80174
80226
|
quantity: t("the signal strength", "l’intensità del segnale"),
|
|
80175
80227
|
label: t("Signal", "Segnale"),
|
|
80176
80228
|
unit: "%",
|