@camstack/addon-provider-dreo 0.2.128 → 0.2.129
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 +264 -44
- package/dist/addon.mjs +264 -44
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -35,7 +35,7 @@ var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["modu
|
|
|
35
35
|
//#endregion
|
|
36
36
|
let crypto$1 = require("crypto");
|
|
37
37
|
let events = require("events");
|
|
38
|
-
//#region ../types/dist/event-category-
|
|
38
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
39
39
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
40
40
|
EventCategory["SystemBoot"] = "system.boot";
|
|
41
41
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -114,9 +114,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
114
114
|
/**
|
|
115
115
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
116
116
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
117
|
-
* alert centre turns it into one
|
|
117
|
+
* alert centre turns it into one critical alert.
|
|
118
118
|
*/
|
|
119
119
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
120
|
+
/**
|
|
121
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
122
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
123
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
124
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
125
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
126
|
+
* event may be dropped (D8, D11).
|
|
127
|
+
*/
|
|
128
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
120
129
|
EventCategory["AddonError"] = "addon.error";
|
|
121
130
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
122
131
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5441,7 +5450,7 @@ var ZodIssueCode = {
|
|
|
5441
5450
|
var ZodFirstPartyTypeKind;
|
|
5442
5451
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5443
5452
|
//#endregion
|
|
5444
|
-
//#region ../types/dist/sleep-
|
|
5453
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5445
5454
|
/**
|
|
5446
5455
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5447
5456
|
* window to float samples (D455).
|
|
@@ -13204,7 +13213,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13204
13213
|
]);
|
|
13205
13214
|
var AlertActionSchema = object({
|
|
13206
13215
|
label: string(),
|
|
13207
|
-
href: string().optional()
|
|
13216
|
+
href: string().optional(),
|
|
13217
|
+
/**
|
|
13218
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13219
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13220
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13221
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13222
|
+
*/
|
|
13223
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13208
13224
|
});
|
|
13209
13225
|
var AlertStatusSchema = _enum([
|
|
13210
13226
|
"active",
|
|
@@ -41937,6 +41953,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
41937
41953
|
"server-updated",
|
|
41938
41954
|
"export-completed",
|
|
41939
41955
|
"backup-completed",
|
|
41956
|
+
"alert-critical",
|
|
41957
|
+
"alert-error",
|
|
41958
|
+
"alert-critical-resolved",
|
|
41940
41959
|
"camera-online",
|
|
41941
41960
|
"camera-offline",
|
|
41942
41961
|
"camera-disabled",
|
|
@@ -51013,7 +51032,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51013
51032
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51014
51033
|
kind: "mutation",
|
|
51015
51034
|
auth: "admin"
|
|
51016
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51035
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51036
|
+
clear: boolean(),
|
|
51037
|
+
repointLocationId: string().optional()
|
|
51038
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51017
51039
|
kind: "mutation",
|
|
51018
51040
|
auth: "admin"
|
|
51019
51041
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -55277,6 +55299,11 @@ onStatusChanged: { data: object({
|
|
|
55277
55299
|
*
|
|
55278
55300
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55279
55301
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55302
|
+
*
|
|
55303
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
55304
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
55305
|
+
* the link is down, or the description does not carry it) and is never
|
|
55306
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
55280
55307
|
*/
|
|
55281
55308
|
var DishwasherStateSchema = _enum([
|
|
55282
55309
|
"idle",
|
|
@@ -55286,43 +55313,155 @@ var DishwasherStateSchema = _enum([
|
|
|
55286
55313
|
"error",
|
|
55287
55314
|
"unavailable"
|
|
55288
55315
|
]);
|
|
55316
|
+
/**
|
|
55317
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
55318
|
+
* view for compact surfaces; this is what the appliance said.
|
|
55319
|
+
*/
|
|
55320
|
+
var DishwasherOperationStateSchema = _enum([
|
|
55321
|
+
"Inactive",
|
|
55322
|
+
"Ready",
|
|
55323
|
+
"DelayedStart",
|
|
55324
|
+
"Run",
|
|
55325
|
+
"Pause",
|
|
55326
|
+
"ActionRequired",
|
|
55327
|
+
"Finished",
|
|
55328
|
+
"Error",
|
|
55329
|
+
"Aborting"
|
|
55330
|
+
]);
|
|
55331
|
+
/**
|
|
55332
|
+
* Why fields may be `null`:
|
|
55333
|
+
* - `available` — the link is up and the description is loaded;
|
|
55334
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
55335
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
55336
|
+
* be loaded, so its values cannot be decoded.
|
|
55337
|
+
*/
|
|
55338
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
55339
|
+
"available",
|
|
55340
|
+
"offline",
|
|
55341
|
+
"description-missing"
|
|
55342
|
+
]);
|
|
55289
55343
|
var DishwasherConsumableLevelSchema = _enum([
|
|
55290
55344
|
"ok",
|
|
55291
55345
|
"low",
|
|
55292
55346
|
"empty"
|
|
55293
55347
|
]);
|
|
55294
55348
|
var DishwasherStatusSchema = object({
|
|
55349
|
+
availability: DishwasherAvailabilitySchema,
|
|
55350
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55295
55351
|
state: DishwasherStateSchema,
|
|
55296
|
-
/**
|
|
55352
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
55353
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
55354
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
55297
55355
|
program: string().nullable(),
|
|
55298
|
-
/**
|
|
55356
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
55357
|
+
selectedProgram: string().nullable(),
|
|
55358
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
55299
55359
|
availablePrograms: array(string()),
|
|
55300
|
-
/**
|
|
55301
|
-
|
|
55360
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
55361
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
55362
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
55363
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
55302
55364
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
55303
55365
|
progressPercent: number().min(0).max(100).nullable(),
|
|
55304
|
-
/** True when the door is reported open. */
|
|
55305
|
-
doorOpen: boolean(),
|
|
55306
|
-
/** True when
|
|
55307
|
-
|
|
55308
|
-
/**
|
|
55309
|
-
|
|
55366
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
55367
|
+
doorOpen: boolean().nullable(),
|
|
55368
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
55369
|
+
doorLocked: boolean().nullable(),
|
|
55370
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
55371
|
+
remoteStartAllowed: boolean().nullable(),
|
|
55372
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
55373
|
+
remoteControlActive: boolean().nullable(),
|
|
55374
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
55375
|
+
localControlActive: boolean().nullable(),
|
|
55376
|
+
/** Main power / switched-on state; null when not known. */
|
|
55377
|
+
powerOn: boolean().nullable(),
|
|
55378
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
55379
|
+
powerState: string().nullable(),
|
|
55310
55380
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55311
55381
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55312
|
-
|
|
55313
|
-
|
|
55382
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55383
|
+
halfLoad: boolean().nullable(),
|
|
55384
|
+
hygienePlus: boolean().nullable(),
|
|
55314
55385
|
/** Extra dry option when the appliance exposes it. */
|
|
55315
|
-
extraDry: boolean(),
|
|
55386
|
+
extraDry: boolean().nullable(),
|
|
55316
55387
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55317
|
-
intensiveZone: boolean(),
|
|
55388
|
+
intensiveZone: boolean().nullable(),
|
|
55318
55389
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55319
|
-
varioSpeedPlus: boolean(),
|
|
55320
|
-
/** Child lock (controls disabled on the appliance). */
|
|
55321
|
-
childLock: boolean(),
|
|
55390
|
+
varioSpeedPlus: boolean().nullable(),
|
|
55391
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
55392
|
+
childLock: boolean().nullable(),
|
|
55393
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
55394
|
+
activeEvents: array(string()),
|
|
55395
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
55322
55396
|
errorCode: number().nullable(),
|
|
55397
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55323
55398
|
errorLabel: string().nullable(),
|
|
55399
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55324
55400
|
lastFetchedAt: number()
|
|
55325
55401
|
});
|
|
55402
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
55403
|
+
/** A value a program option or setting can take. */
|
|
55404
|
+
var DishwasherValueSchema = union([
|
|
55405
|
+
boolean(),
|
|
55406
|
+
string(),
|
|
55407
|
+
number()
|
|
55408
|
+
]);
|
|
55409
|
+
var DishwasherAccessSchema = _enum([
|
|
55410
|
+
"none",
|
|
55411
|
+
"read",
|
|
55412
|
+
"readWrite",
|
|
55413
|
+
"writeOnly",
|
|
55414
|
+
"readStatic"
|
|
55415
|
+
]);
|
|
55416
|
+
/**
|
|
55417
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
55418
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
55419
|
+
*/
|
|
55420
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
55421
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
55422
|
+
key: string(),
|
|
55423
|
+
/** Last segment of the key, for display. */
|
|
55424
|
+
name: string(),
|
|
55425
|
+
type: _enum([
|
|
55426
|
+
"boolean",
|
|
55427
|
+
"number",
|
|
55428
|
+
"enum",
|
|
55429
|
+
"string"
|
|
55430
|
+
]),
|
|
55431
|
+
access: DishwasherAccessSchema,
|
|
55432
|
+
/** The appliance reports this entity as currently available. */
|
|
55433
|
+
available: boolean(),
|
|
55434
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
55435
|
+
unit: string().nullable(),
|
|
55436
|
+
min: number().nullable(),
|
|
55437
|
+
max: number().nullable(),
|
|
55438
|
+
step: number().nullable(),
|
|
55439
|
+
/** Allowed members of an enum; null for other types. */
|
|
55440
|
+
enumValues: array(string()).nullable(),
|
|
55441
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
55442
|
+
});
|
|
55443
|
+
var DishwasherProgramSchema = object({
|
|
55444
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
55445
|
+
key: string(),
|
|
55446
|
+
name: string(),
|
|
55447
|
+
/** The appliance currently offers this program. */
|
|
55448
|
+
available: boolean(),
|
|
55449
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
55450
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55451
|
+
});
|
|
55452
|
+
var DishwasherOptionsSchema = object({
|
|
55453
|
+
availability: DishwasherAvailabilitySchema,
|
|
55454
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
55455
|
+
supportsStart: boolean(),
|
|
55456
|
+
supportsPause: boolean(),
|
|
55457
|
+
supportsResume: boolean(),
|
|
55458
|
+
supportsStop: boolean(),
|
|
55459
|
+
supportsPower: boolean(),
|
|
55460
|
+
/** Every program the description lists, with its options. */
|
|
55461
|
+
programs: array(DishwasherProgramSchema),
|
|
55462
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
55463
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55464
|
+
});
|
|
55326
55465
|
var dishwasherCapability = {
|
|
55327
55466
|
name: "dishwasher",
|
|
55328
55467
|
scope: "device",
|
|
@@ -55330,86 +55469,102 @@ var dishwasherCapability = {
|
|
|
55330
55469
|
mode: "singleton",
|
|
55331
55470
|
deviceTypes: [DeviceType.Dishwasher],
|
|
55332
55471
|
methods: {
|
|
55333
|
-
|
|
55472
|
+
/**
|
|
55473
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
55474
|
+
* option feature keys; each is checked against the program's constraints.
|
|
55475
|
+
*/
|
|
55476
|
+
start: method(object({
|
|
55477
|
+
deviceId: DeviceIdSchema,
|
|
55478
|
+
program: string().min(1).optional(),
|
|
55479
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
55480
|
+
}), _void(), {
|
|
55334
55481
|
kind: "mutation",
|
|
55335
55482
|
auth: "protected"
|
|
55336
55483
|
}),
|
|
55337
|
-
pause: method(object({ deviceId:
|
|
55484
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55338
55485
|
kind: "mutation",
|
|
55339
55486
|
auth: "protected"
|
|
55340
55487
|
}),
|
|
55341
|
-
|
|
55488
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55489
|
+
kind: "mutation",
|
|
55490
|
+
auth: "protected"
|
|
55491
|
+
}),
|
|
55492
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55342
55493
|
kind: "mutation",
|
|
55343
55494
|
auth: "protected"
|
|
55344
55495
|
}),
|
|
55496
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55345
55497
|
setProgram: method(object({
|
|
55346
|
-
deviceId:
|
|
55498
|
+
deviceId: DeviceIdSchema,
|
|
55347
55499
|
program: string().min(1)
|
|
55348
55500
|
}), _void(), {
|
|
55349
55501
|
kind: "mutation",
|
|
55350
55502
|
auth: "protected"
|
|
55351
55503
|
}),
|
|
55352
55504
|
setPower: method(object({
|
|
55353
|
-
deviceId:
|
|
55505
|
+
deviceId: DeviceIdSchema,
|
|
55354
55506
|
on: boolean()
|
|
55355
55507
|
}), _void(), {
|
|
55356
55508
|
kind: "mutation",
|
|
55357
55509
|
auth: "protected"
|
|
55358
55510
|
}),
|
|
55359
55511
|
setHalfLoad: method(object({
|
|
55360
|
-
deviceId:
|
|
55512
|
+
deviceId: DeviceIdSchema,
|
|
55361
55513
|
on: boolean()
|
|
55362
55514
|
}), _void(), {
|
|
55363
55515
|
kind: "mutation",
|
|
55364
55516
|
auth: "protected"
|
|
55365
55517
|
}),
|
|
55366
55518
|
setHygienePlus: method(object({
|
|
55367
|
-
deviceId:
|
|
55519
|
+
deviceId: DeviceIdSchema,
|
|
55368
55520
|
on: boolean()
|
|
55369
55521
|
}), _void(), {
|
|
55370
55522
|
kind: "mutation",
|
|
55371
55523
|
auth: "protected"
|
|
55372
55524
|
}),
|
|
55373
55525
|
setExtraDry: method(object({
|
|
55374
|
-
deviceId:
|
|
55526
|
+
deviceId: DeviceIdSchema,
|
|
55375
55527
|
on: boolean()
|
|
55376
55528
|
}), _void(), {
|
|
55377
55529
|
kind: "mutation",
|
|
55378
55530
|
auth: "protected"
|
|
55379
55531
|
}),
|
|
55380
55532
|
setIntensiveZone: method(object({
|
|
55381
|
-
deviceId:
|
|
55533
|
+
deviceId: DeviceIdSchema,
|
|
55382
55534
|
on: boolean()
|
|
55383
55535
|
}), _void(), {
|
|
55384
55536
|
kind: "mutation",
|
|
55385
55537
|
auth: "protected"
|
|
55386
55538
|
}),
|
|
55387
55539
|
setVarioSpeedPlus: method(object({
|
|
55388
|
-
deviceId:
|
|
55540
|
+
deviceId: DeviceIdSchema,
|
|
55389
55541
|
on: boolean()
|
|
55390
55542
|
}), _void(), {
|
|
55391
55543
|
kind: "mutation",
|
|
55392
55544
|
auth: "protected"
|
|
55393
55545
|
}),
|
|
55394
55546
|
setChildLock: method(object({
|
|
55395
|
-
deviceId:
|
|
55547
|
+
deviceId: DeviceIdSchema,
|
|
55396
55548
|
on: boolean()
|
|
55397
55549
|
}), _void(), {
|
|
55398
55550
|
kind: "mutation",
|
|
55399
55551
|
auth: "protected"
|
|
55400
55552
|
}),
|
|
55553
|
+
/**
|
|
55554
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
55555
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
55556
|
+
* its declared range / members.
|
|
55557
|
+
*/
|
|
55401
55558
|
setOption: method(object({
|
|
55402
|
-
deviceId:
|
|
55559
|
+
deviceId: DeviceIdSchema,
|
|
55403
55560
|
key: string().min(1),
|
|
55404
|
-
value:
|
|
55405
|
-
boolean(),
|
|
55406
|
-
string(),
|
|
55407
|
-
number()
|
|
55408
|
-
])
|
|
55561
|
+
value: DishwasherValueSchema
|
|
55409
55562
|
}), _void(), {
|
|
55410
55563
|
kind: "mutation",
|
|
55411
55564
|
auth: "protected"
|
|
55412
|
-
})
|
|
55565
|
+
}),
|
|
55566
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
55567
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
55413
55568
|
},
|
|
55414
55569
|
status: {
|
|
55415
55570
|
schema: DishwasherStatusSchema,
|
|
@@ -69358,6 +69513,12 @@ Object.freeze({
|
|
|
69358
69513
|
addonId: null,
|
|
69359
69514
|
access: "view"
|
|
69360
69515
|
},
|
|
69516
|
+
"dishwasher.getOptions": {
|
|
69517
|
+
capName: "dishwasher",
|
|
69518
|
+
capScope: "device",
|
|
69519
|
+
addonId: null,
|
|
69520
|
+
access: "view"
|
|
69521
|
+
},
|
|
69361
69522
|
"dishwasher.getStatus": {
|
|
69362
69523
|
capName: "dishwasher",
|
|
69363
69524
|
capScope: "device",
|
|
@@ -69370,6 +69531,12 @@ Object.freeze({
|
|
|
69370
69531
|
addonId: null,
|
|
69371
69532
|
access: "create"
|
|
69372
69533
|
},
|
|
69534
|
+
"dishwasher.resume": {
|
|
69535
|
+
capName: "dishwasher",
|
|
69536
|
+
capScope: "device",
|
|
69537
|
+
addonId: null,
|
|
69538
|
+
access: "create"
|
|
69539
|
+
},
|
|
69373
69540
|
"dishwasher.setChildLock": {
|
|
69374
69541
|
capName: "dishwasher",
|
|
69375
69542
|
capScope: "device",
|
|
@@ -73870,6 +74037,12 @@ Object.freeze({
|
|
|
73870
74037
|
addonId: null,
|
|
73871
74038
|
access: "view"
|
|
73872
74039
|
},
|
|
74040
|
+
"storageMigration.moverClearance": {
|
|
74041
|
+
capName: "storage-migration",
|
|
74042
|
+
capScope: "system",
|
|
74043
|
+
addonId: null,
|
|
74044
|
+
access: "view"
|
|
74045
|
+
},
|
|
73873
74046
|
"storageMigration.movers": {
|
|
73874
74047
|
capName: "storage-migration",
|
|
73875
74048
|
capScope: "system",
|
|
@@ -76063,6 +76236,11 @@ Object.freeze({
|
|
|
76063
76236
|
form: "single",
|
|
76064
76237
|
optional: false
|
|
76065
76238
|
}],
|
|
76239
|
+
"dishwasher.getOptions": [{
|
|
76240
|
+
name: "deviceId",
|
|
76241
|
+
form: "single",
|
|
76242
|
+
optional: false
|
|
76243
|
+
}],
|
|
76066
76244
|
"dishwasher.getStatus": [{
|
|
76067
76245
|
name: "deviceId",
|
|
76068
76246
|
form: "single",
|
|
@@ -76073,6 +76251,11 @@ Object.freeze({
|
|
|
76073
76251
|
form: "single",
|
|
76074
76252
|
optional: false
|
|
76075
76253
|
}],
|
|
76254
|
+
"dishwasher.resume": [{
|
|
76255
|
+
name: "deviceId",
|
|
76256
|
+
form: "single",
|
|
76257
|
+
optional: false
|
|
76258
|
+
}],
|
|
76076
76259
|
"dishwasher.setChildLock": [{
|
|
76077
76260
|
name: "deviceId",
|
|
76078
76261
|
form: "single",
|
|
@@ -78159,6 +78342,9 @@ new Map(Object.entries({
|
|
|
78159
78342
|
"wrapper-update-available": "system",
|
|
78160
78343
|
"backup-completed": "system",
|
|
78161
78344
|
"export-completed": "system",
|
|
78345
|
+
"alert-critical": "system",
|
|
78346
|
+
"alert-error": "system",
|
|
78347
|
+
"alert-critical-resolved": "system",
|
|
78162
78348
|
"storage-location-low": "system",
|
|
78163
78349
|
"storage-location-critical": "system",
|
|
78164
78350
|
"storage-location-ok": "system",
|
|
@@ -78283,6 +78469,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78283
78469
|
"storage-location-ok"
|
|
78284
78470
|
]
|
|
78285
78471
|
},
|
|
78472
|
+
{
|
|
78473
|
+
id: "alerts",
|
|
78474
|
+
family: "system",
|
|
78475
|
+
label: "Alerts",
|
|
78476
|
+
kinds: [
|
|
78477
|
+
"alert-critical",
|
|
78478
|
+
"alert-error",
|
|
78479
|
+
"alert-critical-resolved"
|
|
78480
|
+
]
|
|
78481
|
+
},
|
|
78286
78482
|
{
|
|
78287
78483
|
id: "alarm",
|
|
78288
78484
|
family: "alarm",
|
|
@@ -78327,6 +78523,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
78327
78523
|
return [[descriptor.kind, field]];
|
|
78328
78524
|
})));
|
|
78329
78525
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
78526
|
+
object({
|
|
78527
|
+
phase: _enum(["raised", "resolved"]),
|
|
78528
|
+
episodeId: string().min(1),
|
|
78529
|
+
alertId: string().min(1),
|
|
78530
|
+
severity: AlertSeveritySchema,
|
|
78531
|
+
category: string(),
|
|
78532
|
+
title: string(),
|
|
78533
|
+
message: string(),
|
|
78534
|
+
sourceType: string().optional(),
|
|
78535
|
+
sourceId: string().optional(),
|
|
78536
|
+
nodeId: string().optional(),
|
|
78537
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
78538
|
+
actionUrl: string().optional(),
|
|
78539
|
+
at: number()
|
|
78540
|
+
});
|
|
78330
78541
|
var RULE_BODY_ONLY = ["body"];
|
|
78331
78542
|
var RULE_TEXT = ["title", "body"];
|
|
78332
78543
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -78336,6 +78547,11 @@ var TANK = [
|
|
|
78336
78547
|
"device-tank-full",
|
|
78337
78548
|
"device-tank-normal"
|
|
78338
78549
|
];
|
|
78550
|
+
var ALERT_EPISODE = [
|
|
78551
|
+
"alert-critical",
|
|
78552
|
+
"alert-error",
|
|
78553
|
+
"alert-critical-resolved"
|
|
78554
|
+
];
|
|
78339
78555
|
var UPDATES = [
|
|
78340
78556
|
"addon-update-available",
|
|
78341
78557
|
"server-update-available",
|
|
@@ -78528,14 +78744,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
78528
78744
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
78529
78745
|
([...RULE_TEXT], [...TANK]),
|
|
78530
78746
|
[...RULE_TEXT],
|
|
78531
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78532
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78533
|
-
[...RULE_TEXT],
|
|
78747
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78748
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78534
78749
|
[...RULE_TEXT],
|
|
78535
78750
|
[...RULE_TEXT],
|
|
78536
78751
|
[...RULE_TEXT],
|
|
78537
78752
|
[...RULE_TEXT],
|
|
78538
78753
|
[...RULE_TEXT],
|
|
78754
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78539
78755
|
[...RULE_TEXT],
|
|
78540
78756
|
[...RULE_TEXT],
|
|
78541
78757
|
[...RULE_TEXT],
|
|
@@ -78553,7 +78769,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
78553
78769
|
[...RULE_TEXT],
|
|
78554
78770
|
[...RULE_TEXT],
|
|
78555
78771
|
[...RULE_TEXT],
|
|
78556
|
-
[...RULE_TEXT],
|
|
78772
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78773
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78774
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78775
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78776
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78557
78777
|
[...RULE_TEXT],
|
|
78558
78778
|
[...RULE_TEXT],
|
|
78559
78779
|
[...RULE_TEXT],
|
package/dist/addon.mjs
CHANGED
|
@@ -36,7 +36,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
36
36
|
var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
37
37
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
38
38
|
//#endregion
|
|
39
|
-
//#region ../types/dist/event-category-
|
|
39
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
40
40
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
41
41
|
EventCategory["SystemBoot"] = "system.boot";
|
|
42
42
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -115,9 +115,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
115
115
|
/**
|
|
116
116
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
117
117
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
118
|
-
* alert centre turns it into one
|
|
118
|
+
* alert centre turns it into one critical alert.
|
|
119
119
|
*/
|
|
120
120
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
121
|
+
/**
|
|
122
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
123
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
124
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
125
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
126
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
127
|
+
* event may be dropped (D8, D11).
|
|
128
|
+
*/
|
|
129
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
121
130
|
EventCategory["AddonError"] = "addon.error";
|
|
122
131
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
123
132
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5442,7 +5451,7 @@ var ZodIssueCode = {
|
|
|
5442
5451
|
var ZodFirstPartyTypeKind;
|
|
5443
5452
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5444
5453
|
//#endregion
|
|
5445
|
-
//#region ../types/dist/sleep-
|
|
5454
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5446
5455
|
/**
|
|
5447
5456
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5448
5457
|
* window to float samples (D455).
|
|
@@ -13205,7 +13214,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13205
13214
|
]);
|
|
13206
13215
|
var AlertActionSchema = object({
|
|
13207
13216
|
label: string(),
|
|
13208
|
-
href: string().optional()
|
|
13217
|
+
href: string().optional(),
|
|
13218
|
+
/**
|
|
13219
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13220
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13221
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13222
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13223
|
+
*/
|
|
13224
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13209
13225
|
});
|
|
13210
13226
|
var AlertStatusSchema = _enum([
|
|
13211
13227
|
"active",
|
|
@@ -41938,6 +41954,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
41938
41954
|
"server-updated",
|
|
41939
41955
|
"export-completed",
|
|
41940
41956
|
"backup-completed",
|
|
41957
|
+
"alert-critical",
|
|
41958
|
+
"alert-error",
|
|
41959
|
+
"alert-critical-resolved",
|
|
41941
41960
|
"camera-online",
|
|
41942
41961
|
"camera-offline",
|
|
41943
41962
|
"camera-disabled",
|
|
@@ -51014,7 +51033,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51014
51033
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51015
51034
|
kind: "mutation",
|
|
51016
51035
|
auth: "admin"
|
|
51017
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51036
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51037
|
+
clear: boolean(),
|
|
51038
|
+
repointLocationId: string().optional()
|
|
51039
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51018
51040
|
kind: "mutation",
|
|
51019
51041
|
auth: "admin"
|
|
51020
51042
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -55278,6 +55300,11 @@ onStatusChanged: { data: object({
|
|
|
55278
55300
|
*
|
|
55279
55301
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55280
55302
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55303
|
+
*
|
|
55304
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
55305
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
55306
|
+
* the link is down, or the description does not carry it) and is never
|
|
55307
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
55281
55308
|
*/
|
|
55282
55309
|
var DishwasherStateSchema = _enum([
|
|
55283
55310
|
"idle",
|
|
@@ -55287,43 +55314,155 @@ var DishwasherStateSchema = _enum([
|
|
|
55287
55314
|
"error",
|
|
55288
55315
|
"unavailable"
|
|
55289
55316
|
]);
|
|
55317
|
+
/**
|
|
55318
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
55319
|
+
* view for compact surfaces; this is what the appliance said.
|
|
55320
|
+
*/
|
|
55321
|
+
var DishwasherOperationStateSchema = _enum([
|
|
55322
|
+
"Inactive",
|
|
55323
|
+
"Ready",
|
|
55324
|
+
"DelayedStart",
|
|
55325
|
+
"Run",
|
|
55326
|
+
"Pause",
|
|
55327
|
+
"ActionRequired",
|
|
55328
|
+
"Finished",
|
|
55329
|
+
"Error",
|
|
55330
|
+
"Aborting"
|
|
55331
|
+
]);
|
|
55332
|
+
/**
|
|
55333
|
+
* Why fields may be `null`:
|
|
55334
|
+
* - `available` — the link is up and the description is loaded;
|
|
55335
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
55336
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
55337
|
+
* be loaded, so its values cannot be decoded.
|
|
55338
|
+
*/
|
|
55339
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
55340
|
+
"available",
|
|
55341
|
+
"offline",
|
|
55342
|
+
"description-missing"
|
|
55343
|
+
]);
|
|
55290
55344
|
var DishwasherConsumableLevelSchema = _enum([
|
|
55291
55345
|
"ok",
|
|
55292
55346
|
"low",
|
|
55293
55347
|
"empty"
|
|
55294
55348
|
]);
|
|
55295
55349
|
var DishwasherStatusSchema = object({
|
|
55350
|
+
availability: DishwasherAvailabilitySchema,
|
|
55351
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55296
55352
|
state: DishwasherStateSchema,
|
|
55297
|
-
/**
|
|
55353
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
55354
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
55355
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
55298
55356
|
program: string().nullable(),
|
|
55299
|
-
/**
|
|
55357
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
55358
|
+
selectedProgram: string().nullable(),
|
|
55359
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
55300
55360
|
availablePrograms: array(string()),
|
|
55301
|
-
/**
|
|
55302
|
-
|
|
55361
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
55362
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
55363
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
55364
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
55303
55365
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
55304
55366
|
progressPercent: number().min(0).max(100).nullable(),
|
|
55305
|
-
/** True when the door is reported open. */
|
|
55306
|
-
doorOpen: boolean(),
|
|
55307
|
-
/** True when
|
|
55308
|
-
|
|
55309
|
-
/**
|
|
55310
|
-
|
|
55367
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
55368
|
+
doorOpen: boolean().nullable(),
|
|
55369
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
55370
|
+
doorLocked: boolean().nullable(),
|
|
55371
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
55372
|
+
remoteStartAllowed: boolean().nullable(),
|
|
55373
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
55374
|
+
remoteControlActive: boolean().nullable(),
|
|
55375
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
55376
|
+
localControlActive: boolean().nullable(),
|
|
55377
|
+
/** Main power / switched-on state; null when not known. */
|
|
55378
|
+
powerOn: boolean().nullable(),
|
|
55379
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
55380
|
+
powerState: string().nullable(),
|
|
55311
55381
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55312
55382
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55313
|
-
|
|
55314
|
-
|
|
55383
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55384
|
+
halfLoad: boolean().nullable(),
|
|
55385
|
+
hygienePlus: boolean().nullable(),
|
|
55315
55386
|
/** Extra dry option when the appliance exposes it. */
|
|
55316
|
-
extraDry: boolean(),
|
|
55387
|
+
extraDry: boolean().nullable(),
|
|
55317
55388
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55318
|
-
intensiveZone: boolean(),
|
|
55389
|
+
intensiveZone: boolean().nullable(),
|
|
55319
55390
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55320
|
-
varioSpeedPlus: boolean(),
|
|
55321
|
-
/** Child lock (controls disabled on the appliance). */
|
|
55322
|
-
childLock: boolean(),
|
|
55391
|
+
varioSpeedPlus: boolean().nullable(),
|
|
55392
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
55393
|
+
childLock: boolean().nullable(),
|
|
55394
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
55395
|
+
activeEvents: array(string()),
|
|
55396
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
55323
55397
|
errorCode: number().nullable(),
|
|
55398
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55324
55399
|
errorLabel: string().nullable(),
|
|
55400
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55325
55401
|
lastFetchedAt: number()
|
|
55326
55402
|
});
|
|
55403
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
55404
|
+
/** A value a program option or setting can take. */
|
|
55405
|
+
var DishwasherValueSchema = union([
|
|
55406
|
+
boolean(),
|
|
55407
|
+
string(),
|
|
55408
|
+
number()
|
|
55409
|
+
]);
|
|
55410
|
+
var DishwasherAccessSchema = _enum([
|
|
55411
|
+
"none",
|
|
55412
|
+
"read",
|
|
55413
|
+
"readWrite",
|
|
55414
|
+
"writeOnly",
|
|
55415
|
+
"readStatic"
|
|
55416
|
+
]);
|
|
55417
|
+
/**
|
|
55418
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
55419
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
55420
|
+
*/
|
|
55421
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
55422
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
55423
|
+
key: string(),
|
|
55424
|
+
/** Last segment of the key, for display. */
|
|
55425
|
+
name: string(),
|
|
55426
|
+
type: _enum([
|
|
55427
|
+
"boolean",
|
|
55428
|
+
"number",
|
|
55429
|
+
"enum",
|
|
55430
|
+
"string"
|
|
55431
|
+
]),
|
|
55432
|
+
access: DishwasherAccessSchema,
|
|
55433
|
+
/** The appliance reports this entity as currently available. */
|
|
55434
|
+
available: boolean(),
|
|
55435
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
55436
|
+
unit: string().nullable(),
|
|
55437
|
+
min: number().nullable(),
|
|
55438
|
+
max: number().nullable(),
|
|
55439
|
+
step: number().nullable(),
|
|
55440
|
+
/** Allowed members of an enum; null for other types. */
|
|
55441
|
+
enumValues: array(string()).nullable(),
|
|
55442
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
55443
|
+
});
|
|
55444
|
+
var DishwasherProgramSchema = object({
|
|
55445
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
55446
|
+
key: string(),
|
|
55447
|
+
name: string(),
|
|
55448
|
+
/** The appliance currently offers this program. */
|
|
55449
|
+
available: boolean(),
|
|
55450
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
55451
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55452
|
+
});
|
|
55453
|
+
var DishwasherOptionsSchema = object({
|
|
55454
|
+
availability: DishwasherAvailabilitySchema,
|
|
55455
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
55456
|
+
supportsStart: boolean(),
|
|
55457
|
+
supportsPause: boolean(),
|
|
55458
|
+
supportsResume: boolean(),
|
|
55459
|
+
supportsStop: boolean(),
|
|
55460
|
+
supportsPower: boolean(),
|
|
55461
|
+
/** Every program the description lists, with its options. */
|
|
55462
|
+
programs: array(DishwasherProgramSchema),
|
|
55463
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
55464
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55465
|
+
});
|
|
55327
55466
|
var dishwasherCapability = {
|
|
55328
55467
|
name: "dishwasher",
|
|
55329
55468
|
scope: "device",
|
|
@@ -55331,86 +55470,102 @@ var dishwasherCapability = {
|
|
|
55331
55470
|
mode: "singleton",
|
|
55332
55471
|
deviceTypes: [DeviceType.Dishwasher],
|
|
55333
55472
|
methods: {
|
|
55334
|
-
|
|
55473
|
+
/**
|
|
55474
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
55475
|
+
* option feature keys; each is checked against the program's constraints.
|
|
55476
|
+
*/
|
|
55477
|
+
start: method(object({
|
|
55478
|
+
deviceId: DeviceIdSchema,
|
|
55479
|
+
program: string().min(1).optional(),
|
|
55480
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
55481
|
+
}), _void(), {
|
|
55335
55482
|
kind: "mutation",
|
|
55336
55483
|
auth: "protected"
|
|
55337
55484
|
}),
|
|
55338
|
-
pause: method(object({ deviceId:
|
|
55485
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55339
55486
|
kind: "mutation",
|
|
55340
55487
|
auth: "protected"
|
|
55341
55488
|
}),
|
|
55342
|
-
|
|
55489
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55490
|
+
kind: "mutation",
|
|
55491
|
+
auth: "protected"
|
|
55492
|
+
}),
|
|
55493
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55343
55494
|
kind: "mutation",
|
|
55344
55495
|
auth: "protected"
|
|
55345
55496
|
}),
|
|
55497
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55346
55498
|
setProgram: method(object({
|
|
55347
|
-
deviceId:
|
|
55499
|
+
deviceId: DeviceIdSchema,
|
|
55348
55500
|
program: string().min(1)
|
|
55349
55501
|
}), _void(), {
|
|
55350
55502
|
kind: "mutation",
|
|
55351
55503
|
auth: "protected"
|
|
55352
55504
|
}),
|
|
55353
55505
|
setPower: method(object({
|
|
55354
|
-
deviceId:
|
|
55506
|
+
deviceId: DeviceIdSchema,
|
|
55355
55507
|
on: boolean()
|
|
55356
55508
|
}), _void(), {
|
|
55357
55509
|
kind: "mutation",
|
|
55358
55510
|
auth: "protected"
|
|
55359
55511
|
}),
|
|
55360
55512
|
setHalfLoad: method(object({
|
|
55361
|
-
deviceId:
|
|
55513
|
+
deviceId: DeviceIdSchema,
|
|
55362
55514
|
on: boolean()
|
|
55363
55515
|
}), _void(), {
|
|
55364
55516
|
kind: "mutation",
|
|
55365
55517
|
auth: "protected"
|
|
55366
55518
|
}),
|
|
55367
55519
|
setHygienePlus: method(object({
|
|
55368
|
-
deviceId:
|
|
55520
|
+
deviceId: DeviceIdSchema,
|
|
55369
55521
|
on: boolean()
|
|
55370
55522
|
}), _void(), {
|
|
55371
55523
|
kind: "mutation",
|
|
55372
55524
|
auth: "protected"
|
|
55373
55525
|
}),
|
|
55374
55526
|
setExtraDry: method(object({
|
|
55375
|
-
deviceId:
|
|
55527
|
+
deviceId: DeviceIdSchema,
|
|
55376
55528
|
on: boolean()
|
|
55377
55529
|
}), _void(), {
|
|
55378
55530
|
kind: "mutation",
|
|
55379
55531
|
auth: "protected"
|
|
55380
55532
|
}),
|
|
55381
55533
|
setIntensiveZone: method(object({
|
|
55382
|
-
deviceId:
|
|
55534
|
+
deviceId: DeviceIdSchema,
|
|
55383
55535
|
on: boolean()
|
|
55384
55536
|
}), _void(), {
|
|
55385
55537
|
kind: "mutation",
|
|
55386
55538
|
auth: "protected"
|
|
55387
55539
|
}),
|
|
55388
55540
|
setVarioSpeedPlus: method(object({
|
|
55389
|
-
deviceId:
|
|
55541
|
+
deviceId: DeviceIdSchema,
|
|
55390
55542
|
on: boolean()
|
|
55391
55543
|
}), _void(), {
|
|
55392
55544
|
kind: "mutation",
|
|
55393
55545
|
auth: "protected"
|
|
55394
55546
|
}),
|
|
55395
55547
|
setChildLock: method(object({
|
|
55396
|
-
deviceId:
|
|
55548
|
+
deviceId: DeviceIdSchema,
|
|
55397
55549
|
on: boolean()
|
|
55398
55550
|
}), _void(), {
|
|
55399
55551
|
kind: "mutation",
|
|
55400
55552
|
auth: "protected"
|
|
55401
55553
|
}),
|
|
55554
|
+
/**
|
|
55555
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
55556
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
55557
|
+
* its declared range / members.
|
|
55558
|
+
*/
|
|
55402
55559
|
setOption: method(object({
|
|
55403
|
-
deviceId:
|
|
55560
|
+
deviceId: DeviceIdSchema,
|
|
55404
55561
|
key: string().min(1),
|
|
55405
|
-
value:
|
|
55406
|
-
boolean(),
|
|
55407
|
-
string(),
|
|
55408
|
-
number()
|
|
55409
|
-
])
|
|
55562
|
+
value: DishwasherValueSchema
|
|
55410
55563
|
}), _void(), {
|
|
55411
55564
|
kind: "mutation",
|
|
55412
55565
|
auth: "protected"
|
|
55413
|
-
})
|
|
55566
|
+
}),
|
|
55567
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
55568
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
55414
55569
|
},
|
|
55415
55570
|
status: {
|
|
55416
55571
|
schema: DishwasherStatusSchema,
|
|
@@ -69359,6 +69514,12 @@ Object.freeze({
|
|
|
69359
69514
|
addonId: null,
|
|
69360
69515
|
access: "view"
|
|
69361
69516
|
},
|
|
69517
|
+
"dishwasher.getOptions": {
|
|
69518
|
+
capName: "dishwasher",
|
|
69519
|
+
capScope: "device",
|
|
69520
|
+
addonId: null,
|
|
69521
|
+
access: "view"
|
|
69522
|
+
},
|
|
69362
69523
|
"dishwasher.getStatus": {
|
|
69363
69524
|
capName: "dishwasher",
|
|
69364
69525
|
capScope: "device",
|
|
@@ -69371,6 +69532,12 @@ Object.freeze({
|
|
|
69371
69532
|
addonId: null,
|
|
69372
69533
|
access: "create"
|
|
69373
69534
|
},
|
|
69535
|
+
"dishwasher.resume": {
|
|
69536
|
+
capName: "dishwasher",
|
|
69537
|
+
capScope: "device",
|
|
69538
|
+
addonId: null,
|
|
69539
|
+
access: "create"
|
|
69540
|
+
},
|
|
69374
69541
|
"dishwasher.setChildLock": {
|
|
69375
69542
|
capName: "dishwasher",
|
|
69376
69543
|
capScope: "device",
|
|
@@ -73871,6 +74038,12 @@ Object.freeze({
|
|
|
73871
74038
|
addonId: null,
|
|
73872
74039
|
access: "view"
|
|
73873
74040
|
},
|
|
74041
|
+
"storageMigration.moverClearance": {
|
|
74042
|
+
capName: "storage-migration",
|
|
74043
|
+
capScope: "system",
|
|
74044
|
+
addonId: null,
|
|
74045
|
+
access: "view"
|
|
74046
|
+
},
|
|
73874
74047
|
"storageMigration.movers": {
|
|
73875
74048
|
capName: "storage-migration",
|
|
73876
74049
|
capScope: "system",
|
|
@@ -76064,6 +76237,11 @@ Object.freeze({
|
|
|
76064
76237
|
form: "single",
|
|
76065
76238
|
optional: false
|
|
76066
76239
|
}],
|
|
76240
|
+
"dishwasher.getOptions": [{
|
|
76241
|
+
name: "deviceId",
|
|
76242
|
+
form: "single",
|
|
76243
|
+
optional: false
|
|
76244
|
+
}],
|
|
76067
76245
|
"dishwasher.getStatus": [{
|
|
76068
76246
|
name: "deviceId",
|
|
76069
76247
|
form: "single",
|
|
@@ -76074,6 +76252,11 @@ Object.freeze({
|
|
|
76074
76252
|
form: "single",
|
|
76075
76253
|
optional: false
|
|
76076
76254
|
}],
|
|
76255
|
+
"dishwasher.resume": [{
|
|
76256
|
+
name: "deviceId",
|
|
76257
|
+
form: "single",
|
|
76258
|
+
optional: false
|
|
76259
|
+
}],
|
|
76077
76260
|
"dishwasher.setChildLock": [{
|
|
76078
76261
|
name: "deviceId",
|
|
76079
76262
|
form: "single",
|
|
@@ -78160,6 +78343,9 @@ new Map(Object.entries({
|
|
|
78160
78343
|
"wrapper-update-available": "system",
|
|
78161
78344
|
"backup-completed": "system",
|
|
78162
78345
|
"export-completed": "system",
|
|
78346
|
+
"alert-critical": "system",
|
|
78347
|
+
"alert-error": "system",
|
|
78348
|
+
"alert-critical-resolved": "system",
|
|
78163
78349
|
"storage-location-low": "system",
|
|
78164
78350
|
"storage-location-critical": "system",
|
|
78165
78351
|
"storage-location-ok": "system",
|
|
@@ -78284,6 +78470,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78284
78470
|
"storage-location-ok"
|
|
78285
78471
|
]
|
|
78286
78472
|
},
|
|
78473
|
+
{
|
|
78474
|
+
id: "alerts",
|
|
78475
|
+
family: "system",
|
|
78476
|
+
label: "Alerts",
|
|
78477
|
+
kinds: [
|
|
78478
|
+
"alert-critical",
|
|
78479
|
+
"alert-error",
|
|
78480
|
+
"alert-critical-resolved"
|
|
78481
|
+
]
|
|
78482
|
+
},
|
|
78287
78483
|
{
|
|
78288
78484
|
id: "alarm",
|
|
78289
78485
|
family: "alarm",
|
|
@@ -78328,6 +78524,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
78328
78524
|
return [[descriptor.kind, field]];
|
|
78329
78525
|
})));
|
|
78330
78526
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
78527
|
+
object({
|
|
78528
|
+
phase: _enum(["raised", "resolved"]),
|
|
78529
|
+
episodeId: string().min(1),
|
|
78530
|
+
alertId: string().min(1),
|
|
78531
|
+
severity: AlertSeveritySchema,
|
|
78532
|
+
category: string(),
|
|
78533
|
+
title: string(),
|
|
78534
|
+
message: string(),
|
|
78535
|
+
sourceType: string().optional(),
|
|
78536
|
+
sourceId: string().optional(),
|
|
78537
|
+
nodeId: string().optional(),
|
|
78538
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
78539
|
+
actionUrl: string().optional(),
|
|
78540
|
+
at: number()
|
|
78541
|
+
});
|
|
78331
78542
|
var RULE_BODY_ONLY = ["body"];
|
|
78332
78543
|
var RULE_TEXT = ["title", "body"];
|
|
78333
78544
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -78337,6 +78548,11 @@ var TANK = [
|
|
|
78337
78548
|
"device-tank-full",
|
|
78338
78549
|
"device-tank-normal"
|
|
78339
78550
|
];
|
|
78551
|
+
var ALERT_EPISODE = [
|
|
78552
|
+
"alert-critical",
|
|
78553
|
+
"alert-error",
|
|
78554
|
+
"alert-critical-resolved"
|
|
78555
|
+
];
|
|
78340
78556
|
var UPDATES = [
|
|
78341
78557
|
"addon-update-available",
|
|
78342
78558
|
"server-update-available",
|
|
@@ -78529,14 +78745,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
78529
78745
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
78530
78746
|
([...RULE_TEXT], [...TANK]),
|
|
78531
78747
|
[...RULE_TEXT],
|
|
78532
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78533
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78534
|
-
[...RULE_TEXT],
|
|
78748
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78749
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78535
78750
|
[...RULE_TEXT],
|
|
78536
78751
|
[...RULE_TEXT],
|
|
78537
78752
|
[...RULE_TEXT],
|
|
78538
78753
|
[...RULE_TEXT],
|
|
78539
78754
|
[...RULE_TEXT],
|
|
78755
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78540
78756
|
[...RULE_TEXT],
|
|
78541
78757
|
[...RULE_TEXT],
|
|
78542
78758
|
[...RULE_TEXT],
|
|
@@ -78554,7 +78770,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
78554
78770
|
[...RULE_TEXT],
|
|
78555
78771
|
[...RULE_TEXT],
|
|
78556
78772
|
[...RULE_TEXT],
|
|
78557
|
-
[...RULE_TEXT],
|
|
78773
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78774
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78775
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78776
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78777
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78558
78778
|
[...RULE_TEXT],
|
|
78559
78779
|
[...RULE_TEXT],
|
|
78560
78780
|
[...RULE_TEXT],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-dreo",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.129",
|
|
4
4
|
"description": "Dreo smart-device (fan / air-circulator / purifier / heater / humidifier) device-provider addon for CamStack — wraps the @apocaliss92/nodedreo Dreo cloud client (REST + WebSocket)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|