@camstack/addon-provider-homeassistant 1.1.6 → 1.1.8

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.
Files changed (3) hide show
  1. package/dist/addon.js +105 -16
  2. package/dist/addon.mjs +105 -16
  3. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -4629,7 +4629,7 @@ function _instanceof(cls, params = {}) {
4629
4629
  return inst;
4630
4630
  }
4631
4631
  //#endregion
4632
- //#region ../types/dist/sleep-NOH4yRwj.mjs
4632
+ //#region ../types/dist/sleep-DVmKHFGi.mjs
4633
4633
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4634
4634
  EventCategory["SystemBoot"] = "system.boot";
4635
4635
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -6429,6 +6429,17 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
6429
6429
  DeviceRole["HumiditySensor"] = "humidity-sensor";
6430
6430
  DeviceRole["AmbientLightSensor"] = "ambient-light-sensor";
6431
6431
  DeviceRole["PressureSensor"] = "pressure-sensor";
6432
+ /** Wind speed or direction (weather-station `wind-sensor` cap). */
6433
+ DeviceRole["WindSensor"] = "wind-sensor";
6434
+ /** Rain accumulation or rate (weather-station `rain-sensor` cap). */
6435
+ DeviceRole["RainSensor"] = "rain-sensor";
6436
+ /** UV index (weather-station `uv-sensor` cap). */
6437
+ DeviceRole["UvSensor"] = "uv-sensor";
6438
+ /** Solar irradiance W/m² (weather-station `solar-radiation-sensor` cap).
6439
+ * Distinct from AmbientLightSensor (lux). */
6440
+ DeviceRole["SolarRadiationSensor"] = "solar-radiation-sensor";
6441
+ /** Soil moisture % (garden/weather `soil-moisture-sensor` cap). */
6442
+ DeviceRole["SoilMoistureSensor"] = "soil-moisture-sensor";
6432
6443
  DeviceRole["PowerSensor"] = "power-sensor";
6433
6444
  DeviceRole["EnergySensor"] = "energy-sensor";
6434
6445
  DeviceRole["VoltageSensor"] = "voltage-sensor";
@@ -10098,15 +10109,18 @@ var humiditySensorCapability = {
10098
10109
  runtimeState: HumiditySensorStatusSchema
10099
10110
  };
10100
10111
  /**
10101
- * Image display cap. Models HA `image.*` entities a single still image
10102
- * exposed by an integration (a snapshot, a chart, a generated picture).
10112
+ * Image display cap. Models a single still image exposed by an integration
10113
+ * a snapshot, a chart, a generated picture, or a robot's cleaning-map render.
10103
10114
  *
10104
- * Read-only: there are no setters. The provider resolves the HA
10105
- * `entity_picture` (a relative, signed-token path) into an ABSOLUTE URL
10106
- * the browser loads directly the token stays in the query string so no
10107
- * auth header is required. The slice carries that URL plus the upstream
10108
- * last-updated timestamp; the image changes when the entity state (a
10109
- * timestamp) changes.
10115
+ * Read-only: there are no setters. The provider resolves whatever upstream
10116
+ * source it has into an ABSOLUTE URL the browser loads directly:
10117
+ * - HA `image.*` entities the `entity_picture` signed-token path
10118
+ * (token stays in the query string, so no auth header is needed);
10119
+ * - a Dreame/robot map the cloud/OSS map-image URL (or an addon
10120
+ * data-plane URL serving the rendered map bytes), exposed as its own
10121
+ * Image child device grouped under the robot's container.
10122
+ * The slice carries that URL plus the upstream last-updated timestamp; the
10123
+ * image changes when the source's last-updated marker changes.
10110
10124
  */
