@camstack/addon-provider-homeassistant 1.2.601 → 1.2.603

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-BXMUyWXo.js");
2
+ const require_dist = require("./dist-DVNChk7-.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
@@ -6321,6 +6321,7 @@ var PARENT_TYPE_PRIORITY = [
6321
6321
  require_dist.DeviceType.Fan,
6322
6322
  require_dist.DeviceType.Vacuum,
6323
6323
  require_dist.DeviceType.LawnMower,
6324
+ require_dist.DeviceType.Dishwasher,
6324
6325
  require_dist.DeviceType.Light,
6325
6326
  require_dist.DeviceType.Switch,
6326
6327
  require_dist.DeviceType.Siren,
package/dist/addon.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { A as connectivityCapability, At as boolean, B as floodCapability, Bt as EventCategory, C as buildAddonRouteProvider, Ct as defineEntryKind, D as carbonMonoxideCapability, Dt as settingsBrokersAdoptsFrom, E as calendarSourceCapability, F as deviceAdoptionCapability, Ft as record, G as lawnMowerControlCapability, H as humidifierCapability, It as string, J as motionCapability, K as lockControlCapability, L as enumSensorCapability, Lt as union, M as controlCapability, Mt as literal, N as coverCapability, Nt as number, O as climateControlCapability, Ot as _enum, P as deviceAdminLinkCapability, Pt as object, Q as numericSensorCapability, R as eventEmitterCapability, Rt as unknown, S as brokerCapability, St as createEvent, T as buttonCapability, Tt as entryBody, U as humiditySensorCapability, V as gasCapability, W as imageCapability, X as notificationOutputCapability, Y as normalizeUnit, Z as notifierCapability, _ as automationControlCapability, _t as DeviceRole, at as scriptRunnerCapability, b as binaryCapability, ct as tamperCapability, d as TargetSchema, dt as vacuumControlCapability, et as parseAdminBase, f as accessoriesCapability, ft as valveCapability, g as ambientLightSensorCapability, gt as DeviceFeature, h as alarmPanelCapability, ht as weatherCapability, it as pressureSensorCapability, j as contactCapability, jt as discriminatedUnion, k as colorCapability, kt as array, lt as temperatureSensorCapability, m as airQualitySensorCapability, mt as waterHeaterCapability, n as BaseDevice, nt as prepareNotification, ot as smokeCapability, p as addonRoutesCapability, pt as vibrationCapability, q as mediaPlayerCapability, r as BaseDeviceProvider, rt as presenceCapability, s as EnumSensorDateTimeFormatSchema, st as switchCapability, tt as powerMeterCapability, ut as updateCapability, v as batteryCapability, vt as DeviceType, w as buildDeviceAdminUrl, wt as defineRecordKinds, x as brightnessCapability, xt as RecordSecretUnavailableError, y as bestLocationMatch, yt as errMsg, z as fanControlCapability, zt as url } from "./dist-BQLjEZxA.mjs";
1
+ import { A as connectivityCapability, At as boolean, B as floodCapability, Bt as EventCategory, C as buildAddonRouteProvider, Ct as defineEntryKind, D as carbonMonoxideCapability, Dt as settingsBrokersAdoptsFrom, E as calendarSourceCapability, F as deviceAdoptionCapability, Ft as record, G as lawnMowerControlCapability, H as humidifierCapability, It as string, J as motionCapability, K as lockControlCapability, L as enumSensorCapability, Lt as union, M as controlCapability, Mt as literal, N as coverCapability, Nt as number, O as climateControlCapability, Ot as _enum, P as deviceAdminLinkCapability, Pt as object, Q as numericSensorCapability, R as eventEmitterCapability, Rt as unknown, S as brokerCapability, St as createEvent, T as buttonCapability, Tt as entryBody, U as humiditySensorCapability, V as gasCapability, W as imageCapability, X as notificationOutputCapability, Y as normalizeUnit, Z as notifierCapability, _ as automationControlCapability, _t as DeviceRole, at as scriptRunnerCapability, b as binaryCapability, ct as tamperCapability, d as TargetSchema, dt as vacuumControlCapability, et as parseAdminBase, f as accessoriesCapability, ft as valveCapability, g as ambientLightSensorCapability, gt as DeviceFeature, h as alarmPanelCapability, ht as weatherCapability, it as pressureSensorCapability, j as contactCapability, jt as discriminatedUnion, k as colorCapability, kt as array, lt as temperatureSensorCapability, m as airQualitySensorCapability, mt as waterHeaterCapability, n as BaseDevice, nt as prepareNotification, ot as smokeCapability, p as addonRoutesCapability, pt as vibrationCapability, q as mediaPlayerCapability, r as BaseDeviceProvider, rt as presenceCapability, s as EnumSensorDateTimeFormatSchema, st as switchCapability, tt as powerMeterCapability, ut as updateCapability, v as batteryCapability, vt as DeviceType, w as buildDeviceAdminUrl, wt as defineRecordKinds, x as brightnessCapability, xt as RecordSecretUnavailableError, y as bestLocationMatch, yt as errMsg, z as fanControlCapability, zt as url } from "./dist-CM5Z-Rdj.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
@@ -6320,6 +6320,7 @@ var PARENT_TYPE_PRIORITY = [
6320
6320
  DeviceType.Fan,
6321
6321
  DeviceType.Vacuum,
6322
6322
  DeviceType.LawnMower,
6323
+ DeviceType.Dishwasher,
6323
6324
  DeviceType.Light,
6324
6325
  DeviceType.Switch,
6325
6326
  DeviceType.Siren,
@@ -5537,7 +5537,7 @@ var ZodIssueCode = {
5537
5537
  var ZodFirstPartyTypeKind;
5538
5538
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5539
5539
  //#endregion
5540
- //#region ../types/dist/sleep-bZIhUvjd.mjs
5540
+ //#region ../types/dist/sleep-BegKjwUu.mjs
5541
5541
  /**
5542
5542
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5543
5543
  * window to float samples (D455).
@@ -8815,7 +8815,7 @@ object({
8815
8815
  params: record(string(), union([string(), number()])).optional()
8816
8816
  });
8817
8817
  //#endregion
8818
- //#region ../types/dist/err-msg--2RrYiLO.mjs
8818
+ //#region ../types/dist/err-msg-BXKzRBwg.mjs
8819
8819
  var DeviceType = /* @__PURE__ */ function(DeviceType) {
8820
8820
  DeviceType["Camera"] = "camera";
8821
8821
  DeviceType["Hub"] = "hub";
@@ -8907,6 +8907,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
8907
8907
  * native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
8908
8908
  * integrations sharing the same food/desiccant/hopper surface. */
8909
8909
  DeviceType["PetFeeder"] = "pet-feeder";
8910
+ /** Built-in dishwasher — program lifecycle, door / remote-start gates,
8911
+ * salt and rinse-aid levels. Installed with the `dishwasher` cap.
8912
+ * Sources: native Bosch Home Connect, reusable by similar integrations. */
8913
+ DeviceType["Dishwasher"] = "dishwasher";
8910
8914
  return DeviceType;
8911
8915
  }({});
8912
8916
  var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
@@ -9164,7 +9168,7 @@ function errMsg(err) {
9164
9168
  return String(err);
9165
9169
  }
9166
9170
  //#endregion
9167
- //#region ../types/dist/composition-DOwQB_Ua.mjs
9171
+ //#region ../types/dist/composition-CB6PMT9p.mjs
9168
9172
  /**
9169
9173
  * The ffmpeg build every CamStack node downloads, per platform and arch.
9170
9174
  *
@@ -13713,8 +13717,13 @@ var AlertSeveritySchema = _enum([
13713
13717
  "info",
13714
13718
  "success",
13715
13719
  "warning",
13716
- "error"
13720
+ "error",
13721
+ "critical"
13717
13722
  ]);
13723
+ var AlertActionSchema = object({
13724
+ label: string(),
13725
+ href: string().optional()
13726
+ });
13718
13727
  var AlertStatusSchema = _enum([
13719
13728
  "active",
13720
13729
  "in-progress",
@@ -13732,6 +13741,7 @@ var AlertSchema = object({
13732
13741
  severity: AlertSeveritySchema,
13733
13742
  title: string(),
13734
13743
  message: string(),
13744
+ action: AlertActionSchema.optional(),
13735
13745
  status: AlertStatusSchema,
13736
13746
  progress: number().optional(),
13737
13747
  read: boolean(),
@@ -18334,7 +18344,11 @@ var deviceDiscoveryCapability = {
18334
18344
  };
18335
18345
  /**
18336
18346
  * `device-adoption` — generic discovery + adoption surface,
18337
- * system-scoped singleton. The de-HA-ified successor to `ha-discovery`:
18347
+ * system-scoped collection (one provider per integration addon), routed
18348
+ * by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
18349
+ * pin model as `connection-test`. The admin UI keeps using
18350
+ * `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
18351
+ * successor to `ha-discovery`:
18338
18352
  * keyed by `integrationId` (the addon resolves integrationId → broker
18339
18353
  * internally) rather than a connection-specific `brokerId`, and it
18340
18354
  * REUSES the shared `DiscoveredChildDevice` candidate type from
@@ -18499,7 +18513,7 @@ var ResyncResultSchema = object({
18499
18513
  var deviceAdoptionCapability = {
18500
18514
  name: "device-adoption",
18501
18515
  scope: "system",
18502
- mode: "singleton",
18516
+ mode: "collection",
18503
18517
  status: {
18504
18518
  schema: AdoptionStatusSchema,
18505
18519
  kind: "poll"
@@ -54666,7 +54680,8 @@ var batteryCapability = {
54666
54680
  DeviceType.Button,
54667
54681
  DeviceType.Switch,
54668
54682
  DeviceType.PetFeeder,
54669
- DeviceType.Container
54683
+ DeviceType.Container,
54684
+ DeviceType.Thermostat
54670
54685
  ],
54671
54686
  methods: {
54672
54687
  /**
@@ -56166,6 +56181,161 @@ onStatusChanged: { data: object({
56166
56181
  * whether persisting is worth a SQLite commit. */
56167
56182
  volatileStateFields: ["lastChangedAt"]
56168
56183
  };
56184
+ /**
56185
+ * Smart-dishwasher cap — program lifecycle, door / remote-start gates,
56186
+ * consumable levels (salt, rinse aid) and common program options.
56187
+ *
56188
+ * Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
56189
+ * by any integration that exposes the same program / option surface.
56190
+ *
56191
+ * `kind: 'poll'` — cloud REST APIs typically have no push channel; the
56192
+ * provider refreshes the slice on an interval and eagerly after commands.
56193
+ */
56194
+ var DishwasherStateSchema = _enum([
56195
+ "idle",
56196
+ "running",
56197
+ "paused",
56198
+ "finished",
56199
+ "error",
56200
+ "unavailable"
56201
+ ]);
56202
+ var DishwasherConsumableLevelSchema = _enum([
56203
+ "ok",
56204
+ "low",
56205
+ "empty"
56206
+ ]);
56207
+ var DishwasherStatusSchema = object({
56208
+ state: DishwasherStateSchema,
56209
+ /** Active program id/name, or null when none selected / unknown. */
56210
+ program: string().nullable(),
56211
+ /** Program tokens the hardware accepts — drives the UI selector. */
56212
+ availablePrograms: array(string()),
56213
+ /** Minutes remaining on the active cycle, or null when not running. */
56214
+ remainingMinutes: number().int().nonnegative().nullable(),
56215
+ /** Cycle completion 0..100, or null when not applicable. */
56216
+ progressPercent: number().min(0).max(100).nullable(),
56217
+ /** True when the door is reported open. */
56218
+ doorOpen: boolean(),
56219
+ /** True when remote start is allowed (door closed, power on, etc.). */
56220
+ remoteStartAllowed: boolean(),
56221
+ /** Main power / switched-on state. */
56222
+ powerOn: boolean(),
56223
+ saltLevel: DishwasherConsumableLevelSchema.nullable(),
56224
+ rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
56225
+ halfLoad: boolean(),
56226
+ hygienePlus: boolean(),
56227
+ /** Extra dry option when the appliance exposes it. */
56228
+ extraDry: boolean(),
56229
+ /** Intensive zone (lower basket) when the appliance exposes it. */
56230
+ intensiveZone: boolean(),
56231
+ /** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
56232
+ varioSpeedPlus: boolean(),
56233
+ /** Child lock (controls disabled on the appliance). */
56234
+ childLock: boolean(),
56235
+ errorCode: number().nullable(),
56236
+ errorLabel: string().nullable(),
56237
+ lastFetchedAt: number()
56238
+ });
56239
+ var dishwasherCapability = {
56240
+ name: "dishwasher",
56241
+ scope: "device",
56242
+ deviceNative: true,
56243
+ mode: "singleton",
56244
+ deviceTypes: [DeviceType.Dishwasher],
56245
+ methods: {
56246
+ start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
56247
+ kind: "mutation",
56248
+ auth: "protected"
56249
+ }),
56250
+ pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
56251
+ kind: "mutation",
56252
+ auth: "protected"
56253
+ }),
56254
+ stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
56255
+ kind: "mutation",
56256
+ auth: "protected"
56257
+ }),
56258
+ setProgram: method(object({
56259
+ deviceId: number().int().nonnegative(),
56260
+ program: string().min(1)
56261
+ }), _void(), {
56262
+ kind: "mutation",
56263
+ auth: "protected"
56264
+ }),
56265
+ setPower: method(object({
56266
+ deviceId: number().int().nonnegative(),
56267
+ on: boolean()
56268
+ }), _void(), {
56269
+ kind: "mutation",
56270
+ auth: "protected"
56271
+ }),
56272
+ setHalfLoad: method(object({
56273
+ deviceId: number().int().nonnegative(),
56274
+ on: boolean()
56275
+ }), _void(), {
56276
+ kind: "mutation",
56277
+ auth: "protected"
56278
+ }),
56279
+ setHygienePlus: method(object({
56280
+ deviceId: number().int().nonnegative(),
56281
+ on: boolean()
56282
+ }), _void(), {
56283
+ kind: "mutation",
56284
+ auth: "protected"
56285
+ }),
56286
+ setExtraDry: method(object({
56287
+ deviceId: number().int().nonnegative(),
56288
+ on: boolean()
56289
+ }), _void(), {
56290
+ kind: "mutation",
56291
+ auth: "protected"
56292
+ }),
56293
+ setIntensiveZone: method(object({
56294
+ deviceId: number().int().nonnegative(),
56295
+ on: boolean()
56296
+ }), _void(), {
56297
+ kind: "mutation",
56298
+ auth: "protected"
56299
+ }),
56300
+ setVarioSpeedPlus: method(object({
56301
+ deviceId: number().int().nonnegative(),
56302
+ on: boolean()
56303
+ }), _void(), {
56304
+ kind: "mutation",
56305
+ auth: "protected"
56306
+ }),
56307
+ setChildLock: method(object({
56308
+ deviceId: number().int().nonnegative(),
56309
+ on: boolean()
56310
+ }), _void(), {
56311
+ kind: "mutation",
56312
+ auth: "protected"
56313
+ }),
56314
+ setOption: method(object({
56315
+ deviceId: number().int().nonnegative(),
56316
+ key: string().min(1),
56317
+ value: union([
56318
+ boolean(),
56319
+ string(),
56320
+ number()
56321
+ ])
56322
+ }), _void(), {
56323
+ kind: "mutation",
56324
+ auth: "protected"
56325
+ })
56326
+ },
56327
+ status: {
56328
+ schema: DishwasherStatusSchema,
56329
+ kind: "poll"
56330
+ },
56331
+ runtimeState: DishwasherStatusSchema,
56332
+ durability: "session",
56333
+ history: { fields: { progressPercent: {
56334
+ kind: "gauge",
56335
+ unit: "%",
56336
+ deadband: 2
56337
+ } } }
56338
+ };
56169
56339
  var DoorbellStatusSchema = object({
56170
56340
  /** Ms epoch of the last press. null = never observed since this provider started. */
56171
56341
  lastPressedAt: number().nullable(),
@@ -56968,6 +57138,32 @@ var gasCapability = {
56968
57138
  * whether persisting is worth a SQLite commit. */
56969
57139
  volatileStateFields: ["lastChangedAt"]
56970
57140
  };
57141
+ var HeatingValveStatusSchema = object({
57142
+ /** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
57143
+ position: number().min(0).max(100).nullable(),
57144
+ /** Ms epoch when the slice was last updated (push or poll). */
57145
+ lastFetchedAt: number()
57146
+ });
57147
+ var heatingValveCapability = {
57148
+ name: "heating-valve",
57149
+ scope: "device",
57150
+ deviceNative: true,
57151
+ mode: "singleton",
57152
+ deviceTypes: [DeviceType.Thermostat],
57153
+ methods: {},
57154
+ status: {
57155
+ schema: HeatingValveStatusSchema,
57156
+ kind: "push"
57157
+ },
57158
+ runtimeState: HeatingValveStatusSchema,
57159
+ durability: "session",
57160
+ history: { fields: { position: {
57161
+ kind: "gauge",
57162
+ unit: "%",
57163
+ deadband: 1
57164
+ } } },
57165
+ volatileStateFields: ["lastFetchedAt"]
57166
+ };
56971
57167
  /**
56972
57168
  * Humidifier / dehumidifier cap. Models HA `humidifier.*` entities —
56973
57169
  * an on/off actuator with an optional target-humidity setpoint and an
@@ -66388,6 +66584,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
66388
66584
  dayNight: dayNightCapability,
66389
66585
  deviceDiscovery: deviceDiscoveryCapability,
66390
66586
  deviceStatus: deviceStatusCapability,
66587
+ dishwasher: dishwasherCapability,
66391
66588
  doorbell: doorbellCapability,
66392
66589
  enumSensor: enumSensorCapability,
66393
66590
  eventEmitter: eventEmitterCapability,
@@ -66395,6 +66592,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
66395
66592
  featureProbe: featureProbeCapability,
66396
66593
  flood: floodCapability,
66397
66594
  gas: gasCapability,
66595
+ heatingValve: heatingValveCapability,
66398
66596
  humidifier: humidifierCapability,
66399
66597
  humiditySensor: humiditySensorCapability,
66400
66598
  image: imageCapability,
@@ -67120,6 +67318,12 @@ var BaseDeviceProvider = class extends BaseAddon {
67120
67318
  provider: this
67121
67319
  }];
67122
67320
  }
67321
+ /** Flatten `super.onInitialize()` whether it returned an array or an envelope. */
67322
+ providerRegistrationsFromSuper(result) {
67323
+ if (Array.isArray(result)) return result;
67324
+ if (result !== void 0 && result.providers !== void 0) return [...result.providers];
67325
+ return [];
67326
+ }
67123
67327
  async onShutdown() {
67124
67328
  this._restoreShuttingDown = true;
67125
67329
  this.cancelRestoreRetries();
@@ -67646,7 +67850,7 @@ var BaseDeviceProvider = class extends BaseAddon {
67646
67850
  return toDeviceSummary(device, this.addonId);
67647
67851
  }
67648
67852
  };
67649
- DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Siren, DeviceType.Light, DeviceType.Fan, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder;
67853
+ DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Siren, DeviceType.Light, DeviceType.Fan, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher;
67650
67854
  new Set(Object.values(DeviceType));
67651
67855
  Object.freeze({
67652
67856
  "accessories.getStatus": {
@@ -70067,6 +70271,84 @@ Object.freeze({
70067
70271
  addonId: null,
70068
70272
  access: "view"
70069
70273
  },
70274
+ "dishwasher.getStatus": {
70275
+ capName: "dishwasher",
70276
+ capScope: "device",
70277
+ addonId: null,
70278
+ access: "view"
70279
+ },
70280
+ "dishwasher.pause": {
70281
+ capName: "dishwasher",
70282
+ capScope: "device",
70283
+ addonId: null,
70284
+ access: "create"
70285
+ },
70286
+ "dishwasher.setChildLock": {
70287
+ capName: "dishwasher",
70288
+ capScope: "device",
70289
+ addonId: null,
70290
+ access: "create"
70291
+ },
70292
+ "dishwasher.setExtraDry": {
70293
+ capName: "dishwasher",
70294
+ capScope: "device",
70295
+ addonId: null,
70296
+ access: "create"
70297
+ },
70298
+ "dishwasher.setHalfLoad": {
70299
+ capName: "dishwasher",
70300
+ capScope: "device",
70301
+ addonId: null,
70302
+ access: "create"
70303
+ },
70304
+ "dishwasher.setHygienePlus": {
70305
+ capName: "dishwasher",
70306
+ capScope: "device",
70307
+ addonId: null,
70308
+ access: "create"
70309
+ },
70310
+ "dishwasher.setIntensiveZone": {
70311
+ capName: "dishwasher",
70312
+ capScope: "device",
70313
+ addonId: null,
70314
+ access: "create"
70315
+ },
70316
+ "dishwasher.setOption": {
70317
+ capName: "dishwasher",
70318
+ capScope: "device",
70319
+ addonId: null,
70320
+ access: "create"
70321
+ },
70322
+ "dishwasher.setPower": {
70323
+ capName: "dishwasher",
70324
+ capScope: "device",
70325
+ addonId: null,
70326
+ access: "create"
70327
+ },
70328
+ "dishwasher.setProgram": {
70329
+ capName: "dishwasher",
70330
+ capScope: "device",
70331
+ addonId: null,
70332
+ access: "create"
70333
+ },
70334
+ "dishwasher.setVarioSpeedPlus": {
70335
+ capName: "dishwasher",
70336
+ capScope: "device",
70337
+ addonId: null,
70338
+ access: "create"
70339
+ },
70340
+ "dishwasher.start": {
70341
+ capName: "dishwasher",
70342
+ capScope: "device",
70343
+ addonId: null,
70344
+ access: "create"
70345
+ },
70346
+ "dishwasher.stop": {
70347
+ capName: "dishwasher",
70348
+ capScope: "device",
70349
+ addonId: null,
70350
+ access: "create"
70351
+ },
70070
70352
  "doorbell.getStatus": {
70071
70353
  capName: "doorbell",
70072
70354
  capScope: "device",
@@ -70277,6 +70559,12 @@ Object.freeze({
70277
70559
  addonId: null,
70278
70560
  access: "view"
70279
70561
  },
70562
+ "heatingValve.getStatus": {
70563
+ capName: "heating-valve",
70564
+ capScope: "device",
70565
+ addonId: null,
70566
+ access: "view"
70567
+ },
70280
70568
  "humidifier.getStatus": {
70281
70569
  capName: "humidifier",
70282
70570
  capScope: "device",
@@ -75864,7 +76152,7 @@ Object.freeze({
75864
76152
  access: "create"
75865
76153
  }
75866
76154
  });
75867
- DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder;
76155
+ DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher;
75868
76156
  DeviceFeature.BatteryOperated;
75869
76157
  Object.freeze({
75870
76158
  "accessories.getStatus": [{
@@ -76688,6 +76976,71 @@ Object.freeze({
76688
76976
  form: "single",
76689
76977
  optional: false
76690
76978
  }],
76979
+ "dishwasher.getStatus": [{
76980
+ name: "deviceId",
76981
+ form: "single",
76982
+ optional: false
76983
+ }],
76984
+ "dishwasher.pause": [{
76985
+ name: "deviceId",
76986
+ form: "single",
76987
+ optional: false
76988
+ }],
76989
+ "dishwasher.setChildLock": [{
76990
+ name: "deviceId",
76991
+ form: "single",
76992
+ optional: false
76993
+ }],
76994
+ "dishwasher.setExtraDry": [{
76995
+ name: "deviceId",
76996
+ form: "single",
76997
+ optional: false
76998
+ }],
76999
+ "dishwasher.setHalfLoad": [{
77000
+ name: "deviceId",
77001
+ form: "single",
77002
+ optional: false
77003
+ }],
77004
+ "dishwasher.setHygienePlus": [{
77005
+ name: "deviceId",
77006
+ form: "single",
77007
+ optional: false
77008
+ }],
77009
+ "dishwasher.setIntensiveZone": [{
77010
+ name: "deviceId",
77011
+ form: "single",
77012
+ optional: false
77013
+ }],
77014
+ "dishwasher.setOption": [{
77015
+ name: "deviceId",
77016
+ form: "single",
77017
+ optional: false
77018
+ }],
77019
+ "dishwasher.setPower": [{
77020
+ name: "deviceId",
77021
+ form: "single",
77022
+ optional: false
77023
+ }],
77024
+ "dishwasher.setProgram": [{
77025
+ name: "deviceId",
77026
+ form: "single",
77027
+ optional: false
77028
+ }],
77029
+ "dishwasher.setVarioSpeedPlus": [{
77030
+ name: "deviceId",
77031
+ form: "single",
77032
+ optional: false
77033
+ }],
77034
+ "dishwasher.start": [{
77035
+ name: "deviceId",
77036
+ form: "single",
77037
+ optional: false
77038
+ }],
77039
+ "dishwasher.stop": [{
77040
+ name: "deviceId",
77041
+ form: "single",
77042
+ optional: false
77043
+ }],
76691
77044
  "doorbell.getStatus": [{
76692
77045
  name: "deviceId",
76693
77046
  form: "single",
@@ -76757,6 +77110,11 @@ Object.freeze({
76757
77110
  form: "single",
76758
77111
  optional: false
76759
77112
  }],
77113
+ "heatingValve.getStatus": [{
77114
+ name: "deviceId",
77115
+ form: "single",
77116
+ optional: false
77117
+ }],
76760
77118
  "humidifier.getStatus": [{
76761
77119
  name: "deviceId",
76762
77120
  form: "single",