@camstack/addon-training 0.1.98 → 0.1.100
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-CY7KH2hI.mjs → MotionZonesSettings-DBC9oNEy.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-DV1svTCi.mjs → PrivacyMaskSettings-MPmxoEGa.mjs} +2 -2
- package/dist/{SceneMonitorEditor-DgLi7gqv.mjs → SceneMonitorEditor-q8rm9EAO.mjs} +2 -2
- package/dist/_stub.js +924 -918
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-BvCLzm-x.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-BLf4IX1e.mjs} +3 -3
- package/dist/{_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-C-7qylfi.mjs → _virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-4mdhpGoW.mjs} +1 -1
- package/dist/{dist-DGkGciMs.mjs → dist-5otxE_9_.mjs} +126 -119
- package/dist/{dist-e6MHQz3v.js → dist-BHRYlf1o.js} +126 -119
- package/dist/{hostInit-Cg67dw8H.mjs → hostInit-B98SkU6O.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-BWU5_rIA.mjs → player-overlays-aX4eEmgd.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-DjL0yeaY.mjs → responsive-D9ViDal5.mjs} +1 -1
- package/dist/{scene-monitor-copy-CgXdiyRs.mjs → scene-monitor-copy-B7FtvYkD.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-rl5UntyG.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-4OWl-Jop.mjs} +1 -1
- package/package.json +1 -1
|
@@ -32,7 +32,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
32
32
|
}) : target, mod));
|
|
33
33
|
var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
34
34
|
require("node:crypto");
|
|
35
|
-
//#region ../types/dist/event-category-
|
|
35
|
+
//#region ../types/dist/event-category-DmZDPDf_.mjs
|
|
36
36
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
37
37
|
EventCategory["SystemBoot"] = "system.boot";
|
|
38
38
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -659,7 +659,7 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
659
659
|
* (a track was promoted to a stationary-registry entry) or departs (the
|
|
660
660
|
* object moved / was removed). Telemetry (D8): lossy, drives a UI refresh of
|
|
661
661
|
* the dedicated "Stationary" section — never the live event feed. Payload:
|
|
662
|
-
* `{ deviceId, entryId, className, phase:'appeared'|'departed', timestamp }`.
|
|
662
|
+
* `{ deviceId, entryId, className, phase:'appeared'|'departed', timestamp, observedAt, zones }`.
|
|
663
663
|
*/
|
|
664
664
|
EventCategory["PipelineAnalyticsStationaryChanged"] = "pipeline-analytics.stationary-changed";
|
|
665
665
|
/**
|
|
@@ -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-CZImLpOI.mjs
|
|
11182
11178
|
/**
|
|
11183
11179
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
11184
11180
|
*
|
|
@@ -15716,6 +15712,14 @@ var AutomationConditionLeafSchema = object({
|
|
|
15716
15712
|
array(union([string(), number()]))
|
|
15717
15713
|
])
|
|
15718
15714
|
});
|
|
15715
|
+
var AutomationConditionStationaryPresentSchema = object({
|
|
15716
|
+
kind: literal("stationary-present"),
|
|
15717
|
+
deviceId: number().int().nonnegative(),
|
|
15718
|
+
/** Class names; a macro class matches every raw class that maps to it. */
|
|
15719
|
+
classes: array(string().min(1)).min(1).optional(),
|
|
15720
|
+
/** The parked object must be in at least one of these zones. */
|
|
15721
|
+
zones: array(string().min(1)).min(1).optional()
|
|
15722
|
+
});
|
|
15719
15723
|
/**
|
|
15720
15724
|
* The expression leaf, declared as a plain object rather than an intersection
|
|
15721
15725
|
* with {@link ExpressionSourceSchema}: a discriminated union has to be able to
|
|
@@ -15749,7 +15753,8 @@ var AutomationConditionSchema = lazy(() => discriminatedUnion("kind", [
|
|
|
15749
15753
|
child: AutomationConditionSchema
|
|
15750
15754
|
}),
|
|
15751
15755
|
AutomationConditionLeafSchema,
|
|
15752
|
-
AutomationConditionExpressionSchema
|
|
15756
|
+
AutomationConditionExpressionSchema,
|
|
15757
|
+
AutomationConditionStationaryPresentSchema
|
|
15753
15758
|
]));
|
|
15754
15759
|
/**
|
|
15755
15760
|
* What starts a run.
|
|
@@ -15803,6 +15808,17 @@ var AutomationTriggerSchema = discriminatedUnion("kind", [
|
|
|
15803
15808
|
/** Best-so-far confidence the track must reach. */
|
|
15804
15809
|
minScore: number().min(0).max(1).optional()
|
|
15805
15810
|
}),
|
|
15811
|
+
object({
|
|
15812
|
+
kind: literal("stationary"),
|
|
15813
|
+
deviceIds: array(number().int().nonnegative()).min(1),
|
|
15814
|
+
/** Class names; a macro class matches like the detection trigger. */
|
|
15815
|
+
classes: array(string().min(1)).min(1).optional(),
|
|
15816
|
+
/** The parked object must be in at least one of these zones. */
|
|
15817
|
+
zones: array(string().min(1)).min(1).optional(),
|
|
15818
|
+
/** `appeared`: it became parked. `departed`: the registry retired it.
|
|
15819
|
+
* The vocabulary of `PipelineAnalyticsStationaryChanged`. */
|
|
15820
|
+
phase: _enum(["appeared", "departed"])
|
|
15821
|
+
}),
|
|
15806
15822
|
object({
|
|
15807
15823
|
kind: literal("interval"),
|
|
15808
15824
|
minutes: number().int().min(1).max(1440)
|
|
@@ -16012,7 +16028,8 @@ var AutomationConditionTraceNodeSchema = object({
|
|
|
16012
16028
|
"any",
|
|
16013
16029
|
"not",
|
|
16014
16030
|
"condition",
|
|
16015
|
-
"expression"
|
|
16031
|
+
"expression",
|
|
16032
|
+
"stationary-present"
|
|
16016
16033
|
]),
|
|
16017
16034
|
outcome: TraceNodeOutcomeSchema,
|
|
16018
16035
|
reason: string(),
|
|
@@ -18822,7 +18839,7 @@ var CompositionEventPlanSchema = object({
|
|
|
18822
18839
|
stateField: string(),
|
|
18823
18840
|
fieldKey: string()
|
|
18824
18841
|
});
|
|
18825
|
-
/** 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`. */
|
|
18826
18843
|
var CompositionProblemSchema = object({
|
|
18827
18844
|
code: _enum([
|
|
18828
18845
|
"reserved-variant",
|
|
@@ -19141,7 +19158,7 @@ var GROUP_TEMPLATES = [
|
|
|
19141
19158
|
summary: "Mean, median, min, max or sum of temperatures. Offline and unknown members are left out, never read as 0 °C.",
|
|
19142
19159
|
role: DeviceRole.TemperatureSensor,
|
|
19143
19160
|
outputCap: "temperature-sensor",
|
|
19144
|
-
outputField: "
|
|
19161
|
+
outputField: "temperature",
|
|
19145
19162
|
quantity: "temperature",
|
|
19146
19163
|
defaultAggregate: "mean",
|
|
19147
19164
|
empty: "null",
|
|
@@ -19152,7 +19169,7 @@ var GROUP_TEMPLATES = [
|
|
|
19152
19169
|
summary: "Humidity in percent. Offline and unknown members are left out, never read as 0 %.",
|
|
19153
19170
|
role: DeviceRole.HumiditySensor,
|
|
19154
19171
|
outputCap: "humidity-sensor",
|
|
19155
|
-
outputField: "
|
|
19172
|
+
outputField: "humidity",
|
|
19156
19173
|
quantity: "humidity",
|
|
19157
19174
|
defaultAggregate: "mean",
|
|
19158
19175
|
empty: "null",
|
|
@@ -19163,7 +19180,7 @@ var GROUP_TEMPLATES = [
|
|
|
19163
19180
|
summary: "Pressure in hectopascals. Offline and unknown members are left out, never read as 0 hPa.",
|
|
19164
19181
|
role: DeviceRole.PressureSensor,
|
|
19165
19182
|
outputCap: "pressure-sensor",
|
|
19166
|
-
outputField: "
|
|
19183
|
+
outputField: "pressure",
|
|
19167
19184
|
quantity: "pressure",
|
|
19168
19185
|
defaultAggregate: "mean",
|
|
19169
19186
|
empty: "null",
|
|
@@ -19174,7 +19191,7 @@ var GROUP_TEMPLATES = [
|
|
|
19174
19191
|
summary: "Illuminance in lux. Offline and unknown members are left out, never read as 0 lx.",
|
|
19175
19192
|
role: DeviceRole.AmbientLightSensor,
|
|
19176
19193
|
outputCap: "ambient-light-sensor",
|
|
19177
|
-
outputField: "
|
|
19194
|
+
outputField: "illuminance",
|
|
19178
19195
|
quantity: "illuminance",
|
|
19179
19196
|
defaultAggregate: "mean",
|
|
19180
19197
|
empty: "null",
|
|
@@ -19185,7 +19202,7 @@ var GROUP_TEMPLATES = [
|
|
|
19185
19202
|
summary: "Power in watts, summed by default. Nobody reporting omits the key rather than writing 0 W.",
|
|
19186
19203
|
role: DeviceRole.PowerSensor,
|
|
19187
19204
|
outputCap: "power-meter",
|
|
19188
|
-
outputField: "
|
|
19205
|
+
outputField: "power",
|
|
19189
19206
|
quantity: "power",
|
|
19190
19207
|
defaultAggregate: "sum",
|
|
19191
19208
|
empty: "omit",
|
|
@@ -19196,7 +19213,7 @@ var GROUP_TEMPLATES = [
|
|
|
19196
19213
|
summary: "Energy in kilowatt-hours, summed by default. Nobody reporting omits the key rather than writing 0 kWh.",
|
|
19197
19214
|
role: DeviceRole.EnergySensor,
|
|
19198
19215
|
outputCap: "power-meter",
|
|
19199
|
-
outputField: "
|
|
19216
|
+
outputField: "energy",
|
|
19200
19217
|
quantity: "energy",
|
|
19201
19218
|
defaultAggregate: "sum",
|
|
19202
19219
|
empty: "omit",
|
|
@@ -19207,7 +19224,7 @@ var GROUP_TEMPLATES = [
|
|
|
19207
19224
|
summary: "Battery charge in percent. Offline and unknown members are left out, never read as 0 %.",
|
|
19208
19225
|
role: DeviceRole.BatterySensor,
|
|
19209
19226
|
outputCap: "battery",
|
|
19210
|
-
outputField: "
|
|
19227
|
+
outputField: "level",
|
|
19211
19228
|
quantity: "percentage",
|
|
19212
19229
|
defaultAggregate: "mean",
|
|
19213
19230
|
empty: "null",
|
|
@@ -57325,9 +57342,9 @@ method(object({ nodeId: string().optional() }).optional(), array(AddonListItemSc
|
|
|
57325
57342
|
}), LogStreamEntrySchema, { kind: "subscription" });
|
|
57326
57343
|
object({
|
|
57327
57344
|
/** Carbon dioxide concentration in ppm. */
|
|
57328
|
-
|
|
57345
|
+
co2: number().min(0).optional().meta(readingMeta("concentration-volume")),
|
|
57329
57346
|
/** Total volatile organic compounds in ppb. */
|
|
57330
|
-
|
|
57347
|
+
voc: number().min(0).optional().meta(readingMeta("concentration-ppb")),
|
|
57331
57348
|
/** Particulate matter ≤ 2.5 μm in µg/m³. */
|
|
57332
57349
|
pm25: number().min(0).optional().meta(readingMeta("concentration-mass")),
|
|
57333
57350
|
/** Particulate matter ≤ 10 μm in µg/m³. */
|
|
@@ -57340,7 +57357,7 @@ object({
|
|
|
57340
57357
|
DeviceType.Sensor;
|
|
57341
57358
|
object({
|
|
57342
57359
|
/** Current illuminance in lux (lx). `null` when the sample was refused (D393). */
|
|
57343
|
-
|
|
57360
|
+
illuminance: number().min(0).nullable().meta(readingMeta("illuminance", {
|
|
57344
57361
|
precision: 0,
|
|
57345
57362
|
label: "Illuminance"
|
|
57346
57363
|
})),
|
|
@@ -57568,7 +57585,7 @@ var BatteryStatusSchema = object({
|
|
|
57568
57585
|
* Consumers must SKIP a null rather than coerce it — `battery-band` already
|
|
57569
57586
|
* declines to band a non-finite reading, which is the correct shape.
|
|
57570
57587
|
*/
|
|
57571
|
-
|
|
57588
|
+
level: number().min(0).max(100).nullable().meta(readingMeta("percentage", { label: "Charge" })),
|
|
57572
57589
|
/**
|
|
57573
57590
|
* Charging source. `'dc'` covers wall/USB adapters; `'solar'` is
|
|
57574
57591
|
* Reolink-specific for the Solar Panel 2 accessory (will become
|
|
@@ -57578,7 +57595,7 @@ var BatteryStatusSchema = object({
|
|
|
57578
57595
|
* `'unknown'` is the absence of an answer: the provider has not read the
|
|
57579
57596
|
* power fields yet, or the firmware reported neither. Before it existed,
|
|
57580
57597
|
* two unreadable fields produced `'none'`, and a camera nobody had reached
|
|
57581
|
-
* was drawn "on battery alone" — the same D315 defect `
|
|
57598
|
+
* was drawn "on battery alone" — the same D315 defect `level` closed
|
|
57582
57599
|
* by going nullable. Consumers SKIP it (no charger state published, no
|
|
57583
57600
|
* glyph, no HomeKit ChargingState) rather than coerce it either way.
|
|
57584
57601
|
*/
|
|
@@ -57602,7 +57619,7 @@ var BatteryStatusSchema = object({
|
|
|
57602
57619
|
* that only report charge. A second reading on this cap, not a second
|
|
57603
57620
|
* `numeric-sensor` on the same device.
|
|
57604
57621
|
*/
|
|
57605
|
-
|
|
57622
|
+
voltage: number().nullable().optional().meta(readingMeta("voltage", { label: "Voltage" })),
|
|
57606
57623
|
/**
|
|
57607
57624
|
* Ms epoch of the last time the device PROVED it was reachable — a
|
|
57608
57625
|
* completed firmware round-trip, an observed wake, or an inbound push
|
|
@@ -57636,7 +57653,7 @@ var BatteryStatusSchema = object({
|
|
|
57636
57653
|
/**
|
|
57637
57654
|
* True when the source is a BINARY low-battery indicator (HA
|
|
57638
57655
|
* `binary_sensor` device_class=battery / `LOW_BAT`) that has no real
|
|
57639
|
-
* charge level — `
|
|
57656
|
+
* charge level — `level` is then a coarse stand-in (100 = normal,
|
|
57640
57657
|
* sub-threshold = low). UI MUST render "Normal"/"Low" instead of a
|
|
57641
57658
|
* misleading exact percentage. Absent/false → genuine 0–100 % reading.
|
|
57642
57659
|
*/
|
|
@@ -57662,19 +57679,19 @@ object({
|
|
|
57662
57679
|
DeviceType.Sensor;
|
|
57663
57680
|
object({
|
|
57664
57681
|
/** Current level as 0..100 inclusive. Firmware-reported. */
|
|
57665
|
-
|
|
57682
|
+
level: number().min(0).max(100).meta(readingMeta("percentage")),
|
|
57666
57683
|
/** Ms epoch of the last operator-driven change. Useful for UI freshness. */
|
|
57667
57684
|
lastChangedAt: number()
|
|
57668
57685
|
});
|
|
57669
57686
|
DeviceType.Light, method(object({
|
|
57670
57687
|
deviceId: number().int().nonnegative(),
|
|
57671
|
-
|
|
57688
|
+
level: number().min(0).max(100)
|
|
57672
57689
|
}), _void(), {
|
|
57673
57690
|
kind: "mutation",
|
|
57674
57691
|
auth: "protected"
|
|
57675
57692
|
}), object({
|
|
57676
57693
|
deviceId: number(),
|
|
57677
|
-
|
|
57694
|
+
level: number().min(0).max(100),
|
|
57678
57695
|
lastChangedAt: number()
|
|
57679
57696
|
});
|
|
57680
57697
|
DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
@@ -58175,11 +58192,11 @@ var ColorInputSchema = discriminatedUnion("mode", [
|
|
|
58175
58192
|
}),
|
|
58176
58193
|
object({
|
|
58177
58194
|
mode: literal("mired"),
|
|
58178
|
-
|
|
58195
|
+
colorTemperature: number().int().min(50).max(1e3)
|
|
58179
58196
|
})
|
|
58180
58197
|
]);
|
|
58181
58198
|
object({
|
|
58182
|
-
/** Active color mode — which of `rgb` / `hsv` / `
|
|
58199
|
+
/** Active color mode — which of `rgb` / `hsv` / `colorTemperature` reflects
|
|
58183
58200
|
* the bulb's current state. */
|
|
58184
58201
|
mode: _enum([
|
|
58185
58202
|
"rgb",
|
|
@@ -58191,7 +58208,7 @@ object({
|
|
|
58191
58208
|
/** Populated when `mode === 'hsv'`. */
|
|
58192
58209
|
hsv: HsvTripletSchema.optional(),
|
|
58193
58210
|
/** Populated when `mode === 'mired'`. */
|
|
58194
|
-
|
|
58211
|
+
colorTemperature: number().int().optional().meta(readingMeta("colour-temperature")),
|
|
58195
58212
|
/** Ms epoch of the last operator-driven change. */
|
|
58196
58213
|
lastChangedAt: number()
|
|
58197
58214
|
});
|
|
@@ -58210,7 +58227,7 @@ DeviceType.Light, method(object({
|
|
|
58210
58227
|
]),
|
|
58211
58228
|
rgb: RgbTripletSchema.optional(),
|
|
58212
58229
|
hsv: HsvTripletSchema.optional(),
|
|
58213
|
-
|
|
58230
|
+
colorTemperature: number().int().optional(),
|
|
58214
58231
|
lastChangedAt: number()
|
|
58215
58232
|
});
|
|
58216
58233
|
var ConnectionTestOutcomeSchema = discriminatedUnion("outcome", [
|
|
@@ -58636,11 +58653,11 @@ object({
|
|
|
58636
58653
|
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
58637
58654
|
availablePrograms: array(string()),
|
|
58638
58655
|
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
58639
|
-
|
|
58656
|
+
remaining: number().int().nonnegative().nullable().meta(readingMeta("duration")),
|
|
58640
58657
|
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
58641
|
-
|
|
58658
|
+
delayedStart: number().int().nonnegative().nullable().meta(readingMeta("duration")),
|
|
58642
58659
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
58643
|
-
|
|
58660
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
58644
58661
|
/** True when the door is reported open; null when the door state is not known. */
|
|
58645
58662
|
doorOpen: boolean().nullable(),
|
|
58646
58663
|
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
@@ -59258,7 +59275,7 @@ var FanDirectionSchema = _enum(["forward", "reverse"]);
|
|
|
59258
59275
|
object({
|
|
59259
59276
|
/** Active speed as 0..100 inclusive. Null when the device has no
|
|
59260
59277
|
* speed surface (single-speed fan). */
|
|
59261
|
-
|
|
59278
|
+
speed: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
59262
59279
|
/** Speed granularity the device accepts (HA `percentage_step`, e.g. 25 for
|
|
59263
59280
|
* a 4-speed fan). Absent when unknown — the UI then falls back to step 1. */
|
|
59264
59281
|
percentageStep: number().positive().optional().meta(readingMeta("percentage")),
|
|
@@ -59278,7 +59295,7 @@ object({
|
|
|
59278
59295
|
});
|
|
59279
59296
|
DeviceType.Fan, method(object({
|
|
59280
59297
|
deviceId: number().int().nonnegative(),
|
|
59281
|
-
|
|
59298
|
+
speed: number().min(0).max(100)
|
|
59282
59299
|
}), _void(), {
|
|
59283
59300
|
kind: "mutation",
|
|
59284
59301
|
auth: "protected"
|
|
@@ -59461,7 +59478,7 @@ DeviceType.Humidifier, method(object({
|
|
|
59461
59478
|
});
|
|
59462
59479
|
object({
|
|
59463
59480
|
/** Current relative humidity, 0..100. `null` when the sample was refused (D393). */
|
|
59464
|
-
|
|
59481
|
+
humidity: number().min(0).max(100).nullable().meta(readingMeta("humidity", {
|
|
59465
59482
|
precision: 0,
|
|
59466
59483
|
label: "Humidity"
|
|
59467
59484
|
})),
|
|
@@ -59904,7 +59921,7 @@ object({
|
|
|
59904
59921
|
batteryLevel: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
59905
59922
|
/** 0..100 mowing-completion percentage of the current task, or null when no
|
|
59906
59923
|
* task is active / progress is unavailable. */
|
|
59907
|
-
|
|
59924
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
59908
59925
|
/** Current device/event code (dynamic — mostly status, sometimes an error),
|
|
59909
59926
|
* or null when unknown. */
|
|
59910
59927
|
currentCode: number().nullable().meta(readingMeta("none")),
|
|
@@ -60394,10 +60411,10 @@ object({
|
|
|
60394
60411
|
currentMedia: MediaInfoSchema.nullable(),
|
|
60395
60412
|
/** Current playback position in ms. Null when not seekable or
|
|
60396
60413
|
* nothing is playing. Pair with `DeviceFeature.MediaPlayerSeek`. */
|
|
60397
|
-
|
|
60414
|
+
position: number().int().nonnegative().nullable().meta(readingMeta("duration-ms")),
|
|
60398
60415
|
/** Total duration of the current media in ms. Null when unknown
|
|
60399
60416
|
* (live stream) or nothing is playing. */
|
|
60400
|
-
|
|
60417
|
+
duration: number().int().nonnegative().nullable().meta(readingMeta("duration-ms")),
|
|
60401
60418
|
/** Shuffle toggle. Null when no shuffle surface.
|
|
60402
60419
|
* Pair with `DeviceFeature.MediaPlayerShuffle`. */
|
|
60403
60420
|
shuffle: boolean().nullable(),
|
|
@@ -60424,7 +60441,7 @@ DeviceType.MediaPlayer, method(object({ deviceId: number().int().nonnegative() }
|
|
|
60424
60441
|
auth: "protected"
|
|
60425
60442
|
}), method(object({
|
|
60426
60443
|
deviceId: number().int().nonnegative(),
|
|
60427
|
-
|
|
60444
|
+
position: number().int().nonnegative()
|
|
60428
60445
|
}), _void(), {
|
|
60429
60446
|
kind: "mutation",
|
|
60430
60447
|
auth: "protected"
|
|
@@ -61097,9 +61114,9 @@ var NetworkLinkStatusSchema = object({
|
|
|
61097
61114
|
* one whose reading has not landed must not be drawn at 0 %. Consumers
|
|
61098
61115
|
* SKIP a null rather than coerce it.
|
|
61099
61116
|
*/
|
|
61100
|
-
|
|
61117
|
+
signal: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
61101
61118
|
/** Raw received signal strength in dBm, when the firmware reports one. */
|
|
61102
|
-
|
|
61119
|
+
rssi: number().optional().meta(readingMeta("signal-level")),
|
|
61103
61120
|
/** Network name of a wireless link, when the firmware reports it. */
|
|
61104
61121
|
ssid: string().optional(),
|
|
61105
61122
|
/** Ms epoch of the last observation. Lets consumers reason about freshness. */
|
|
@@ -62249,16 +62266,16 @@ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema)
|
|
|
62249
62266
|
auth: "admin"
|
|
62250
62267
|
});
|
|
62251
62268
|
object({
|
|
62252
|
-
/** Instantaneous power draw
|
|
62253
|
-
|
|
62269
|
+
/** Instantaneous power draw (watts). */
|
|
62270
|
+
power: number().optional().meta(readingMeta("power", { label: "Power" })),
|
|
62254
62271
|
/** Cumulative energy in kilowatt-hours since the meter was reset. */
|
|
62255
|
-
|
|
62256
|
-
/** Voltage
|
|
62257
|
-
|
|
62272
|
+
energy: number().optional().meta(readingMeta("energy", { label: "Energy" })),
|
|
62273
|
+
/** Voltage (volts). */
|
|
62274
|
+
voltage: number().optional().meta(readingMeta("voltage", { label: "Voltage" })),
|
|
62258
62275
|
/** Current in amperes. */
|
|
62259
|
-
|
|
62276
|
+
current: number().optional().meta(readingMeta("current", { label: "Current" })),
|
|
62260
62277
|
/** Apparent power in volt-amperes. */
|
|
62261
|
-
|
|
62278
|
+
apparentPower: number().optional().meta(readingMeta("apparent-power")),
|
|
62262
62279
|
/** Power factor (0..1) if reported. */
|
|
62263
62280
|
powerFactor: number().min(0).max(1).optional().meta(readingMeta("ratio")),
|
|
62264
62281
|
/** Ms epoch when the slice was last updated. */
|
|
@@ -62313,16 +62330,13 @@ object({
|
|
|
62313
62330
|
location: string().nullable(),
|
|
62314
62331
|
/** GPS coordinates when available. Null otherwise. */
|
|
62315
62332
|
gps: GpsLocationSchema.nullable(),
|
|
62316
|
-
/** Optional battery level of the tracking device (0..100). Null
|
|
62317
|
-
* when not reported. */
|
|
62318
|
-
batteryPercent: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
62319
62333
|
/** Ms epoch when the slice was last updated. */
|
|
62320
62334
|
lastChangedAt: number()
|
|
62321
62335
|
});
|
|
62322
62336
|
DeviceType.Presence;
|
|
62323
62337
|
object({
|
|
62324
62338
|
/** Current pressure in hPa. `null` when the sample was refused (D393). */
|
|
62325
|
-
|
|
62339
|
+
pressure: number().nullable().meta(readingMeta("pressure", { precision: 0 })),
|
|
62326
62340
|
/** Ms epoch when the slice was last updated. */
|
|
62327
62341
|
lastFetchedAt: number()
|
|
62328
62342
|
});
|
|
@@ -65325,7 +65339,7 @@ object({
|
|
|
65325
65339
|
DeviceType.Sensor;
|
|
65326
65340
|
object({
|
|
65327
65341
|
/** Current temperature in Celsius. `null` when the sample was refused (D393). */
|
|
65328
|
-
|
|
65342
|
+
temperature: number().nullable().meta(readingMeta("temperature", {
|
|
65329
65343
|
precision: 1,
|
|
65330
65344
|
label: "Temperature"
|
|
65331
65345
|
})),
|
|
@@ -65589,7 +65603,7 @@ object({
|
|
|
65589
65603
|
/** Speed tokens the hardware accepts — drives the UI selector. */
|
|
65590
65604
|
availableFanSpeeds: array(string()),
|
|
65591
65605
|
/** 0..100 cleaning-completion percentage of the current task, or null. */
|
|
65592
|
-
|
|
65606
|
+
progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
65593
65607
|
/** Current error code (0 / null = no error). */
|
|
65594
65608
|
errorCode: number().nullable().meta(readingMeta("none")),
|
|
65595
65609
|
/** Human label for {@link errorCode}, or null when none / undecodable. */
|
|
@@ -76661,7 +76675,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76661
76675
|
label: t("Full brightness", "Luminosità massima"),
|
|
76662
76676
|
phrase: t("Set {device} to full brightness", "Porta {device} alla massima luminosità"),
|
|
76663
76677
|
icon: "sun",
|
|
76664
|
-
args: {
|
|
76678
|
+
args: { level: 100 }
|
|
76665
76679
|
},
|
|
76666
76680
|
{
|
|
76667
76681
|
id: "brightness.half",
|
|
@@ -76669,7 +76683,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76669
76683
|
label: t("Half brightness", "Luminosità a metà"),
|
|
76670
76684
|
phrase: t("Dim {device} to half", "Abbassa {device} a metà luminosità"),
|
|
76671
76685
|
icon: "sun-dim",
|
|
76672
|
-
args: {
|
|
76686
|
+
args: { level: 50 }
|
|
76673
76687
|
},
|
|
76674
76688
|
{
|
|
76675
76689
|
id: "brightness.off",
|
|
@@ -76677,16 +76691,16 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76677
76691
|
label: t("Brightness off", "Luminosità a zero"),
|
|
76678
76692
|
phrase: t("Dim {device} to zero", "Abbassa {device} a zero"),
|
|
76679
76693
|
icon: "lightbulb-off",
|
|
76680
|
-
args: {
|
|
76694
|
+
args: { level: 0 }
|
|
76681
76695
|
},
|
|
76682
76696
|
{
|
|
76683
76697
|
id: "brightness.set",
|
|
76684
76698
|
method: "setBrightness",
|
|
76685
76699
|
label: t("Set brightness", "Imposta la luminosità"),
|
|
76686
|
-
phrase: t("Set the brightness of {device} to {
|
|
76700
|
+
phrase: t("Set the brightness of {device} to {level}", "Imposta la luminosità di {device} a {level}"),
|
|
76687
76701
|
icon: "sun-medium",
|
|
76688
76702
|
openArgs: [{
|
|
76689
|
-
key: "
|
|
76703
|
+
key: "level",
|
|
76690
76704
|
label: PERCENT,
|
|
76691
76705
|
offer: {
|
|
76692
76706
|
kind: "number",
|
|
@@ -76700,13 +76714,13 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76700
76714
|
],
|
|
76701
76715
|
state: [{
|
|
76702
76716
|
kind: "numeric",
|
|
76703
|
-
field: "
|
|
76717
|
+
field: "level",
|
|
76704
76718
|
quantity: t("the brightness", "la luminosità"),
|
|
76705
76719
|
label: t("Brightness", "Luminosità"),
|
|
76706
76720
|
unit: "%",
|
|
76707
76721
|
icon: "sun"
|
|
76708
76722
|
}],
|
|
76709
|
-
events: { onBrightnessChanged: { notOperatorFacing: "the `
|
|
76723
|
+
events: { onBrightnessChanged: { notOperatorFacing: "the `level` state trigger reads the same change" } }
|
|
76710
76724
|
},
|
|
76711
76725
|
color: {
|
|
76712
76726
|
scope: "device",
|
|
@@ -76720,7 +76734,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76720
76734
|
icon: "sun",
|
|
76721
76735
|
args: { color: {
|
|
76722
76736
|
mode: "mired",
|
|
76723
|
-
|
|
76737
|
+
colorTemperature: 370
|
|
76724
76738
|
} }
|
|
76725
76739
|
},
|
|
76726
76740
|
{
|
|
@@ -76731,7 +76745,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
76731
76745
|
icon: "snowflake",
|
|
76732
76746
|
args: { color: {
|
|
76733
76747
|
mode: "mired",
|
|
76734
|
-
|
|
76748
|
+
colorTemperature: 200
|
|
76735
76749
|
} }
|
|
76736
76750
|
},
|
|
76737
76751
|
{
|
|
@@ -77345,7 +77359,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77345
77359
|
label: t("Fan off", "Ventilatore spento"),
|
|
77346
77360
|
phrase: t("Stop {device}", "Ferma {device}"),
|
|
77347
77361
|
icon: "power-off",
|
|
77348
|
-
args: {
|
|
77362
|
+
args: { speed: 0 }
|
|
77349
77363
|
},
|
|
77350
77364
|
{
|
|
77351
77365
|
id: "fan.full",
|
|
@@ -77353,16 +77367,16 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77353
77367
|
label: t("Fan full", "Ventilatore al massimo"),
|
|
77354
77368
|
phrase: t("Run {device} at full speed", "Porta {device} alla massima velocità"),
|
|
77355
77369
|
icon: "fan",
|
|
77356
|
-
args: {
|
|
77370
|
+
args: { speed: 100 }
|
|
77357
77371
|
},
|
|
77358
77372
|
{
|
|
77359
77373
|
id: "fan.speed",
|
|
77360
77374
|
method: "setPercentage",
|
|
77361
77375
|
label: t("Set speed", "Imposta la velocità"),
|
|
77362
|
-
phrase: t("Set the speed of {device} to {
|
|
77376
|
+
phrase: t("Set the speed of {device} to {speed}", "Imposta la velocità di {device} al {speed}"),
|
|
77363
77377
|
icon: "fan",
|
|
77364
77378
|
openArgs: [{
|
|
77365
|
-
key: "
|
|
77379
|
+
key: "speed",
|
|
77366
77380
|
label: t("Speed", "Velocità"),
|
|
77367
77381
|
offer: {
|
|
77368
77382
|
kind: "number",
|
|
@@ -77424,7 +77438,7 @@ var ACTUATOR_CAP_VOCABULARY = {
|
|
|
77424
77438
|
],
|
|
77425
77439
|
state: [{
|
|
77426
77440
|
kind: "numeric",
|
|
77427
|
-
field: "
|
|
77441
|
+
field: "speed",
|
|
77428
77442
|
quantity: t("the speed", "la velocità"),
|
|
77429
77443
|
label: t("Speed", "Velocità"),
|
|
77430
77444
|
unit: "%",
|
|
@@ -78222,7 +78236,7 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
78222
78236
|
},
|
|
78223
78237
|
{
|
|
78224
78238
|
kind: "numeric",
|
|
78225
|
-
field: "
|
|
78239
|
+
field: "progress",
|
|
78226
78240
|
quantity: t("the cycle progress", "l’avanzamento del lavaggio"),
|
|
78227
78241
|
label: t("Progress", "Avanzamento"),
|
|
78228
78242
|
unit: "%",
|
|
@@ -78580,10 +78594,10 @@ var APPLIANCE_CAP_VOCABULARY = {
|
|
|
78580
78594
|
id: "media.seek",
|
|
78581
78595
|
method: "seek",
|
|
78582
78596
|
label: t("Seek", "Vai al punto"),
|
|
78583
|
-
phrase: t("Move {device} to {
|
|
78597
|
+
phrase: t("Move {device} to {position}", "Porta {device} al punto {position}"),
|
|
78584
78598
|
icon: "fast-forward",
|
|
78585
78599
|
openArgs: [{
|
|
78586
|
-
key: "
|
|
78600
|
+
key: "position",
|
|
78587
78601
|
label: t("Position", "Posizione"),
|
|
78588
78602
|
offer: {
|
|
78589
78603
|
kind: "number",
|
|
@@ -79632,7 +79646,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79632
79646
|
state: [
|
|
79633
79647
|
{
|
|
79634
79648
|
kind: "numeric",
|
|
79635
|
-
field: "
|
|
79649
|
+
field: "co2",
|
|
79636
79650
|
quantity: t("the CO₂", "la CO₂"),
|
|
79637
79651
|
label: t("CO₂", "CO₂"),
|
|
79638
79652
|
unit: "ppm",
|
|
@@ -79640,7 +79654,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79640
79654
|
},
|
|
79641
79655
|
{
|
|
79642
79656
|
kind: "numeric",
|
|
79643
|
-
field: "
|
|
79657
|
+
field: "voc",
|
|
79644
79658
|
quantity: t("the VOC level", "il livello di COV"),
|
|
79645
79659
|
label: t("VOC", "COV"),
|
|
79646
79660
|
unit: "ppb",
|
|
@@ -79676,7 +79690,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79676
79690
|
noun: t("Light level", "Luminosità ambiente"),
|
|
79677
79691
|
state: [{
|
|
79678
79692
|
kind: "numeric",
|
|
79679
|
-
field: "
|
|
79693
|
+
field: "illuminance",
|
|
79680
79694
|
quantity: t("the light level", "la luminosità"),
|
|
79681
79695
|
label: t("Illuminance", "Illuminamento"),
|
|
79682
79696
|
unit: "lx",
|
|
@@ -79879,7 +79893,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79879
79893
|
noun: t("Humidity", "Umidità"),
|
|
79880
79894
|
state: [{
|
|
79881
79895
|
kind: "numeric",
|
|
79882
|
-
field: "
|
|
79896
|
+
field: "humidity",
|
|
79883
79897
|
quantity: t("the humidity", "l’umidità"),
|
|
79884
79898
|
label: t("Humidity", "Umidità"),
|
|
79885
79899
|
unit: "%",
|
|
@@ -79927,7 +79941,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79927
79941
|
state: [
|
|
79928
79942
|
{
|
|
79929
79943
|
kind: "numeric",
|
|
79930
|
-
field: "
|
|
79944
|
+
field: "power",
|
|
79931
79945
|
quantity: t("the power draw", "il consumo"),
|
|
79932
79946
|
label: t("Power", "Potenza"),
|
|
79933
79947
|
unit: "W",
|
|
@@ -79935,7 +79949,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79935
79949
|
},
|
|
79936
79950
|
{
|
|
79937
79951
|
kind: "numeric",
|
|
79938
|
-
field: "
|
|
79952
|
+
field: "energy",
|
|
79939
79953
|
quantity: t("the energy used", "l’energia consumata"),
|
|
79940
79954
|
label: t("Energy", "Energia"),
|
|
79941
79955
|
unit: "kWh",
|
|
@@ -79943,7 +79957,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79943
79957
|
},
|
|
79944
79958
|
{
|
|
79945
79959
|
kind: "numeric",
|
|
79946
|
-
field: "
|
|
79960
|
+
field: "voltage",
|
|
79947
79961
|
quantity: t("the voltage", "la tensione"),
|
|
79948
79962
|
label: t("Voltage", "Tensione"),
|
|
79949
79963
|
unit: "V",
|
|
@@ -79951,7 +79965,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79951
79965
|
},
|
|
79952
79966
|
{
|
|
79953
79967
|
kind: "numeric",
|
|
79954
|
-
field: "
|
|
79968
|
+
field: "current",
|
|
79955
79969
|
quantity: t("the current", "la corrente"),
|
|
79956
79970
|
label: t("Current", "Corrente"),
|
|
79957
79971
|
unit: "A",
|
|
@@ -79968,13 +79982,6 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79968
79982
|
label: t("Where", "Posizione"),
|
|
79969
79983
|
phrase: t("When {device} is at {value}", "Quando {device} è in {value}"),
|
|
79970
79984
|
icon: "map-pin"
|
|
79971
|
-
}, {
|
|
79972
|
-
kind: "numeric",
|
|
79973
|
-
field: "batteryPercent",
|
|
79974
|
-
quantity: t("the phone battery", "la batteria del telefono"),
|
|
79975
|
-
label: t("Battery", "Batteria"),
|
|
79976
|
-
unit: "%",
|
|
79977
|
-
icon: "battery"
|
|
79978
79985
|
}]
|
|
79979
79986
|
},
|
|
79980
79987
|
"pressure-sensor": {
|
|
@@ -79982,7 +79989,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
79982
79989
|
noun: t("Pressure", "Pressione"),
|
|
79983
79990
|
state: [{
|
|
79984
79991
|
kind: "numeric",
|
|
79985
|
-
field: "
|
|
79992
|
+
field: "pressure",
|
|
79986
79993
|
quantity: t("the pressure", "la pressione"),
|
|
79987
79994
|
label: t("Pressure", "Pressione"),
|
|
79988
79995
|
unit: "hPa",
|
|
@@ -80018,7 +80025,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80018
80025
|
noun: t("Temperature", "Temperatura"),
|
|
80019
80026
|
state: [{
|
|
80020
80027
|
kind: "numeric",
|
|
80021
|
-
field: "
|
|
80028
|
+
field: "temperature",
|
|
80022
80029
|
quantity: t("the temperature", "la temperatura"),
|
|
80023
80030
|
label: t("Temperature", "Temperatura"),
|
|
80024
80031
|
unit: "°C",
|
|
@@ -80089,7 +80096,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80089
80096
|
state: [
|
|
80090
80097
|
{
|
|
80091
80098
|
kind: "numeric",
|
|
80092
|
-
field: "
|
|
80099
|
+
field: "level",
|
|
80093
80100
|
quantity: t("the battery level", "il livello della batteria"),
|
|
80094
80101
|
label: t("Battery", "Batteria"),
|
|
80095
80102
|
unit: "%",
|
|
@@ -80131,7 +80138,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80131
80138
|
icon: "battery-charging"
|
|
80132
80139
|
}
|
|
80133
80140
|
],
|
|
80134
|
-
events: { onStatusChanged: { notOperatorFacing: "the
|
|
80141
|
+
events: { onStatusChanged: { notOperatorFacing: "the level / sleeping / charging state triggers each read one field of this change" } },
|
|
80135
80142
|
extraEvents: [{
|
|
80136
80143
|
category: EventCategory.DeviceAwake,
|
|
80137
80144
|
label: t("Woke up", "Risvegliato"),
|
|
@@ -80149,7 +80156,7 @@ var SENSOR_CAP_VOCABULARY = {
|
|
|
80149
80156
|
noun: t("Network link", "Collegamento di rete"),
|
|
80150
80157
|
state: [{
|
|
80151
80158
|
kind: "numeric",
|
|
80152
|
-
field: "
|
|
80159
|
+
field: "signal",
|
|
80153
80160
|
quantity: t("the signal strength", "l’intensità del segnale"),
|
|
80154
80161
|
label: t("Signal", "Segnale"),
|
|
80155
80162
|
unit: "%",
|