@camstack/addon-provider-homeassistant 1.2.632 → 1.2.634

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/dist/addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as lawnMowerControlCapability, $t as union, A as buttonCapability, At as weatherCapability, B as coverCapability, Bt as defineRecordKinds, C as batteryCapability, Ct as tryConvertDelta, D as brokerCapability, Dt as valveCapability, E as brightnessCapability, Et as vacuumControlCapability, F as connectivityCapability, G as eventEmitterCapability, Gt as array, H as deviceAdoptionCapability, It as RecordSecretUnavailableError, J as gasCapability, Jt as literal, K as fanControlCapability, Kt as boolean, Lt as baseUnitOf, M as carbonMonoxideCapability, Mt as DeviceRole, N as climateControlCapability, Nt as DeviceType, O as buildAddonRouteProvider, Ot as vibrationCapability, P as colorCapability, Pt as errMsg, Q as ingestReading, Qt as string, R as contactCapability, Rt as createEvent, S as automationControlCapability, St as temperatureSensorCapability, T as binaryCapability, Tt as updateCapability, V as deviceAdminLinkCapability, Vt as entryBody, W as enumSensorCapability, Wt as _enum, X as humiditySensorCapability, Xt as object, Y as humidifierCapability, Yt as number, Z as imageCapability, Zt as record, _ as accessoriesCapability, _t as runningStateCapability, at as notifierCapability, b as alarmPanelCapability, bt as switchCapability, ct as parseAdminBase, dt as presenceCapability, en as unknown, et as lockControlCapability, ft as pressureSensorCapability, g as TargetSchema, gt as runningFromVacuumState, h as RUNNING_STATE_COLD, ht as runningFromMediaPlayer, it as notificationOutputCapability, j as calendarSourceCapability, jt as DeviceFeature, k as buildDeviceAdminUrl, kt as waterHeaterCapability, lt as powerMeterCapability, mt as runningFromLawnMower, n as BaseDevice, nn as EventCategory, nt as motionCapability, ot as numericSensorCapability, pt as quantityFromUnit, q as floodCapability, qt as discriminatedUnion, r as BaseDeviceProvider, rt as normalizeUnit, tn as url, tt as mediaPlayerCapability, u as EnumSensorDateTimeFormatSchema, ut as prepareNotification, v as addonRoutesCapability, vt as scriptRunnerCapability, w as bestLocationMatch, wt as tryConvertUnit, x as ambientLightSensorCapability, xt as tamperCapability, y as airQualitySensorCapability, yt as smokeCapability, z as controlCapability, zt as defineEntryKind } from "./dist-CPkvghX8.mjs";
1
+ import { $ as lawnMowerControlCapability, $t as union, A as buttonCapability, At as weatherCapability, B as coverCapability, Bt as defineRecordKinds, C as batteryCapability, Ct as tryConvertDelta, D as brokerCapability, Dt as valveCapability, E as brightnessCapability, Et as vacuumControlCapability, F as connectivityCapability, G as eventEmitterCapability, Gt as array, H as deviceAdoptionCapability, It as RecordSecretUnavailableError, J as gasCapability, Jt as literal, K as fanControlCapability, Kt as boolean, Lt as baseUnitOf, M as carbonMonoxideCapability, Mt as DeviceRole, N as climateControlCapability, Nt as DeviceType, O as buildAddonRouteProvider, Ot as vibrationCapability, P as colorCapability, Pt as errMsg, Q as ingestReading, Qt as string, R as contactCapability, Rt as createEvent, S as automationControlCapability, St as temperatureSensorCapability, T as binaryCapability, Tt as updateCapability, V as deviceAdminLinkCapability, Vt as entryBody, W as enumSensorCapability, Wt as _enum, X as humiditySensorCapability, Xt as object, Y as humidifierCapability, Yt as number, Z as imageCapability, Zt as record, _ as accessoriesCapability, _t as runningStateCapability, at as notifierCapability, b as alarmPanelCapability, bt as switchCapability, ct as parseAdminBase, dt as presenceCapability, en as unknown, et as lockControlCapability, ft as pressureSensorCapability, g as TargetSchema, gt as runningFromVacuumState, h as RUNNING_STATE_COLD, ht as runningFromMediaPlayer, it as notificationOutputCapability, j as calendarSourceCapability, jt as DeviceFeature, k as buildDeviceAdminUrl, kt as waterHeaterCapability, lt as powerMeterCapability, mt as runningFromLawnMower, n as BaseDevice, nn as EventCategory, nt as motionCapability, ot as numericSensorCapability, pt as quantityFromUnit, q as floodCapability, qt as discriminatedUnion, r as BaseDeviceProvider, rt as normalizeUnit, tn as url, tt as mediaPlayerCapability, u as EnumSensorDateTimeFormatSchema, ut as prepareNotification, v as addonRoutesCapability, vt as scriptRunnerCapability, w as bestLocationMatch, wt as tryConvertUnit, x as ambientLightSensorCapability, xt as tamperCapability, y as airQualitySensorCapability, yt as smokeCapability, z as controlCapability, zt as defineEntryKind } from "./dist-6sCUdAUD.mjs";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { brotliCompressSync, deflateSync, gzipSync } from "node:zlib";
4
4
  //#region src/ha-admin-link.ts
