@camstack/addon-provider-wyze 0.2.138 → 0.2.140
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
|
@@ -5437,7 +5437,7 @@ var ZodIssueCode = {
|
|
|
5437
5437
|
var ZodFirstPartyTypeKind;
|
|
5438
5438
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5439
5439
|
//#endregion
|
|
5440
|
-
//#region ../types/dist/sleep-
|
|
5440
|
+
//#region ../types/dist/sleep-BegKjwUu.mjs
|
|
5441
5441
|
/**
|
|
5442
5442
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5443
5443
|
* window to float samples (D455).
|
|
@@ -8470,7 +8470,7 @@ function userError(code, params, englishFallback) {
|
|
|
8470
8470
|
return new CamstackError(code, params, englishFallback);
|
|
8471
8471
|
}
|
|
8472
8472
|
//#endregion
|
|
8473
|
-
//#region ../types/dist/err-msg
|
|
8473
|
+
//#region ../types/dist/err-msg-BXKzRBwg.mjs
|
|
8474
8474
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
8475
8475
|
DeviceType["Camera"] = "camera";
|
|
8476
8476
|
DeviceType["Hub"] = "hub";
|
|
@@ -8562,6 +8562,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
|
8562
8562
|
* native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
|
|
8563
8563
|
* integrations sharing the same food/desiccant/hopper surface. */
|
|
8564
8564
|
DeviceType["PetFeeder"] = "pet-feeder";
|
|
8565
|
+
/** Built-in dishwasher — program lifecycle, door / remote-start gates,
|
|
8566
|
+
* salt and rinse-aid levels. Installed with the `dishwasher` cap.
|
|
8567
|
+
* Sources: native Bosch Home Connect, reusable by similar integrations. */
|
|
8568
|
+
DeviceType["Dishwasher"] = "dishwasher";
|
|
8565
8569
|
return DeviceType;
|
|
8566
8570
|
}({});
|
|
8567
8571
|
var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
|
|
@@ -8819,7 +8823,7 @@ function errMsg(err) {
|
|
|
8819
8823
|
return String(err);
|
|
8820
8824
|
}
|
|
8821
8825
|
//#endregion
|
|
8822
|
-
//#region ../types/dist/composition-
|
|
8826
|
+
//#region ../types/dist/composition-CB6PMT9p.mjs
|
|
8823
8827
|
/**
|
|
8824
8828
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
8825
8829
|
*
|
|
@@ -13225,8 +13229,13 @@ var AlertSeveritySchema = _enum([
|
|
|
13225
13229
|
"info",
|
|
13226
13230
|
"success",
|
|
13227
13231
|
"warning",
|
|
13228
|
-
"error"
|
|
13232
|
+
"error",
|
|
13233
|
+
"critical"
|
|
13229
13234
|
]);
|
|
13235
|
+
var AlertActionSchema = object({
|
|
13236
|
+
label: string(),
|
|
13237
|
+
href: string().optional()
|
|
13238
|
+
});
|
|
13230
13239
|
var AlertStatusSchema = _enum([
|
|
13231
13240
|
"active",
|
|
13232
13241
|
"in-progress",
|
|
@@ -13244,6 +13253,7 @@ var AlertSchema = object({
|
|
|
13244
13253
|
severity: AlertSeveritySchema,
|
|
13245
13254
|
title: string(),
|
|
13246
13255
|
message: string(),
|
|
13256
|
+
action: AlertActionSchema.optional(),
|
|
13247
13257
|
status: AlertStatusSchema,
|
|
13248
13258
|
progress: number().optional(),
|
|
13249
13259
|
read: boolean(),
|
|
@@ -17605,7 +17615,11 @@ var deviceDiscoveryCapability = {
|
|
|
17605
17615
|
};
|
|
17606
17616
|
/**
|
|
17607
17617
|
* `device-adoption` — generic discovery + adoption surface,
|
|
17608
|
-
* system-scoped
|
|
17618
|
+
* system-scoped collection (one provider per integration addon), routed
|
|
17619
|
+
* by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
|
|
17620
|
+
* pin model as `connection-test`. The admin UI keeps using
|
|
17621
|
+
* `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
|
|
17622
|
+
* successor to `ha-discovery`:
|
|
17609
17623
|
* keyed by `integrationId` (the addon resolves integrationId → broker
|
|
17610
17624
|
* internally) rather than a connection-specific `brokerId`, and it
|
|
17611
17625
|
* REUSES the shared `DiscoveredChildDevice` candidate type from
|
|
@@ -17770,7 +17784,7 @@ var ResyncResultSchema = object({
|
|
|
17770
17784
|
var deviceAdoptionCapability = {
|
|
17771
17785
|
name: "device-adoption",
|
|
17772
17786
|
scope: "system",
|
|
17773
|
-
mode: "
|
|
17787
|
+
mode: "collection",
|
|
17774
17788
|
status: {
|
|
17775
17789
|
schema: AdoptionStatusSchema,
|
|
17776
17790
|
kind: "poll"
|
|
@@ -53906,7 +53920,8 @@ var batteryCapability = {
|
|
|
53906
53920
|
DeviceType.Button,
|
|
53907
53921
|
DeviceType.Switch,
|
|
53908
53922
|
DeviceType.PetFeeder,
|
|
53909
|
-
DeviceType.Container
|
|
53923
|
+
DeviceType.Container,
|
|
53924
|
+
DeviceType.Thermostat
|
|
53910
53925
|
],
|
|
53911
53926
|
methods: {
|
|
53912
53927
|
/**
|
|
@@ -55387,6 +55402,161 @@ onStatusChanged: { data: object({
|
|
|
55387
55402
|
* whether persisting is worth a SQLite commit. */
|
|
55388
55403
|
volatileStateFields: ["lastChangedAt"]
|
|
55389
55404
|
};
|
|
55405
|
+
/**
|
|
55406
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates,
|
|
55407
|
+
* consumable levels (salt, rinse aid) and common program options.
|
|
55408
|
+
*
|
|
55409
|
+
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
55410
|
+
* by any integration that exposes the same program / option surface.
|
|
55411
|
+
*
|
|
55412
|
+
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55413
|
+
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55414
|
+
*/
|
|
55415
|
+
var DishwasherStateSchema = _enum([
|
|
55416
|
+
"idle",
|
|
55417
|
+
"running",
|
|
55418
|
+
"paused",
|
|
55419
|
+
"finished",
|
|
55420
|
+
"error",
|
|
55421
|
+
"unavailable"
|
|
55422
|
+
]);
|
|
55423
|
+
var DishwasherConsumableLevelSchema = _enum([
|
|
55424
|
+
"ok",
|
|
55425
|
+
"low",
|
|
55426
|
+
"empty"
|
|
55427
|
+
]);
|
|
55428
|
+
var DishwasherStatusSchema = object({
|
|
55429
|
+
state: DishwasherStateSchema,
|
|
55430
|
+
/** Active program id/name, or null when none selected / unknown. */
|
|
55431
|
+
program: string().nullable(),
|
|
55432
|
+
/** Program tokens the hardware accepts — drives the UI selector. */
|
|
55433
|
+
availablePrograms: array(string()),
|
|
55434
|
+
/** Minutes remaining on the active cycle, or null when not running. */
|
|
55435
|
+
remainingMinutes: number().int().nonnegative().nullable(),
|
|
55436
|
+
/** Cycle completion 0..100, or null when not applicable. */
|
|
55437
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
55438
|
+
/** True when the door is reported open. */
|
|
55439
|
+
doorOpen: boolean(),
|
|
55440
|
+
/** True when remote start is allowed (door closed, power on, etc.). */
|
|
55441
|
+
remoteStartAllowed: boolean(),
|
|
55442
|
+
/** Main power / switched-on state. */
|
|
55443
|
+
powerOn: boolean(),
|
|
55444
|
+
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55445
|
+
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55446
|
+
halfLoad: boolean(),
|
|
55447
|
+
hygienePlus: boolean(),
|
|
55448
|
+
/** Extra dry option when the appliance exposes it. */
|
|
55449
|
+
extraDry: boolean(),
|
|
55450
|
+
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55451
|
+
intensiveZone: boolean(),
|
|
55452
|
+
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55453
|
+
varioSpeedPlus: boolean(),
|
|
55454
|
+
/** Child lock (controls disabled on the appliance). */
|
|
55455
|
+
childLock: boolean(),
|
|
55456
|
+
errorCode: number().nullable(),
|
|
55457
|
+
errorLabel: string().nullable(),
|
|
55458
|
+
lastFetchedAt: number()
|
|
55459
|
+
});
|
|
55460
|
+
var dishwasherCapability = {
|
|
55461
|
+
name: "dishwasher",
|
|
55462
|
+
scope: "device",
|
|
55463
|
+
deviceNative: true,
|
|
55464
|
+
mode: "singleton",
|
|
55465
|
+
deviceTypes: [DeviceType.Dishwasher],
|
|
55466
|
+
methods: {
|
|
55467
|
+
start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55468
|
+
kind: "mutation",
|
|
55469
|
+
auth: "protected"
|
|
55470
|
+
}),
|
|
55471
|
+
pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55472
|
+
kind: "mutation",
|
|
55473
|
+
auth: "protected"
|
|
55474
|
+
}),
|
|
55475
|
+
stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55476
|
+
kind: "mutation",
|
|
55477
|
+
auth: "protected"
|
|
55478
|
+
}),
|
|
55479
|
+
setProgram: method(object({
|
|
55480
|
+
deviceId: number().int().nonnegative(),
|
|
55481
|
+
program: string().min(1)
|
|
55482
|
+
}), _void(), {
|
|
55483
|
+
kind: "mutation",
|
|
55484
|
+
auth: "protected"
|
|
55485
|
+
}),
|
|
55486
|
+
setPower: method(object({
|
|
55487
|
+
deviceId: number().int().nonnegative(),
|
|
55488
|
+
on: boolean()
|
|
55489
|
+
}), _void(), {
|
|
55490
|
+
kind: "mutation",
|
|
55491
|
+
auth: "protected"
|
|
55492
|
+
}),
|
|
55493
|
+
setHalfLoad: method(object({
|
|
55494
|
+
deviceId: number().int().nonnegative(),
|
|
55495
|
+
on: boolean()
|
|
55496
|
+
}), _void(), {
|
|
55497
|
+
kind: "mutation",
|
|
55498
|
+
auth: "protected"
|
|
55499
|
+
}),
|
|
55500
|
+
setHygienePlus: method(object({
|
|
55501
|
+
deviceId: number().int().nonnegative(),
|
|
55502
|
+
on: boolean()
|
|
55503
|
+
}), _void(), {
|
|
55504
|
+
kind: "mutation",
|
|
55505
|
+
auth: "protected"
|
|
55506
|
+
}),
|
|
55507
|
+
setExtraDry: method(object({
|
|
55508
|
+
deviceId: number().int().nonnegative(),
|
|
55509
|
+
on: boolean()
|
|
55510
|
+
}), _void(), {
|
|
55511
|
+
kind: "mutation",
|
|
55512
|
+
auth: "protected"
|
|
55513
|
+
}),
|
|
55514
|
+
setIntensiveZone: method(object({
|
|
55515
|
+
deviceId: number().int().nonnegative(),
|
|
55516
|
+
on: boolean()
|
|
55517
|
+
}), _void(), {
|
|
55518
|
+
kind: "mutation",
|
|
55519
|
+
auth: "protected"
|
|
55520
|
+
}),
|
|
55521
|
+
setVarioSpeedPlus: method(object({
|
|
55522
|
+
deviceId: number().int().nonnegative(),
|
|
55523
|
+
on: boolean()
|
|
55524
|
+
}), _void(), {
|
|
55525
|
+
kind: "mutation",
|
|
55526
|
+
auth: "protected"
|
|
55527
|
+
}),
|
|
55528
|
+
setChildLock: method(object({
|
|
55529
|
+
deviceId: number().int().nonnegative(),
|
|
55530
|
+
on: boolean()
|
|
55531
|
+
}), _void(), {
|
|
55532
|
+
kind: "mutation",
|
|
55533
|
+
auth: "protected"
|
|
55534
|
+
}),
|
|
55535
|
+
setOption: method(object({
|
|
55536
|
+
deviceId: number().int().nonnegative(),
|
|
55537
|
+
key: string().min(1),
|
|
55538
|
+
value: union([
|
|
55539
|
+
boolean(),
|
|
55540
|
+
string(),
|
|
55541
|
+
number()
|
|
55542
|
+
])
|
|
55543
|
+
}), _void(), {
|
|
55544
|
+
kind: "mutation",
|
|
55545
|
+
auth: "protected"
|
|
55546
|
+
})
|
|
55547
|
+
},
|
|
55548
|
+
status: {
|
|
55549
|
+
schema: DishwasherStatusSchema,
|
|
55550
|
+
kind: "poll"
|
|
55551
|
+
},
|
|
55552
|
+
runtimeState: DishwasherStatusSchema,
|
|
55553
|
+
durability: "session",
|
|
55554
|
+
history: { fields: { progressPercent: {
|
|
55555
|
+
kind: "gauge",
|
|
55556
|
+
unit: "%",
|
|
55557
|
+
deadband: 2
|
|
55558
|
+
} } }
|
|
55559
|
+
};
|
|
55390
55560
|
var DoorbellStatusSchema = object({
|
|
55391
55561
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
55392
55562
|
lastPressedAt: number().nullable(),
|
|
@@ -56189,6 +56359,32 @@ var gasCapability = {
|
|
|
56189
56359
|
* whether persisting is worth a SQLite commit. */
|
|
56190
56360
|
volatileStateFields: ["lastChangedAt"]
|
|
56191
56361
|
};
|
|
56362
|
+
var HeatingValveStatusSchema = object({
|
|
56363
|
+
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
56364
|
+
position: number().min(0).max(100).nullable(),
|
|
56365
|
+
/** Ms epoch when the slice was last updated (push or poll). */
|
|
56366
|
+
lastFetchedAt: number()
|
|
56367
|
+
});
|
|
56368
|
+
var heatingValveCapability = {
|
|
56369
|
+
name: "heating-valve",
|
|
56370
|
+
scope: "device",
|
|
56371
|
+
deviceNative: true,
|
|
56372
|
+
mode: "singleton",
|
|
56373
|
+
deviceTypes: [DeviceType.Thermostat],
|
|
56374
|
+
methods: {},
|
|
56375
|
+
status: {
|
|
56376
|
+
schema: HeatingValveStatusSchema,
|
|
56377
|
+
kind: "push"
|
|
56378
|
+
},
|
|
56379
|
+
runtimeState: HeatingValveStatusSchema,
|
|
56380
|
+
durability: "session",
|
|
56381
|
+
history: { fields: { position: {
|
|
56382
|
+
kind: "gauge",
|
|
56383
|
+
unit: "%",
|
|
56384
|
+
deadband: 1
|
|
56385
|
+
} } },
|
|
56386
|
+
volatileStateFields: ["lastFetchedAt"]
|
|
56387
|
+
};
|
|
56192
56388
|
/**
|
|
56193
56389
|
* Humidifier / dehumidifier cap. Models HA `humidifier.*` entities —
|
|
56194
56390
|
* an on/off actuator with an optional target-humidity setpoint and an
|
|
@@ -65609,6 +65805,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
65609
65805
|
dayNight: dayNightCapability,
|
|
65610
65806
|
deviceDiscovery: deviceDiscoveryCapability,
|
|
65611
65807
|
deviceStatus: deviceStatusCapability,
|
|
65808
|
+
dishwasher: dishwasherCapability,
|
|
65612
65809
|
doorbell: doorbellCapability,
|
|
65613
65810
|
enumSensor: enumSensorCapability,
|
|
65614
65811
|
eventEmitter: eventEmitterCapability,
|
|
@@ -65616,6 +65813,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
65616
65813
|
featureProbe: featureProbeCapability,
|
|
65617
65814
|
flood: floodCapability,
|
|
65618
65815
|
gas: gasCapability,
|
|
65816
|
+
heatingValve: heatingValveCapability,
|
|
65619
65817
|
humidifier: humidifierCapability,
|
|
65620
65818
|
humiditySensor: humiditySensorCapability,
|
|
65621
65819
|
image: imageCapability,
|
|
@@ -66341,6 +66539,12 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
66341
66539
|
provider: this
|
|
66342
66540
|
}];
|
|
66343
66541
|
}
|
|
66542
|
+
/** Flatten `super.onInitialize()` whether it returned an array or an envelope. */
|
|
66543
|
+
providerRegistrationsFromSuper(result) {
|
|
66544
|
+
if (Array.isArray(result)) return result;
|
|
66545
|
+
if (result !== void 0 && result.providers !== void 0) return [...result.providers];
|
|
66546
|
+
return [];
|
|
66547
|
+
}
|
|
66344
66548
|
async onShutdown() {
|
|
66345
66549
|
this._restoreShuttingDown = true;
|
|
66346
66550
|
this.cancelRestoreRetries();
|
|
@@ -66867,7 +67071,7 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
66867
67071
|
return toDeviceSummary(device, this.addonId);
|
|
66868
67072
|
}
|
|
66869
67073
|
};
|
|
66870
|
-
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;
|
|
67074
|
+
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;
|
|
66871
67075
|
new Set(Object.values(DeviceType));
|
|
66872
67076
|
Object.freeze({
|
|
66873
67077
|
"accessories.getStatus": {
|
|
@@ -69288,6 +69492,84 @@ Object.freeze({
|
|
|
69288
69492
|
addonId: null,
|
|
69289
69493
|
access: "view"
|
|
69290
69494
|
},
|
|
69495
|
+
"dishwasher.getStatus": {
|
|
69496
|
+
capName: "dishwasher",
|
|
69497
|
+
capScope: "device",
|
|
69498
|
+
addonId: null,
|
|
69499
|
+
access: "view"
|
|
69500
|
+
},
|
|
69501
|
+
"dishwasher.pause": {
|
|
69502
|
+
capName: "dishwasher",
|
|
69503
|
+
capScope: "device",
|
|
69504
|
+
addonId: null,
|
|
69505
|
+
access: "create"
|
|
69506
|
+
},
|
|
69507
|
+
"dishwasher.setChildLock": {
|
|
69508
|
+
capName: "dishwasher",
|
|
69509
|
+
capScope: "device",
|
|
69510
|
+
addonId: null,
|
|
69511
|
+
access: "create"
|
|
69512
|
+
},
|
|
69513
|
+
"dishwasher.setExtraDry": {
|
|
69514
|
+
capName: "dishwasher",
|
|
69515
|
+
capScope: "device",
|
|
69516
|
+
addonId: null,
|
|
69517
|
+
access: "create"
|
|
69518
|
+
},
|
|
69519
|
+
"dishwasher.setHalfLoad": {
|
|
69520
|
+
capName: "dishwasher",
|
|
69521
|
+
capScope: "device",
|
|
69522
|
+
addonId: null,
|
|
69523
|
+
access: "create"
|
|
69524
|
+
},
|
|
69525
|
+
"dishwasher.setHygienePlus": {
|
|
69526
|
+
capName: "dishwasher",
|
|
69527
|
+
capScope: "device",
|
|
69528
|
+
addonId: null,
|
|
69529
|
+
access: "create"
|
|
69530
|
+
},
|
|
69531
|
+
"dishwasher.setIntensiveZone": {
|
|
69532
|
+
capName: "dishwasher",
|
|
69533
|
+
capScope: "device",
|
|
69534
|
+
addonId: null,
|
|
69535
|
+
access: "create"
|
|
69536
|
+
},
|
|
69537
|
+
"dishwasher.setOption": {
|
|
69538
|
+
capName: "dishwasher",
|
|
69539
|
+
capScope: "device",
|
|
69540
|
+
addonId: null,
|
|
69541
|
+
access: "create"
|
|
69542
|
+
},
|
|
69543
|
+
"dishwasher.setPower": {
|
|
69544
|
+
capName: "dishwasher",
|
|
69545
|
+
capScope: "device",
|
|
69546
|
+
addonId: null,
|
|
69547
|
+
access: "create"
|
|
69548
|
+
},
|
|
69549
|
+
"dishwasher.setProgram": {
|
|
69550
|
+
capName: "dishwasher",
|
|
69551
|
+
capScope: "device",
|
|
69552
|
+
addonId: null,
|
|
69553
|
+
access: "create"
|
|
69554
|
+
},
|
|
69555
|
+
"dishwasher.setVarioSpeedPlus": {
|
|
69556
|
+
capName: "dishwasher",
|
|
69557
|
+
capScope: "device",
|
|
69558
|
+
addonId: null,
|
|
69559
|
+
access: "create"
|
|
69560
|
+
},
|
|
69561
|
+
"dishwasher.start": {
|
|
69562
|
+
capName: "dishwasher",
|
|
69563
|
+
capScope: "device",
|
|
69564
|
+
addonId: null,
|
|
69565
|
+
access: "create"
|
|
69566
|
+
},
|
|
69567
|
+
"dishwasher.stop": {
|
|
69568
|
+
capName: "dishwasher",
|
|
69569
|
+
capScope: "device",
|
|
69570
|
+
addonId: null,
|
|
69571
|
+
access: "create"
|
|
69572
|
+
},
|
|
69291
69573
|
"doorbell.getStatus": {
|
|
69292
69574
|
capName: "doorbell",
|
|
69293
69575
|
capScope: "device",
|
|
@@ -69498,6 +69780,12 @@ Object.freeze({
|
|
|
69498
69780
|
addonId: null,
|
|
69499
69781
|
access: "view"
|
|
69500
69782
|
},
|
|
69783
|
+
"heatingValve.getStatus": {
|
|
69784
|
+
capName: "heating-valve",
|
|
69785
|
+
capScope: "device",
|
|
69786
|
+
addonId: null,
|
|
69787
|
+
access: "view"
|
|
69788
|
+
},
|
|
69501
69789
|
"humidifier.getStatus": {
|
|
69502
69790
|
capName: "humidifier",
|
|
69503
69791
|
capScope: "device",
|
|
@@ -75085,7 +75373,7 @@ Object.freeze({
|
|
|
75085
75373
|
access: "create"
|
|
75086
75374
|
}
|
|
75087
75375
|
});
|
|
75088
|
-
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;
|
|
75376
|
+
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;
|
|
75089
75377
|
DeviceFeature.BatteryOperated;
|
|
75090
75378
|
Object.freeze({
|
|
75091
75379
|
"accessories.getStatus": [{
|
|
@@ -75909,6 +76197,71 @@ Object.freeze({
|
|
|
75909
76197
|
form: "single",
|
|
75910
76198
|
optional: false
|
|
75911
76199
|
}],
|
|
76200
|
+
"dishwasher.getStatus": [{
|
|
76201
|
+
name: "deviceId",
|
|
76202
|
+
form: "single",
|
|
76203
|
+
optional: false
|
|
76204
|
+
}],
|
|
76205
|
+
"dishwasher.pause": [{
|
|
76206
|
+
name: "deviceId",
|
|
76207
|
+
form: "single",
|
|
76208
|
+
optional: false
|
|
76209
|
+
}],
|
|
76210
|
+
"dishwasher.setChildLock": [{
|
|
76211
|
+
name: "deviceId",
|
|
76212
|
+
form: "single",
|
|
76213
|
+
optional: false
|
|
76214
|
+
}],
|
|
76215
|
+
"dishwasher.setExtraDry": [{
|
|
76216
|
+
name: "deviceId",
|
|
76217
|
+
form: "single",
|
|
76218
|
+
optional: false
|
|
76219
|
+
}],
|
|
76220
|
+
"dishwasher.setHalfLoad": [{
|
|
76221
|
+
name: "deviceId",
|
|
76222
|
+
form: "single",
|
|
76223
|
+
optional: false
|
|
76224
|
+
}],
|
|
76225
|
+
"dishwasher.setHygienePlus": [{
|
|
76226
|
+
name: "deviceId",
|
|
76227
|
+
form: "single",
|
|
76228
|
+
optional: false
|
|
76229
|
+
}],
|
|
76230
|
+
"dishwasher.setIntensiveZone": [{
|
|
76231
|
+
name: "deviceId",
|
|
76232
|
+
form: "single",
|
|
76233
|
+
optional: false
|
|
76234
|
+
}],
|
|
76235
|
+
"dishwasher.setOption": [{
|
|
76236
|
+
name: "deviceId",
|
|
76237
|
+
form: "single",
|
|
76238
|
+
optional: false
|
|
76239
|
+
}],
|
|
76240
|
+
"dishwasher.setPower": [{
|
|
76241
|
+
name: "deviceId",
|
|
76242
|
+
form: "single",
|
|
76243
|
+
optional: false
|
|
76244
|
+
}],
|
|
76245
|
+
"dishwasher.setProgram": [{
|
|
76246
|
+
name: "deviceId",
|
|
76247
|
+
form: "single",
|
|
76248
|
+
optional: false
|
|
76249
|
+
}],
|
|
76250
|
+
"dishwasher.setVarioSpeedPlus": [{
|
|
76251
|
+
name: "deviceId",
|
|
76252
|
+
form: "single",
|
|
76253
|
+
optional: false
|
|
76254
|
+
}],
|
|
76255
|
+
"dishwasher.start": [{
|
|
76256
|
+
name: "deviceId",
|
|
76257
|
+
form: "single",
|
|
76258
|
+
optional: false
|
|
76259
|
+
}],
|
|
76260
|
+
"dishwasher.stop": [{
|
|
76261
|
+
name: "deviceId",
|
|
76262
|
+
form: "single",
|
|
76263
|
+
optional: false
|
|
76264
|
+
}],
|
|
75912
76265
|
"doorbell.getStatus": [{
|
|
75913
76266
|
name: "deviceId",
|
|
75914
76267
|
form: "single",
|
|
@@ -75978,6 +76331,11 @@ Object.freeze({
|
|
|
75978
76331
|
form: "single",
|
|
75979
76332
|
optional: false
|
|
75980
76333
|
}],
|
|
76334
|
+
"heatingValve.getStatus": [{
|
|
76335
|
+
name: "deviceId",
|
|
76336
|
+
form: "single",
|
|
76337
|
+
optional: false
|
|
76338
|
+
}],
|
|
75981
76339
|
"humidifier.getStatus": [{
|
|
75982
76340
|
name: "deviceId",
|
|
75983
76341
|
form: "single",
|
|
@@ -83718,7 +84076,7 @@ var WyzeProviderAddon = class extends BaseDeviceProvider {
|
|
|
83718
84076
|
}
|
|
83719
84077
|
async onInitialize() {
|
|
83720
84078
|
applyWyzeCloudTlsTrust();
|
|
83721
|
-
const regs = await super.onInitialize();
|
|
84079
|
+
const regs = this.providerRegistrationsFromSuper(await super.onInitialize());
|
|
83722
84080
|
this.clients = new WyzeClientRegistry({
|
|
83723
84081
|
dataDir: this.ctx.dataDir,
|
|
83724
84082
|
logger: this.ctx.logger
|
package/dist/addon.mjs
CHANGED
|
@@ -5416,7 +5416,7 @@ var ZodIssueCode = {
|
|
|
5416
5416
|
var ZodFirstPartyTypeKind;
|
|
5417
5417
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5418
5418
|
//#endregion
|
|
5419
|
-
//#region ../types/dist/sleep-
|
|
5419
|
+
//#region ../types/dist/sleep-BegKjwUu.mjs
|
|
5420
5420
|
/**
|
|
5421
5421
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5422
5422
|
* window to float samples (D455).
|
|
@@ -8449,7 +8449,7 @@ function userError(code, params, englishFallback) {
|
|
|
8449
8449
|
return new CamstackError(code, params, englishFallback);
|
|
8450
8450
|
}
|
|
8451
8451
|
//#endregion
|
|
8452
|
-
//#region ../types/dist/err-msg
|
|
8452
|
+
//#region ../types/dist/err-msg-BXKzRBwg.mjs
|
|
8453
8453
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
8454
8454
|
DeviceType["Camera"] = "camera";
|
|
8455
8455
|
DeviceType["Hub"] = "hub";
|
|
@@ -8541,6 +8541,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
|
8541
8541
|
* native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
|
|
8542
8542
|
* integrations sharing the same food/desiccant/hopper surface. */
|
|
8543
8543
|
DeviceType["PetFeeder"] = "pet-feeder";
|
|
8544
|
+
/** Built-in dishwasher — program lifecycle, door / remote-start gates,
|
|
8545
|
+
* salt and rinse-aid levels. Installed with the `dishwasher` cap.
|
|
8546
|
+
* Sources: native Bosch Home Connect, reusable by similar integrations. */
|
|
8547
|
+
DeviceType["Dishwasher"] = "dishwasher";
|
|
8544
8548
|
return DeviceType;
|
|
8545
8549
|
}({});
|
|
8546
8550
|
var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
|
|
@@ -8798,7 +8802,7 @@ function errMsg(err) {
|
|
|
8798
8802
|
return String(err);
|
|
8799
8803
|
}
|
|
8800
8804
|
//#endregion
|
|
8801
|
-
//#region ../types/dist/composition-
|
|
8805
|
+
//#region ../types/dist/composition-CB6PMT9p.mjs
|
|
8802
8806
|
/**
|
|
8803
8807
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
8804
8808
|
*
|
|
@@ -13204,8 +13208,13 @@ var AlertSeveritySchema = _enum([
|
|
|
13204
13208
|
"info",
|
|
13205
13209
|
"success",
|
|
13206
13210
|
"warning",
|
|
13207
|
-
"error"
|
|
13211
|
+
"error",
|
|
13212
|
+
"critical"
|
|
13208
13213
|
]);
|
|
13214
|
+
var AlertActionSchema = object({
|
|
13215
|
+
label: string(),
|
|
13216
|
+
href: string().optional()
|
|
13217
|
+
});
|
|
13209
13218
|
var AlertStatusSchema = _enum([
|
|
13210
13219
|
"active",
|
|
13211
13220
|
"in-progress",
|
|
@@ -13223,6 +13232,7 @@ var AlertSchema = object({
|
|
|
13223
13232
|
severity: AlertSeveritySchema,
|
|
13224
13233
|
title: string(),
|
|
13225
13234
|
message: string(),
|
|
13235
|
+
action: AlertActionSchema.optional(),
|
|
13226
13236
|
status: AlertStatusSchema,
|
|
13227
13237
|
progress: number().optional(),
|
|
13228
13238
|
read: boolean(),
|
|
@@ -17584,7 +17594,11 @@ var deviceDiscoveryCapability = {
|
|
|
17584
17594
|
};
|
|
17585
17595
|
/**
|
|
17586
17596
|
* `device-adoption` — generic discovery + adoption surface,
|
|
17587
|
-
* system-scoped
|
|
17597
|
+
* system-scoped collection (one provider per integration addon), routed
|
|
17598
|
+
* by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
|
|
17599
|
+
* pin model as `connection-test`. The admin UI keeps using
|
|
17600
|
+
* `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
|
|
17601
|
+
* successor to `ha-discovery`:
|
|
17588
17602
|
* keyed by `integrationId` (the addon resolves integrationId → broker
|
|
17589
17603
|
* internally) rather than a connection-specific `brokerId`, and it
|
|
17590
17604
|
* REUSES the shared `DiscoveredChildDevice` candidate type from
|
|
@@ -17749,7 +17763,7 @@ var ResyncResultSchema = object({
|
|
|
17749
17763
|
var deviceAdoptionCapability = {
|
|
17750
17764
|
name: "device-adoption",
|
|
17751
17765
|
scope: "system",
|
|
17752
|
-
mode: "
|
|
17766
|
+
mode: "collection",
|
|
17753
17767
|
status: {
|
|
17754
17768
|
schema: AdoptionStatusSchema,
|
|
17755
17769
|
kind: "poll"
|
|
@@ -53885,7 +53899,8 @@ var batteryCapability = {
|
|
|
53885
53899
|
DeviceType.Button,
|
|
53886
53900
|
DeviceType.Switch,
|
|
53887
53901
|
DeviceType.PetFeeder,
|
|
53888
|
-
DeviceType.Container
|
|
53902
|
+
DeviceType.Container,
|
|
53903
|
+
DeviceType.Thermostat
|
|
53889
53904
|
],
|
|
53890
53905
|
methods: {
|
|
53891
53906
|
/**
|
|
@@ -55366,6 +55381,161 @@ onStatusChanged: { data: object({
|
|
|
55366
55381
|
* whether persisting is worth a SQLite commit. */
|
|
55367
55382
|
volatileStateFields: ["lastChangedAt"]
|
|
55368
55383
|
};
|
|
55384
|
+
/**
|
|
55385
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates,
|
|
55386
|
+
* consumable levels (salt, rinse aid) and common program options.
|
|
55387
|
+
*
|
|
55388
|
+
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
55389
|
+
* by any integration that exposes the same program / option surface.
|
|
55390
|
+
*
|
|
55391
|
+
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55392
|
+
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55393
|
+
*/
|
|
55394
|
+
var DishwasherStateSchema = _enum([
|
|
55395
|
+
"idle",
|
|
55396
|
+
"running",
|
|
55397
|
+
"paused",
|
|
55398
|
+
"finished",
|
|
55399
|
+
"error",
|
|
55400
|
+
"unavailable"
|
|
55401
|
+
]);
|
|
55402
|
+
var DishwasherConsumableLevelSchema = _enum([
|
|
55403
|
+
"ok",
|
|
55404
|
+
"low",
|
|
55405
|
+
"empty"
|
|
55406
|
+
]);
|
|
55407
|
+
var DishwasherStatusSchema = object({
|
|
55408
|
+
state: DishwasherStateSchema,
|
|
55409
|
+
/** Active program id/name, or null when none selected / unknown. */
|
|
55410
|
+
program: string().nullable(),
|
|
55411
|
+
/** Program tokens the hardware accepts — drives the UI selector. */
|
|
55412
|
+
availablePrograms: array(string()),
|
|
55413
|
+
/** Minutes remaining on the active cycle, or null when not running. */
|
|
55414
|
+
remainingMinutes: number().int().nonnegative().nullable(),
|
|
55415
|
+
/** Cycle completion 0..100, or null when not applicable. */
|
|
55416
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
55417
|
+
/** True when the door is reported open. */
|
|
55418
|
+
doorOpen: boolean(),
|
|
55419
|
+
/** True when remote start is allowed (door closed, power on, etc.). */
|
|
55420
|
+
remoteStartAllowed: boolean(),
|
|
55421
|
+
/** Main power / switched-on state. */
|
|
55422
|
+
powerOn: boolean(),
|
|
55423
|
+
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55424
|
+
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55425
|
+
halfLoad: boolean(),
|
|
55426
|
+
hygienePlus: boolean(),
|
|
55427
|
+
/** Extra dry option when the appliance exposes it. */
|
|
55428
|
+
extraDry: boolean(),
|
|
55429
|
+
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55430
|
+
intensiveZone: boolean(),
|
|
55431
|
+
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55432
|
+
varioSpeedPlus: boolean(),
|
|
55433
|
+
/** Child lock (controls disabled on the appliance). */
|
|
55434
|
+
childLock: boolean(),
|
|
55435
|
+
errorCode: number().nullable(),
|
|
55436
|
+
errorLabel: string().nullable(),
|
|
55437
|
+
lastFetchedAt: number()
|
|
55438
|
+
});
|
|
55439
|
+
var dishwasherCapability = {
|
|
55440
|
+
name: "dishwasher",
|
|
55441
|
+
scope: "device",
|
|
55442
|
+
deviceNative: true,
|
|
55443
|
+
mode: "singleton",
|
|
55444
|
+
deviceTypes: [DeviceType.Dishwasher],
|
|
55445
|
+
methods: {
|
|
55446
|
+
start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55447
|
+
kind: "mutation",
|
|
55448
|
+
auth: "protected"
|
|
55449
|
+
}),
|
|
55450
|
+
pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55451
|
+
kind: "mutation",
|
|
55452
|
+
auth: "protected"
|
|
55453
|
+
}),
|
|
55454
|
+
stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
55455
|
+
kind: "mutation",
|
|
55456
|
+
auth: "protected"
|
|
55457
|
+
}),
|
|
55458
|
+
setProgram: method(object({
|
|
55459
|
+
deviceId: number().int().nonnegative(),
|
|
55460
|
+
program: string().min(1)
|
|
55461
|
+
}), _void(), {
|
|
55462
|
+
kind: "mutation",
|
|
55463
|
+
auth: "protected"
|
|
55464
|
+
}),
|
|
55465
|
+
setPower: method(object({
|
|
55466
|
+
deviceId: number().int().nonnegative(),
|
|
55467
|
+
on: boolean()
|
|
55468
|
+
}), _void(), {
|
|
55469
|
+
kind: "mutation",
|
|
55470
|
+
auth: "protected"
|
|
55471
|
+
}),
|
|
55472
|
+
setHalfLoad: method(object({
|
|
55473
|
+
deviceId: number().int().nonnegative(),
|
|
55474
|
+
on: boolean()
|
|
55475
|
+
}), _void(), {
|
|
55476
|
+
kind: "mutation",
|
|
55477
|
+
auth: "protected"
|
|
55478
|
+
}),
|
|
55479
|
+
setHygienePlus: method(object({
|
|
55480
|
+
deviceId: number().int().nonnegative(),
|
|
55481
|
+
on: boolean()
|
|
55482
|
+
}), _void(), {
|
|
55483
|
+
kind: "mutation",
|
|
55484
|
+
auth: "protected"
|
|
55485
|
+
}),
|
|
55486
|
+
setExtraDry: method(object({
|
|
55487
|
+
deviceId: number().int().nonnegative(),
|
|
55488
|
+
on: boolean()
|
|
55489
|
+
}), _void(), {
|
|
55490
|
+
kind: "mutation",
|
|
55491
|
+
auth: "protected"
|
|
55492
|
+
}),
|
|
55493
|
+
setIntensiveZone: method(object({
|
|
55494
|
+
deviceId: number().int().nonnegative(),
|
|
55495
|
+
on: boolean()
|
|
55496
|
+
}), _void(), {
|
|
55497
|
+
kind: "mutation",
|
|
55498
|
+
auth: "protected"
|
|
55499
|
+
}),
|
|
55500
|
+
setVarioSpeedPlus: method(object({
|
|
55501
|
+
deviceId: number().int().nonnegative(),
|
|
55502
|
+
on: boolean()
|
|
55503
|
+
}), _void(), {
|
|
55504
|
+
kind: "mutation",
|
|
55505
|
+
auth: "protected"
|
|
55506
|
+
}),
|
|
55507
|
+
setChildLock: method(object({
|
|
55508
|
+
deviceId: number().int().nonnegative(),
|
|
55509
|
+
on: boolean()
|
|
55510
|
+
}), _void(), {
|
|
55511
|
+
kind: "mutation",
|
|
55512
|
+
auth: "protected"
|
|
55513
|
+
}),
|
|
55514
|
+
setOption: method(object({
|
|
55515
|
+
deviceId: number().int().nonnegative(),
|
|
55516
|
+
key: string().min(1),
|
|
55517
|
+
value: union([
|
|
55518
|
+
boolean(),
|
|
55519
|
+
string(),
|
|
55520
|
+
number()
|
|
55521
|
+
])
|
|
55522
|
+
}), _void(), {
|
|
55523
|
+
kind: "mutation",
|
|
55524
|
+
auth: "protected"
|
|
55525
|
+
})
|
|
55526
|
+
},
|
|
55527
|
+
status: {
|
|
55528
|
+
schema: DishwasherStatusSchema,
|
|
55529
|
+
kind: "poll"
|
|
55530
|
+
},
|
|
55531
|
+
runtimeState: DishwasherStatusSchema,
|
|
55532
|
+
durability: "session",
|
|
55533
|
+
history: { fields: { progressPercent: {
|
|
55534
|
+
kind: "gauge",
|
|
55535
|
+
unit: "%",
|
|
55536
|
+
deadband: 2
|
|
55537
|
+
} } }
|
|
55538
|
+
};
|
|
55369
55539
|
var DoorbellStatusSchema = object({
|
|
55370
55540
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
55371
55541
|
lastPressedAt: number().nullable(),
|
|
@@ -56168,6 +56338,32 @@ var gasCapability = {
|
|
|
56168
56338
|
* whether persisting is worth a SQLite commit. */
|
|
56169
56339
|
volatileStateFields: ["lastChangedAt"]
|
|
56170
56340
|
};
|
|
56341
|
+
var HeatingValveStatusSchema = object({
|
|
56342
|
+
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
56343
|
+
position: number().min(0).max(100).nullable(),
|
|
56344
|
+
/** Ms epoch when the slice was last updated (push or poll). */
|
|
56345
|
+
lastFetchedAt: number()
|
|
56346
|
+
});
|
|
56347
|
+
var heatingValveCapability = {
|
|
56348
|
+
name: "heating-valve",
|
|
56349
|
+
scope: "device",
|
|
56350
|
+
deviceNative: true,
|
|
56351
|
+
mode: "singleton",
|
|
56352
|
+
deviceTypes: [DeviceType.Thermostat],
|
|
56353
|
+
methods: {},
|
|
56354
|
+
status: {
|
|
56355
|
+
schema: HeatingValveStatusSchema,
|
|
56356
|
+
kind: "push"
|
|
56357
|
+
},
|
|
56358
|
+
runtimeState: HeatingValveStatusSchema,
|
|
56359
|
+
durability: "session",
|
|
56360
|
+
history: { fields: { position: {
|
|
56361
|
+
kind: "gauge",
|
|
56362
|
+
unit: "%",
|
|
56363
|
+
deadband: 1
|
|
56364
|
+
} } },
|
|
56365
|
+
volatileStateFields: ["lastFetchedAt"]
|
|
56366
|
+
};
|
|
56171
56367
|
/**
|
|
56172
56368
|
* Humidifier / dehumidifier cap. Models HA `humidifier.*` entities —
|
|
56173
56369
|
* an on/off actuator with an optional target-humidity setpoint and an
|
|
@@ -65588,6 +65784,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
65588
65784
|
dayNight: dayNightCapability,
|
|
65589
65785
|
deviceDiscovery: deviceDiscoveryCapability,
|
|
65590
65786
|
deviceStatus: deviceStatusCapability,
|
|
65787
|
+
dishwasher: dishwasherCapability,
|
|
65591
65788
|
doorbell: doorbellCapability,
|
|
65592
65789
|
enumSensor: enumSensorCapability,
|
|
65593
65790
|
eventEmitter: eventEmitterCapability,
|
|
@@ -65595,6 +65792,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
|
|
|
65595
65792
|
featureProbe: featureProbeCapability,
|
|
65596
65793
|
flood: floodCapability,
|
|
65597
65794
|
gas: gasCapability,
|
|
65795
|
+
heatingValve: heatingValveCapability,
|
|
65598
65796
|
humidifier: humidifierCapability,
|
|
65599
65797
|
humiditySensor: humiditySensorCapability,
|
|
65600
65798
|
image: imageCapability,
|
|
@@ -66320,6 +66518,12 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
66320
66518
|
provider: this
|
|
66321
66519
|
}];
|
|
66322
66520
|
}
|
|
66521
|
+
/** Flatten `super.onInitialize()` whether it returned an array or an envelope. */
|
|
66522
|
+
providerRegistrationsFromSuper(result) {
|
|
66523
|
+
if (Array.isArray(result)) return result;
|
|
66524
|
+
if (result !== void 0 && result.providers !== void 0) return [...result.providers];
|
|
66525
|
+
return [];
|
|
66526
|
+
}
|
|
66323
66527
|
async onShutdown() {
|
|
66324
66528
|
this._restoreShuttingDown = true;
|
|
66325
66529
|
this.cancelRestoreRetries();
|
|
@@ -66846,7 +67050,7 @@ var BaseDeviceProvider = class extends BaseAddon {
|
|
|
66846
67050
|
return toDeviceSummary(device, this.addonId);
|
|
66847
67051
|
}
|
|
66848
67052
|
};
|
|
66849
|
-
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;
|
|
67053
|
+
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;
|
|
66850
67054
|
new Set(Object.values(DeviceType));
|
|
66851
67055
|
Object.freeze({
|
|
66852
67056
|
"accessories.getStatus": {
|
|
@@ -69267,6 +69471,84 @@ Object.freeze({
|
|
|
69267
69471
|
addonId: null,
|
|
69268
69472
|
access: "view"
|
|
69269
69473
|
},
|
|
69474
|
+
"dishwasher.getStatus": {
|
|
69475
|
+
capName: "dishwasher",
|
|
69476
|
+
capScope: "device",
|
|
69477
|
+
addonId: null,
|
|
69478
|
+
access: "view"
|
|
69479
|
+
},
|
|
69480
|
+
"dishwasher.pause": {
|
|
69481
|
+
capName: "dishwasher",
|
|
69482
|
+
capScope: "device",
|
|
69483
|
+
addonId: null,
|
|
69484
|
+
access: "create"
|
|
69485
|
+
},
|
|
69486
|
+
"dishwasher.setChildLock": {
|
|
69487
|
+
capName: "dishwasher",
|
|
69488
|
+
capScope: "device",
|
|
69489
|
+
addonId: null,
|
|
69490
|
+
access: "create"
|
|
69491
|
+
},
|
|
69492
|
+
"dishwasher.setExtraDry": {
|
|
69493
|
+
capName: "dishwasher",
|
|
69494
|
+
capScope: "device",
|
|
69495
|
+
addonId: null,
|
|
69496
|
+
access: "create"
|
|
69497
|
+
},
|
|
69498
|
+
"dishwasher.setHalfLoad": {
|
|
69499
|
+
capName: "dishwasher",
|
|
69500
|
+
capScope: "device",
|
|
69501
|
+
addonId: null,
|
|
69502
|
+
access: "create"
|
|
69503
|
+
},
|
|
69504
|
+
"dishwasher.setHygienePlus": {
|
|
69505
|
+
capName: "dishwasher",
|
|
69506
|
+
capScope: "device",
|
|
69507
|
+
addonId: null,
|
|
69508
|
+
access: "create"
|
|
69509
|
+
},
|
|
69510
|
+
"dishwasher.setIntensiveZone": {
|
|
69511
|
+
capName: "dishwasher",
|
|
69512
|
+
capScope: "device",
|
|
69513
|
+
addonId: null,
|
|
69514
|
+
access: "create"
|
|
69515
|
+
},
|
|
69516
|
+
"dishwasher.setOption": {
|
|
69517
|
+
capName: "dishwasher",
|
|
69518
|
+
capScope: "device",
|
|
69519
|
+
addonId: null,
|
|
69520
|
+
access: "create"
|
|
69521
|
+
},
|
|
69522
|
+
"dishwasher.setPower": {
|
|
69523
|
+
capName: "dishwasher",
|
|
69524
|
+
capScope: "device",
|
|
69525
|
+
addonId: null,
|
|
69526
|
+
access: "create"
|
|
69527
|
+
},
|
|
69528
|
+
"dishwasher.setProgram": {
|
|
69529
|
+
capName: "dishwasher",
|
|
69530
|
+
capScope: "device",
|
|
69531
|
+
addonId: null,
|
|
69532
|
+
access: "create"
|
|
69533
|
+
},
|
|
69534
|
+
"dishwasher.setVarioSpeedPlus": {
|
|
69535
|
+
capName: "dishwasher",
|
|
69536
|
+
capScope: "device",
|
|
69537
|
+
addonId: null,
|
|
69538
|
+
access: "create"
|
|
69539
|
+
},
|
|
69540
|
+
"dishwasher.start": {
|
|
69541
|
+
capName: "dishwasher",
|
|
69542
|
+
capScope: "device",
|
|
69543
|
+
addonId: null,
|
|
69544
|
+
access: "create"
|
|
69545
|
+
},
|
|
69546
|
+
"dishwasher.stop": {
|
|
69547
|
+
capName: "dishwasher",
|
|
69548
|
+
capScope: "device",
|
|
69549
|
+
addonId: null,
|
|
69550
|
+
access: "create"
|
|
69551
|
+
},
|
|
69270
69552
|
"doorbell.getStatus": {
|
|
69271
69553
|
capName: "doorbell",
|
|
69272
69554
|
capScope: "device",
|
|
@@ -69477,6 +69759,12 @@ Object.freeze({
|
|
|
69477
69759
|
addonId: null,
|
|
69478
69760
|
access: "view"
|
|
69479
69761
|
},
|
|
69762
|
+
"heatingValve.getStatus": {
|
|
69763
|
+
capName: "heating-valve",
|
|
69764
|
+
capScope: "device",
|
|
69765
|
+
addonId: null,
|
|
69766
|
+
access: "view"
|
|
69767
|
+
},
|
|
69480
69768
|
"humidifier.getStatus": {
|
|
69481
69769
|
capName: "humidifier",
|
|
69482
69770
|
capScope: "device",
|
|
@@ -75064,7 +75352,7 @@ Object.freeze({
|
|
|
75064
75352
|
access: "create"
|
|
75065
75353
|
}
|
|
75066
75354
|
});
|
|
75067
|
-
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;
|
|
75355
|
+
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;
|
|
75068
75356
|
DeviceFeature.BatteryOperated;
|
|
75069
75357
|
Object.freeze({
|
|
75070
75358
|
"accessories.getStatus": [{
|
|
@@ -75888,6 +76176,71 @@ Object.freeze({
|
|
|
75888
76176
|
form: "single",
|
|
75889
76177
|
optional: false
|
|
75890
76178
|
}],
|
|
76179
|
+
"dishwasher.getStatus": [{
|
|
76180
|
+
name: "deviceId",
|
|
76181
|
+
form: "single",
|
|
76182
|
+
optional: false
|
|
76183
|
+
}],
|
|
76184
|
+
"dishwasher.pause": [{
|
|
76185
|
+
name: "deviceId",
|
|
76186
|
+
form: "single",
|
|
76187
|
+
optional: false
|
|
76188
|
+
}],
|
|
76189
|
+
"dishwasher.setChildLock": [{
|
|
76190
|
+
name: "deviceId",
|
|
76191
|
+
form: "single",
|
|
76192
|
+
optional: false
|
|
76193
|
+
}],
|
|
76194
|
+
"dishwasher.setExtraDry": [{
|
|
76195
|
+
name: "deviceId",
|
|
76196
|
+
form: "single",
|
|
76197
|
+
optional: false
|
|
76198
|
+
}],
|
|
76199
|
+
"dishwasher.setHalfLoad": [{
|
|
76200
|
+
name: "deviceId",
|
|
76201
|
+
form: "single",
|
|
76202
|
+
optional: false
|
|
76203
|
+
}],
|
|
76204
|
+
"dishwasher.setHygienePlus": [{
|
|
76205
|
+
name: "deviceId",
|
|
76206
|
+
form: "single",
|
|
76207
|
+
optional: false
|
|
76208
|
+
}],
|
|
76209
|
+
"dishwasher.setIntensiveZone": [{
|
|
76210
|
+
name: "deviceId",
|
|
76211
|
+
form: "single",
|
|
76212
|
+
optional: false
|
|
76213
|
+
}],
|
|
76214
|
+
"dishwasher.setOption": [{
|
|
76215
|
+
name: "deviceId",
|
|
76216
|
+
form: "single",
|
|
76217
|
+
optional: false
|
|
76218
|
+
}],
|
|
76219
|
+
"dishwasher.setPower": [{
|
|
76220
|
+
name: "deviceId",
|
|
76221
|
+
form: "single",
|
|
76222
|
+
optional: false
|
|
76223
|
+
}],
|
|
76224
|
+
"dishwasher.setProgram": [{
|
|
76225
|
+
name: "deviceId",
|
|
76226
|
+
form: "single",
|
|
76227
|
+
optional: false
|
|
76228
|
+
}],
|
|
76229
|
+
"dishwasher.setVarioSpeedPlus": [{
|
|
76230
|
+
name: "deviceId",
|
|
76231
|
+
form: "single",
|
|
76232
|
+
optional: false
|
|
76233
|
+
}],
|
|
76234
|
+
"dishwasher.start": [{
|
|
76235
|
+
name: "deviceId",
|
|
76236
|
+
form: "single",
|
|
76237
|
+
optional: false
|
|
76238
|
+
}],
|
|
76239
|
+
"dishwasher.stop": [{
|
|
76240
|
+
name: "deviceId",
|
|
76241
|
+
form: "single",
|
|
76242
|
+
optional: false
|
|
76243
|
+
}],
|
|
75891
76244
|
"doorbell.getStatus": [{
|
|
75892
76245
|
name: "deviceId",
|
|
75893
76246
|
form: "single",
|
|
@@ -75957,6 +76310,11 @@ Object.freeze({
|
|
|
75957
76310
|
form: "single",
|
|
75958
76311
|
optional: false
|
|
75959
76312
|
}],
|
|
76313
|
+
"heatingValve.getStatus": [{
|
|
76314
|
+
name: "deviceId",
|
|
76315
|
+
form: "single",
|
|
76316
|
+
optional: false
|
|
76317
|
+
}],
|
|
75960
76318
|
"humidifier.getStatus": [{
|
|
75961
76319
|
name: "deviceId",
|
|
75962
76320
|
form: "single",
|
|
@@ -83697,7 +84055,7 @@ var WyzeProviderAddon = class extends BaseDeviceProvider {
|
|
|
83697
84055
|
}
|
|
83698
84056
|
async onInitialize() {
|
|
83699
84057
|
applyWyzeCloudTlsTrust();
|
|
83700
|
-
const regs = await super.onInitialize();
|
|
84058
|
+
const regs = this.providerRegistrationsFromSuper(await super.onInitialize());
|
|
83701
84059
|
this.clients = new WyzeClientRegistry({
|
|
83702
84060
|
dataDir: this.ctx.dataDir,
|
|
83703
84061
|
logger: this.ctx.logger
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-wyze",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.140",
|
|
4
4
|
"description": "Wyze camera device-provider addon for CamStack — wraps the @apocaliss92/wyze-bridge-js P2P/DTLS client, feeding the stream-broker via the pull-rfc4571 lazy-publish path (a structural twin of addon-provider-reolink)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|