@camstack/addon-provider-homeassistant 1.2.620 → 1.2.621

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.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_dist = require("./dist-Bnr6izPr.js");
2
+ const require_dist = require("./dist-DdSdlgON.js");
3
3
  let node_crypto = require("node:crypto");
4
4
  let node_zlib = require("node:zlib");
5
5
  //#region src/ha-admin-link.ts
@@ -2042,6 +2042,13 @@ var COLD_START$12 = {
2042
2042
  errorLabel: null,
2043
2043
  lastChangedAt: 0
2044
2044
  };
2045
+ var RUNNING_COLD$2 = {
2046
+ running: null,
2047
+ since: null,
2048
+ source: "native",
2049
+ phase: null,
2050
+ lastFetchedAt: 0
2051
+ };
2045
2052
  /**
2046
2053
  * HA-backed robot-vacuum device. One cap (`vacuum-control`) with the
2047
2054
  * cleaning lifecycle surface (start / pause / stop / returnToBase /
@@ -2057,7 +2064,12 @@ var HaVacuumDevice = class extends HaBaseChildDevice {
2057
2064
  constructor(ctx) {
2058
2065
  super(ctx);
2059
2066
  this.registerVacuumCap();
2067
+ this.registerRunningCap();
2060
2068
  this.runtimeState.setCapState("vacuum-control", COLD_START$12);
2069
+ this.runtimeState.setCapState("running-state", {
2070
+ ...RUNNING_COLD$2,
2071
+ lastFetchedAt: Date.now()
2072
+ });
2061
2073
  }
2062
2074
  handleStatePush(state) {
2063
2075
  if (state.state === "unavailable" || state.state === "unknown") return;
@@ -2077,6 +2089,11 @@ var HaVacuumDevice = class extends HaBaseChildDevice {
2077
2089
  errorLabel: lifecycleState === "error" ? readStringAttr$3(state.attributes, "error") : null,
2078
2090
  lastChangedAt
2079
2091
  });
2092
+ const previous = this.runtimeState.getCapState("running-state");
2093
+ this.runtimeState.setCapState("running-state", require_dist.runningFromVacuumState(lifecycleState, previous, lastChangedAt));
2094
+ }
2095
+ registerRunningCap() {
2096
+ this.ctx.registerNativeCap(require_dist.runningStateCapability, { getStatus: async () => this.runtimeState.getCapState("running-state") ?? RUNNING_COLD$2 });
2080
2097
  }
2081
2098
  registerVacuumCap() {
2082
2099
  this.ctx.registerNativeCap(require_dist.vacuumControlCapability, {
@@ -2137,6 +2154,13 @@ var COLD_START$11 = {
2137
2154
  severity: "info",
2138
2155
  lastChangedAt: 0
2139
2156
  };
2157
+ var RUNNING_COLD$1 = {
2158
+ running: null,
2159
+ since: null,
2160
+ source: "native",
2161
+ phase: null,
2162
+ lastFetchedAt: 0
2163
+ };
2140
2164
  /**
2141
2165
  * HA-backed robotic lawn-mower device. One cap (`lawn-mower-control`)
2142
2166
  * with the mowing lifecycle surface (startMowing / pause / dock).
@@ -2149,15 +2173,19 @@ var HaLawnMowerDevice = class extends HaBaseChildDevice {
2149
2173
  constructor(ctx) {
2150
2174
  super(ctx);
2151
2175
  this.registerLawnMowerCap();
2176
+ this.registerRunningCap();
2152
2177
  this.runtimeState.setCapState("lawn-mower-control", COLD_START$11);
2178
+ this.runtimeState.setCapState("running-state", {
2179
+ ...RUNNING_COLD$1,
2180
+ lastFetchedAt: Date.now()
2181
+ });
2153
2182
  }
2154
2183
  handleStatePush(state) {
2155
2184
  if (state.state === "unavailable" || state.state === "unknown") return;
2156
2185
  const lastChangedAt = Date.parse(state.last_changed) || Date.now();
2157
2186
  const activity = mapHaStateToLawnMowerActivity(state.state);
2158
- if (activity === null) return;
2159
2187
  const batteryLevel = readNumericAttr$1(state.attributes, "battery_level");
2160
- this.runtimeState.setCapState("lawn-mower-control", {
2188
+ if (activity !== null) this.runtimeState.setCapState("lawn-mower-control", {
2161
2189
  activity,
2162
2190
  batteryLevel,
2163
2191
  progressPercent: readNumericAttr$1(state.attributes, "mowing_progress"),
@@ -2166,6 +2194,11 @@ var HaLawnMowerDevice = class extends HaBaseChildDevice {
2166
2194
  severity: activity === "error" ? "error" : "info",
2167
2195
  lastChangedAt
2168
2196
  });
2197
+ const previous = this.runtimeState.getCapState("running-state");
2198
+ this.runtimeState.setCapState("running-state", require_dist.runningFromLawnMower(activity, previous, lastChangedAt));
2199
+ }
2200
+ registerRunningCap() {
2201
+ this.ctx.registerNativeCap(require_dist.runningStateCapability, { getStatus: async () => this.runtimeState.getCapState("running-state") ?? RUNNING_COLD$1 });
2169
2202
  }
2170
2203
  registerLawnMowerCap() {
2171
2204
  this.ctx.registerNativeCap(require_dist.lawnMowerControlCapability, {
@@ -2189,7 +2222,8 @@ function mapHaStateToLawnMowerActivity(s) {
2189
2222
  if (s === "docked") return "docked";
2190
2223
  if (s === "paused") return "paused";
2191
2224
  if (s === "error") return "error";
2192
- return "idle";
2225
+ if (s === "idle") return "idle";
2226
+ return null;
2193
2227
  }
2194
2228
  function readNumericAttr$1(attrs, key) {
2195
2229
  const v = attrs[key];
@@ -2210,6 +2244,13 @@ var COLD_START$10 = {
2210
2244
  repeat: null,
2211
2245
  lastChangedAt: 0
2212
2246
  };
2247
+ var RUNNING_COLD = {
2248
+ running: null,
2249
+ since: null,
2250
+ source: "native",
2251
+ phase: null,
2252
+ lastFetchedAt: 0
2253
+ };
2213
2254
  /**
2214
2255
  * HA-backed media player. Single `media-player` cap with the full
2215
2256
  * 12-method surface. HA's media_player.* attributes are extensive —
@@ -2219,14 +2260,20 @@ var HaMediaPlayerDevice = class extends HaBaseChildDevice {
2219
2260
  constructor(ctx) {
2220
2261
  super(ctx);
2221
2262
  this.registerMediaPlayerCap();
2263
+ this.registerRunningCap();
2222
2264
  this.runtimeState.setCapState("media-player", COLD_START$10);
2265
+ this.runtimeState.setCapState("running-state", {
2266
+ ...RUNNING_COLD,
2267
+ lastFetchedAt: Date.now()
2268
+ });
2223
2269
  }
2224
2270
  handleStatePush(state) {
2225
2271
  if (state.state === "unavailable" || state.state === "unknown") return;
2226
2272
  const lastChangedAt = Date.parse(state.last_changed) || Date.now();
2227
2273
  const attrs = state.attributes;
2274
+ const playerState = mapHaMediaPlayerState(state.state);
2228
2275
  const slice = {
2229
- state: mapHaState$1(state.state),
2276
+ state: playerState ?? "off",
2230
2277
  volumeLevel: readVolumeAsPercent(attrs),
2231
2278
  isMuted: readBooleanAttr(attrs, "is_volume_muted"),
2232
2279
  source: readStringAttr$2(attrs, "source") ?? "",
@@ -2239,6 +2286,11 @@ var HaMediaPlayerDevice = class extends HaBaseChildDevice {
2239
2286
  lastChangedAt
2240
2287
  };
2241
2288
  this.runtimeState.setCapState("media-player", slice);
2289
+ const previous = this.runtimeState.getCapState("running-state");
2290
+ this.runtimeState.setCapState("running-state", require_dist.runningFromMediaPlayer(playerState, previous, lastChangedAt));
2291
+ }
2292
+ registerRunningCap() {
2293
+ this.ctx.registerNativeCap(require_dist.runningStateCapability, { getStatus: async () => this.runtimeState.getCapState("running-state") ?? RUNNING_COLD });
2242
2294
  }
2243
2295
  registerMediaPlayerCap() {
2244
2296
  this.ctx.registerNativeCap(require_dist.mediaPlayerCapability, {
@@ -2287,7 +2339,7 @@ var HaMediaPlayerDevice = class extends HaBaseChildDevice {
2287
2339
  });
2288
2340
  }
2289
2341
  };
2290
- function mapHaState$1(s) {
2342
+ function mapHaMediaPlayerState(s) {
2291
2343
  switch (s) {
2292
2344
  case "off": return "off";
2293
2345
  case "on": return "on";
@@ -2296,7 +2348,7 @@ function mapHaState$1(s) {
2296
2348
  case "paused": return "paused";
2297
2349
  case "buffering": return "buffering";
2298
2350
  case "standby": return "standby";
2299
- default: return "idle";
2351
+ default: return null;
2300
2352
  }
2301
2353
  }
2302
2354
  function readVolumeAsPercent(attrs) {
package/dist/addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as motionCapability, A as carbonMonoxideCapability, At as entryBody, B as deviceAdoptionCapability, Bt as string, C as binaryCapability, Ct as DeviceType, D as buildDeviceAdminUrl, Dt as createEvent, E as buildAddonRouteProvider, Et as RecordSecretUnavailableError, Ft as discriminatedUnion, G as floodCapability, H as enumSensorCapability, Ht as unknown, I as contactCapability, It as literal, J as humiditySensorCapability, K as gasCapability, L as controlCapability, Lt as number, M as colorCapability, Mt as _enum, N as connectivityCapability, Nt as array, O as buttonCapability, Ot as defineEntryKind, Pt as boolean, Q as mediaPlayerCapability, R as coverCapability, Rt as object, S as bestLocationMatch, St as DeviceRole, T as brokerCapability, U as eventEmitterCapability, Ut as url, Vt as union, W as fanControlCapability, Wt as EventCategory, X as lawnMowerControlCapability, Y as imageCapability, Z as lockControlCapability, _ as airQualitySensorCapability, _t as valveCapability, at as parseAdminBase, b as automationControlCapability, bt as weatherCapability, ct as presenceCapability, dt as smokeCapability, et as normalizeUnit, ft as switchCapability, g as addonRoutesCapability, gt as vacuumControlCapability, h as accessoriesCapability, ht as updateCapability, j as climateControlCapability, k as calendarSourceCapability, kt as defineRecordKinds, lt as pressureSensorCapability, m as TargetSchema, mt as temperatureSensorCapability, n as BaseDevice, nt as notifierCapability, ot as powerMeterCapability, pt as tamperCapability, q as humidifierCapability, r as BaseDeviceProvider, rt as numericSensorCapability, st as prepareNotification, tt as notificationOutputCapability, u as EnumSensorDateTimeFormatSchema, ut as scriptRunnerCapability, v as alarmPanelCapability, vt as vibrationCapability, w as brightnessCapability, wt as errMsg, x as batteryCapability, xt as DeviceFeature, y as ambientLightSensorCapability, yt as waterHeaterCapability, z as deviceAdminLinkCapability, zt as record } from "./dist-kup3fDiz.mjs";
1
+ import { $ as motionCapability, A as carbonMonoxideCapability, At as RecordSecretUnavailableError, B as deviceAdoptionCapability, Bt as literal, C as binaryCapability, Ct as waterHeaterCapability, D as buildDeviceAdminUrl, Dt as DeviceType, E as buildAddonRouteProvider, Et as DeviceRole, G as floodCapability, Gt as union, H as enumSensorCapability, Ht as object, I as contactCapability, It as _enum, J as humiditySensorCapability, Jt as EventCategory, K as gasCapability, Kt as unknown, L as controlCapability, Lt as array, M as colorCapability, Mt as defineEntryKind, N as connectivityCapability, Nt as defineRecordKinds, O as buttonCapability, Ot as errMsg, Pt as entryBody, Q as mediaPlayerCapability, R as coverCapability, Rt as boolean, S as bestLocationMatch, St as vibrationCapability, T as brokerCapability, Tt as DeviceFeature, U as eventEmitterCapability, Ut as record, Vt as number, W as fanControlCapability, Wt as string, X as lawnMowerControlCapability, Y as imageCapability, Z as lockControlCapability, _ as airQualitySensorCapability, _t as tamperCapability, at as parseAdminBase, b as automationControlCapability, bt as vacuumControlCapability, ct as presenceCapability, dt as runningFromMediaPlayer, et as normalizeUnit, ft as runningFromVacuumState, g as addonRoutesCapability, gt as switchCapability, h as accessoriesCapability, ht as smokeCapability, j as climateControlCapability, jt as createEvent, k as calendarSourceCapability, lt as pressureSensorCapability, m as TargetSchema, mt as scriptRunnerCapability, n as BaseDevice, nt as notifierCapability, ot as powerMeterCapability, pt as runningStateCapability, q as humidifierCapability, qt as url, r as BaseDeviceProvider, rt as numericSensorCapability, st as prepareNotification, tt as notificationOutputCapability, u as EnumSensorDateTimeFormatSchema, ut as runningFromLawnMower, v as alarmPanelCapability, vt as temperatureSensorCapability, w as brightnessCapability, wt as weatherCapability, x as batteryCapability, xt as valveCapability, y as ambientLightSensorCapability, yt as updateCapability, z as deviceAdminLinkCapability, zt as discriminatedUnion } from "./dist-BvE3GGAV.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
@@ -2041,6 +2041,13 @@ var COLD_START$12 = {
2041
2041
  errorLabel: null,
2042
2042
  lastChangedAt: 0
2043
2043
  };
2044
+ var RUNNING_COLD$2 = {
2045
+ running: null,
2046
+ since: null,
2047
+ source: "native",
2048
+ phase: null,
2049
+ lastFetchedAt: 0
2050
+ };
2044
2051
  /**
2045
2052
  * HA-backed robot-vacuum device. One cap (`vacuum-control`) with the
2046
2053
  * cleaning lifecycle surface (start / pause / stop / returnToBase /
@@ -2056,7 +2063,12 @@ var HaVacuumDevice = class extends HaBaseChildDevice {
2056
2063
  constructor(ctx) {
2057
2064
  super(ctx);
2058
2065
  this.registerVacuumCap();
2066
+ this.registerRunningCap();
2059
2067
  this.runtimeState.setCapState("vacuum-control", COLD_START$12);
2068
+ this.runtimeState.setCapState("running-state", {
2069
+ ...RUNNING_COLD$2,
2070
+ lastFetchedAt: Date.now()
2071
+ });
2060
2072
  }
2061
2073
  handleStatePush(state) {
2062
2074
  if (state.state === "unavailable" || state.state === "unknown") return;
@@ -2076,6 +2088,11 @@ var HaVacuumDevice = class extends HaBaseChildDevice {
2076
2088
  errorLabel: lifecycleState === "error" ? readStringAttr$3(state.attributes, "error") : null,
2077
2089
  lastChangedAt
2078
2090
  });
2091
+ const previous = this.runtimeState.getCapState("running-state");
2092
+ this.runtimeState.setCapState("running-state", runningFromVacuumState(lifecycleState, previous, lastChangedAt));
2093
+ }
2094
+ registerRunningCap() {
2095
+ this.ctx.registerNativeCap(runningStateCapability, { getStatus: async () => this.runtimeState.getCapState("running-state") ?? RUNNING_COLD$2 });
2079
2096
  }
2080
2097
  registerVacuumCap() {
2081
2098
  this.ctx.registerNativeCap(vacuumControlCapability, {
@@ -2136,6 +2153,13 @@ var COLD_START$11 = {
2136
2153
  severity: "info",
2137
2154
  lastChangedAt: 0
2138
2155
  };
2156
+ var RUNNING_COLD$1 = {
2157
+ running: null,
2158
+ since: null,
2159
+ source: "native",
2160
+ phase: null,
2161
+ lastFetchedAt: 0
2162
+ };
2139
2163
  /**
2140
2164
  * HA-backed robotic lawn-mower device. One cap (`lawn-mower-control`)
2141
2165
  * with the mowing lifecycle surface (startMowing / pause / dock).
@@ -2148,15 +2172,19 @@ var HaLawnMowerDevice = class extends HaBaseChildDevice {
2148
2172
  constructor(ctx) {
2149
2173
  super(ctx);
2150
2174
  this.registerLawnMowerCap();
2175
+ this.registerRunningCap();
2151
2176
  this.runtimeState.setCapState("lawn-mower-control", COLD_START$11);
2177
+ this.runtimeState.setCapState("running-state", {
2178
+ ...RUNNING_COLD$1,
2179
+ lastFetchedAt: Date.now()
2180
+ });
2152
2181
  }
2153
2182
  handleStatePush(state) {
2154
2183
  if (state.state === "unavailable" || state.state === "unknown") return;
2155
2184
  const lastChangedAt = Date.parse(state.last_changed) || Date.now();
2156
2185
  const activity = mapHaStateToLawnMowerActivity(state.state);
2157
- if (activity === null) return;
2158
2186
  const batteryLevel = readNumericAttr$1(state.attributes, "battery_level");
2159
- this.runtimeState.setCapState("lawn-mower-control", {
2187
+ if (activity !== null) this.runtimeState.setCapState("lawn-mower-control", {
2160
2188
  activity,
2161
2189
  batteryLevel,
2162
2190
  progressPercent: readNumericAttr$1(state.attributes, "mowing_progress"),
@@ -2165,6 +2193,11 @@ var HaLawnMowerDevice = class extends HaBaseChildDevice {
2165
2193
  severity: activity === "error" ? "error" : "info",
2166
2194
  lastChangedAt
2167
2195
  });
2196
+ const previous = this.runtimeState.getCapState("running-state");
2197
+ this.runtimeState.setCapState("running-state", runningFromLawnMower(activity, previous, lastChangedAt));
2198
+ }
2199
+ registerRunningCap() {
2200
+ this.ctx.registerNativeCap(runningStateCapability, { getStatus: async () => this.runtimeState.getCapState("running-state") ?? RUNNING_COLD$1 });
2168
2201
  }
2169
2202
  registerLawnMowerCap() {
2170
2203
  this.ctx.registerNativeCap(lawnMowerControlCapability, {
@@ -2188,7 +2221,8 @@ function mapHaStateToLawnMowerActivity(s) {
2188
2221
  if (s === "docked") return "docked";
2189
2222
  if (s === "paused") return "paused";
2190
2223
  if (s === "error") return "error";
2191
- return "idle";
2224
+ if (s === "idle") return "idle";
2225
+ return null;
2192
2226
  }
2193
2227
  function readNumericAttr$1(attrs, key) {
2194
2228
  const v = attrs[key];
@@ -2209,6 +2243,13 @@ var COLD_START$10 = {
2209
2243
  repeat: null,
2210
2244
  lastChangedAt: 0
2211
2245
  };
2246
+ var RUNNING_COLD = {
2247
+ running: null,
2248
+ since: null,
2249
+ source: "native",
2250
+ phase: null,
2251
+ lastFetchedAt: 0
2252
+ };
2212
2253
  /**
2213
2254
  * HA-backed media player. Single `media-player` cap with the full
2214
2255
  * 12-method surface. HA's media_player.* attributes are extensive —
@@ -2218,14 +2259,20 @@ var HaMediaPlayerDevice = class extends HaBaseChildDevice {
2218
2259
  constructor(ctx) {
2219
2260
  super(ctx);
2220
2261
  this.registerMediaPlayerCap();
2262
+ this.registerRunningCap();
2221
2263
  this.runtimeState.setCapState("media-player", COLD_START$10);
2264
+ this.runtimeState.setCapState("running-state", {
2265
+ ...RUNNING_COLD,
2266
+ lastFetchedAt: Date.now()
2267
+ });
2222
2268
  }
2223
2269
  handleStatePush(state) {
2224
2270
  if (state.state === "unavailable" || state.state === "unknown") return;
2225
2271
  const lastChangedAt = Date.parse(state.last_changed) || Date.now();
2226
2272
  const attrs = state.attributes;
2273
+ const playerState = mapHaMediaPlayerState(state.state);
2227
2274
  const slice = {
2228
- state: mapHaState$1(state.state),
2275
+ state: playerState ?? "off",
2229
2276
  volumeLevel: readVolumeAsPercent(attrs),
2230
2277
  isMuted: readBooleanAttr(attrs, "is_volume_muted"),
2231
2278
  source: readStringAttr$2(attrs, "source") ?? "",
@@ -2238,6 +2285,11 @@ var HaMediaPlayerDevice = class extends HaBaseChildDevice {
2238
2285
  lastChangedAt
2239
2286
  };
2240
2287
  this.runtimeState.setCapState("media-player", slice);
2288
+ const previous = this.runtimeState.getCapState("running-state");
2289
+ this.runtimeState.setCapState("running-state", runningFromMediaPlayer(playerState, previous, lastChangedAt));
2290
+ }
2291
+ registerRunningCap() {
2292
+ this.ctx.registerNativeCap(runningStateCapability, { getStatus: async () => this.runtimeState.getCapState("running-state") ?? RUNNING_COLD });
2241
2293
  }
2242
2294
  registerMediaPlayerCap() {
2243
2295
  this.ctx.registerNativeCap(mediaPlayerCapability, {
@@ -2286,7 +2338,7 @@ var HaMediaPlayerDevice = class extends HaBaseChildDevice {
2286
2338
  });
2287
2339
  }
2288
2340
  };
2289
- function mapHaState$1(s) {
2341
+ function mapHaMediaPlayerState(s) {
2290
2342
  switch (s) {
2291
2343
  case "off": return "off";
2292
2344
  case "on": return "on";
@@ -2295,7 +2347,7 @@ function mapHaState$1(s) {
2295
2347
  case "paused": return "paused";
2296
2348
  case "buffering": return "buffering";
2297
2349
  case "standby": return "standby";
2298
- default: return "idle";
2350
+ default: return null;
2299
2351
  }
2300
2352
  }
2301
2353
  function readVolumeAsPercent(attrs) {