@@ -128,10 +128,10 @@ var haSourceSchemaFields = {
128
128
  features: array(string()).optional(),
129
129
  /** Sibling meter sensors whose readings this entity carries as `power-meter` (D951). */
130
130
  meterEntities: object({
131
- watts: string().optional(),
132
- kwhTotal: string().optional(),
133
- volts: string().optional(),
134
- amps: string().optional()
131
+ power: string().optional(),
132
+ energy: string().optional(),
133
+ voltage: string().optional(),
134
+ current: string().optional()
135
135
  }).optional()
136
136
  };
137
137
  /** Project a persisted config blob into a typed source, or null when the
@@ -331,26 +331,26 @@ function takeReading(logger, deviceId, value, rawUnit, quantity) {
331
331
  */
332
332
  /** The `power-meter` status field a reading lands in. */
333
333
  var METER_FIELDS = [
334
- "watts",
335
- "kwhTotal",
336
- "volts",
337
- "amps"
334
+ "power",
335
+ "energy",
336
+ "voltage",
337
+ "current"
338
338
  ];
339
339
  var METER_BY_DEVICE_CLASS = {
340
340
  power: {
341
- field: "watts",
341
+ field: "power",
342
342
  quantity: "power"
343
343
  },
344
344
  energy: {
345
- field: "kwhTotal",
345
+ field: "energy",
346
346
  quantity: "energy"
347
347
  },
348
348
  voltage: {
349
- field: "volts",
349
+ field: "voltage",
350
350
  quantity: "voltage"
351
351
  },
352
352
  current: {
353
- field: "amps",
353
+ field: "current",
354
354
  quantity: "current"
355
355
  }
356
356
  };
@@ -952,10 +952,10 @@ var SUPPORTED_CAP_NAMES$1 = [
952
952
  ];
953
953
  /** Map a supported cap to its canonical "value" field. */
954
954
  var VALUE_FIELD = {
955
- "temperature-sensor": "celsius",
956
- "humidity-sensor": "percent",
957
- "ambient-light-sensor": "lux",
958
- "pressure-sensor": "hpa",
955
+ "temperature-sensor": "temperature",
956
+ "humidity-sensor": "humidity",
957
+ "ambient-light-sensor": "illuminance",
958
+ "pressure-sensor": "pressure",
959
959
  "numeric-sensor": "value"
960
960
  };
961
961
  /** Typed sensors already name their quantity. The generic sensor learns it. */
