@camstack/addon-provider-mqtt-ha 0.1.4 → 0.1.6
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 +368 -10
- package/dist/addon.mjs +368 -10
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -5439,7 +5439,7 @@ var ZodIssueCode = {
|
|
|
5439
5439
|
var ZodFirstPartyTypeKind;
|
|
5440
5440
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5441
5441
|
//#endregion
|
|
5442
|
-
//#region ../types/dist/sleep-
|
|
5442
|
+
//#region ../types/dist/sleep-BegKjwUu.mjs
|
|
5443
5443
|
/**
|
|
5444
5444
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5445
5445
|
* window to float samples (D455).
|
|
@@ -8458,7 +8458,7 @@ object({
|
|
|
8458
8458
|
params: record(string(), union([string(), number()])).optional()
|
|
8459
8459
|
});
|
|
8460
8460
|
//#endregion
|
|
8461
|
-
//#region ../types/dist/err-msg
|
|
8461
|
+
//#region ../types/dist/err-msg-BXKzRBwg.mjs
|
|
8462
8462
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
8463
8463
|
DeviceType["Camera"] = "camera";
|
|
8464
8464
|
DeviceType["Hub"] = "hub";
|
|
@@ -8550,6 +8550,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
|
8550
8550
|
* native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
|
|
8551
8551
|
* integrations sharing the same food/desiccant/hopper surface. */
|
|
8552
8552
|
DeviceType["PetFeeder"] = "pet-feeder";
|
|
8553
|
+
/** Built-in dishwasher — program lifecycle, door / remote-start gates,
|
|
8554
|
+
* salt and rinse-aid levels. Installed with the `dishwasher` cap.
|
|
8555
|
+
* Sources: native Bosch Home Connect, reusable by similar integrations. */
|
|
8556
|
+
DeviceType["Dishwasher"] = "dishwasher";
|
|
8553
8557
|
return DeviceType;
|
|
8554
8558
|
}({});
|
|
8555
8559
|
var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
|
|
@@ -8807,7 +8811,7 @@ function errMsg(err) {
|
|
|
8807
8811
|
return String(err);
|
|
8808
8812
|
}
|
|
8809
8813
|
//#endregion
|
|
8810
|
-
//#region ../types/dist/composition-
|
|
8814
|
+
//#region ../types/dist/composition-CB6PMT9p.mjs
|
|
8811
8815
|
/**
|
|
8812
8816
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
8813
8817
|
*
|
|
@@ -13193,8 +13197,13 @@ var AlertSeveritySchema = _enum([
|
|
|
13193
13197
|
"info",
|
|
13194
13198
|
"success",
|
|
13195
13199
|
"warning",
|
|
13196
|
-
"error"
|
|
13200
|
+
"error",
|
|
13201
|
+
"critical"
|
|
13197
13202
|
]);
|
|
13203
|
+
var AlertActionSchema = object({
|
|
13204
|
+
label: string(),
|
|
13205
|
+
href: string().optional()
|
|
13206
|
+
});
|
|
13198
13207
|
var AlertStatusSchema = _enum([
|
|
13199
13208
|
"active",
|
|
13200
13209
|
"in-progress",
|
|
@@ -13212,6 +13221,7 @@ var AlertSchema = object({
|
|
|
13212
13221
|
severity: AlertSeveritySchema,
|
|
13213
13222
|
title: string(),
|
|
13214
13223
|
message: string(),
|
|
13224
|
+
action: AlertActionSchema.optional(),
|
|
13215
13225
|
status: AlertStatusSchema,
|
|
13216
13226
|
progress: number().optional(),
|
|
13217
13227
|
read: boolean(),
|
|
@@ -17573,7 +17583,11 @@ var deviceDiscoveryCapability = {
|
|
|
17573
17583
|
};
|
|
17574
17584
|
/**
|
|
17575
17585
|
* `device-adoption` — generic discovery + adoption surface,
|
|
17576
|
-
* system-scoped
|
|
17586
|
+
* system-scoped collection (one provider per integration addon), routed
|
|
17587
|
+
* by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
|
|
17588
|
+
* pin model as `connection-test`. The admin UI keeps using
|
|
17589
|
+
* `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
|
|
17590
|
+
* successor to `ha-discovery`:
|
|
17577
17591
|
* keyed by `integrationId` (the addon resolves integrationId → broker
|
|
17578
17592
|
* internally) rather than a connection-specific `brokerId`, and it
|
|
17579
17593
|
* REUSES the shared `DiscoveredChildDevice` candidate type from
|
|
@@ -17738,7 +17752,7 @@ var ResyncResultSchema = object({
|
|
|
17738
17752
|
var deviceAdoptionCapability = {
|
|
17739
17753
|
name: "device-adoption",
|
|
17740
17754
|
scope: "system",
|
|
17741
|
-
mode: "
|
|
17755
|
+
mode: "collection",
|
|
17742
17756
|
status: {
|
|
17743
17757
|
schema: AdoptionStatusSchema,
|
|
17744
17758
|
kind: "poll"
|
|
@@ -53770,7 +53784,8 @@ var batteryCapability = {
|
|
|
53770
53784
|
DeviceType.Button,
|
|
53771
53785
|
DeviceType.Switch,
|
|
53772
53786
|
DeviceType.PetFeeder,
|
|
53773
|
-
DeviceType.Container
|
|
53787
|
+
DeviceType.Container,
|
|
53788
|
+
DeviceType.Thermostat
|
|
53774
53789
|
],
|
|
53775
53790
|
methods: {
|
|
53776
53791
|
/**
|
|
@@ -55243,6 +55258,161 @@ onStatusChanged: { data: object({
|
|
|
55243
55258
|
* whether persisting is worth a SQLite commit. */
|
|
55244
55259
|
volatileStateFields: ["lastChangedAt"]
|
|
55245
55260
|
};
|
|
55261
|
+
/**
|
|
55262
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates,
|
|
55263
|
+
* consumable levels (salt, rinse aid) and common program options.
|
|
55264
|
+
*
|
|
55265
|
+
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
55266
|
+
* by any integration that exposes the same program / option surface.
|
|
55267
|
+
*
|
|
55268
|
+
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55269
|
+
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55270
|
+
*/
|
|
55271
|
+
var DishwasherStateSchema = _enum([
|
|
55272
|
+
"idle",
|
|
55273
|
+
"running",
|
|
55274
|
+
"paused",
|
|
55275
|
+
"finished",
|
|
55276
|
+
"error",
|
|
55277
|
+
"unavailable"
|
|
55278
|
+
]);
|
|
55279
|
+
var DishwasherConsumableLevelSchema = _enum([
|
|
55280
|
+
"ok",
|
|
55281
|
+
"low",
|
|
55282
|
+
"empty"
|
|
55283
|
+
]);
|
|
55284
|
+
var DishwasherStatusSchema = object({
|
|
55285
|
+
state: DishwasherStateSchema,
|
|
55286
|
+
/** Active program id/name, or null when none selected / unknown. */
|
|
55287
|
+
program: string().nullable(),
|
|
55288
|
+
/** Program tokens the hardware accepts — drives the UI selector. */
|
|
55289
|
+
availablePrograms: array(string()),
|
|
55290
|
+
/** Minutes remaining on the active cycle, or null when not running. */
|
|
55291
|
+
remainingMinutes: number().int().nonnegative().nullable(),
|
|
55292
|
+
/** Cycle completion 0..100, or null when not applicable. */
|
|
55293
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
55294
|
+
/** True when the door is reported open. */
|
|
55295
|
+
doorOpen: boolean(),
|
|
55296
|
+
/** True when remote start is allowed (door closed, power on, etc.). */
|
|
55297
|
+
remoteStartAllowed: boolean(),
|
|
55298
|
+
/** Main power / switched-on state. */
|
|
55299
|
+
powerOn: boolean(),
|
|
55300
|
+
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55301
|
+
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55302
|
+
halfLoad: boolean(),
|
|
55303
|
+
hygienePlus: boolean(),
|
|
55304
|
+
/** Extra dry option when the appliance exposes it. */
|
|
55305
|
+
extraDry: boolean(),
|
|
55306
|
+
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55307
|
+
intensiveZone: boolean(),
|
|
55308
|
+
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55309
|
+
varioSpeedPlus: boolean(),
|
|
55310
|
+
/** Child lock (controls disabled on the appliance). */
|
|
55311
|
+
childLock: boolean(),
|
|
55312
|
+
errorCode: number().nullable(),
|
|
55313
|
+
errorLabel: string().nullable(),
|
|
55314
|
+
lastFetchedAt: number()
|
|
55315
|
+
});
|
|
55316
|
+
var dishwasherCapability = {
|
|
55317
|
+
name: "dishwasher",
|
|
55318
|
+
scope: "device",
|
|
55319
|
+
deviceNative: true,
|
|
55320
|
+
mode: "singleton",
|
|
55321
|
+
deviceTypes: [DeviceType.Dishwasher],
|
|
55322
|
+
methods: {
|
|
55323
|
+
start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55324
|
+
kind: "mutation",
|
|
55325
|
+
auth: "protected"
|
|
55326
|
+
}),
|
|
55327
|
+
pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55328
|
+
kind: "mutation",
|
|
55329
|
+
auth: "protected"
|
|
55330
|
+
}),
|
|
55331
|
+
stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55332
|
+
kind: "mutation",
|
|
55333
|
+
auth: "protected"
|
|
55334
|
+
}),
|
|
55335
|
+
setProgram: method(object({
|
|
55336
|
+
deviceId: number().int().nonnegative(),
|
|
55337
|
+
program: string().min(1)
|
|
55338
|
+
}), _void(), {
|
|
55339
|
+
kind: "mutation",
|
|
55340
|
+
auth: "protected"
|
|
55341
|
+
}),
|
|
55342
|
+
setPower: method(object({
|
|
55343
|
+
deviceId: number().int().nonnegative(),
|
|
55344
|
+
on: boolean()
|
|
55345
|
+
}), _void(), {
|
|
55346
|
+
kind: "mutation",
|
|
55347
|
+
auth: "protected"
|
|
55348
|
+
}),
|
|
55349
|
+
setHalfLoad: method(object({
|
|
55350
|
+
deviceId: number().int().nonnegative(),
|
|
55351
|
+
on: boolean()
|
|
55352
|
+
}), _void(), {
|
|
55353
|
+
kind: "mutation",
|
|
55354
|
+
auth: "protected"
|
|
55355
|
+
}),
|
|
55356
|
+
setHygienePlus: method(object({
|
|
55357
|
+
deviceId: number().int().nonnegative(),
|
|
55358
|
+
on: boolean()
|
|
55359
|
+
}), _void(), {
|
|
55360
|
+
kind: "mutation",
|
|
55361
|
+
auth: "protected"
|
|
55362
|
+
}),
|
|
55363
|
+
setExtraDry: method(object({
|
|
55364
|
+
deviceId: number().int().nonnegative(),
|
|
55365
|
+
on: boolean()
|
|
55366
|
+
}), _void(), {
|
|
55367
|
+
kind: "mutation",
|
|
55368
|
+
auth: "protected"
|
|
55369
|
+
}),
|
|
55370
|
+
setIntensiveZone: method(object({
|
|
55371
|
+
deviceId: number().int().nonnegative(),
|
|
55372
|
+
on: boolean()
|
|
55373
|
+
}), _void(), {
|
|
55374
|
+
kind: "mutation",
|
|
55375
|
+
auth: "protected"
|
|
55376
|
+
}),
|
|
55377
|
+
setVarioSpeedPlus: method(object({
|
|
55378
|
+
deviceId: number().int().nonnegative(),
|
|
55379
|
+
on: boolean()
|
|
55380
|
+
}), _void(), {
|
|
55381
|
+
kind: "mutation",
|
|
55382
|
+
auth: "protected"
|
|
55383
|
+
}),
|
|
55384
|
+
setChildLock: method(object({
|
|
55385
|
+
deviceId: number().int().nonnegative(),
|
|
55386
|
+
on: boolean()
|
|
55387
|
+
}), _void(), {
|
|
55388
|
+
kind: "mutation",
|
|
55389
|
+
auth: "protected"
|
|
55390
|
+
}),
|
|
55391
|
+
setOption: method(object({
|
|
55392
|
+
deviceId: number().int().nonnegative(),
|
|
55393
|
+
key: string().min(1),
|
|
55394
|
+
value: union([
|
|
55395
|
+
boolean(),
|
|
55396
|
+
string(),
|
|
55397
|
+
number()
|
|
55398
|
+
])
|
|
55399
|
+
}), _void(), {
|
|
55400
|
+
kind: "mutation",
|
|
55401
|
+
auth: "protected"
|
|
55402
|
+
})
|
|
55403
|
+
},
|
|
55404
|
+
status: {
|
|
55405
|
+
schema: DishwasherStatusSchema,
|
|
55406
|
+
kind: "poll"
|
|
55407
|
+
},
|
|
55408
|
+
runtimeState: DishwasherStatusSchema,
|
|
55409
|
+
durability: "session",
|
|
55410
|
+
history: { fields: { progressPercent: {
|
|
55411
|
+
kind: "gauge",
|
|
55412
|
+
unit: "%",
|
|
55413
|
+
deadband: 2
|
|
55414
|
+
} } }
|
|
55415
|
+
};
|
|
55246
55416
|
var DoorbellStatusSchema = object({
|
|
55247
55417
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
55248
55418
|
lastPressedAt: number().nullable(),
|
|
@@ -56045,6 +56215,32 @@ var gasCapability = {
|
|
|
56045
56215
|
* whether persisting is worth a SQLite commit. */
|
|
56046
56216
|
volatileStateFields: ["lastChangedAt"]
|
|
56047
56217
|
};
|
|
56218
|
+
var HeatingValveStatusSchema = object({
|
|
56219
|
+
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
56220
|
+
position: number().min(0).max(100).nullable(),
|
|
56221
|
+
/** Ms epoch when the slice was last updated (push or poll). */
|
|
56222
|
+
lastFetchedAt: number()
|
|
56223
|
+
});
|
|
56224
|
+
var heatingValveCapability = {
|
|
56225
|
+
name: "heating-valve",
|
|
56226
|
+
scope: "device",
|
|
56227
|
+
deviceNative: true,
|
|
56228
|
+
mode: "singleton",
|
|
56229
|
+
deviceTypes: [DeviceType.Thermostat],
|
|
56230
|
+
methods: {},
|
|
56231
|
+
status: {
|
|
56232
|
+
schema: HeatingValveStatusSchema,
|
|
56233
|
+
kind: "push"
|
|
56234
|
+
},
|
|
56235
|
+
runtimeState: HeatingValveStatusSchema,
|
|
56236
|
+
durability: "session",
|
|
56237
|
+
history: { fields: { position: {
|
|
56238
|
+
kind: "gauge",
|
|
56239
|
+
unit: "%",
|
|
56240
|
+
deadband: 1
|
|
56241
|
+
} } },
|
|
56242
|
+
volatileStateFields: ["lastFetchedAt"]
|
|
56243
|
+
};
|
|
56048
56244
|
/**
|
|
56049
56245
|
* Humidifier / dehumidifier cap. Models HA `humidifier.*` entities —
|
|
56050
56246
|
* an on/off actuator with an optional target-humidity setpoint and an
|
|
@@ -65465,6 +65661,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
65465
65661
|
dayNight: dayNightCapability,
|
|
65466
65662
|
deviceDiscovery: deviceDiscoveryCapability,
|
|
65467
65663
|
deviceStatus: deviceStatusCapability,
|
|
65664
|
+
dishwasher: dishwasherCapability,
|
|
65468
65665
|
doorbell: doorbellCapability,
|
|
65469
65666
|
enumSensor: enumSensorCapability,
|
|
65470
65667
|
eventEmitter: eventEmitterCapability,
|
|
@@ -65472,6 +65669,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
65472
65669
|
featureProbe: featureProbeCapability,
|
|
65473
65670
|
flood: floodCapability,
|
|
65474
65671
|
gas: gasCapability,
|
|
65672
|
+
heatingValve: heatingValveCapability,
|
|
65475
65673
|
humidifier: humidifierCapability,
|
|
65476
65674
|
humiditySensor: humiditySensorCapability,
|
|
65477
65675
|
image: imageCapability,
|
|
@@ -66197,6 +66395,12 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
66197
66395
|
provider: this
|
|
66198
66396
|
}];
|
|
66199
66397
|
}
|
|
66398
|
+
/** Flatten `super.onInitialize()` whether it returned an array or an envelope. */
|
|
66399
|
+
providerRegistrationsFromSuper(result) {
|
|
66400
|
+
if (Array.isArray(result)) return result;
|
|
66401
|
+
if (result !== void 0 && result.providers !== void 0) return [...result.providers];
|
|
66402
|
+
return [];
|
|
66403
|
+
}
|
|
66200
66404
|
async onShutdown() {
|
|
66201
66405
|
this._restoreShuttingDown = true;
|
|
66202
66406
|
this.cancelRestoreRetries();
|
|
@@ -66723,7 +66927,7 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
66723
66927
|
return toDeviceSummary(device, this.addonId);
|
|
66724
66928
|
}
|
|
66725
66929
|
};
|
|
66726
|
-
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;
|
|
66930
|
+
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;
|
|
66727
66931
|
new Set(Object.values(DeviceType));
|
|
66728
66932
|
Object.freeze({
|
|
66729
66933
|
"accessories.getStatus": {
|
|
@@ -69144,6 +69348,84 @@ Object.freeze({
|
|
|
69144
69348
|
addonId: null,
|
|
69145
69349
|
access: "view"
|
|
69146
69350
|
},
|
|
69351
|
+
"dishwasher.getStatus": {
|
|
69352
|
+
capName: "dishwasher",
|
|
69353
|
+
capScope: "device",
|
|
69354
|
+
addonId: null,
|
|
69355
|
+
access: "view"
|
|
69356
|
+
},
|
|
69357
|
+
"dishwasher.pause": {
|
|
69358
|
+
capName: "dishwasher",
|
|
69359
|
+
capScope: "device",
|
|
69360
|
+
addonId: null,
|
|
69361
|
+
access: "create"
|
|
69362
|
+
},
|
|
69363
|
+
"dishwasher.setChildLock": {
|
|
69364
|
+
capName: "dishwasher",
|
|
69365
|
+
capScope: "device",
|
|
69366
|
+
addonId: null,
|
|
69367
|
+
access: "create"
|
|
69368
|
+
},
|
|
69369
|
+
"dishwasher.setExtraDry": {
|
|
69370
|
+
capName: "dishwasher",
|
|
69371
|
+
capScope: "device",
|
|
69372
|
+
addonId: null,
|
|
69373
|
+
access: "create"
|
|
69374
|
+
},
|
|
69375
|
+
"dishwasher.setHalfLoad": {
|
|
69376
|
+
capName: "dishwasher",
|
|
69377
|
+
capScope: "device",
|
|
69378
|
+
addonId: null,
|
|
69379
|
+
access: "create"
|
|
69380
|
+
},
|
|
69381
|
+
"dishwasher.setHygienePlus": {
|
|
69382
|
+
capName: "dishwasher",
|
|
69383
|
+
capScope: "device",
|
|
69384
|
+
addonId: null,
|
|
69385
|
+
access: "create"
|
|
69386
|
+
},
|
|
69387
|
+
"dishwasher.setIntensiveZone": {
|
|
69388
|
+
capName: "dishwasher",
|
|
69389
|
+
capScope: "device",
|
|
69390
|
+
addonId: null,
|
|
69391
|
+
access: "create"
|
|
69392
|
+
},
|
|
69393
|
+
"dishwasher.setOption": {
|
|
69394
|
+
capName: "dishwasher",
|
|
69395
|
+
capScope: "device",
|
|
69396
|
+
addonId: null,
|
|
69397
|
+
access: "create"
|
|
69398
|
+
},
|
|
69399
|
+
"dishwasher.setPower": {
|
|
69400
|
+
capName: "dishwasher",
|
|
69401
|
+
capScope: "device",
|
|
69402
|
+
addonId: null,
|
|
69403
|
+
access: "create"
|
|
69404
|
+
},
|
|
69405
|
+
"dishwasher.setProgram": {
|
|
69406
|
+
capName: "dishwasher",
|
|
69407
|
+
capScope: "device",
|
|
69408
|
+
addonId: null,
|
|
69409
|
+
access: "create"
|
|
69410
|
+
},
|
|
69411
|
+
"dishwasher.setVarioSpeedPlus": {
|
|
69412
|
+
capName: "dishwasher",
|
|
69413
|
+
capScope: "device",
|
|
69414
|
+
addonId: null,
|
|
69415
|
+
access: "create"
|
|
69416
|
+
},
|
|
69417
|
+
"dishwasher.start": {
|
|
69418
|
+
capName: "dishwasher",
|
|
69419
|
+
capScope: "device",
|
|
69420
|
+
addonId: null,
|
|
69421
|
+
access: "create"
|
|
69422
|
+
},
|
|
69423
|
+
"dishwasher.stop": {
|
|
69424
|
+
capName: "dishwasher",
|
|
69425
|
+
capScope: "device",
|
|
69426
|
+
addonId: null,
|
|
69427
|
+
access: "create"
|
|
69428
|
+
},
|
|
69147
69429
|
"doorbell.getStatus": {
|
|
69148
69430
|
capName: "doorbell",
|
|
69149
69431
|
capScope: "device",
|
|
@@ -69354,6 +69636,12 @@ Object.freeze({
|
|
|
69354
69636
|
addonId: null,
|
|
69355
69637
|
access: "view"
|
|
69356
69638
|
},
|
|
69639
|
+
"heatingValve.getStatus": {
|
|
69640
|
+
capName: "heating-valve",
|
|
69641
|
+
capScope: "device",
|
|
69642
|
+
addonId: null,
|
|
69643
|
+
access: "view"
|
|
69644
|
+
},
|
|
69357
69645
|
"humidifier.getStatus": {
|
|
69358
69646
|
capName: "humidifier",
|
|
69359
69647
|
capScope: "device",
|
|
@@ -74941,7 +75229,7 @@ Object.freeze({
|
|
|
74941
75229
|
access: "create"
|
|
74942
75230
|
}
|
|
74943
75231
|
});
|
|
74944
|
-
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;
|
|
75232
|
+
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;
|
|
74945
75233
|
DeviceFeature.BatteryOperated;
|
|
74946
75234
|
Object.freeze({
|
|
74947
75235
|
"accessories.getStatus": [{
|
|
@@ -75765,6 +76053,71 @@ Object.freeze({
|
|
|
75765
76053
|
form: "single",
|
|
75766
76054
|
optional: false
|
|
75767
76055
|
}],
|
|
76056
|
+
"dishwasher.getStatus": [{
|
|
76057
|
+
name: "deviceId",
|
|
76058
|
+
form: "single",
|
|
76059
|
+
optional: false
|
|
76060
|
+
}],
|
|
76061
|
+
"dishwasher.pause": [{
|
|
76062
|
+
name: "deviceId",
|
|
76063
|
+
form: "single",
|
|
76064
|
+
optional: false
|
|
76065
|
+
}],
|
|
76066
|
+
"dishwasher.setChildLock": [{
|
|
76067
|
+
name: "deviceId",
|
|
76068
|
+
form: "single",
|
|
76069
|
+
optional: false
|
|
76070
|
+
}],
|
|
76071
|
+
"dishwasher.setExtraDry": [{
|
|
76072
|
+
name: "deviceId",
|
|
76073
|
+
form: "single",
|
|
76074
|
+
optional: false
|
|
76075
|
+
}],
|
|
76076
|
+
"dishwasher.setHalfLoad": [{
|
|
76077
|
+
name: "deviceId",
|
|
76078
|
+
form: "single",
|
|
76079
|
+
optional: false
|
|
76080
|
+
}],
|
|
76081
|
+
"dishwasher.setHygienePlus": [{
|
|
76082
|
+
name: "deviceId",
|
|
76083
|
+
form: "single",
|
|
76084
|
+
optional: false
|
|
76085
|
+
}],
|
|
76086
|
+
"dishwasher.setIntensiveZone": [{
|
|
76087
|
+
name: "deviceId",
|
|
76088
|
+
form: "single",
|
|
76089
|
+
optional: false
|
|
76090
|
+
}],
|
|
76091
|
+
"dishwasher.setOption": [{
|
|
76092
|
+
name: "deviceId",
|
|
76093
|
+
form: "single",
|
|
76094
|
+
optional: false
|
|
76095
|
+
}],
|
|
76096
|
+
"dishwasher.setPower": [{
|
|
76097
|
+
name: "deviceId",
|
|
76098
|
+
form: "single",
|
|
76099
|
+
optional: false
|
|
76100
|
+
}],
|
|
76101
|
+
"dishwasher.setProgram": [{
|
|
76102
|
+
name: "deviceId",
|
|
76103
|
+
form: "single",
|
|
76104
|
+
optional: false
|
|
76105
|
+
}],
|
|
76106
|
+
"dishwasher.setVarioSpeedPlus": [{
|
|
76107
|
+
name: "deviceId",
|
|
76108
|
+
form: "single",
|
|
76109
|
+
optional: false
|
|
76110
|
+
}],
|
|
76111
|
+
"dishwasher.start": [{
|
|
76112
|
+
name: "deviceId",
|
|
76113
|
+
form: "single",
|
|
76114
|
+
optional: false
|
|
76115
|
+
}],
|
|
76116
|
+
"dishwasher.stop": [{
|
|
76117
|
+
name: "deviceId",
|
|
76118
|
+
form: "single",
|
|
76119
|
+
optional: false
|
|
76120
|
+
}],
|
|
75768
76121
|
"doorbell.getStatus": [{
|
|
75769
76122
|
name: "deviceId",
|
|
75770
76123
|
form: "single",
|
|
@@ -75834,6 +76187,11 @@ Object.freeze({
|
|
|
75834
76187
|
form: "single",
|
|
75835
76188
|
optional: false
|
|
75836
76189
|
}],
|
|
76190
|
+
"heatingValve.getStatus": [{
|
|
76191
|
+
name: "deviceId",
|
|
76192
|
+
form: "single",
|
|
76193
|
+
optional: false
|
|
76194
|
+
}],
|
|
75837
76195
|
"humidifier.getStatus": [{
|
|
75838
76196
|
name: "deviceId",
|
|
75839
76197
|
form: "single",
|
|
@@ -103320,7 +103678,7 @@ var MqttHaProviderAddon = class extends BaseDeviceProvider {
|
|
|
103320
103678
|
super({});
|
|
103321
103679
|
}
|
|
103322
103680
|
async onInitialize() {
|
|
103323
|
-
const regs = await super.onInitialize();
|
|
103681
|
+
const regs = this.providerRegistrationsFromSuper(await super.onInitialize());
|
|
103324
103682
|
wireMqttHaDiscoveryStore(this.discoveryStore);
|
|
103325
103683
|
this.sessionManager = new MqttHaBrokerSessionManager({
|
|
103326
103684
|
addonId: this.ctx.id,
|
package/dist/addon.mjs
CHANGED
|
@@ -5440,7 +5440,7 @@ var ZodIssueCode = {
|
|
|
5440
5440
|
var ZodFirstPartyTypeKind;
|
|
5441
5441
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5442
5442
|
//#endregion
|
|
5443
|
-
//#region ../types/dist/sleep-
|
|
5443
|
+
//#region ../types/dist/sleep-BegKjwUu.mjs
|
|
5444
5444
|
/**
|
|
5445
5445
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5446
5446
|
* window to float samples (D455).
|
|
@@ -8459,7 +8459,7 @@ object({
|
|
|
8459
8459
|
params: record(string(), union([string(), number()])).optional()
|
|
8460
8460
|
});
|
|
8461
8461
|
//#endregion
|
|
8462
|
-
//#region ../types/dist/err-msg
|
|
8462
|
+
//#region ../types/dist/err-msg-BXKzRBwg.mjs
|
|
8463
8463
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
8464
8464
|
DeviceType["Camera"] = "camera";
|
|
8465
8465
|
DeviceType["Hub"] = "hub";
|
|
@@ -8551,6 +8551,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
|
8551
8551
|
* native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
|
|
8552
8552
|
* integrations sharing the same food/desiccant/hopper surface. */
|
|
8553
8553
|
DeviceType["PetFeeder"] = "pet-feeder";
|
|
8554
|
+
/** Built-in dishwasher — program lifecycle, door / remote-start gates,
|
|
8555
|
+
* salt and rinse-aid levels. Installed with the `dishwasher` cap.
|
|
8556
|
+
* Sources: native Bosch Home Connect, reusable by similar integrations. */
|
|
8557
|
+
DeviceType["Dishwasher"] = "dishwasher";
|
|
8554
8558
|
return DeviceType;
|
|
8555
8559
|
}({});
|
|
8556
8560
|
var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
|
|
@@ -8808,7 +8812,7 @@ function errMsg(err) {
|
|
|
8808
8812
|
return String(err);
|
|
8809
8813
|
}
|
|
8810
8814
|
//#endregion
|
|
8811
|
-
//#region ../types/dist/composition-
|
|
8815
|
+
//#region ../types/dist/composition-CB6PMT9p.mjs
|
|
8812
8816
|
/**
|
|
8813
8817
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
8814
8818
|
*
|
|
@@ -13194,8 +13198,13 @@ var AlertSeveritySchema = _enum([
|
|
|
13194
13198
|
"info",
|
|
13195
13199
|
"success",
|
|
13196
13200
|
"warning",
|
|
13197
|
-
"error"
|
|
13201
|
+
"error",
|
|
13202
|
+
"critical"
|
|
13198
13203
|
]);
|
|
13204
|
+
var AlertActionSchema = object({
|
|
13205
|
+
label: string(),
|
|
13206
|
+
href: string().optional()
|
|
13207
|
+
});
|
|
13199
13208
|
var AlertStatusSchema = _enum([
|
|
13200
13209
|
"active",
|
|
13201
13210
|
"in-progress",
|
|
@@ -13213,6 +13222,7 @@ var AlertSchema = object({
|
|
|
13213
13222
|
severity: AlertSeveritySchema,
|
|
13214
13223
|
title: string(),
|
|
13215
13224
|
message: string(),
|
|
13225
|
+
action: AlertActionSchema.optional(),
|
|
13216
13226
|
status: AlertStatusSchema,
|
|
13217
13227
|
progress: number().optional(),
|
|
13218
13228
|
read: boolean(),
|
|
@@ -17574,7 +17584,11 @@ var deviceDiscoveryCapability = {
|
|
|
17574
17584
|
};
|
|
17575
17585
|
/**
|
|
17576
17586
|
* `device-adoption` — generic discovery + adoption surface,
|
|
17577
|
-
* system-scoped
|
|
17587
|
+
* system-scoped collection (one provider per integration addon), routed
|
|
17588
|
+
* by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
|
|
17589
|
+
* pin model as `connection-test`. The admin UI keeps using
|
|
17590
|
+
* `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
|
|
17591
|
+
* successor to `ha-discovery`:
|
|
17578
17592
|
* keyed by `integrationId` (the addon resolves integrationId → broker
|
|
17579
17593
|
* internally) rather than a connection-specific `brokerId`, and it
|
|
17580
17594
|
* REUSES the shared `DiscoveredChildDevice` candidate type from
|
|
@@ -17739,7 +17753,7 @@ var ResyncResultSchema = object({
|
|
|
17739
17753
|
var deviceAdoptionCapability = {
|
|
17740
17754
|
name: "device-adoption",
|
|
17741
17755
|
scope: "system",
|
|
17742
|
-
mode: "
|
|
17756
|
+
mode: "collection",
|
|
17743
17757
|
status: {
|
|
17744
17758
|
schema: AdoptionStatusSchema,
|
|
17745
17759
|
kind: "poll"
|
|
@@ -53771,7 +53785,8 @@ var batteryCapability = {
|
|
|
53771
53785
|
DeviceType.Button,
|
|
53772
53786
|
DeviceType.Switch,
|
|
53773
53787
|
DeviceType.PetFeeder,
|
|
53774
|
-
DeviceType.Container
|
|
53788
|
+
DeviceType.Container,
|
|
53789
|
+
DeviceType.Thermostat
|
|
53775
53790
|
],
|
|
53776
53791
|
methods: {
|
|
53777
53792
|
/**
|
|
@@ -55244,6 +55259,161 @@ onStatusChanged: { data: object({
|
|
|
55244
55259
|
* whether persisting is worth a SQLite commit. */
|
|
55245
55260
|
volatileStateFields: ["lastChangedAt"]
|
|
55246
55261
|
};
|
|
55262
|
+
/**
|
|
55263
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates,
|
|
55264
|
+
* consumable levels (salt, rinse aid) and common program options.
|
|
55265
|
+
*
|
|
55266
|
+
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
55267
|
+
* by any integration that exposes the same program / option surface.
|
|
55268
|
+
*
|
|
55269
|
+
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55270
|
+
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55271
|
+
*/
|
|
55272
|
+
var DishwasherStateSchema = _enum([
|
|
55273
|
+
"idle",
|
|
55274
|
+
"running",
|
|
55275
|
+
"paused",
|
|
55276
|
+
"finished",
|
|
55277
|
+
"error",
|
|
55278
|
+
"unavailable"
|
|
55279
|
+
]);
|
|
55280
|
+
var DishwasherConsumableLevelSchema = _enum([
|
|
55281
|
+
"ok",
|
|
55282
|
+
"low",
|
|
55283
|
+
"empty"
|
|
55284
|
+
]);
|
|
55285
|
+
var DishwasherStatusSchema = object({
|
|
55286
|
+
state: DishwasherStateSchema,
|
|
55287
|
+
/** Active program id/name, or null when none selected / unknown. */
|
|
55288
|
+
program: string().nullable(),
|
|
55289
|
+
/** Program tokens the hardware accepts — drives the UI selector. */
|
|
55290
|
+
availablePrograms: array(string()),
|
|
55291
|
+
/** Minutes remaining on the active cycle, or null when not running. */
|
|
55292
|
+
remainingMinutes: number().int().nonnegative().nullable(),
|
|
55293
|
+
/** Cycle completion 0..100, or null when not applicable. */
|
|
55294
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
55295
|
+
/** True when the door is reported open. */
|
|
55296
|
+
doorOpen: boolean(),
|
|
55297
|
+
/** True when remote start is allowed (door closed, power on, etc.). */
|
|
55298
|
+
remoteStartAllowed: boolean(),
|
|
55299
|
+
/** Main power / switched-on state. */
|
|
55300
|
+
powerOn: boolean(),
|
|
55301
|
+
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55302
|
+
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55303
|
+
halfLoad: boolean(),
|
|
55304
|
+
hygienePlus: boolean(),
|
|
55305
|
+
/** Extra dry option when the appliance exposes it. */
|
|
55306
|
+
extraDry: boolean(),
|
|
55307
|
+
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55308
|
+
intensiveZone: boolean(),
|
|
55309
|
+
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55310
|
+
varioSpeedPlus: boolean(),
|
|
55311
|
+
/** Child lock (controls disabled on the appliance). */
|
|
55312
|
+
childLock: boolean(),
|
|
55313
|
+
errorCode: number().nullable(),
|
|
55314
|
+
errorLabel: string().nullable(),
|
|
55315
|
+
lastFetchedAt: number()
|
|
55316
|
+
});
|
|
55317
|
+
var dishwasherCapability = {
|
|
55318
|
+
name: "dishwasher",
|
|
55319
|
+
scope: "device",
|
|
55320
|
+
deviceNative: true,
|
|
55321
|
+
mode: "singleton",
|
|
55322
|
+
deviceTypes: [DeviceType.Dishwasher],
|
|
55323
|
+
methods: {
|
|
55324
|
+
start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55325
|
+
kind: "mutation",
|
|
55326
|
+
auth: "protected"
|
|
55327
|
+
}),
|
|
55328
|
+
pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55329
|
+
kind: "mutation",
|
|
55330
|
+
auth: "protected"
|
|
55331
|
+
}),
|
|
55332
|
+
stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55333
|
+
kind: "mutation",
|
|
55334
|
+
auth: "protected"
|
|
55335
|
+
}),
|
|
55336
|
+
setProgram: method(object({
|
|
55337
|
+
deviceId: number().int().nonnegative(),
|
|
55338
|
+
program: string().min(1)
|
|
55339
|
+
}), _void(), {
|
|
55340
|
+
kind: "mutation",
|
|
55341
|
+
auth: "protected"
|
|
55342
|
+
}),
|
|
55343
|
+
setPower: method(object({
|
|
55344
|
+
deviceId: number().int().nonnegative(),
|
|
55345
|
+
on: boolean()
|
|
55346
|
+
}), _void(), {
|
|
55347
|
+
kind: "mutation",
|
|
55348
|
+
auth: "protected"
|
|
55349
|
+
}),
|
|
55350
|
+
setHalfLoad: method(object({
|
|
55351
|
+
deviceId: number().int().nonnegative(),
|
|
55352
|
+
on: boolean()
|
|
55353
|
+
}), _void(), {
|
|
55354
|
+
kind: "mutation",
|
|
55355
|
+
auth: "protected"
|
|
55356
|
+
}),
|
|
55357
|
+
setHygienePlus: method(object({
|
|
55358
|
+
deviceId: number().int().nonnegative(),
|
|
55359
|
+
on: boolean()
|
|
55360
|
+
}), _void(), {
|
|
55361
|
+
kind: "mutation",
|
|
55362
|
+
auth: "protected"
|
|
55363
|
+
}),
|
|
55364
|
+
setExtraDry: method(object({
|
|
55365
|
+
deviceId: number().int().nonnegative(),
|
|
55366
|
+
on: boolean()
|
|
55367
|
+
}), _void(), {
|
|
55368
|
+
kind: "mutation",
|
|
55369
|
+
auth: "protected"
|
|
55370
|
+
}),
|
|
55371
|
+
setIntensiveZone: method(object({
|
|
55372
|
+
deviceId: number().int().nonnegative(),
|
|
55373
|
+
on: boolean()
|
|
55374
|
+
}), _void(), {
|
|
55375
|
+
kind: "mutation",
|
|
55376
|
+
auth: "protected"
|
|
55377
|
+
}),
|
|
55378
|
+
setVarioSpeedPlus: method(object({
|
|
55379
|
+
deviceId: number().int().nonnegative(),
|
|
55380
|
+
on: boolean()
|
|
55381
|
+
}), _void(), {
|
|
55382
|
+
kind: "mutation",
|
|
55383
|
+
auth: "protected"
|
|
55384
|
+
}),
|
|
55385
|
+
setChildLock: method(object({
|
|
55386
|
+
deviceId: number().int().nonnegative(),
|
|
55387
|
+
on: boolean()
|
|
55388
|
+
}), _void(), {
|
|
55389
|
+
kind: "mutation",
|
|
55390
|
+
auth: "protected"
|
|
55391
|
+
}),
|
|
55392
|
+
setOption: method(object({
|
|
55393
|
+
deviceId: number().int().nonnegative(),
|
|
55394
|
+
key: string().min(1),
|
|
55395
|
+
value: union([
|
|
55396
|
+
boolean(),
|
|
55397
|
+
string(),
|
|
55398
|
+
number()
|
|
55399
|
+
])
|
|
55400
|
+
}), _void(), {
|
|
55401
|
+
kind: "mutation",
|
|
55402
|
+
auth: "protected"
|
|
55403
|
+
})
|
|
55404
|
+
},
|
|
55405
|
+
status: {
|
|
55406
|
+
schema: DishwasherStatusSchema,
|
|
55407
|
+
kind: "poll"
|
|
55408
|
+
},
|
|
55409
|
+
runtimeState: DishwasherStatusSchema,
|
|
55410
|
+
durability: "session",
|
|
55411
|
+
history: { fields: { progressPercent: {
|
|
55412
|
+
kind: "gauge",
|
|
55413
|
+
unit: "%",
|
|
55414
|
+
deadband: 2
|
|
55415
|
+
} } }
|
|
55416
|
+
};
|
|
55247
55417
|
var DoorbellStatusSchema = object({
|
|
55248
55418
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
55249
55419
|
lastPressedAt: number().nullable(),
|
|
@@ -56046,6 +56216,32 @@ var gasCapability = {
|
|
|
56046
56216
|
* whether persisting is worth a SQLite commit. */
|
|
56047
56217
|
volatileStateFields: ["lastChangedAt"]
|
|
56048
56218
|
};
|
|
56219
|
+
var HeatingValveStatusSchema = object({
|
|
56220
|
+
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
56221
|
+
position: number().min(0).max(100).nullable(),
|
|
56222
|
+
/** Ms epoch when the slice was last updated (push or poll). */
|
|
56223
|
+
lastFetchedAt: number()
|
|
56224
|
+
});
|
|
56225
|
+
var heatingValveCapability = {
|
|
56226
|
+
name: "heating-valve",
|
|
56227
|
+
scope: "device",
|
|
56228
|
+
deviceNative: true,
|
|
56229
|
+
mode: "singleton",
|
|
56230
|
+
deviceTypes: [DeviceType.Thermostat],
|
|
56231
|
+
methods: {},
|
|
56232
|
+
status: {
|
|
56233
|
+
schema: HeatingValveStatusSchema,
|
|
56234
|
+
kind: "push"
|
|
56235
|
+
},
|
|
56236
|
+
runtimeState: HeatingValveStatusSchema,
|
|
56237
|
+
durability: "session",
|
|
56238
|
+
history: { fields: { position: {
|
|
56239
|
+
kind: "gauge",
|
|
56240
|
+
unit: "%",
|
|
56241
|
+
deadband: 1
|
|
56242
|
+
} } },
|
|
56243
|
+
volatileStateFields: ["lastFetchedAt"]
|
|
56244
|
+
};
|
|
56049
56245
|
/**
|
|
56050
56246
|
* Humidifier / dehumidifier cap. Models HA `humidifier.*` entities —
|
|
56051
56247
|
* an on/off actuator with an optional target-humidity setpoint and an
|
|
@@ -65466,6 +65662,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
65466
65662
|
dayNight: dayNightCapability,
|
|
65467
65663
|
deviceDiscovery: deviceDiscoveryCapability,
|
|
65468
65664
|
deviceStatus: deviceStatusCapability,
|
|
65665
|
+
dishwasher: dishwasherCapability,
|
|
65469
65666
|
doorbell: doorbellCapability,
|
|
65470
65667
|
enumSensor: enumSensorCapability,
|
|
65471
65668
|
eventEmitter: eventEmitterCapability,
|
|
@@ -65473,6 +65670,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
65473
65670
|
featureProbe: featureProbeCapability,
|
|
65474
65671
|
flood: floodCapability,
|
|
65475
65672
|
gas: gasCapability,
|
|
65673
|
+
heatingValve: heatingValveCapability,
|
|
65476
65674
|
humidifier: humidifierCapability,
|
|
65477
65675
|
humiditySensor: humiditySensorCapability,
|
|
65478
65676
|
image: imageCapability,
|
|
@@ -66198,6 +66396,12 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
66198
66396
|
provider: this
|
|
66199
66397
|
}];
|
|
66200
66398
|
}
|
|
66399
|
+
/** Flatten `super.onInitialize()` whether it returned an array or an envelope. */
|
|
66400
|
+
providerRegistrationsFromSuper(result) {
|
|
66401
|
+
if (Array.isArray(result)) return result;
|
|
66402
|
+
if (result !== void 0 && result.providers !== void 0) return [...result.providers];
|
|
66403
|
+
return [];
|
|
66404
|
+
}
|
|
66201
66405
|
async onShutdown() {
|
|
66202
66406
|
this._restoreShuttingDown = true;
|
|
66203
66407
|
this.cancelRestoreRetries();
|
|
@@ -66724,7 +66928,7 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
66724
66928
|
return toDeviceSummary(device, this.addonId);
|
|
66725
66929
|
}
|
|
66726
66930
|
};
|
|
66727
|
-
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;
|
|
66931
|
+
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;
|
|
66728
66932
|
new Set(Object.values(DeviceType));
|
|
66729
66933
|
Object.freeze({
|
|
66730
66934
|
"accessories.getStatus": {
|
|
@@ -69145,6 +69349,84 @@ Object.freeze({
|
|
|
69145
69349
|
addonId: null,
|
|
69146
69350
|
access: "view"
|
|
69147
69351
|
},
|
|
69352
|
+
"dishwasher.getStatus": {
|
|
69353
|
+
capName: "dishwasher",
|
|
69354
|
+
capScope: "device",
|
|
69355
|
+
addonId: null,
|
|
69356
|
+
access: "view"
|
|
69357
|
+
},
|
|
69358
|
+
"dishwasher.pause": {
|
|
69359
|
+
capName: "dishwasher",
|
|
69360
|
+
capScope: "device",
|
|
69361
|
+
addonId: null,
|
|
69362
|
+
access: "create"
|
|
69363
|
+
},
|
|
69364
|
+
"dishwasher.setChildLock": {
|
|
69365
|
+
capName: "dishwasher",
|
|
69366
|
+
capScope: "device",
|
|
69367
|
+
addonId: null,
|
|
69368
|
+
access: "create"
|
|
69369
|
+
},
|
|
69370
|
+
"dishwasher.setExtraDry": {
|
|
69371
|
+
capName: "dishwasher",
|
|
69372
|
+
capScope: "device",
|
|
69373
|
+
addonId: null,
|
|
69374
|
+
access: "create"
|
|
69375
|
+
},
|
|
69376
|
+
"dishwasher.setHalfLoad": {
|
|
69377
|
+
capName: "dishwasher",
|
|
69378
|
+
capScope: "device",
|
|
69379
|
+
addonId: null,
|
|
69380
|
+
access: "create"
|
|
69381
|
+
},
|
|
69382
|
+
"dishwasher.setHygienePlus": {
|
|
69383
|
+
capName: "dishwasher",
|
|
69384
|
+
capScope: "device",
|
|
69385
|
+
addonId: null,
|
|
69386
|
+
access: "create"
|
|
69387
|
+
},
|
|
69388
|
+
"dishwasher.setIntensiveZone": {
|
|
69389
|
+
capName: "dishwasher",
|
|
69390
|
+
capScope: "device",
|
|
69391
|
+
addonId: null,
|
|
69392
|
+
access: "create"
|
|
69393
|
+
},
|
|
69394
|
+
"dishwasher.setOption": {
|
|
69395
|
+
capName: "dishwasher",
|
|
69396
|
+
capScope: "device",
|
|
69397
|
+
addonId: null,
|
|
69398
|
+
access: "create"
|
|
69399
|
+
},
|
|
69400
|
+
"dishwasher.setPower": {
|
|
69401
|
+
capName: "dishwasher",
|
|
69402
|
+
capScope: "device",
|
|
69403
|
+
addonId: null,
|
|
69404
|
+
access: "create"
|
|
69405
|
+
},
|
|
69406
|
+
"dishwasher.setProgram": {
|
|
69407
|
+
capName: "dishwasher",
|
|
69408
|
+
capScope: "device",
|
|
69409
|
+
addonId: null,
|
|
69410
|
+
access: "create"
|
|
69411
|
+
},
|
|
69412
|
+
"dishwasher.setVarioSpeedPlus": {
|
|
69413
|
+
capName: "dishwasher",
|
|
69414
|
+
capScope: "device",
|
|
69415
|
+
addonId: null,
|
|
69416
|
+
access: "create"
|
|
69417
|
+
},
|
|
69418
|
+
"dishwasher.start": {
|
|
69419
|
+
capName: "dishwasher",
|
|
69420
|
+
capScope: "device",
|
|
69421
|
+
addonId: null,
|
|
69422
|
+
access: "create"
|
|
69423
|
+
},
|
|
69424
|
+
"dishwasher.stop": {
|
|
69425
|
+
capName: "dishwasher",
|
|
69426
|
+
capScope: "device",
|
|
69427
|
+
addonId: null,
|
|
69428
|
+
access: "create"
|
|
69429
|
+
},
|
|
69148
69430
|
"doorbell.getStatus": {
|
|
69149
69431
|
capName: "doorbell",
|
|
69150
69432
|
capScope: "device",
|
|
@@ -69355,6 +69637,12 @@ Object.freeze({
|
|
|
69355
69637
|
addonId: null,
|
|
69356
69638
|
access: "view"
|
|
69357
69639
|
},
|
|
69640
|
+
"heatingValve.getStatus": {
|
|
69641
|
+
capName: "heating-valve",
|
|
69642
|
+
capScope: "device",
|
|
69643
|
+
addonId: null,
|
|
69644
|
+
access: "view"
|
|
69645
|
+
},
|
|
69358
69646
|
"humidifier.getStatus": {
|
|
69359
69647
|
capName: "humidifier",
|
|
69360
69648
|
capScope: "device",
|
|
@@ -74942,7 +75230,7 @@ Object.freeze({
|
|
|
74942
75230
|
access: "create"
|
|
74943
75231
|
}
|
|
74944
75232
|
});
|
|
74945
|
-
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;
|
|
75233
|
+
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;
|
|
74946
75234
|
DeviceFeature.BatteryOperated;
|
|
74947
75235
|
Object.freeze({
|
|
74948
75236
|
"accessories.getStatus": [{
|
|
@@ -75766,6 +76054,71 @@ Object.freeze({
|
|
|
75766
76054
|
form: "single",
|
|
75767
76055
|
optional: false
|
|
75768
76056
|
}],
|
|
76057
|
+
"dishwasher.getStatus": [{
|
|
76058
|
+
name: "deviceId",
|
|
76059
|
+
form: "single",
|
|
76060
|
+
optional: false
|
|
76061
|
+
}],
|
|
76062
|
+
"dishwasher.pause": [{
|
|
76063
|
+
name: "deviceId",
|
|
76064
|
+
form: "single",
|
|
76065
|
+
optional: false
|
|
76066
|
+
}],
|
|
76067
|
+
"dishwasher.setChildLock": [{
|
|
76068
|
+
name: "deviceId",
|
|
76069
|
+
form: "single",
|
|
76070
|
+
optional: false
|
|
76071
|
+
}],
|
|
76072
|
+
"dishwasher.setExtraDry": [{
|
|
76073
|
+
name: "deviceId",
|
|
76074
|
+
form: "single",
|
|
76075
|
+
optional: false
|
|
76076
|
+
}],
|
|
76077
|
+
"dishwasher.setHalfLoad": [{
|
|
76078
|
+
name: "deviceId",
|
|
76079
|
+
form: "single",
|
|
76080
|
+
optional: false
|
|
76081
|
+
}],
|
|
76082
|
+
"dishwasher.setHygienePlus": [{
|
|
76083
|
+
name: "deviceId",
|
|
76084
|
+
form: "single",
|
|
76085
|
+
optional: false
|
|
76086
|
+
}],
|
|
76087
|
+
"dishwasher.setIntensiveZone": [{
|
|
76088
|
+
name: "deviceId",
|
|
76089
|
+
form: "single",
|
|
76090
|
+
optional: false
|
|
76091
|
+
}],
|
|
76092
|
+
"dishwasher.setOption": [{
|
|
76093
|
+
name: "deviceId",
|
|
76094
|
+
form: "single",
|
|
76095
|
+
optional: false
|
|
76096
|
+
}],
|
|
76097
|
+
"dishwasher.setPower": [{
|
|
76098
|
+
name: "deviceId",
|
|
76099
|
+
form: "single",
|
|
76100
|
+
optional: false
|
|
76101
|
+
}],
|
|
76102
|
+
"dishwasher.setProgram": [{
|
|
76103
|
+
name: "deviceId",
|
|
76104
|
+
form: "single",
|
|
76105
|
+
optional: false
|
|
76106
|
+
}],
|
|
76107
|
+
"dishwasher.setVarioSpeedPlus": [{
|
|
76108
|
+
name: "deviceId",
|
|
76109
|
+
form: "single",
|
|
76110
|
+
optional: false
|
|
76111
|
+
}],
|
|
76112
|
+
"dishwasher.start": [{
|
|
76113
|
+
name: "deviceId",
|
|
76114
|
+
form: "single",
|
|
76115
|
+
optional: false
|
|
76116
|
+
}],
|
|
76117
|
+
"dishwasher.stop": [{
|
|
76118
|
+
name: "deviceId",
|
|
76119
|
+
form: "single",
|
|
76120
|
+
optional: false
|
|
76121
|
+
}],
|
|
75769
76122
|
"doorbell.getStatus": [{
|
|
75770
76123
|
name: "deviceId",
|
|
75771
76124
|
form: "single",
|
|
@@ -75835,6 +76188,11 @@ Object.freeze({
|
|
|
75835
76188
|
form: "single",
|
|
75836
76189
|
optional: false
|
|
75837
76190
|
}],
|
|
76191
|
+
"heatingValve.getStatus": [{
|
|
76192
|
+
name: "deviceId",
|
|
76193
|
+
form: "single",
|
|
76194
|
+
optional: false
|
|
76195
|
+
}],
|
|
75838
76196
|
"humidifier.getStatus": [{
|
|
75839
76197
|
name: "deviceId",
|
|
75840
76198
|
form: "single",
|
|
@@ -103321,7 +103679,7 @@ var MqttHaProviderAddon = class extends BaseDeviceProvider {
|
|
|
103321
103679
|
super({});
|
|
103322
103680
|
}
|
|
103323
103681
|
async onInitialize() {
|
|
103324
|
-
const regs = await super.onInitialize();
|
|
103682
|
+
const regs = this.providerRegistrationsFromSuper(await super.onInitialize());
|
|
103325
103683
|
wireMqttHaDiscoveryStore(this.discoveryStore);
|
|
103326
103684
|
this.sessionManager = new MqttHaBrokerSessionManager({
|
|
103327
103685
|
addonId: this.ctx.id,
|
package/package.json
CHANGED