10111
10125
  var ImageStatusSchema = object({
10112
10126
  /** Absolute signed URL the browser loads directly. Null when the
@@ -10132,18 +10146,47 @@ var imageCapability = {
10132
10146
  */
10133
10147
  runtimeState: ImageStatusSchema
10134
10148
  };
10149
+ /**
10150
+ * Robotic lawn-mower cap. Models HA `lawn_mower.*` entities — anything
10151
+ * with a mowing lifecycle plus a dock action.
10152
+ *
10153
+ * Activity follows HA's canonical lawn-mower lifecycle: `idle` /
10154
+ * `mowing` / `paused` / `docked` / `error`. `batteryLevel` (0..100) is
10155
+ * nullable — some mowers don't report a battery percentage.
10156
+ *
10157
+ * `startMowing` begins a mowing run, `pause` halts it in place, and
10158
+ * `dock` sends the mower back to its charging station.
10159
+ */
10160
+ var LawnMowerActivitySchema = _enum([
10161
+ "idle",
10162
+ "mowing",
10163
+ "paused",
10164
+ "docked",
10165
+ "error"
10166
+ ]);
10167
+ /** Severity of the current device/error code — info (status), warning, error. */
10168
+ var DeviceCodeSeveritySchema = _enum([
10169
+ "info",
10170
+ "warning",
10171
+ "error"
10172
+ ]);
10135
10173
  var LawnMowerControlStatusSchema = object({
10136
10174
  /** Lifecycle activity of the mower. */
10137
- activity: _enum([
10138
- "idle",
10139
- "mowing",
10140
- "paused",
10141
- "docked",
10142
- "error"
10143
- ]),
10175
+ activity: LawnMowerActivitySchema,
10144
10176
  /** 0..100 battery percentage. Null when the device has no battery
10145
10177
  * reading. */
10146
10178
  batteryLevel: number().min(0).max(100).nullable(),
10179
+ /** 0..100 mowing-completion percentage of the current task, or null when no
10180
+ * task is active / progress is unavailable. */
10181
+ progressPercent: number().min(0).max(100).nullable(),
10182
+ /** Current device/event code (dynamic — mostly status, sometimes an error),
10183
+ * or null when unknown. */
10184
+ currentCode: number().nullable(),
10185
+ /** Human label for {@link currentCode}, or null when undecodable. */
10186
+ currentCodeLabel: string().nullable(),
10187
+ /** Severity of {@link currentCode}. `error` (and often `warning`) warrants UI
10188
+ * attention; `info` is normal status. */
10189
+ severity: DeviceCodeSeveritySchema,
10147
10190
  /** Ms epoch when the slice was last updated. */
10148
10191
  lastChangedAt: number()
10149
10192
  });
@@ -12369,6 +12412,7 @@ var VacuumStateSchema = _enum([
12369
12412
  "paused",
12370
12413
  "returning",
12371
12414
  "docked",
12415
+ "drying",
12372
12416
  "error"
12373
12417
  ]);
12374
12418
  /**
@@ -12407,6 +12451,12 @@ var VacuumControlStatusSchema = object({
12407
12451
  detergent: TankStatusSchema.nullable(),
12408
12452
  /** Dust bin. Null when the hardware has no dust bin. */
12409
12453
  dustBin: TankStatusSchema.nullable(),
12454
+ /** 0..100 cleaning-completion percentage of the current task, or null. */
12455
+ progressPercent: number().min(0).max(100).nullable(),
12456
+ /** Current error code (0 / null = no error). */
12457
+ errorCode: number().nullable(),
12458
+ /** Human label for {@link errorCode}, or null when none / undecodable. */
12459
+ errorLabel: string().nullable(),
12410
12460
  /** Ms epoch when the slice was last updated. */
12411
12461
  lastChangedAt: number()
12412
12462
  });