@@ -1079,7 +1079,7 @@ var HaNumericSensorDevice = class extends HaBaseChildDevice {
1079
1079
  switch (name) {
1080
1080
  case "temperature-sensor": {
1081
1081
  const COLD_START = {
1082
- celsius: 0,
1082
+ temperature: 0,
1083
1083
  lastFetchedAt: 0
1084
1084
  };
1085
1085
  this.ctx.registerNativeCap(temperatureSensorCapability, { getStatus: async () => this.readSlice(COLD_START) });
@@ -1087,7 +1087,7 @@ var HaNumericSensorDevice = class extends HaBaseChildDevice {
1087
1087
  }
1088
1088
  case "humidity-sensor": {
1089
1089
  const COLD_START = {
1090
- percent: 0,
1090
+ humidity: 0,
1091
1091
  lastFetchedAt: 0
1092
1092
  };
1093
1093
  this.ctx.registerNativeCap(humiditySensorCapability, { getStatus: async () => this.readSlice(COLD_START) });
@@ -1095,7 +1095,7 @@ var HaNumericSensorDevice = class extends HaBaseChildDevice {
1095
1095
  }
1096
1096
  case "ambient-light-sensor": {
1097
1097
  const COLD_START = {
1098
- lux: 0,
1098
+ illuminance: 0,
1099
1099
  lastFetchedAt: 0
1100
1100
  };
1101
1101
  this.ctx.registerNativeCap(ambientLightSensorCapability, { getStatus: async () => this.readSlice(COLD_START) });
@@ -1103,7 +1103,7 @@ var HaNumericSensorDevice = class extends HaBaseChildDevice {
1103
1103
  }
1104
1104
  case "pressure-sensor": {
1105
1105
  const COLD_START = {
1106
- hpa: 0,
1106
+ pressure: 0,
1107
1107
  lastFetchedAt: 0
1108
1108
  };
1109
1109
  this.ctx.registerNativeCap(pressureSensorCapability, { getStatus: async () => this.readSlice(COLD_START) });
@@ -1399,7 +1399,7 @@ var HaLightDevice = class extends HaBaseChildDevice {
1399
1399
  lastChangedAt: 0
1400
1400
  });
1401
1401
  if (this.capSet.has("brightness")) this.runtimeState.setCapState("brightness", {
1402
- percentage: 0,
1402
+ level: 0,
1403
1403
  lastChangedAt: 0
1404
1404
  });
1405
1405
  if (this.capSet.has("color")) this.runtimeState.setCapState("color", {
@@ -1419,7 +1419,7 @@ var HaLightDevice = class extends HaBaseChildDevice {
1419
1419
  if (haBrightness !== null) {
1420
1420
  const percentage = Math.max(0, Math.min(100, Math.round(haBrightness / 255 * 100)));
1421
1421
  this.runtimeState.setCapState("brightness", {
1422
- percentage,
1422
+ level: percentage,
1423
1423
  lastChangedAt
1424
1424
  });
1425
1425
  }
@@ -1449,11 +1449,11 @@ var HaLightDevice = class extends HaBaseChildDevice {
1449
1449
  this.ctx.registerNativeCap(brightnessCapability, {
1450
1450
  getStatus: async () => {
1451
1451
  return this.runtimeState.getCapState("brightness") ?? {
1452
- percentage: 0,
1452
+ level: 0,
1453
1453
  lastChangedAt: 0
1454
1454
  };
1455
1455
  },
1456
- setBrightness: async ({ percentage }) => {
1456
+ setBrightness: async ({ level: percentage }) => {
1457
1457
  await this.callHaService("light", "turn_on", { brightness_pct: percentage });
1458
1458
  }
1459
1459
  });
@@ -1512,7 +1512,7 @@ function decodeColorSlice(colorMode, attrs, lastChangedAt) {
1512
1512
  const mireds = readNumberAttr$6(attrs, "color_temp");
1513
1513
  if (mireds !== null) return {
1514
1514
  mode: "mired",
1515
- mireds,
1515
+ colorTemperature: mireds,
1516
1516
  lastChangedAt
1517
1517
  };
1518
1518
  return null;
@@ -1530,7 +1530,7 @@ function colorInputToHaServiceData(color) {
1530
1530
  hs_color: [color.hsv.h, color.hsv.s],
1531
1531
  brightness_pct: color.hsv.v
1532
1532
  };
1533
- case "mired": return { color_temp: color.mireds };
1533
+ case "mired": return { color_temp: color.colorTemperature };
1534
1534
  }
1535
1535
  }
1536
1536
  //#endregion
@@ -2158,7 +2158,7 @@ function readNumberAttr$3(attrs, key) {
2158
2158
  //#endregion
2159
2159
  //#region src/devices/ha-fan-device.ts
2160
2160
  var FAN_COLD_START = {
2161
- percentage: null,
2161
+ speed: null,
2162
2162
  preset: "",
2163
2163
  availablePresets: [],
2164
2164
  direction: null,
@@ -2194,7 +2194,7 @@ var HaFanDevice = class extends HaBaseChildDevice {
2194
2194
  });
2195
2195
  const attrs = state.attributes;
2196
2196
  const slice = {
2197
- percentage: readNumberAttr$2(attrs, "percentage"),
2197
+ speed: readNumberAttr$2(attrs, "percentage"),
2198
2198
  percentageStep: readNumberAttr$2(attrs, "percentage_step") ?? void 0,
2199
2199
  preset: readStringAttr$4(attrs, "preset_mode") ?? "",
2200
2200
  availablePresets: readStringArray$1(attrs, "preset_modes"),
@@ -2222,7 +2222,7 @@ var HaFanDevice = class extends HaBaseChildDevice {
2222
2222
  getStatus: async () => {
2223
2223
  return this.runtimeState.getCapState("fan-control") ?? FAN_COLD_START;
2224
2224
  },
2225
- setPercentage: async ({ percentage }) => {
2225
+ setPercentage: async ({ speed: percentage }) => {
2226
2226
  await this.callHaService("fan", "set_percentage", { percentage });
2227
2227
  },
2228
2228
  setPreset: async ({ preset }) => {
@@ -2264,7 +2264,7 @@ var COLD_START$12 = {
2264
2264
  batteryLevel: null,
2265
2265
  fanSpeed: null,
2266
2266
  availableFanSpeeds: [],
2267
- progressPercent: null,
2267
+ progress: null,
2268
2268
  errorCode: null,
2269
2269
  errorLabel: null,
2270
2270
  lastChangedAt: 0
@@ -2301,7 +2301,7 @@ var HaVacuumDevice = class extends HaBaseChildDevice {
2301
2301
  batteryLevel,
2302
2302
  fanSpeed,
2303
2303
  availableFanSpeeds,
2304
- progressPercent: null,
2304
+ progress: null,
2305
2305
  errorCode: null,
2306
2306
  errorLabel: lifecycleState === "error" ? readStringAttr$3(state.attributes, "error") : null,
2307
2307
  lastChangedAt
@@ -2366,7 +2366,7 @@ function readStringArrayAttr(attrs, key) {
2366
2366
  var COLD_START$11 = {
2367
2367
  activity: "idle",
2368
2368
  batteryLevel: null,
2369
- progressPercent: null,
2369
+ progress: null,
2370
2370
  currentCode: null,
2371
2371
  currentCodeLabel: null,
2372
2372
  severity: "info",
@@ -2396,7 +2396,7 @@ var HaLawnMowerDevice = class extends HaBaseChildDevice {
2396
2396
  if (activity !== null) this.runtimeState.setCapState("lawn-mower-control", {
2397
2397
  activity,
2398
2398
  batteryLevel,
2399
- progressPercent: readNumericAttr$1(state.attributes, "mowing_progress"),
2399
+ progress: readNumericAttr$1(state.attributes, "mowing_progress"),
2400
2400
  currentCode: null,
2401
2401
  currentCodeLabel: null,
2402
2402
  severity: activity === "error" ? "error" : "info",
@@ -2447,8 +2447,8 @@ var COLD_START$10 = {
2447
2447
  source: "",
2448
2448
  availableSources: [],
2449
2449
  currentMedia: null,
2450
- positionMs: null,
2451
- durationMs: null,
2450
+ position: null,
2451
+ duration: null,
2452
2452
  shuffle: null,
2453
2453
  repeat: null,
2454
2454
  lastChangedAt: 0
@@ -2478,8 +2478,8 @@ var HaMediaPlayerDevice = class extends HaBaseChildDevice {
2478
2478
  source: readStringAttr$2(attrs, "source") ?? "",
2479
2479
  availableSources: readStringArray(attrs, "source_list"),
2480
2480
  currentMedia: buildCurrentMedia(attrs),
2481
- positionMs: readDurationMs(attrs, "media_position"),
2482
- durationMs: readDurationMs(attrs, "media_duration"),
2481
+ position: readDurationMs(attrs, "media_position"),
2482
+ duration: readDurationMs(attrs, "media_duration"),
2483
2483
  shuffle: readBooleanAttr(attrs, "shuffle"),
2484
2484
  repeat: readRepeat(attrs["repeat"]),
2485
2485
  lastChangedAt
@@ -2512,7 +2512,7 @@ var HaMediaPlayerDevice = class extends HaBaseChildDevice {
2512
2512
  previous: async () => {
2513
2513
  await this.callHaService("media_player", "media_previous_track");
2514
2514
  },
2515
- seek: async ({ positionMs }) => {
2515
+ seek: async ({ position: positionMs }) => {
2516
2516
  await this.callHaService("media_player", "media_seek", { seek_position: positionMs / 1e3 });
2517
2517
  },
2518
2518
  setVolume: async ({ volumeLevel }) => {
@@ -2681,11 +2681,17 @@ function deriveAvailableModes(attrs) {
2681
2681
  }
2682
2682
  //#endregion
2683
2683
  //#region src/devices/ha-presence-device.ts
2684
+ /** No reading yet: unknown, never 0 % (D393). */
2685
+ var COLD_BATTERY = {
2686
+ level: null,
2687
+ charging: "unknown",
2688
+ sleeping: false,
2689
+ lastUpdated: 0
2690
+ };
2684
2691
  var COLD_START$8 = {
2685
2692
  state: "unknown",
2686
2693
  location: null,
2687
2694
  gps: null,
2688
- batteryPercent: null,
2689
2695
  lastChangedAt: 0
2690
2696
  };
2691
2697
  /**
@@ -2695,14 +2701,17 @@ var COLD_START$8 = {
2695
2701
  *
2696
2702
  * HA attributes consumed:
2697
2703
  * - `latitude` / `longitude` / `gps_accuracy` → gps envelope
2698
- * - `battery_level` → batteryPercent
2704
+ * - `battery_level` → the `battery` cap (a presence provider never reports
2705
+ * battery on the presence status)
2699
2706
  * - `friendly_name` and the state value drive the `location` label
2700
2707
  */
2701
2708
  var HaPresenceDevice = class extends HaBaseChildDevice {
2702
2709
  constructor(ctx) {
2703
2710
  super(ctx);
2704
2711
  this.registerPresenceCap();
2712
+ this.registerBatteryCap();
2705
2713
  this.runtimeState.setCapState("presence", COLD_START$8);
2714
+ if (this.runtimeState.getCapState("battery") === void 0) this.runtimeState.setCapState("battery", COLD_BATTERY);
2706
2715
  }
2707
2716
  handleStatePush(state) {
2708
2717
  if (state.state === "unavailable") return;
@@ -2720,10 +2729,24 @@ var HaPresenceDevice = class extends HaBaseChildDevice {
2720
2729
  longitude: lon,
2721
2730
  accuracyMeters: acc ?? 0
2722
2731
  } : null,
2723
- batteryPercent: battery,
2724
2732
  lastChangedAt
2725
2733
  };
2726
2734
  this.runtimeState.setCapState("presence", slice);
2735
+ if (battery !== null) this.runtimeState.setCapState("battery", {
2736
+ level: Math.min(100, Math.max(0, battery)),
2737
+ charging: "unknown",
2738
+ sleeping: false,
2739
+ lastUpdated: lastChangedAt
2740
+ });
2741
+ }
2742
+ registerBatteryCap() {
2743
+ this.ctx.registerNativeCap(batteryCapability, {
2744
+ getStatus: async () => this.runtimeState.getCapState("battery") ?? COLD_BATTERY,
2745
+ wakeForStream: async () => ({
2746
+ awoke: true,
2747
+ durationMs: 0
2748
+ })
2749
+ });
2727
2750
  }
2728
2751
  registerPresenceCap() {
2729
2752
  this.ctx.registerNativeCap(presenceCapability, { getStatus: async () => {
@@ -3199,7 +3222,7 @@ var HaNotifierDevice = class extends HaBaseChildDevice {
3199
3222
  var COLD_START$4 = { lastFetchedAt: 0 };
3200
3223
  /**
3201
3224
  * HA-backed power-meter sensor child. Multi-field cap — the slice
3202
- * carries `watts` / `volts` / `amps` / `kwhTotal` etc., but each HA
3225
+ * carries `power` / `voltage` / `current` / `energy` etc., but each HA
3203
3226
  * `sensor.*` entity surfaces ONE metric (device_class = `power` /
3204
3227
  * `voltage` / `current` / `energy`). The class populates the field
3205
3228
  * corresponding to the entity's device_class.
@@ -3262,22 +3285,22 @@ function applyDeviceClass$1(prev, deviceClass, value, lastFetchedAt) {
3262
3285
  switch (deviceClass) {
3263
3286
  case "power": return {
3264
3287
  ...prev,
3265
- watts: value,
3288
+ power: value,
3266
3289
  lastFetchedAt
3267
3290
  };
3268
3291
  case "energy": return {
3269
3292
  ...prev,
3270
- kwhTotal: value,
3293
+ energy: value,
3271
3294
  lastFetchedAt
3272
3295
  };
3273
3296
  case "voltage": return {
3274
3297
  ...prev,
3275
- volts: value,
3298
+ voltage: value,
3276
3299
  lastFetchedAt
3277
3300
  };
3278
3301
  case "current": return {
3279
3302
  ...prev,
3280
- amps: value,
3303
+ current: value,
3281
3304
  lastFetchedAt
3282
3305
  };
3283
3306
  default: return null;
@@ -3343,12 +3366,12 @@ function applyDeviceClass(prev, deviceClass, value, lastFetchedAt) {
3343
3366
  switch (deviceClass) {
3344
3367
  case "co2": return {
3345
3368
  ...prev,
3346
- co2Ppm: value,
3369
+ co2: value,
3347
3370
  lastFetchedAt
3348
3371
  };
3349
3372
  case "volatile_organic_compounds": return {
3350
3373
  ...prev,
3351
- vocPpb: value,
3374
+ voc: value,
3352
3375
  lastFetchedAt
3353
3376
  };
3354
3377
  case "pm25":
@@ -3853,10 +3876,10 @@ var containerEntitySchema = object({
3853
3876
  dateTimeFormat: EnumSensorDateTimeFormatSchema.optional(),
3854
3877
  entityCategory: _enum(["config", "diagnostic"]).optional(),
3855
3878
  meterEntities: object({
3856
- watts: string().optional(),
3857
- kwhTotal: string().optional(),
3858
- volts: string().optional(),
3859
- amps: string().optional()
3879
+ power: string().optional(),
3880
+ energy: string().optional(),
3881
+ voltage: string().optional(),
3882
+ current: string().optional()
3860
3883
  }).optional(),
3861
3884
  foldedInto: string().optional()
3862
3885
  });
@@ -4040,10 +4063,10 @@ var haEntitySchema = object({
4040
4063
  entityCategory: _enum(["config", "diagnostic"]).optional(),
4041
4064
  /** Sibling meter sensors this entity reads as its own power-meter (D951). */
4042
4065
  meterEntities: object({
4043
- watts: string().optional(),
4044
- kwhTotal: string().optional(),
4045
- volts: string().optional(),
4046
- amps: string().optional()
4066
+ power: string().optional(),
4067
+ energy: string().optional(),
4068
+ voltage: string().optional(),
4069
+ current: string().optional()
4047
4070
  }).optional(),
4048
4071
  /** Set on a meter sensor folded into another entity: sectioned as Diagnostic. */
4049
4072
  foldedInto: string().optional()
@@ -4118,7 +4141,7 @@ function deriveBatteryStatus(entities, entityId, state, now) {
4118
4141
  if (isBinaryBattery(battery)) {
4119
4142
  if (state.state !== "on" && state.state !== "off") return null;
4120
4143
  return {
4121
- percentage: state.state === "on" ? BINARY_BATTERY_LOW_PCT : BINARY_BATTERY_NORMAL_PCT,
4144
+ level: state.state === "on" ? BINARY_BATTERY_LOW_PCT : BINARY_BATTERY_NORMAL_PCT,
4122
4145
  charging: "none",
4123
4146
  sleeping: false,
4124
4147
  lastUpdated: now,
@@ -4128,7 +4151,7 @@ function deriveBatteryStatus(entities, entityId, state, now) {
4128
4151
  const raw = Number(state.state);
4129
4152
  if (!Number.isFinite(raw)) return null;
4130
4153
  return {
4131
- percentage: Math.min(100, Math.max(0, raw)),
4154
+ level: Math.min(100, Math.max(0, raw)),
4132
4155
  charging: "none",
4133
4156
  sleeping: false,
4134
4157
  lastUpdated: now
@@ -4185,7 +4208,7 @@ var HaContainerDevice = class HaContainerDevice extends BaseDevice {
4185
4208
  this.batteryEntityId = batteryEntityId(cfg.entities);
4186
4209
  if (this.batteryEntityId !== null) {
4187
4210
  const COLD = {
4188
- percentage: null,
4211
+ level: null,
4189
4212
  charging: "unknown",
4190
4213
  sleeping: false,
4191
4214
  lastUpdated: 0