@camstack/addon-post-analysis 1.2.647 → 1.2.648

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.
@@ -5645,7 +5645,7 @@ var ZodIssueCode = {
5645
5645
  var ZodFirstPartyTypeKind;
5646
5646
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5647
5647
  //#endregion
5648
- //#region ../types/dist/sleep-DFaVPxfm.mjs
5648
+ //#region ../types/dist/sleep-Crlmu_tO.mjs
5649
5649
  /**
5650
5650
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5651
5651
  * window to float samples (D455).
@@ -9183,11 +9183,11 @@ var CAP_NAMES = Object.freeze([
9183
9183
  Object.freeze({
9184
9184
  "air-quality-sensor": [
9185
9185
  {
9186
- "path": "co2Ppm",
9186
+ "path": "co2",
9187
9187
  "valueType": "number"
9188
9188
  },
9189
9189
  {
9190
- "path": "vocPpb",
9190
+ "path": "voc",
9191
9191
  "valueType": "number"
9192
9192
  },
9193
9193
  {
@@ -9237,7 +9237,7 @@ Object.freeze({
9237
9237
  }
9238
9238
  ],
9239
9239
  "ambient-light-sensor": [{
9240
- "path": "lux",
9240
+ "path": "illuminance",
9241
9241
  "valueType": "number"
9242
9242
  }],
9243
9243
  "audio-metrics": [
@@ -9298,7 +9298,7 @@ Object.freeze({
9298
9298
  ],
9299
9299
  "battery": [
9300
9300
  {
9301
- "path": "percentage",
9301
+ "path": "level",
9302
9302
  "valueType": "number"
9303
9303
  },
9304
9304
  {
@@ -9320,7 +9320,7 @@ Object.freeze({
9320
9320
  "valueType": "number"
9321
9321
  },
9322
9322
  {
9323
- "path": "volts",
9323
+ "path": "voltage",
9324
9324
  "valueType": "number"
9325
9325
  },
9326
9326
  {
@@ -9341,7 +9341,7 @@ Object.freeze({
9341
9341
  "valueType": "boolean"
9342
9342
  }],
9343
9343
  "brightness": [{
9344
- "path": "percentage",
9344
+ "path": "level",
9345
9345
  "valueType": "number"
9346
9346
  }],
9347
9347
  "broker": [{
@@ -9542,7 +9542,7 @@ Object.freeze({
9542
9542
  "valueType": "number"
9543
9543
  },
9544
9544
  {
9545
- "path": "mireds",
9545
+ "path": "colorTemperature",
9546
9546
  "valueType": "number"
9547
9547
  }
9548
9548
  ],
@@ -9721,15 +9721,15 @@ Object.freeze({
9721
9721
  "valueType": "string"
9722
9722
  },
9723
9723
  {
9724
- "path": "remainingSeconds",
9724
+ "path": "remaining",
9725
9725
  "valueType": "number"
9726
9726
  },
9727
9727
  {
9728
- "path": "delayedStartSeconds",
9728
+ "path": "delayedStart",
9729
9729
  "valueType": "number"
9730
9730
  },
9731
9731
  {
9732
- "path": "progressPercent",
9732
+ "path": "progress",
9733
9733
  "valueType": "number"
9734
9734
  },
9735
9735
  {
@@ -9843,7 +9843,7 @@ Object.freeze({
9843
9843
  ],
9844
9844
  "fan-control": [
9845
9845
  {
9846
- "path": "percentage",
9846
+ "path": "speed",
9847
9847
  "valueType": "number"
9848
9848
  },
9849
9849
  {
@@ -9943,7 +9943,7 @@ Object.freeze({
9943
9943
  }
9944
9944
  ],
9945
9945
  "humidity-sensor": [{
9946
- "path": "percent",
9946
+ "path": "humidity",
9947
9947
  "valueType": "number"
9948
9948
  }],
9949
9949
  "image": [{
@@ -10053,7 +10053,7 @@ Object.freeze({
10053
10053
  "valueType": "number"
10054
10054
  },
10055
10055
  {
10056
- "path": "progressPercent",
10056
+ "path": "progress",
10057
10057
  "valueType": "number"
10058
10058
  },
10059
10059
  {
@@ -10132,11 +10132,11 @@ Object.freeze({
10132
10132
  "valueType": "string"
10133
10133
  },
10134
10134
  {
10135
- "path": "positionMs",
10135
+ "path": "position",
10136
10136
  "valueType": "number"
10137
10137
  },
10138
10138
  {
10139
- "path": "durationMs",
10139
+ "path": "duration",
10140
10140
  "valueType": "number"
10141
10141
  },
10142
10142
  {
@@ -10238,11 +10238,11 @@ Object.freeze({
10238
10238
  ]
10239
10239
  },
10240
10240
  {
10241
- "path": "signalPercent",
10241
+ "path": "signal",
10242
10242
  "valueType": "number"
10243
10243
  },
10244
10244
  {
10245
- "path": "rssiDbm",
10245
+ "path": "rssi",
10246
10246
  "valueType": "number"
10247
10247
  },
10248
10248
  {
@@ -10373,23 +10373,23 @@ Object.freeze({
10373
10373
  ],
10374
10374
  "power-meter": [
10375
10375
  {
10376
- "path": "watts",
10376
+ "path": "power",
10377
10377
  "valueType": "number"
10378
10378
  },
10379
10379
  {
10380
- "path": "kwhTotal",
10380
+ "path": "energy",
10381
10381
  "valueType": "number"
10382
10382
  },
10383
10383
  {
10384
- "path": "volts",
10384
+ "path": "voltage",
10385
10385
  "valueType": "number"
10386
10386
  },
10387
10387
  {
10388
- "path": "amps",
10388
+ "path": "current",
10389
10389
  "valueType": "number"
10390
10390
  },
10391
10391
  {
10392
- "path": "va",
10392
+ "path": "apparentPower",
10393
10393
  "valueType": "number"
10394
10394
  },
10395
10395
  {
@@ -10417,14 +10417,10 @@ Object.freeze({
10417
10417
  {
10418
10418
  "path": "gps.accuracyMeters",
10419
10419
  "valueType": "number"
10420
- },
10421
- {
10422
- "path": "batteryPercent",
10423
- "valueType": "number"
10424
10420
  }
10425
10421
  ],
10426
10422
  "pressure-sensor": [{
10427
- "path": "hpa",
10423
+ "path": "pressure",
10428
10424
  "valueType": "number"
10429
10425
  }],
10430
10426
  "privacy-mask": [{
@@ -10738,7 +10734,7 @@ Object.freeze({
10738
10734
  "valueType": "boolean"
10739
10735
  }],
10740
10736
  "temperature-sensor": [{
10741
- "path": "celsius",
10737
+ "path": "temperature",
10742
10738
  "valueType": "number"
10743
10739
  }],
10744
10740
  "update": [
@@ -10786,7 +10782,7 @@ Object.freeze({
10786
10782
  "valueType": "string"
10787
10783
  },
10788
10784
  {
10789
- "path": "progressPercent",
10785
+ "path": "progress",
10790
10786
  "valueType": "number"
10791
10787
  },
10792
10788
  {
@@ -11416,7 +11412,7 @@ function errMsg(err) {
11416
11412
  return String(err);
11417
11413
  }
11418
11414
  //#endregion
11419
- //#region ../types/dist/composition-Bb8iwHEJ.mjs
11415
+ //#region ../types/dist/composition-CZImLpOI.mjs
11420
11416
  /**
11421
11417
  * Deterministic SHA-256 hash of an arbitrary serialisable value. The
11422
11418
  * canonical form sorts object keys alphabetically at every depth so two
@@ -20117,7 +20113,7 @@ var CompositionEventPlanSchema = object({
20117
20113
  stateField: string(),
20118
20114
  fieldKey: string()
20119
20115
  });
20120
- /** One refusal, named (D391). `path` points into the composition, e.g. `features[0].fields.celsius`. */
20116
+ /** One refusal, named (D391). `path` points into the composition, e.g. `features[0].fields.temperature`. */
20121
20117
  var CompositionProblemSchema = object({
20122
20118
  code: _enum([
20123
20119
  "reserved-variant",
@@ -20436,7 +20432,7 @@ var GROUP_TEMPLATES = [
20436
20432
  summary: "Mean, median, min, max or sum of temperatures. Offline and unknown members are left out, never read as 0 °C.",
20437
20433
  role: DeviceRole.TemperatureSensor,
20438
20434
  outputCap: "temperature-sensor",
20439
- outputField: "celsius",
20435
+ outputField: "temperature",
20440
20436
  quantity: "temperature",
20441
20437
  defaultAggregate: "mean",
20442
20438
  empty: "null",
@@ -20447,7 +20443,7 @@ var GROUP_TEMPLATES = [
20447
20443
  summary: "Humidity in percent. Offline and unknown members are left out, never read as 0 %.",
20448
20444
  role: DeviceRole.HumiditySensor,
20449
20445
  outputCap: "humidity-sensor",
20450
- outputField: "percent",
20446
+ outputField: "humidity",
20451
20447
  quantity: "humidity",
20452
20448
  defaultAggregate: "mean",
20453
20449
  empty: "null",
@@ -20458,7 +20454,7 @@ var GROUP_TEMPLATES = [
20458
20454
  summary: "Pressure in hectopascals. Offline and unknown members are left out, never read as 0 hPa.",
20459
20455
  role: DeviceRole.PressureSensor,
20460
20456
  outputCap: "pressure-sensor",
20461
- outputField: "hpa",
20457
+ outputField: "pressure",
20462
20458
  quantity: "pressure",
20463
20459
  defaultAggregate: "mean",
20464
20460
  empty: "null",
@@ -20469,7 +20465,7 @@ var GROUP_TEMPLATES = [
20469
20465
  summary: "Illuminance in lux. Offline and unknown members are left out, never read as 0 lx.",
20470
20466
  role: DeviceRole.AmbientLightSensor,
20471
20467
  outputCap: "ambient-light-sensor",
20472
- outputField: "lux",
20468
+ outputField: "illuminance",
20473
20469
  quantity: "illuminance",
20474
20470
  defaultAggregate: "mean",
20475
20471
  empty: "null",
@@ -20480,7 +20476,7 @@ var GROUP_TEMPLATES = [
20480
20476
  summary: "Power in watts, summed by default. Nobody reporting omits the key rather than writing 0 W.",
20481
20477
  role: DeviceRole.PowerSensor,
20482
20478
  outputCap: "power-meter",
20483
- outputField: "watts",
20479
+ outputField: "power",
20484
20480
  quantity: "power",
20485
20481
  defaultAggregate: "sum",
20486
20482
  empty: "omit",
@@ -20491,7 +20487,7 @@ var GROUP_TEMPLATES = [
20491
20487
  summary: "Energy in kilowatt-hours, summed by default. Nobody reporting omits the key rather than writing 0 kWh.",
20492
20488
  role: DeviceRole.EnergySensor,
20493
20489
  outputCap: "power-meter",
20494
- outputField: "kwhTotal",
20490
+ outputField: "energy",
20495
20491
  quantity: "energy",
20496
20492
  defaultAggregate: "sum",
20497
20493
  empty: "omit",
@@ -20502,7 +20498,7 @@ var GROUP_TEMPLATES = [
20502
20498
  summary: "Battery charge in percent. Offline and unknown members are left out, never read as 0 %.",
20503
20499
  role: DeviceRole.BatterySensor,
20504
20500
  outputCap: "battery",
20505
- outputField: "percentage",
20501
+ outputField: "level",
20506
20502
  quantity: "percentage",
20507
20503
  defaultAggregate: "mean",
20508
20504
  empty: "null",
@@ -60927,9 +60923,9 @@ method(object({ nodeId: string().optional() }).optional(), array(AddonListItemSc
60927
60923
  */
60928
60924
  var AirQualitySensorStatusSchema = object({
60929
60925
  /** Carbon dioxide concentration in ppm. */
60930
- co2Ppm: number().min(0).optional().meta(readingMeta("concentration-volume")),
60926
+ co2: number().min(0).optional().meta(readingMeta("concentration-volume")),
60931
60927
  /** Total volatile organic compounds in ppb. */
60932
- vocPpb: number().min(0).optional().meta(readingMeta("concentration-ppb")),
60928
+ voc: number().min(0).optional().meta(readingMeta("concentration-ppb")),
60933
60929
  /** Particulate matter ≤ 2.5 μm in µg/m³. */
60934
60930
  pm25: number().min(0).optional().meta(readingMeta("concentration-mass")),
60935
60931
  /** Particulate matter ≤ 10 μm in µg/m³. */
@@ -60962,12 +60958,12 @@ var airQualitySensorCapability = {
60962
60958
  * History (D850): recorded series.
60963
60959
  */
60964
60960
  history: { fields: {
60965
- co2Ppm: {
60961
+ co2: {
60966
60962
  kind: "gauge",
60967
60963
  unit: "ppm",
60968
60964
  deadband: 5
60969
60965
  },
60970
- vocPpb: {
60966
+ voc: {
60971
60967
  kind: "gauge",
60972
60968
  unit: "ppb",
60973
60969
  deadband: 5
@@ -60998,7 +60994,7 @@ var airQualitySensorCapability = {
60998
60994
  */
60999
60995
  var AmbientLightSensorStatusSchema = object({
61000
60996
  /** Current illuminance in lux (lx). `null` when the sample was refused (D393). */
61001
- lux: number().min(0).nullable().meta(readingMeta("illuminance", {
60997
+ illuminance: number().min(0).nullable().meta(readingMeta("illuminance", {
61002
60998
  precision: 0,
61003
60999
  label: "Illuminance"
61004
61000
  })),
@@ -61027,7 +61023,7 @@ var ambientLightSensorCapability = {
61027
61023
  /**
61028
61024
  * History (D850): recorded series. Wide range, so a RELATIVE deadband (10 %).
61029
61025
  */
61030
- history: { fields: { lux: {
61026
+ history: { fields: { illuminance: {
61031
61027
  kind: "gauge",
61032
61028
  unit: "lx",
61033
61029
  deadbandPct: 10,
@@ -61340,7 +61336,7 @@ var BatteryStatusSchema = object({
61340
61336
  * Consumers must SKIP a null rather than coerce it — `battery-band` already
61341
61337
  * declines to band a non-finite reading, which is the correct shape.
61342
61338
  */
61343
- percentage: number().min(0).max(100).nullable().meta(readingMeta("percentage", { label: "Charge" })),
61339
+ level: number().min(0).max(100).nullable().meta(readingMeta("percentage", { label: "Charge" })),
61344
61340
  /**
61345
61341
  * Charging source. `'dc'` covers wall/USB adapters; `'solar'` is
61346
61342
  * Reolink-specific for the Solar Panel 2 accessory (will become
@@ -61350,7 +61346,7 @@ var BatteryStatusSchema = object({
61350
61346
  * `'unknown'` is the absence of an answer: the provider has not read the
61351
61347
  * power fields yet, or the firmware reported neither. Before it existed,
61352
61348
  * two unreadable fields produced `'none'`, and a camera nobody had reached
61353
- * was drawn "on battery alone" — the same D315 defect `percentage` closed
61349
+ * was drawn "on battery alone" — the same D315 defect `level` closed
61354
61350
  * by going nullable. Consumers SKIP it (no charger state published, no
61355
61351
  * glyph, no HomeKit ChargingState) rather than coerce it either way.
61356
61352
  */
@@ -61374,7 +61370,7 @@ var BatteryStatusSchema = object({
61374
61370
  * that only report charge. A second reading on this cap, not a second
61375
61371
  * `numeric-sensor` on the same device.
61376
61372
  */
61377
- volts: number().nullable().optional().meta(readingMeta("voltage", { label: "Voltage" })),
61373
+ voltage: number().nullable().optional().meta(readingMeta("voltage", { label: "Voltage" })),
61378
61374
  /**
61379
61375
  * Ms epoch of the last time the device PROVED it was reachable — a
61380
61376
  * completed firmware round-trip, an observed wake, or an inbound push
@@ -61408,7 +61404,7 @@ var BatteryStatusSchema = object({
61408
61404
  /**
61409
61405
  * True when the source is a BINARY low-battery indicator (HA
61410
61406
  * `binary_sensor` device_class=battery / `LOW_BAT`) that has no real
61411
- * charge level — `percentage` is then a coarse stand-in (100 = normal,
61407
+ * charge level — `level` is then a coarse stand-in (100 = normal,
61412
61408
  * sub-threshold = low). UI MUST render "Normal"/"Low" instead of a
61413
61409
  * misleading exact percentage. Absent/false → genuine 0–100 % reading.
61414
61410
  */
@@ -61428,15 +61424,15 @@ var BATTERY_DEVICE_TYPES = [
61428
61424
  var batteryCustomize = {
61429
61425
  version: 1,
61430
61426
  targets: [{
61431
- id: "percentage",
61427
+ id: "level",
61432
61428
  cardinality: "scalar",
61433
61429
  vocabulary: {
61434
61430
  cap: "battery",
61435
- stateField: "percentage"
61431
+ stateField: "level"
61436
61432
  },
61437
61433
  deviceTypes: BATTERY_DEVICE_TYPES,
61438
61434
  apply: "add",
61439
- path: "percentage",
61435
+ path: "level",
61440
61436
  sources: [{
61441
61437
  kind: "field",
61442
61438
  valueKinds: ["number", "string"],
@@ -61530,7 +61526,7 @@ onStatusChanged: { data: object({
61530
61526
  schema: BatteryStatusSchema,
61531
61527
  kind: "push",
61532
61528
  empty: {
61533
- percentage: null,
61529
+ level: null,
61534
61530
  charging: "unknown",
61535
61531
  sleeping: false,
61536
61532
  lastUpdated: 0
@@ -61557,11 +61553,11 @@ onStatusChanged: { data: object({
61557
61553
  * History (D850): recorded series. The generic capture replaces the `battery` series of `pipeline-analytics:stats-5m`.
61558
61554
  */
61559
61555
  history: { fields: {
61560
- percentage: {
61556
+ level: {
61561
61557
  kind: "gauge",
61562
61558
  unit: "%"
61563
61559
  },
61564
- volts: {
61560
+ voltage: {
61565
61561
  kind: "gauge",
61566
61562
  unit: "V"
61567
61563
  }
@@ -61621,14 +61617,14 @@ var binaryCapability = {
61621
61617
  * controls to this single-method surface.
61622
61618
  *
61623
61619
  * The cap is intentionally minimal: a single `setBrightness({deviceId,
61624
- * percentage})` mutation plus the auto-injected `getStatus`. Drivers
61620
+ * level})` mutation plus the auto-injected `getStatus`. Drivers
61625
61621
  * that expose richer controls (color temperature, scenes, schedules)
61626
61622
  * should surface those via the device's `getSettingsUISchema()`
61627
61623
  * instead of bloating this cap.
61628
61624
  */
61629
61625
  var BrightnessStatusSchema = object({
61630
61626
  /** Current level as 0..100 inclusive. Firmware-reported. */
61631
- percentage: number().min(0).max(100).meta(readingMeta("percentage")),
61627
+ level: number().min(0).max(100).meta(readingMeta("percentage")),
61632
61628
  /** Ms epoch of the last operator-driven change. Useful for UI freshness. */
61633
61629
  lastChangedAt: number()
61634
61630
  });
@@ -61640,7 +61636,7 @@ var brightnessCapability = {
61640
61636
  deviceTypes: [DeviceType.Light],
61641
61637
  methods: { setBrightness: method(object({
61642
61638
  deviceId: number().int().nonnegative(),
61643
- percentage: number().min(0).max(100)
61639
+ level: number().min(0).max(100)
61644
61640
  }), _void(), {
61645
61641
  kind: "mutation",
61646
61642
  auth: "protected"
@@ -61653,7 +61649,7 @@ var brightnessCapability = {
61653
61649
  */
61654
61650
  onBrightnessChanged: { data: object({
61655
61651
  deviceId: number(),
61656
- percentage: number().min(0).max(100),
61652
+ level: number().min(0).max(100),
61657
61653
  lastChangedAt: number()
61658
61654
  }) } },
61659
61655
  status: {
@@ -61676,7 +61672,7 @@ onBrightnessChanged: { data: object({
61676
61672
  /**
61677
61673
  * History (D850): recorded series. Actuator tier: level keeps every change.
61678
61674
  */
61679
- history: { fields: { percentage: {
61675
+ history: { fields: { level: {
61680
61676
  kind: "gauge",
61681
61677
  unit: "%",
61682
61678
  minIntervalMs: 0
@@ -62300,11 +62296,11 @@ var ColorInputSchema = discriminatedUnion("mode", [
62300
62296
  }),
62301
62297
  object({
62302
62298
  mode: literal("mired"),
62303
- mireds: number().int().min(50).max(1e3)
62299
+ colorTemperature: number().int().min(50).max(1e3)
62304
62300
  })
62305
62301
  ]);
62306
62302
  var ColorStatusSchema = object({
62307
- /** Active color mode — which of `rgb` / `hsv` / `mireds` reflects
62303
+ /** Active color mode — which of `rgb` / `hsv` / `colorTemperature` reflects
62308
62304
  * the bulb's current state. */
62309
62305
  mode: _enum([
62310
62306
  "rgb",
@@ -62316,7 +62312,7 @@ var ColorStatusSchema = object({
62316
62312
  /** Populated when `mode === 'hsv'`. */
62317
62313
  hsv: HsvTripletSchema.optional(),
62318
62314
  /** Populated when `mode === 'mired'`. */
62319
- mireds: number().int().optional().meta(readingMeta("colour-temperature")),
62315
+ colorTemperature: number().int().optional().meta(readingMeta("colour-temperature")),
62320
62316
  /** Ms epoch of the last operator-driven change. */
62321
62317
  lastChangedAt: number()
62322
62318
  });
@@ -62348,7 +62344,7 @@ onColorChanged: { data: object({
62348
62344
  ]),
62349
62345
  rgb: RgbTripletSchema.optional(),
62350
62346
  hsv: HsvTripletSchema.optional(),
62351
- mireds: number().int().optional(),
62347
+ colorTemperature: number().int().optional(),
62352
62348
  lastChangedAt: number()
62353
62349
  }) } },
62354
62350
  status: {
@@ -63261,11 +63257,11 @@ var DishwasherStatusSchema = object({
63261
63257
  /** Feature keys of the programs the appliance currently offers — drives the UI selector. */
63262
63258
  availablePrograms: array(string()),
63263
63259
  /** Seconds remaining on the active cycle, or null when not running / not known. */
63264
- remainingSeconds: number().int().nonnegative().nullable().meta(readingMeta("duration")),
63260
+ remaining: number().int().nonnegative().nullable().meta(readingMeta("duration")),
63265
63261
  /** Seconds the delayed start is set to (time until the cycle starts), or null. */
63266
- delayedStartSeconds: number().int().nonnegative().nullable().meta(readingMeta("duration")),
63262
+ delayedStart: number().int().nonnegative().nullable().meta(readingMeta("duration")),
63267
63263
  /** Cycle completion 0..100, or null when not applicable. */
63268
- progressPercent: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
63264
+ progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
63269
63265
  /** True when the door is reported open; null when the door state is not known. */
63270
63266
  doorOpen: boolean().nullable(),
63271
63267
  /** True when the door is latched (locked) during a cycle; null when not reported. */
@@ -63484,14 +63480,14 @@ var dishwasherCapability = {
63484
63480
  runtimeState: DishwasherStatusSchema,
63485
63481
  durability: "session",
63486
63482
  history: { fields: {
63487
- progressPercent: {
63483
+ progress: {
63488
63484
  kind: "gauge",
63489
63485
  unit: "%",
63490
63486
  deadband: 2
63491
63487
  },
63492
63488
  state: { kind: "enum" },
63493
63489
  operationState: { kind: "enum" },
63494
- remainingSeconds: {
63490
+ remaining: {
63495
63491
  kind: "gauge",
63496
63492
  unit: "s",
63497
63493
  minIntervalMs: 6e4
@@ -64122,7 +64118,7 @@ var FanDirectionSchema = _enum(["forward", "reverse"]);
64122
64118
  var FanControlStatusSchema = object({
64123
64119
  /** Active speed as 0..100 inclusive. Null when the device has no
64124
64120
  * speed surface (single-speed fan). */
64125
- percentage: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
64121
+ speed: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
64126
64122
  /** Speed granularity the device accepts (HA `percentage_step`, e.g. 25 for
64127
64123
  * a 4-speed fan). Absent when unknown — the UI then falls back to step 1. */
64128
64124
  percentageStep: number().positive().optional().meta(readingMeta("percentage")),
@@ -64149,7 +64145,7 @@ var fanControlCapability = {
64149
64145
  methods: {
64150
64146
  setPercentage: method(object({
64151
64147
  deviceId: number().int().nonnegative(),
64152
- percentage: number().min(0).max(100)
64148
+ speed: number().min(0).max(100)
64153
64149
  }), _void(), {
64154
64150
  kind: "mutation",
64155
64151
  auth: "protected"
@@ -64182,7 +64178,7 @@ var fanControlCapability = {
64182
64178
  },
64183
64179
  /**
64184
64180
  * Runtime-state slice — mirrored by the kernel. UI fan speed
64185
- * sliders read `percentage` for live updates.
64181
+ * sliders read `speed` for live updates.
64186
64182
  */
64187
64183
  runtimeState: FanControlStatusSchema,
64188
64184
  /**
@@ -64196,7 +64192,7 @@ var fanControlCapability = {
64196
64192
  * History (D850): recorded series. Actuator tier: speed keeps every change.
64197
64193
  */
64198
64194
  history: { fields: {
64199
- percentage: {
64195
+ speed: {
64200
64196
  kind: "gauge",
64201
64197
  unit: "%",
64202
64198
  minIntervalMs: 0
@@ -64641,7 +64637,7 @@ var humidifierCapability = {
64641
64637
  */
64642
64638
  var HumiditySensorStatusSchema = object({
64643
64639
  /** Current relative humidity, 0..100. `null` when the sample was refused (D393). */
64644
- percent: number().min(0).max(100).nullable().meta(readingMeta("humidity", {
64640
+ humidity: number().min(0).max(100).nullable().meta(readingMeta("humidity", {
64645
64641
  precision: 0,
64646
64642
  label: "Humidity"
64647
64643
  })),
@@ -64670,7 +64666,7 @@ var humiditySensorCapability = {
64670
64666
  /**
64671
64667
  * History (D850): recorded series.
64672
64668
  */
64673
- history: { fields: { percent: {
64669
+ history: { fields: { humidity: {
64674
64670
  kind: "gauge",
64675
64671
  unit: "%",
64676
64672
  deadband: .5
@@ -65310,7 +65306,7 @@ var LawnMowerControlStatusSchema = object({
65310
65306
  batteryLevel: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
65311
65307
  /** 0..100 mowing-completion percentage of the current task, or null when no
65312
65308
  * task is active / progress is unavailable. */
65313
- progressPercent: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
65309
+ progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
65314
65310
  /** Current device/event code (dynamic — mostly status, sometimes an error),
65315
65311
  * or null when unknown. */
65316
65312
  currentCode: number().nullable().meta(readingMeta("none")),
@@ -65831,7 +65827,7 @@ var lockControlCapability = {
65831
65827
  volatileStateFields: ["lastChangedAt"]
65832
65828
  };
65833
65829
  /**
65834
- * A monotonic total between resets (D944). Energy uses `power-meter.kwhTotal`
65830
+ * A monotonic total between resets (D944). Energy uses `power-meter.energy`
65835
65831
  * so dashboards keep one series; every other instantaneous reading lands here.
65836
65832
  * `value` is the time integral in the source quantity's accumulated base
65837
65833
  * (base-unit seconds, or kWh on the power meter). `null` is a gap, never zero.
@@ -65925,10 +65921,10 @@ var MediaPlayerStatusSchema = object({
65925
65921
  currentMedia: MediaInfoSchema.nullable(),
65926
65922
  /** Current playback position in ms. Null when not seekable or
65927
65923
  * nothing is playing. Pair with `DeviceFeature.MediaPlayerSeek`. */
65928
- positionMs: number().int().nonnegative().nullable().meta(readingMeta("duration-ms")),
65924
+ position: number().int().nonnegative().nullable().meta(readingMeta("duration-ms")),
65929
65925
  /** Total duration of the current media in ms. Null when unknown
65930
65926
  * (live stream) or nothing is playing. */
65931
- durationMs: number().int().nonnegative().nullable().meta(readingMeta("duration-ms")),
65927
+ duration: number().int().nonnegative().nullable().meta(readingMeta("duration-ms")),
65932
65928
  /** Shuffle toggle. Null when no shuffle surface.
65933
65929
  * Pair with `DeviceFeature.MediaPlayerShuffle`. */
65934
65930
  shuffle: boolean().nullable(),
@@ -65967,7 +65963,7 @@ var mediaPlayerCapability = {
65967
65963
  }),
65968
65964
  seek: method(object({
65969
65965
  deviceId: number().int().nonnegative(),
65970
- positionMs: number().int().nonnegative()
65966
+ position: number().int().nonnegative()
65971
65967
  }), _void(), {
65972
65968
  kind: "mutation",
65973
65969
  auth: "protected"
@@ -66039,7 +66035,7 @@ var mediaPlayerCapability = {
66039
66035
  /**
66040
66036
  * History (D850): volume (a level an operator or an automation sets; the
66041
66037
  * default 10 s floor folds a slider drag into its end value) and mute.
66042
- * `positionMs` is not recorded: it moves continuously while playing.
66038
+ * `position` is not recorded: it moves continuously while playing.
66043
66039
  */
66044
66040
  history: { fields: {
66045
66041
  volumeLevel: {
@@ -67026,9 +67022,9 @@ var NetworkLinkStatusSchema = object({
67026
67022
  * one whose reading has not landed must not be drawn at 0 %. Consumers
67027
67023
  * SKIP a null rather than coerce it.
67028
67024
  */
67029
- signalPercent: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
67025
+ signal: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
67030
67026
  /** Raw received signal strength in dBm, when the firmware reports one. */
67031
- rssiDbm: number().optional().meta(readingMeta("signal-level")),
67027
+ rssi: number().optional().meta(readingMeta("signal-level")),
67032
67028
  /** Network name of a wireless link, when the firmware reports it. */
67033
67029
  ssid: string().optional(),
67034
67030
  /** Ms epoch of the last observation. Lets consumers reason about freshness. */
@@ -67064,7 +67060,7 @@ onStatusChanged: { data: object({
67064
67060
  kind: "push",
67065
67061
  empty: {
67066
67062
  type: "unknown",
67067
- signalPercent: null,
67063
+ signal: null,
67068
67064
  lastUpdated: 0
67069
67065
  }
67070
67066
  },
@@ -67087,13 +67083,13 @@ onStatusChanged: { data: object({
67087
67083
  * History (D850): recorded series.
67088
67084
  */
67089
67085
  history: { fields: {
67090
- signalPercent: {
67086
+ signal: {
67091
67087
  kind: "gauge",
67092
67088
  unit: "%",
67093
67089
  deadband: 3,
67094
67090
  minIntervalMs: 6e4
67095
67091
  },
67096
- rssiDbm: {
67092
+ rssi: {
67097
67093
  kind: "gauge",
67098
67094
  unit: "dBm",
67099
67095
  deadband: 2,
@@ -68448,16 +68444,16 @@ method(_void(), PlatformCapabilitiesSchema), method(_void(), HardwareInfoSchema)
68448
68444
  * in real-world devices.
68449
68445
  */
68450
68446
  var PowerMeterStatusSchema = object({
68451
- /** Instantaneous power draw in watts. */
68452
- watts: number().optional().meta(readingMeta("power", { label: "Power" })),
68447
+ /** Instantaneous power draw (watts). */
68448
+ power: number().optional().meta(readingMeta("power", { label: "Power" })),
68453
68449
  /** Cumulative energy in kilowatt-hours since the meter was reset. */
68454
- kwhTotal: number().optional().meta(readingMeta("energy", { label: "Energy" })),
68455
- /** Voltage in volts. */
68456
- volts: number().optional().meta(readingMeta("voltage", { label: "Voltage" })),
68450
+ energy: number().optional().meta(readingMeta("energy", { label: "Energy" })),
68451
+ /** Voltage (volts). */
68452
+ voltage: number().optional().meta(readingMeta("voltage", { label: "Voltage" })),
68457
68453
  /** Current in amperes. */
68458
- amps: number().optional().meta(readingMeta("current", { label: "Current" })),
68454
+ current: number().optional().meta(readingMeta("current", { label: "Current" })),
68459
68455
  /** Apparent power in volt-amperes. */
68460
- va: number().optional().meta(readingMeta("apparent-power")),
68456
+ apparentPower: number().optional().meta(readingMeta("apparent-power")),
68461
68457
  /** Power factor (0..1) if reported. */
68462
68458
  powerFactor: number().min(0).max(1).optional().meta(readingMeta("ratio")),
68463
68459
  /** Ms epoch when the slice was last updated. */
@@ -68515,14 +68511,14 @@ function powerTarget(id, unit) {
68515
68511
  advancedExpression: true
68516
68512
  };
68517
68513
  }
68518
- /** "Power and energy" extension: watts, energy, voltage and current from other devices (D951). */
68514
+ /** "Power and energy" extension: power, energy, voltage and current from other devices (D951). */
68519
68515
  var powerMeterCustomize = {
68520
68516
  version: 1,
68521
68517
  targets: [
68522
- powerTarget("watts", "W"),
68523
- powerTarget("kwhTotal", "kWh"),
68524
- powerTarget("volts", "V"),
68525
- powerTarget("amps", "A")
68518
+ powerTarget("power", "W"),
68519
+ powerTarget("energy", "kWh"),
68520
+ powerTarget("voltage", "V"),
68521
+ powerTarget("current", "A")
68526
68522
  ]
68527
68523
  };
68528
68524
  var powerMeterCapability = {
@@ -68538,41 +68534,41 @@ var powerMeterCapability = {
68538
68534
  },
68539
68535
  runtimeState: PowerMeterStatusSchema,
68540
68536
  /**
68541
- * Runtime-state durability: **restored** — as `numeric-sensor`; `kwhTotal` is an accumulator whose restored value is the baseline.
68537
+ * Runtime-state durability: **restored** — as `numeric-sensor`; `energy` is an accumulator whose restored value is the baseline.
68542
68538
  *
68543
68539
  * See `RuntimeStateDurability`. Enforced by
68544
68540
  * `scripts/check-runtime-state-durability.ts`.
68545
68541
  */
68546
68542
  durability: "restored",
68547
68543
  /**
68548
- * History (D850): recorded series. Gauges are floored at 30 s; `kwhTotal` is the one monotonic meter (counter).
68544
+ * History (D850): recorded series. Gauges are floored at 30 s; `energy` is the one monotonic meter (counter).
68549
68545
  */
68550
68546
  history: { fields: {
68551
- watts: {
68547
+ power: {
68552
68548
  kind: "gauge",
68553
68549
  unit: "W",
68554
68550
  deadband: 1,
68555
68551
  minIntervalMs: 3e4
68556
68552
  },
68557
- kwhTotal: {
68553
+ energy: {
68558
68554
  kind: "counter",
68559
68555
  unit: "kWh",
68560
68556
  deadband: .01,
68561
68557
  minIntervalMs: 6e4
68562
68558
  },
68563
- volts: {
68559
+ voltage: {
68564
68560
  kind: "gauge",
68565
68561
  unit: "V",
68566
68562
  deadband: 1,
68567
68563
  minIntervalMs: 3e4
68568
68564
  },
68569
- amps: {
68565
+ current: {
68570
68566
  kind: "gauge",
68571
68567
  unit: "A",
68572
68568
  deadband: .05,
68573
68569
  minIntervalMs: 3e4
68574
68570
  },
68575
- va: {
68571
+ apparentPower: {
68576
68572
  kind: "gauge",
68577
68573
  unit: "VA",
68578
68574
  deadband: 1,
@@ -68622,9 +68618,6 @@ var PresenceStatusSchema = object({
68622
68618
  location: string().nullable(),
68623
68619
  /** GPS coordinates when available. Null otherwise. */
68624
68620
  gps: GpsLocationSchema.nullable(),
68625
- /** Optional battery level of the tracking device (0..100). Null
68626
- * when not reported. */
68627
- batteryPercent: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
68628
68621
  /** Ms epoch when the slice was last updated. */
68629
68622
  lastChangedAt: number()
68630
68623
  });
@@ -68653,14 +68646,7 @@ var presenceCapability = {
68653
68646
  * `scripts/check-runtime-state-durability.ts`.
68654
68647
  */
68655
68648
  durability: "restored",
68656
- /**
68657
- * History (D850): recorded series.
68658
- */
68659
- history: { fields: { batteryPercent: {
68660
- kind: "gauge",
68661
- unit: "%",
68662
- deadband: 1
68663
- } } },
68649
+ history: "none",
68664
68650
  /** Clock fields: written, but excluded from the compare that decides
68665
68651
  * whether persisting is worth a SQLite commit. */
68666
68652
  volatileStateFields: ["lastChangedAt"]
@@ -68675,7 +68661,7 @@ var presenceCapability = {
68675
68661
  */
68676
68662
  var PressureSensorStatusSchema = object({
68677
68663
  /** Current pressure in hPa. `null` when the sample was refused (D393). */
68678
- hpa: number().nullable().meta(readingMeta("pressure", { precision: 0 })),
68664
+ pressure: number().nullable().meta(readingMeta("pressure", { precision: 0 })),
68679
68665
  /** Ms epoch when the slice was last updated. */
68680
68666
  lastFetchedAt: number()
68681
68667
  });
@@ -68701,7 +68687,7 @@ var pressureSensorCapability = {
68701
68687
  /**
68702
68688
  * History (D850): recorded series.
68703
68689
  */
68704
- history: { fields: { hpa: {
68690
+ history: { fields: { pressure: {
68705
68691
  kind: "gauge",
68706
68692
  unit: "hPa",
68707
68693
  deadband: .1
@@ -72450,7 +72436,7 @@ var tamperCapability = {
72450
72436
  */
72451
72437
  var TemperatureSensorStatusSchema = object({
72452
72438
  /** Current temperature in Celsius. `null` when the sample was refused (D393). */
72453
- celsius: number().nullable().meta(readingMeta("temperature", {
72439
+ temperature: number().nullable().meta(readingMeta("temperature", {
72454
72440
  precision: 1,
72455
72441
  label: "Temperature"
72456
72442
  })),
@@ -72479,7 +72465,7 @@ var temperatureSensorCapability = {
72479
72465
  /**
72480
72466
  * History (D850): recorded series.
72481
72467
  */
72482
- history: { fields: { celsius: {
72468
+ history: { fields: { temperature: {
72483
72469
  kind: "gauge",
72484
72470
  unit: "°C",
72485
72471
  deadband: .1
@@ -72776,7 +72762,7 @@ var VacuumControlStatusSchema = object({
72776
72762
  /** Speed tokens the hardware accepts — drives the UI selector. */
72777
72763
  availableFanSpeeds: array(string()),
72778
72764
  /** 0..100 cleaning-completion percentage of the current task, or null. */
72779
- progressPercent: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
72765
+ progress: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
72780
72766
  /** Current error code (0 / null = no error). */
72781
72767
  errorCode: number().nullable().meta(readingMeta("none")),
72782
72768
  /** Human label for {@link errorCode}, or null when none / undecodable. */
@@ -74483,7 +74469,7 @@ var BaseDevice = class {
74483
74469
  * `device-local-state.ts`. Drivers access via:
74484
74470
  *
74485
74471
  * `this.state.battery.sleeping = true` // patches the battery slice
74486
- * `const pct = this.state.battery.percentage` // reads the battery slice
74472
+ * `const pct = this.state.battery.level` // reads the battery slice
74487
74473
  * `this.state.deviceStatus.online = true` // mirrors `markOnline(true)`
74488
74474
  *
74489
74475
  * Adding a new cap with `runtimeState:` automatically extends this
@@ -74523,7 +74509,7 @@ var BaseDevice = class {
74523
74509
  * shape; drivers don't redeclare it, they just write through.
74524
74510
  *
74525
74511
  * Read: `this.runtimeState.getCapState('battery')` →
74526
- * `{percentage, charging, sleeping, lastUpdated}` for any
74512
+ * `{level, charging, sleeping, lastUpdated}` for any
74527
74513
  * provider that registers `batteryCapability`.
74528
74514
  * Write: `this.runtimeState.setCapState('battery', { … })`.
74529
74515
  *
@@ -85243,7 +85229,7 @@ var ACTUATOR_CAP_VOCABULARY = {
85243
85229
  label: t("Full brightness", "Luminosità massima"),
85244
85230
  phrase: t("Set {device} to full brightness", "Porta {device} alla massima luminosità"),
85245
85231
  icon: "sun",
85246
- args: { percentage: 100 }
85232
+ args: { level: 100 }
85247
85233
  },
85248
85234
  {
85249
85235
  id: "brightness.half",
@@ -85251,7 +85237,7 @@ var ACTUATOR_CAP_VOCABULARY = {
85251
85237
  label: t("Half brightness", "Luminosità a metà"),
85252
85238
  phrase: t("Dim {device} to half", "Abbassa {device} a metà luminosità"),
85253
85239
  icon: "sun-dim",
85254
- args: { percentage: 50 }
85240
+ args: { level: 50 }
85255
85241
  },
85256
85242
  {
85257
85243
  id: "brightness.off",
@@ -85259,16 +85245,16 @@ var ACTUATOR_CAP_VOCABULARY = {
85259
85245
  label: t("Brightness off", "Luminosità a zero"),
85260
85246
  phrase: t("Dim {device} to zero", "Abbassa {device} a zero"),
85261
85247
  icon: "lightbulb-off",
85262
- args: { percentage: 0 }
85248
+ args: { level: 0 }
85263
85249
  },
85264
85250
  {
85265
85251
  id: "brightness.set",
85266
85252
  method: "setBrightness",
85267
85253
  label: t("Set brightness", "Imposta la luminosità"),
85268
- phrase: t("Set the brightness of {device} to {percentage}", "Imposta la luminosità di {device} a {percentage}"),
85254
+ phrase: t("Set the brightness of {device} to {level}", "Imposta la luminosità di {device} a {level}"),
85269
85255
  icon: "sun-medium",
85270
85256
  openArgs: [{
85271
- key: "percentage",
85257
+ key: "level",
85272
85258
  label: PERCENT,
85273
85259
  offer: {
85274
85260
  kind: "number",
@@ -85282,13 +85268,13 @@ var ACTUATOR_CAP_VOCABULARY = {
85282
85268
  ],
85283
85269
  state: [{
85284
85270
  kind: "numeric",
85285
- field: "percentage",
85271
+ field: "level",
85286
85272
  quantity: t("the brightness", "la luminosità"),
85287
85273
  label: t("Brightness", "Luminosità"),
85288
85274
  unit: "%",
85289
85275
  icon: "sun"
85290
85276
  }],
85291
- events: { onBrightnessChanged: { notOperatorFacing: "the `percentage` state trigger reads the same change" } }
85277
+ events: { onBrightnessChanged: { notOperatorFacing: "the `level` state trigger reads the same change" } }
85292
85278
  },
85293
85279
  color: {
85294
85280
  scope: "device",
@@ -85302,7 +85288,7 @@ var ACTUATOR_CAP_VOCABULARY = {
85302
85288
  icon: "sun",
85303
85289
  args: { color: {
85304
85290
  mode: "mired",
85305
- mireds: 370
85291
+ colorTemperature: 370
85306
85292
  } }
85307
85293
  },
85308
85294
  {
@@ -85313,7 +85299,7 @@ var ACTUATOR_CAP_VOCABULARY = {
85313
85299
  icon: "snowflake",
85314
85300
  args: { color: {
85315
85301
  mode: "mired",
85316
- mireds: 200
85302
+ colorTemperature: 200
85317
85303
  } }
85318
85304
  },
85319
85305
  {
@@ -85927,7 +85913,7 @@ var ACTUATOR_CAP_VOCABULARY = {
85927
85913
  label: t("Fan off", "Ventilatore spento"),
85928
85914
  phrase: t("Stop {device}", "Ferma {device}"),
85929
85915
  icon: "power-off",
85930
- args: { percentage: 0 }
85916
+ args: { speed: 0 }
85931
85917
  },
85932
85918
  {
85933
85919
  id: "fan.full",
@@ -85935,16 +85921,16 @@ var ACTUATOR_CAP_VOCABULARY = {
85935
85921
  label: t("Fan full", "Ventilatore al massimo"),
85936
85922
  phrase: t("Run {device} at full speed", "Porta {device} alla massima velocità"),
85937
85923
  icon: "fan",
85938
- args: { percentage: 100 }
85924
+ args: { speed: 100 }
85939
85925
  },
85940
85926
  {
85941
85927
  id: "fan.speed",
85942
85928
  method: "setPercentage",
85943
85929
  label: t("Set speed", "Imposta la velocità"),
85944
- phrase: t("Set the speed of {device} to {percentage}", "Imposta la velocità di {device} al {percentage}"),
85930
+ phrase: t("Set the speed of {device} to {speed}", "Imposta la velocità di {device} al {speed}"),
85945
85931
  icon: "fan",
85946
85932
  openArgs: [{
85947
- key: "percentage",
85933
+ key: "speed",
85948
85934
  label: t("Speed", "Velocità"),
85949
85935
  offer: {
85950
85936
  kind: "number",
@@ -86006,7 +85992,7 @@ var ACTUATOR_CAP_VOCABULARY = {
86006
85992
  ],
86007
85993
  state: [{
86008
85994
  kind: "numeric",
86009
- field: "percentage",
85995
+ field: "speed",
86010
85996
  quantity: t("the speed", "la velocità"),
86011
85997
  label: t("Speed", "Velocità"),
86012
85998
  unit: "%",
@@ -86804,7 +86790,7 @@ var APPLIANCE_CAP_VOCABULARY = {
86804
86790
  },
86805
86791
  {
86806
86792
  kind: "numeric",
86807
- field: "progressPercent",
86793
+ field: "progress",
86808
86794
  quantity: t("the cycle progress", "l’avanzamento del lavaggio"),
86809
86795
  label: t("Progress", "Avanzamento"),
86810
86796
  unit: "%",
@@ -87162,10 +87148,10 @@ var APPLIANCE_CAP_VOCABULARY = {
87162
87148
  id: "media.seek",
87163
87149
  method: "seek",
87164
87150
  label: t("Seek", "Vai al punto"),
87165
- phrase: t("Move {device} to {positionMs}", "Porta {device} al punto {positionMs}"),
87151
+ phrase: t("Move {device} to {position}", "Porta {device} al punto {position}"),
87166
87152
  icon: "fast-forward",
87167
87153
  openArgs: [{
87168
- key: "positionMs",
87154
+ key: "position",
87169
87155
  label: t("Position", "Posizione"),
87170
87156
  offer: {
87171
87157
  kind: "number",
@@ -88214,7 +88200,7 @@ var SENSOR_CAP_VOCABULARY = {
88214
88200
  state: [
88215
88201
  {
88216
88202
  kind: "numeric",
88217
- field: "co2Ppm",
88203
+ field: "co2",
88218
88204
  quantity: t("the CO₂", "la CO₂"),
88219
88205
  label: t("CO₂", "CO₂"),
88220
88206
  unit: "ppm",
@@ -88222,7 +88208,7 @@ var SENSOR_CAP_VOCABULARY = {
88222
88208
  },
88223
88209
  {
88224
88210
  kind: "numeric",
88225
- field: "vocPpb",
88211
+ field: "voc",
88226
88212
  quantity: t("the VOC level", "il livello di COV"),
88227
88213
  label: t("VOC", "COV"),
88228
88214
  unit: "ppb",
@@ -88258,7 +88244,7 @@ var SENSOR_CAP_VOCABULARY = {
88258
88244
  noun: t("Light level", "Luminosità ambiente"),
88259
88245
  state: [{
88260
88246
  kind: "numeric",
88261
- field: "lux",
88247
+ field: "illuminance",
88262
88248
  quantity: t("the light level", "la luminosità"),
88263
88249
  label: t("Illuminance", "Illuminamento"),
88264
88250
  unit: "lx",
@@ -88461,7 +88447,7 @@ var SENSOR_CAP_VOCABULARY = {
88461
88447
  noun: t("Humidity", "Umidità"),
88462
88448
  state: [{
88463
88449
  kind: "numeric",
88464
- field: "percent",
88450
+ field: "humidity",
88465
88451
  quantity: t("the humidity", "l’umidità"),
88466
88452
  label: t("Humidity", "Umidità"),
88467
88453
  unit: "%",
@@ -88509,7 +88495,7 @@ var SENSOR_CAP_VOCABULARY = {
88509
88495
  state: [
88510
88496
  {
88511
88497
  kind: "numeric",
88512
- field: "watts",
88498
+ field: "power",
88513
88499
  quantity: t("the power draw", "il consumo"),
88514
88500
  label: t("Power", "Potenza"),
88515
88501
  unit: "W",
@@ -88517,7 +88503,7 @@ var SENSOR_CAP_VOCABULARY = {
88517
88503
  },
88518
88504
  {
88519
88505
  kind: "numeric",
88520
- field: "kwhTotal",
88506
+ field: "energy",
88521
88507
  quantity: t("the energy used", "l’energia consumata"),
88522
88508
  label: t("Energy", "Energia"),
88523
88509
  unit: "kWh",
@@ -88525,7 +88511,7 @@ var SENSOR_CAP_VOCABULARY = {
88525
88511
  },
88526
88512
  {
88527
88513
  kind: "numeric",
88528
- field: "volts",
88514
+ field: "voltage",
88529
88515
  quantity: t("the voltage", "la tensione"),
88530
88516
  label: t("Voltage", "Tensione"),
88531
88517
  unit: "V",
@@ -88533,7 +88519,7 @@ var SENSOR_CAP_VOCABULARY = {
88533
88519
  },
88534
88520
  {
88535
88521
  kind: "numeric",
88536
- field: "amps",
88522
+ field: "current",
88537
88523
  quantity: t("the current", "la corrente"),
88538
88524
  label: t("Current", "Corrente"),
88539
88525
  unit: "A",
@@ -88550,13 +88536,6 @@ var SENSOR_CAP_VOCABULARY = {
88550
88536
  label: t("Where", "Posizione"),
88551
88537
  phrase: t("When {device} is at {value}", "Quando {device} è in {value}"),
88552
88538
  icon: "map-pin"
88553
- }, {
88554
- kind: "numeric",
88555
- field: "batteryPercent",
88556
- quantity: t("the phone battery", "la batteria del telefono"),
88557
- label: t("Battery", "Batteria"),
88558
- unit: "%",
88559
- icon: "battery"
88560
88539
  }]
88561
88540
  },
88562
88541
  "pressure-sensor": {
@@ -88564,7 +88543,7 @@ var SENSOR_CAP_VOCABULARY = {
88564
88543
  noun: t("Pressure", "Pressione"),
88565
88544
  state: [{
88566
88545
  kind: "numeric",
88567
- field: "hpa",
88546
+ field: "pressure",
88568
88547
  quantity: t("the pressure", "la pressione"),
88569
88548
  label: t("Pressure", "Pressione"),
88570
88549
  unit: "hPa",
@@ -88600,7 +88579,7 @@ var SENSOR_CAP_VOCABULARY = {
88600
88579
  noun: t("Temperature", "Temperatura"),
88601
88580
  state: [{
88602
88581
  kind: "numeric",
88603
- field: "celsius",
88582
+ field: "temperature",
88604
88583
  quantity: t("the temperature", "la temperatura"),
88605
88584
  label: t("Temperature", "Temperatura"),
88606
88585
  unit: "°C",
@@ -88671,7 +88650,7 @@ var SENSOR_CAP_VOCABULARY = {
88671
88650
  state: [
88672
88651
  {
88673
88652
  kind: "numeric",
88674
- field: "percentage",
88653
+ field: "level",
88675
88654
  quantity: t("the battery level", "il livello della batteria"),
88676
88655
  label: t("Battery", "Batteria"),
88677
88656
  unit: "%",
@@ -88713,7 +88692,7 @@ var SENSOR_CAP_VOCABULARY = {
88713
88692
  icon: "battery-charging"
88714
88693
  }
88715
88694
  ],
88716
- events: { onStatusChanged: { notOperatorFacing: "the percentage / sleeping / charging state triggers each read one field of this change" } },
88695
+ events: { onStatusChanged: { notOperatorFacing: "the level / sleeping / charging state triggers each read one field of this change" } },
88717
88696
  extraEvents: [{
88718
88697
  category: EventCategory.DeviceAwake,
88719
88698
  label: t("Woke up", "Risvegliato"),
@@ -88731,7 +88710,7 @@ var SENSOR_CAP_VOCABULARY = {
88731
88710
  noun: t("Network link", "Collegamento di rete"),
88732
88711
  state: [{
88733
88712
  kind: "numeric",
88734
- field: "signalPercent",
88713
+ field: "signal",
88735
88714
  quantity: t("the signal strength", "l’intensità del segnale"),
88736
88715
  label: t("Signal", "Segnale"),
88737
88716
  unit: "%",