@@ -16922,6 +16972,9 @@ method(object({
16922
16972
  }), method(ReleaseInputSchema.extend({ addonId: string() }), _void(), {
16923
16973
  kind: "mutation",
16924
16974
  auth: "admin"
16975
+ }), method(ResyncInputSchema, ResyncResultSchema, {
16976
+ kind: "mutation",
16977
+ auth: "admin"
16925
16978
  }), method(object({
16926
16979
  deviceId: number(),
16927
16980
  key: string(),
@@ -20773,6 +20826,12 @@ Object.freeze({
20773
20826
  addonId: null,
20774
20827
  access: "create"
20775
20828
  },
20829
+ "deviceManager.adoptionResync": {
20830
+ capName: "device-manager",
20831
+ capScope: "system",
20832
+ addonId: null,
20833
+ access: "create"
20834
+ },
20776
20835
  "deviceManager.allocateDeviceId": {
20777
20836
  capName: "device-manager",
20778
20837
  capScope: "system",
@@ -27470,6 +27529,9 @@ var COLD_START$12 = {
27470
27529
  dirtyWater: null,
27471
27530
  detergent: null,
27472
27531
  dustBin: null,
27532
+ progressPercent: null,
27533
+ errorCode: null,
27534
+ errorLabel: null,
27473
27535
  lastChangedAt: 0
27474
27536
  };
27475
27537
  /**
@@ -27506,6 +27568,9 @@ var HaVacuumDevice = class extends HaBaseChildDevice {
27506
27568
  dirtyWater: null,
27507
27569
  detergent: null,
27508
27570
  dustBin: null,
27571
+ progressPercent: null,
27572
+ errorCode: null,
27573
+ errorLabel: lifecycleState === "error" ? readStringAttr$3(state.attributes, "error") : null,
27509
27574
  lastChangedAt
27510
27575
  });
27511
27576
  }
@@ -27562,6 +27627,10 @@ function readStringArrayAttr(attrs, key) {
27562
27627
  var COLD_START$11 = {
27563
27628
  activity: "idle",
27564
27629
  batteryLevel: null,
27630
+ progressPercent: null,
27631
+ currentCode: null,
27632
+ currentCodeLabel: null,
27633
+ severity: "info",
27565
27634
  lastChangedAt: 0
27566
27635
  };
27567
27636
  /**
@@ -27587,6 +27656,10 @@ var HaLawnMowerDevice = class extends HaBaseChildDevice {
27587
27656
  this.runtimeState.setCapState("lawn-mower-control", {
27588
27657
  activity,
27589
27658
  batteryLevel,
27659
+ progressPercent: readNumericAttr$1(state.attributes, "mowing_progress"),
27660
+ currentCode: null,
27661
+ currentCodeLabel: null,
27662
+ severity: activity === "error" ? "error" : "info",
27590
27663
  lastChangedAt
27591
27664
  });
27592
27665
  }
@@ -29885,6 +29958,22 @@ function mapNumericSensor(deviceClass, _attributes) {
29885
29958
  role: DeviceRole.PressureSensor,
29886
29959
  capabilities: ["pressure-sensor"]
29887
29960
  };
29961
+ case "wind_speed": return {
29962
+ deviceType: DeviceType.Sensor,
29963
+ role: DeviceRole.WindSensor,
29964
+ capabilities: ["numeric-sensor"]
29965
+ };
29966
+ case "precipitation":
29967
+ case "precipitation_intensity": return {
29968
+ deviceType: DeviceType.Sensor,
29969
+ role: DeviceRole.RainSensor,
29970
+ capabilities: ["numeric-sensor"]
29971
+ };
29972
+ case "irradiance": return {
29973
+ deviceType: DeviceType.Sensor,
29974
+ role: DeviceRole.SolarRadiationSensor,
29975
+ capabilities: ["numeric-sensor"]
29976
+ };
29888
29977
  case "power": return {
29889
29978
  deviceType: DeviceType.Sensor,
29890
29979
  role: DeviceRole.PowerSensor,
package/dist/addon.mjs CHANGED
@@ -4628,7 +4628,7 @@ function _instanceof(cls, params = {}) {
4628
4628
  return inst;
4629
4629
  }
4630
4630
  //#endregion
4631
- //#region ../types/dist/sleep-NOH4yRwj.mjs
4631
+ //#region ../types/dist/sleep-DVmKHFGi.mjs
4632
4632
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4633
4633
  EventCategory["SystemBoot"] = "system.boot";
4634
4634
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -6428,6 +6428,17 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
6428
6428
  DeviceRole["HumiditySensor"] = "humidity-sensor";
6429
6429
  DeviceRole["AmbientLightSensor"] = "ambient-light-sensor";
6430
6430
  DeviceRole["PressureSensor"] = "pressure-sensor";
6431
+ /** Wind speed or direction (weather-station `wind-sensor` cap). */
6432
+ DeviceRole["WindSensor"] = "wind-sensor";
6433
+ /** Rain accumulation or rate (weather-station `rain-sensor` cap). */
6434
+ DeviceRole["RainSensor"] = "rain-sensor";
6435
+ /** UV index (weather-station `uv-sensor` cap). */
6436
+ DeviceRole["UvSensor"] = "uv-sensor";
6437
+ /** Solar irradiance W/m² (weather-station `solar-radiation-sensor` cap).
6438
+ * Distinct from AmbientLightSensor (lux). */
6439
+ DeviceRole["SolarRadiationSensor"] = "solar-radiation-sensor";
6440
+ /** Soil moisture % (garden/weather `soil-moisture-sensor` cap). */
6441
+ DeviceRole["SoilMoistureSensor"] = "soil-moisture-sensor";
6431
6442
  DeviceRole["PowerSensor"] = "power-sensor";
6432
6443
  DeviceRole["EnergySensor"] = "energy-sensor";
6433
6444
  DeviceRole["VoltageSensor"] = "voltage-sensor";
@@ -10097,15 +10108,18 @@ var humiditySensorCapability = {
10097
10108
  runtimeState: HumiditySensorStatusSchema
10098
10109
  };
10099
10110
  /**
10100
- * Image display cap. Models HA `image.*` entities a single still image
10101
- * exposed by an integration (a snapshot, a chart, a generated picture).
10111
+ * Image display cap. Models a single still image exposed by an integration
10112
+ * a snapshot, a chart, a generated picture, or a robot's cleaning-map render.
10102
10113
  *
10103
- * Read-only: there are no setters. The provider resolves the HA
10104
- * `entity_picture` (a relative, signed-token path) into an ABSOLUTE URL
10105
- * the browser loads directly the token stays in the query string so no
10106
- * auth header is required. The slice carries that URL plus the upstream
10107
- * last-updated timestamp; the image changes when the entity state (a
10108
- * timestamp) changes.
10114
+ * Read-only: there are no setters. The provider resolves whatever upstream
10115
+ * source it has into an ABSOLUTE URL the browser loads directly:
10116
+ * - HA `image.*` entities the `entity_picture` signed-token path
10117
+ * (token stays in the query string, so no auth header is needed);
10118
+ * - a Dreame/robot map the cloud/OSS map-image URL (or an addon
10119
+ * data-plane URL serving the rendered map bytes), exposed as its own
10120
+ * Image child device grouped under the robot's container.
10121
+ * The slice carries that URL plus the upstream last-updated timestamp; the
10122
+ * image changes when the source's last-updated marker changes.
10109
10123
  */
10110
10124
  var ImageStatusSchema = object({
10111
10125
  /** Absolute signed URL the browser loads directly. Null when the
@@ -10131,18 +10145,47 @@ var imageCapability = {
10131
10145
  */
10132
10146
  runtimeState: ImageStatusSchema
10133
10147
  };
10148
+ /**
10149
+ * Robotic lawn-mower cap. Models HA `lawn_mower.*` entities — anything
10150
+ * with a mowing lifecycle plus a dock action.
10151
+ *
10152
+ * Activity follows HA's canonical lawn-mower lifecycle: `idle` /
10153
+ * `mowing` / `paused` / `docked` / `error`. `batteryLevel` (0..100) is
10154
+ * nullable — some mowers don't report a battery percentage.
10155
+ *
10156
+ * `startMowing` begins a mowing run, `pause` halts it in place, and
10157
+ * `dock` sends the mower back to its charging station.
10158
+ */
10159
+ var LawnMowerActivitySchema = _enum([
10160
+ "idle",
10161
+ "mowing",
10162
+ "paused",
10163
+ "docked",
10164
+ "error"
10165
+ ]);
10166
+ /** Severity of the current device/error code — info (status), warning, error. */
10167
+ var DeviceCodeSeveritySchema = _enum([
10168
+ "info",
10169
+ "warning",
10170
+ "error"
10171
+ ]);
10134
10172
  var LawnMowerControlStatusSchema = object({
10135
10173
  /** Lifecycle activity of the mower. */
10136
- activity: _enum([
10137
- "idle",
10138
- "mowing",
10139
- "paused",
10140
- "docked",
10141
- "error"
10142
- ]),
10174
+ activity: LawnMowerActivitySchema,
10143
10175
  /** 0..100 battery percentage. Null when the device has no battery
10144
10176
  * reading. */
10145
10177
  batteryLevel: number().min(0).max(100).nullable(),
10178
+ /** 0..100 mowing-completion percentage of the current task, or null when no
10179
+ * task is active / progress is unavailable. */
10180
+ progressPercent: number().min(0).max(100).nullable(),
10181
+ /** Current device/event code (dynamic — mostly status, sometimes an error),
10182
+ * or null when unknown. */
10183
+ currentCode: number().nullable(),
10184
+ /** Human label for {@link currentCode}, or null when undecodable. */
10185
+ currentCodeLabel: string().nullable(),
10186
+ /** Severity of {@link currentCode}. `error` (and often `warning`) warrants UI
10187
+ * attention; `info` is normal status. */
10188
+ severity: DeviceCodeSeveritySchema,
10146
10189
  /** Ms epoch when the slice was last updated. */
10147
10190
  lastChangedAt: number()
10148
10191
  });
@@ -12368,6 +12411,7 @@ var VacuumStateSchema = _enum([
12368
12411
  "paused",
12369
12412
  "returning",
12370
12413
  "docked",
12414
+ "drying",
12371
12415
  "error"
12372
12416
  ]);
12373
12417
  /**
@@ -12406,6 +12450,12 @@ var VacuumControlStatusSchema = object({
12406
12450
  detergent: TankStatusSchema.nullable(),
12407
12451
  /** Dust bin. Null when the hardware has no dust bin. */
12408
12452
  dustBin: TankStatusSchema.nullable(),
12453
+ /** 0..100 cleaning-completion percentage of the current task, or null. */
12454
+ progressPercent: number().min(0).max(100).nullable(),
12455
+ /** Current error code (0 / null = no error). */
12456
+ errorCode: number().nullable(),
12457
+ /** Human label for {@link errorCode}, or null when none / undecodable. */
12458
+ errorLabel: string().nullable(),
12409
12459
  /** Ms epoch when the slice was last updated. */
12410
12460
  lastChangedAt: number()
12411
12461
  });
@@ -16921,6 +16971,9 @@ method(object({
16921
16971
  }), method(ReleaseInputSchema.extend({ addonId: string() }), _void(), {
16922
16972
  kind: "mutation",
16923
16973
  auth: "admin"
16974
+ }), method(ResyncInputSchema, ResyncResultSchema, {
16975
+ kind: "mutation",
16976
+ auth: "admin"
16924
16977
  }), method(object({
16925
16978
  deviceId: number(),
16926
16979
  key: string(),
@@ -20772,6 +20825,12 @@ Object.freeze({
20772
20825
  addonId: null,
20773
20826
  access: "create"
20774
20827
  },
20828
+ "deviceManager.adoptionResync": {
20829
+ capName: "device-manager",
20830
+ capScope: "system",
20831
+ addonId: null,
20832
+ access: "create"
20833
+ },
20775
20834
  "deviceManager.allocateDeviceId": {
20776
20835
  capName: "device-manager",
20777
20836
  capScope: "system",
@@ -27469,6 +27528,9 @@ var COLD_START$12 = {
27469
27528
  dirtyWater: null,
27470
27529
  detergent: null,
27471
27530
  dustBin: null,
27531
+ progressPercent: null,
27532
+ errorCode: null,
27533
+ errorLabel: null,
27472
27534
  lastChangedAt: 0
27473
27535
  };
27474
27536
  /**
@@ -27505,6 +27567,9 @@ var HaVacuumDevice = class extends HaBaseChildDevice {
27505
27567
  dirtyWater: null,
27506
27568
  detergent: null,
27507
27569
  dustBin: null,
27570
+ progressPercent: null,
27571
+ errorCode: null,
27572
+ errorLabel: lifecycleState === "error" ? readStringAttr$3(state.attributes, "error") : null,
27508
27573
  lastChangedAt
27509
27574
  });
27510
27575
  }
@@ -27561,6 +27626,10 @@ function readStringArrayAttr(attrs, key) {
27561
27626
  var COLD_START$11 = {
27562
27627
  activity: "idle",
27563
27628
  batteryLevel: null,
27629
+ progressPercent: null,
27630
+ currentCode: null,
27631
+ currentCodeLabel: null,
27632
+ severity: "info",
27564
27633
  lastChangedAt: 0
27565
27634
  };
27566
27635
  /**
@@ -27586,6 +27655,10 @@ var HaLawnMowerDevice = class extends HaBaseChildDevice {
27586
27655
  this.runtimeState.setCapState("lawn-mower-control", {
27587
27656
  activity,
27588
27657
  batteryLevel,
27658
+ progressPercent: readNumericAttr$1(state.attributes, "mowing_progress"),
27659
+ currentCode: null,
27660
+ currentCodeLabel: null,
27661
+ severity: activity === "error" ? "error" : "info",
27589
27662
  lastChangedAt
27590
27663
  });
27591
27664
  }
@@ -29884,6 +29957,22 @@ function mapNumericSensor(deviceClass, _attributes) {
29884
29957
  role: DeviceRole.PressureSensor,
29885
29958
  capabilities: ["pressure-sensor"]
29886
29959
  };
29960
+ case "wind_speed": return {
29961
+ deviceType: DeviceType.Sensor,
29962
+ role: DeviceRole.WindSensor,
29963
+ capabilities: ["numeric-sensor"]
29964
+ };
29965
+ case "precipitation":
29966
+ case "precipitation_intensity": return {
29967
+ deviceType: DeviceType.Sensor,
29968
+ role: DeviceRole.RainSensor,
29969
+ capabilities: ["numeric-sensor"]
29970
+ };
29971
+ case "irradiance": return {
29972
+ deviceType: DeviceType.Sensor,
29973
+ role: DeviceRole.SolarRadiationSensor,
29974
+ capabilities: ["numeric-sensor"]
29975
+ };
29887
29976
  case "power": return {
29888
29977
  deviceType: DeviceType.Sensor,
29889
29978
  role: DeviceRole.PowerSensor,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-provider-homeassistant",
3
- "version": "1.1.6",
3
+ "version": "1.1.8",
4
4
  "description": "Home Assistant device provider addon for CamStack",
5
5
  "keywords": [
6
6
  "camstack",