@camstack/addon-provider-mqtt-ha 0.1.6 → 0.1.7
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
|
@@ -33,7 +33,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
33
33
|
}) : target, mod));
|
|
34
34
|
var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
35
35
|
//#endregion
|
|
36
|
-
//#region ../types/dist/event-category-
|
|
36
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
37
37
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
38
38
|
EventCategory["SystemBoot"] = "system.boot";
|
|
39
39
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -112,9 +112,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
112
112
|
/**
|
|
113
113
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
114
114
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
115
|
-
* alert centre turns it into one
|
|
115
|
+
* alert centre turns it into one critical alert.
|
|
116
116
|
*/
|
|
117
117
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
118
|
+
/**
|
|
119
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
120
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
121
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
122
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
123
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
124
|
+
* event may be dropped (D8, D11).
|
|
125
|
+
*/
|
|
126
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
118
127
|
EventCategory["AddonError"] = "addon.error";
|
|
119
128
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
120
129
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5439,7 +5448,7 @@ var ZodIssueCode = {
|
|
|
5439
5448
|
var ZodFirstPartyTypeKind;
|
|
5440
5449
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5441
5450
|
//#endregion
|
|
5442
|
-
//#region ../types/dist/sleep-
|
|
5451
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5443
5452
|
/**
|
|
5444
5453
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5445
5454
|
* window to float samples (D455).
|
|
@@ -13202,7 +13211,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13202
13211
|
]);
|
|
13203
13212
|
var AlertActionSchema = object({
|
|
13204
13213
|
label: string(),
|
|
13205
|
-
href: string().optional()
|
|
13214
|
+
href: string().optional(),
|
|
13215
|
+
/**
|
|
13216
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13217
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13218
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13219
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13220
|
+
*/
|
|
13221
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13206
13222
|
});
|
|
13207
13223
|
var AlertStatusSchema = _enum([
|
|
13208
13224
|
"active",
|
|
@@ -41935,6 +41951,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
41935
41951
|
"server-updated",
|
|
41936
41952
|
"export-completed",
|
|
41937
41953
|
"backup-completed",
|
|
41954
|
+
"alert-critical",
|
|
41955
|
+
"alert-error",
|
|
41956
|
+
"alert-critical-resolved",
|
|
41938
41957
|
"camera-online",
|
|
41939
41958
|
"camera-offline",
|
|
41940
41959
|
"camera-disabled",
|
|
@@ -51011,7 +51030,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51011
51030
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51012
51031
|
kind: "mutation",
|
|
51013
51032
|
auth: "admin"
|
|
51014
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51033
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51034
|
+
clear: boolean(),
|
|
51035
|
+
repointLocationId: string().optional()
|
|
51036
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51015
51037
|
kind: "mutation",
|
|
51016
51038
|
auth: "admin"
|
|
51017
51039
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -55267,6 +55289,11 @@ onStatusChanged: { data: object({
|
|
|
55267
55289
|
*
|
|
55268
55290
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55269
55291
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55292
|
+
*
|
|
55293
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
55294
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
55295
|
+
* the link is down, or the description does not carry it) and is never
|
|
55296
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
55270
55297
|
*/
|
|
55271
55298
|
var DishwasherStateSchema = _enum([
|
|
55272
55299
|
"idle",
|
|
@@ -55276,43 +55303,155 @@ var DishwasherStateSchema = _enum([
|
|
|
55276
55303
|
"error",
|
|
55277
55304
|
"unavailable"
|
|
55278
55305
|
]);
|
|
55306
|
+
/**
|
|
55307
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
55308
|
+
* view for compact surfaces; this is what the appliance said.
|
|
55309
|
+
*/
|
|
55310
|
+
var DishwasherOperationStateSchema = _enum([
|
|
55311
|
+
"Inactive",
|
|
55312
|
+
"Ready",
|
|
55313
|
+
"DelayedStart",
|
|
55314
|
+
"Run",
|
|
55315
|
+
"Pause",
|
|
55316
|
+
"ActionRequired",
|
|
55317
|
+
"Finished",
|
|
55318
|
+
"Error",
|
|
55319
|
+
"Aborting"
|
|
55320
|
+
]);
|
|
55321
|
+
/**
|
|
55322
|
+
* Why fields may be `null`:
|
|
55323
|
+
* - `available` — the link is up and the description is loaded;
|
|
55324
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
55325
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
55326
|
+
* be loaded, so its values cannot be decoded.
|
|
55327
|
+
*/
|
|
55328
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
55329
|
+
"available",
|
|
55330
|
+
"offline",
|
|
55331
|
+
"description-missing"
|
|
55332
|
+
]);
|
|
55279
55333
|
var DishwasherConsumableLevelSchema = _enum([
|
|
55280
55334
|
"ok",
|
|
55281
55335
|
"low",
|
|
55282
55336
|
"empty"
|
|
55283
55337
|
]);
|
|
55284
55338
|
var DishwasherStatusSchema = object({
|
|
55339
|
+
availability: DishwasherAvailabilitySchema,
|
|
55340
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55285
55341
|
state: DishwasherStateSchema,
|
|
55286
|
-
/**
|
|
55342
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
55343
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
55344
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
55287
55345
|
program: string().nullable(),
|
|
55288
|
-
/**
|
|
55346
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
55347
|
+
selectedProgram: string().nullable(),
|
|
55348
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
55289
55349
|
availablePrograms: array(string()),
|
|
55290
|
-
/**
|
|
55291
|
-
|
|
55350
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
55351
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
55352
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
55353
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
55292
55354
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
55293
55355
|
progressPercent: number().min(0).max(100).nullable(),
|
|
55294
|
-
/** True when the door is reported open. */
|
|
55295
|
-
doorOpen: boolean(),
|
|
55296
|
-
/** True when
|
|
55297
|
-
|
|
55298
|
-
/**
|
|
55299
|
-
|
|
55356
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
55357
|
+
doorOpen: boolean().nullable(),
|
|
55358
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
55359
|
+
doorLocked: boolean().nullable(),
|
|
55360
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
55361
|
+
remoteStartAllowed: boolean().nullable(),
|
|
55362
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
55363
|
+
remoteControlActive: boolean().nullable(),
|
|
55364
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
55365
|
+
localControlActive: boolean().nullable(),
|
|
55366
|
+
/** Main power / switched-on state; null when not known. */
|
|
55367
|
+
powerOn: boolean().nullable(),
|
|
55368
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
55369
|
+
powerState: string().nullable(),
|
|
55300
55370
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55301
55371
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55302
|
-
|
|
55303
|
-
|
|
55372
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55373
|
+
halfLoad: boolean().nullable(),
|
|
55374
|
+
hygienePlus: boolean().nullable(),
|
|
55304
55375
|
/** Extra dry option when the appliance exposes it. */
|
|
55305
|
-
extraDry: boolean(),
|
|
55376
|
+
extraDry: boolean().nullable(),
|
|
55306
55377
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55307
|
-
intensiveZone: boolean(),
|
|
55378
|
+
intensiveZone: boolean().nullable(),
|
|
55308
55379
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55309
|
-
varioSpeedPlus: boolean(),
|
|
55310
|
-
/** Child lock (controls disabled on the appliance). */
|
|
55311
|
-
childLock: boolean(),
|
|
55380
|
+
varioSpeedPlus: boolean().nullable(),
|
|
55381
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
55382
|
+
childLock: boolean().nullable(),
|
|
55383
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
55384
|
+
activeEvents: array(string()),
|
|
55385
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
55312
55386
|
errorCode: number().nullable(),
|
|
55387
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55313
55388
|
errorLabel: string().nullable(),
|
|
55389
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55314
55390
|
lastFetchedAt: number()
|
|
55315
55391
|
});
|
|
55392
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
55393
|
+
/** A value a program option or setting can take. */
|
|
55394
|
+
var DishwasherValueSchema = union([
|
|
55395
|
+
boolean(),
|
|
55396
|
+
string(),
|
|
55397
|
+
number()
|
|
55398
|
+
]);
|
|
55399
|
+
var DishwasherAccessSchema = _enum([
|
|
55400
|
+
"none",
|
|
55401
|
+
"read",
|
|
55402
|
+
"readWrite",
|
|
55403
|
+
"writeOnly",
|
|
55404
|
+
"readStatic"
|
|
55405
|
+
]);
|
|
55406
|
+
/**
|
|
55407
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
55408
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
55409
|
+
*/
|
|
55410
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
55411
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
55412
|
+
key: string(),
|
|
55413
|
+
/** Last segment of the key, for display. */
|
|
55414
|
+
name: string(),
|
|
55415
|
+
type: _enum([
|
|
55416
|
+
"boolean",
|
|
55417
|
+
"number",
|
|
55418
|
+
"enum",
|
|
55419
|
+
"string"
|
|
55420
|
+
]),
|
|
55421
|
+
access: DishwasherAccessSchema,
|
|
55422
|
+
/** The appliance reports this entity as currently available. */
|
|
55423
|
+
available: boolean(),
|
|
55424
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
55425
|
+
unit: string().nullable(),
|
|
55426
|
+
min: number().nullable(),
|
|
55427
|
+
max: number().nullable(),
|
|
55428
|
+
step: number().nullable(),
|
|
55429
|
+
/** Allowed members of an enum; null for other types. */
|
|
55430
|
+
enumValues: array(string()).nullable(),
|
|
55431
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
55432
|
+
});
|
|
55433
|
+
var DishwasherProgramSchema = object({
|
|
55434
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
55435
|
+
key: string(),
|
|
55436
|
+
name: string(),
|
|
55437
|
+
/** The appliance currently offers this program. */
|
|
55438
|
+
available: boolean(),
|
|
55439
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
55440
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55441
|
+
});
|
|
55442
|
+
var DishwasherOptionsSchema = object({
|
|
55443
|
+
availability: DishwasherAvailabilitySchema,
|
|
55444
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
55445
|
+
supportsStart: boolean(),
|
|
55446
|
+
supportsPause: boolean(),
|
|
55447
|
+
supportsResume: boolean(),
|
|
55448
|
+
supportsStop: boolean(),
|
|
55449
|
+
supportsPower: boolean(),
|
|
55450
|
+
/** Every program the description lists, with its options. */
|
|
55451
|
+
programs: array(DishwasherProgramSchema),
|
|
55452
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
55453
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55454
|
+
});
|
|
55316
55455
|
var dishwasherCapability = {
|
|
55317
55456
|
name: "dishwasher",
|
|
55318
55457
|
scope: "device",
|
|
@@ -55320,86 +55459,102 @@ var dishwasherCapability = {
|
|
|
55320
55459
|
mode: "singleton",
|
|
55321
55460
|
deviceTypes: [DeviceType.Dishwasher],
|
|
55322
55461
|
methods: {
|
|
55323
|
-
|
|
55462
|
+
/**
|
|
55463
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
55464
|
+
* option feature keys; each is checked against the program's constraints.
|
|
55465
|
+
*/
|
|
55466
|
+
start: method(object({
|
|
55467
|
+
deviceId: DeviceIdSchema,
|
|
55468
|
+
program: string().min(1).optional(),
|
|
55469
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
55470
|
+
}), _void(), {
|
|
55324
55471
|
kind: "mutation",
|
|
55325
55472
|
auth: "protected"
|
|
55326
55473
|
}),
|
|
55327
|
-
pause: method(object({ deviceId:
|
|
55474
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55328
55475
|
kind: "mutation",
|
|
55329
55476
|
auth: "protected"
|
|
55330
55477
|
}),
|
|
55331
|
-
|
|
55478
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55479
|
+
kind: "mutation",
|
|
55480
|
+
auth: "protected"
|
|
55481
|
+
}),
|
|
55482
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55332
55483
|
kind: "mutation",
|
|
55333
55484
|
auth: "protected"
|
|
55334
55485
|
}),
|
|
55486
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55335
55487
|
setProgram: method(object({
|
|
55336
|
-
deviceId:
|
|
55488
|
+
deviceId: DeviceIdSchema,
|
|
55337
55489
|
program: string().min(1)
|
|
55338
55490
|
}), _void(), {
|
|
55339
55491
|
kind: "mutation",
|
|
55340
55492
|
auth: "protected"
|
|
55341
55493
|
}),
|
|
55342
55494
|
setPower: method(object({
|
|
55343
|
-
deviceId:
|
|
55495
|
+
deviceId: DeviceIdSchema,
|
|
55344
55496
|
on: boolean()
|
|
55345
55497
|
}), _void(), {
|
|
55346
55498
|
kind: "mutation",
|
|
55347
55499
|
auth: "protected"
|
|
55348
55500
|
}),
|
|
55349
55501
|
setHalfLoad: method(object({
|
|
55350
|
-
deviceId:
|
|
55502
|
+
deviceId: DeviceIdSchema,
|
|
55351
55503
|
on: boolean()
|
|
55352
55504
|
}), _void(), {
|
|
55353
55505
|
kind: "mutation",
|
|
55354
55506
|
auth: "protected"
|
|
55355
55507
|
}),
|
|
55356
55508
|
setHygienePlus: method(object({
|
|
55357
|
-
deviceId:
|
|
55509
|
+
deviceId: DeviceIdSchema,
|
|
55358
55510
|
on: boolean()
|
|
55359
55511
|
}), _void(), {
|
|
55360
55512
|
kind: "mutation",
|
|
55361
55513
|
auth: "protected"
|
|
55362
55514
|
}),
|
|
55363
55515
|
setExtraDry: method(object({
|
|
55364
|
-
deviceId:
|
|
55516
|
+
deviceId: DeviceIdSchema,
|
|
55365
55517
|
on: boolean()
|
|
55366
55518
|
}), _void(), {
|
|
55367
55519
|
kind: "mutation",
|
|
55368
55520
|
auth: "protected"
|
|
55369
55521
|
}),
|
|
55370
55522
|
setIntensiveZone: method(object({
|
|
55371
|
-
deviceId:
|
|
55523
|
+
deviceId: DeviceIdSchema,
|
|
55372
55524
|
on: boolean()
|
|
55373
55525
|
}), _void(), {
|
|
55374
55526
|
kind: "mutation",
|
|
55375
55527
|
auth: "protected"
|
|
55376
55528
|
}),
|
|
55377
55529
|
setVarioSpeedPlus: method(object({
|
|
55378
|
-
deviceId:
|
|
55530
|
+
deviceId: DeviceIdSchema,
|
|
55379
55531
|
on: boolean()
|
|
55380
55532
|
}), _void(), {
|
|
55381
55533
|
kind: "mutation",
|
|
55382
55534
|
auth: "protected"
|
|
55383
55535
|
}),
|
|
55384
55536
|
setChildLock: method(object({
|
|
55385
|
-
deviceId:
|
|
55537
|
+
deviceId: DeviceIdSchema,
|
|
55386
55538
|
on: boolean()
|
|
55387
55539
|
}), _void(), {
|
|
55388
55540
|
kind: "mutation",
|
|
55389
55541
|
auth: "protected"
|
|
55390
55542
|
}),
|
|
55543
|
+
/**
|
|
55544
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
55545
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
55546
|
+
* its declared range / members.
|
|
55547
|
+
*/
|
|
55391
55548
|
setOption: method(object({
|
|
55392
|
-
deviceId:
|
|
55549
|
+
deviceId: DeviceIdSchema,
|
|
55393
55550
|
key: string().min(1),
|
|
55394
|
-
value:
|
|
55395
|
-
boolean(),
|
|
55396
|
-
string(),
|
|
55397
|
-
number()
|
|
55398
|
-
])
|
|
55551
|
+
value: DishwasherValueSchema
|
|
55399
55552
|
}), _void(), {
|
|
55400
55553
|
kind: "mutation",
|
|
55401
55554
|
auth: "protected"
|
|
55402
|
-
})
|
|
55555
|
+
}),
|
|
55556
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
55557
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
55403
55558
|
},
|
|
55404
55559
|
status: {
|
|
55405
55560
|
schema: DishwasherStatusSchema,
|
|
@@ -69348,6 +69503,12 @@ Object.freeze({
|
|
|
69348
69503
|
addonId: null,
|
|
69349
69504
|
access: "view"
|
|
69350
69505
|
},
|
|
69506
|
+
"dishwasher.getOptions": {
|
|
69507
|
+
capName: "dishwasher",
|
|
69508
|
+
capScope: "device",
|
|
69509
|
+
addonId: null,
|
|
69510
|
+
access: "view"
|
|
69511
|
+
},
|
|
69351
69512
|
"dishwasher.getStatus": {
|
|
69352
69513
|
capName: "dishwasher",
|
|
69353
69514
|
capScope: "device",
|
|
@@ -69360,6 +69521,12 @@ Object.freeze({
|
|
|
69360
69521
|
addonId: null,
|
|
69361
69522
|
access: "create"
|
|
69362
69523
|
},
|
|
69524
|
+
"dishwasher.resume": {
|
|
69525
|
+
capName: "dishwasher",
|
|
69526
|
+
capScope: "device",
|
|
69527
|
+
addonId: null,
|
|
69528
|
+
access: "create"
|
|
69529
|
+
},
|
|
69363
69530
|
"dishwasher.setChildLock": {
|
|
69364
69531
|
capName: "dishwasher",
|
|
69365
69532
|
capScope: "device",
|
|
@@ -73860,6 +74027,12 @@ Object.freeze({
|
|
|
73860
74027
|
addonId: null,
|
|
73861
74028
|
access: "view"
|
|
73862
74029
|
},
|
|
74030
|
+
"storageMigration.moverClearance": {
|
|
74031
|
+
capName: "storage-migration",
|
|
74032
|
+
capScope: "system",
|
|
74033
|
+
addonId: null,
|
|
74034
|
+
access: "view"
|
|
74035
|
+
},
|
|
73863
74036
|
"storageMigration.movers": {
|
|
73864
74037
|
capName: "storage-migration",
|
|
73865
74038
|
capScope: "system",
|
|
@@ -76053,6 +76226,11 @@ Object.freeze({
|
|
|
76053
76226
|
form: "single",
|
|
76054
76227
|
optional: false
|
|
76055
76228
|
}],
|
|
76229
|
+
"dishwasher.getOptions": [{
|
|
76230
|
+
name: "deviceId",
|
|
76231
|
+
form: "single",
|
|
76232
|
+
optional: false
|
|
76233
|
+
}],
|
|
76056
76234
|
"dishwasher.getStatus": [{
|
|
76057
76235
|
name: "deviceId",
|
|
76058
76236
|
form: "single",
|
|
@@ -76063,6 +76241,11 @@ Object.freeze({
|
|
|
76063
76241
|
form: "single",
|
|
76064
76242
|
optional: false
|
|
76065
76243
|
}],
|
|
76244
|
+
"dishwasher.resume": [{
|
|
76245
|
+
name: "deviceId",
|
|
76246
|
+
form: "single",
|
|
76247
|
+
optional: false
|
|
76248
|
+
}],
|
|
76066
76249
|
"dishwasher.setChildLock": [{
|
|
76067
76250
|
name: "deviceId",
|
|
76068
76251
|
form: "single",
|
|
@@ -78149,6 +78332,9 @@ new Map(Object.entries({
|
|
|
78149
78332
|
"wrapper-update-available": "system",
|
|
78150
78333
|
"backup-completed": "system",
|
|
78151
78334
|
"export-completed": "system",
|
|
78335
|
+
"alert-critical": "system",
|
|
78336
|
+
"alert-error": "system",
|
|
78337
|
+
"alert-critical-resolved": "system",
|
|
78152
78338
|
"storage-location-low": "system",
|
|
78153
78339
|
"storage-location-critical": "system",
|
|
78154
78340
|
"storage-location-ok": "system",
|
|
@@ -78273,6 +78459,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78273
78459
|
"storage-location-ok"
|
|
78274
78460
|
]
|
|
78275
78461
|
},
|
|
78462
|
+
{
|
|
78463
|
+
id: "alerts",
|
|
78464
|
+
family: "system",
|
|
78465
|
+
label: "Alerts",
|
|
78466
|
+
kinds: [
|
|
78467
|
+
"alert-critical",
|
|
78468
|
+
"alert-error",
|
|
78469
|
+
"alert-critical-resolved"
|
|
78470
|
+
]
|
|
78471
|
+
},
|
|
78276
78472
|
{
|
|
78277
78473
|
id: "alarm",
|
|
78278
78474
|
family: "alarm",
|
|
@@ -78317,6 +78513,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
78317
78513
|
return [[descriptor.kind, field]];
|
|
78318
78514
|
})));
|
|
78319
78515
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
78516
|
+
object({
|
|
78517
|
+
phase: _enum(["raised", "resolved"]),
|
|
78518
|
+
episodeId: string().min(1),
|
|
78519
|
+
alertId: string().min(1),
|
|
78520
|
+
severity: AlertSeveritySchema,
|
|
78521
|
+
category: string(),
|
|
78522
|
+
title: string(),
|
|
78523
|
+
message: string(),
|
|
78524
|
+
sourceType: string().optional(),
|
|
78525
|
+
sourceId: string().optional(),
|
|
78526
|
+
nodeId: string().optional(),
|
|
78527
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
78528
|
+
actionUrl: string().optional(),
|
|
78529
|
+
at: number()
|
|
78530
|
+
});
|
|
78320
78531
|
var RULE_BODY_ONLY = ["body"];
|
|
78321
78532
|
var RULE_TEXT = ["title", "body"];
|
|
78322
78533
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -78326,6 +78537,11 @@ var TANK = [
|
|
|
78326
78537
|
"device-tank-full",
|
|
78327
78538
|
"device-tank-normal"
|
|
78328
78539
|
];
|
|
78540
|
+
var ALERT_EPISODE = [
|
|
78541
|
+
"alert-critical",
|
|
78542
|
+
"alert-error",
|
|
78543
|
+
"alert-critical-resolved"
|
|
78544
|
+
];
|
|
78329
78545
|
var UPDATES = [
|
|
78330
78546
|
"addon-update-available",
|
|
78331
78547
|
"server-update-available",
|
|
@@ -78518,14 +78734,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
78518
78734
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
78519
78735
|
([...RULE_TEXT], [...TANK]),
|
|
78520
78736
|
[...RULE_TEXT],
|
|
78521
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78522
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78523
|
-
[...RULE_TEXT],
|
|
78737
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78738
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78524
78739
|
[...RULE_TEXT],
|
|
78525
78740
|
[...RULE_TEXT],
|
|
78526
78741
|
[...RULE_TEXT],
|
|
78527
78742
|
[...RULE_TEXT],
|
|
78528
78743
|
[...RULE_TEXT],
|
|
78744
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78529
78745
|
[...RULE_TEXT],
|
|
78530
78746
|
[...RULE_TEXT],
|
|
78531
78747
|
[...RULE_TEXT],
|
|
@@ -78543,7 +78759,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
78543
78759
|
[...RULE_TEXT],
|
|
78544
78760
|
[...RULE_TEXT],
|
|
78545
78761
|
[...RULE_TEXT],
|
|
78546
|
-
[...RULE_TEXT],
|
|
78762
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78763
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78764
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78765
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78766
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78547
78767
|
[...RULE_TEXT],
|
|
78548
78768
|
[...RULE_TEXT],
|
|
78549
78769
|
[...RULE_TEXT],
|
package/dist/addon.mjs
CHANGED
|
@@ -34,7 +34,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
34
34
|
var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
35
35
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
36
36
|
//#endregion
|
|
37
|
-
//#region ../types/dist/event-category-
|
|
37
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
38
38
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
39
39
|
EventCategory["SystemBoot"] = "system.boot";
|
|
40
40
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -113,9 +113,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
113
113
|
/**
|
|
114
114
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
115
115
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
116
|
-
* alert centre turns it into one
|
|
116
|
+
* alert centre turns it into one critical alert.
|
|
117
117
|
*/
|
|
118
118
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
119
|
+
/**
|
|
120
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
121
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
122
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
123
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
124
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
125
|
+
* event may be dropped (D8, D11).
|
|
126
|
+
*/
|
|
127
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
119
128
|
EventCategory["AddonError"] = "addon.error";
|
|
120
129
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
121
130
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5440,7 +5449,7 @@ var ZodIssueCode = {
|
|
|
5440
5449
|
var ZodFirstPartyTypeKind;
|
|
5441
5450
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5442
5451
|
//#endregion
|
|
5443
|
-
//#region ../types/dist/sleep-
|
|
5452
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5444
5453
|
/**
|
|
5445
5454
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5446
5455
|
* window to float samples (D455).
|
|
@@ -13203,7 +13212,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13203
13212
|
]);
|
|
13204
13213
|
var AlertActionSchema = object({
|
|
13205
13214
|
label: string(),
|
|
13206
|
-
href: string().optional()
|
|
13215
|
+
href: string().optional(),
|
|
13216
|
+
/**
|
|
13217
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13218
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13219
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13220
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13221
|
+
*/
|
|
13222
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13207
13223
|
});
|
|
13208
13224
|
var AlertStatusSchema = _enum([
|
|
13209
13225
|
"active",
|
|
@@ -41936,6 +41952,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
41936
41952
|
"server-updated",
|
|
41937
41953
|
"export-completed",
|
|
41938
41954
|
"backup-completed",
|
|
41955
|
+
"alert-critical",
|
|
41956
|
+
"alert-error",
|
|
41957
|
+
"alert-critical-resolved",
|
|
41939
41958
|
"camera-online",
|
|
41940
41959
|
"camera-offline",
|
|
41941
41960
|
"camera-disabled",
|
|
@@ -51012,7 +51031,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51012
51031
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51013
51032
|
kind: "mutation",
|
|
51014
51033
|
auth: "admin"
|
|
51015
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51034
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51035
|
+
clear: boolean(),
|
|
51036
|
+
repointLocationId: string().optional()
|
|
51037
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51016
51038
|
kind: "mutation",
|
|
51017
51039
|
auth: "admin"
|
|
51018
51040
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -55268,6 +55290,11 @@ onStatusChanged: { data: object({
|
|
|
55268
55290
|
*
|
|
55269
55291
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55270
55292
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55293
|
+
*
|
|
55294
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
55295
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
55296
|
+
* the link is down, or the description does not carry it) and is never
|
|
55297
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
55271
55298
|
*/
|
|
55272
55299
|
var DishwasherStateSchema = _enum([
|
|
55273
55300
|
"idle",
|
|
@@ -55277,43 +55304,155 @@ var DishwasherStateSchema = _enum([
|
|
|
55277
55304
|
"error",
|
|
55278
55305
|
"unavailable"
|
|
55279
55306
|
]);
|
|
55307
|
+
/**
|
|
55308
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
55309
|
+
* view for compact surfaces; this is what the appliance said.
|
|
55310
|
+
*/
|
|
55311
|
+
var DishwasherOperationStateSchema = _enum([
|
|
55312
|
+
"Inactive",
|
|
55313
|
+
"Ready",
|
|
55314
|
+
"DelayedStart",
|
|
55315
|
+
"Run",
|
|
55316
|
+
"Pause",
|
|
55317
|
+
"ActionRequired",
|
|
55318
|
+
"Finished",
|
|
55319
|
+
"Error",
|
|
55320
|
+
"Aborting"
|
|
55321
|
+
]);
|
|
55322
|
+
/**
|
|
55323
|
+
* Why fields may be `null`:
|
|
55324
|
+
* - `available` — the link is up and the description is loaded;
|
|
55325
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
55326
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
55327
|
+
* be loaded, so its values cannot be decoded.
|
|
55328
|
+
*/
|
|
55329
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
55330
|
+
"available",
|
|
55331
|
+
"offline",
|
|
55332
|
+
"description-missing"
|
|
55333
|
+
]);
|
|
55280
55334
|
var DishwasherConsumableLevelSchema = _enum([
|
|
55281
55335
|
"ok",
|
|
55282
55336
|
"low",
|
|
55283
55337
|
"empty"
|
|
55284
55338
|
]);
|
|
55285
55339
|
var DishwasherStatusSchema = object({
|
|
55340
|
+
availability: DishwasherAvailabilitySchema,
|
|
55341
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55286
55342
|
state: DishwasherStateSchema,
|
|
55287
|
-
/**
|
|
55343
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
55344
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
55345
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
55288
55346
|
program: string().nullable(),
|
|
55289
|
-
/**
|
|
55347
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
55348
|
+
selectedProgram: string().nullable(),
|
|
55349
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
55290
55350
|
availablePrograms: array(string()),
|
|
55291
|
-
/**
|
|
55292
|
-
|
|
55351
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
55352
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
55353
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
55354
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
55293
55355
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
55294
55356
|
progressPercent: number().min(0).max(100).nullable(),
|
|
55295
|
-
/** True when the door is reported open. */
|
|
55296
|
-
doorOpen: boolean(),
|
|
55297
|
-
/** True when
|
|
55298
|
-
|
|
55299
|
-
/**
|
|
55300
|
-
|
|
55357
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
55358
|
+
doorOpen: boolean().nullable(),
|
|
55359
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
55360
|
+
doorLocked: boolean().nullable(),
|
|
55361
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
55362
|
+
remoteStartAllowed: boolean().nullable(),
|
|
55363
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
55364
|
+
remoteControlActive: boolean().nullable(),
|
|
55365
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
55366
|
+
localControlActive: boolean().nullable(),
|
|
55367
|
+
/** Main power / switched-on state; null when not known. */
|
|
55368
|
+
powerOn: boolean().nullable(),
|
|
55369
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
55370
|
+
powerState: string().nullable(),
|
|
55301
55371
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55302
55372
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55303
|
-
|
|
55304
|
-
|
|
55373
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55374
|
+
halfLoad: boolean().nullable(),
|
|
55375
|
+
hygienePlus: boolean().nullable(),
|
|
55305
55376
|
/** Extra dry option when the appliance exposes it. */
|
|
55306
|
-
extraDry: boolean(),
|
|
55377
|
+
extraDry: boolean().nullable(),
|
|
55307
55378
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55308
|
-
intensiveZone: boolean(),
|
|
55379
|
+
intensiveZone: boolean().nullable(),
|
|
55309
55380
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55310
|
-
varioSpeedPlus: boolean(),
|
|
55311
|
-
/** Child lock (controls disabled on the appliance). */
|
|
55312
|
-
childLock: boolean(),
|
|
55381
|
+
varioSpeedPlus: boolean().nullable(),
|
|
55382
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
55383
|
+
childLock: boolean().nullable(),
|
|
55384
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
55385
|
+
activeEvents: array(string()),
|
|
55386
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
55313
55387
|
errorCode: number().nullable(),
|
|
55388
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55314
55389
|
errorLabel: string().nullable(),
|
|
55390
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55315
55391
|
lastFetchedAt: number()
|
|
55316
55392
|
});
|
|
55393
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
55394
|
+
/** A value a program option or setting can take. */
|
|
55395
|
+
var DishwasherValueSchema = union([
|
|
55396
|
+
boolean(),
|
|
55397
|
+
string(),
|
|
55398
|
+
number()
|
|
55399
|
+
]);
|
|
55400
|
+
var DishwasherAccessSchema = _enum([
|
|
55401
|
+
"none",
|
|
55402
|
+
"read",
|
|
55403
|
+
"readWrite",
|
|
55404
|
+
"writeOnly",
|
|
55405
|
+
"readStatic"
|
|
55406
|
+
]);
|
|
55407
|
+
/**
|
|
55408
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
55409
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
55410
|
+
*/
|
|
55411
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
55412
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
55413
|
+
key: string(),
|
|
55414
|
+
/** Last segment of the key, for display. */
|
|
55415
|
+
name: string(),
|
|
55416
|
+
type: _enum([
|
|
55417
|
+
"boolean",
|
|
55418
|
+
"number",
|
|
55419
|
+
"enum",
|
|
55420
|
+
"string"
|
|
55421
|
+
]),
|
|
55422
|
+
access: DishwasherAccessSchema,
|
|
55423
|
+
/** The appliance reports this entity as currently available. */
|
|
55424
|
+
available: boolean(),
|
|
55425
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
55426
|
+
unit: string().nullable(),
|
|
55427
|
+
min: number().nullable(),
|
|
55428
|
+
max: number().nullable(),
|
|
55429
|
+
step: number().nullable(),
|
|
55430
|
+
/** Allowed members of an enum; null for other types. */
|
|
55431
|
+
enumValues: array(string()).nullable(),
|
|
55432
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
55433
|
+
});
|
|
55434
|
+
var DishwasherProgramSchema = object({
|
|
55435
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
55436
|
+
key: string(),
|
|
55437
|
+
name: string(),
|
|
55438
|
+
/** The appliance currently offers this program. */
|
|
55439
|
+
available: boolean(),
|
|
55440
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
55441
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55442
|
+
});
|
|
55443
|
+
var DishwasherOptionsSchema = object({
|
|
55444
|
+
availability: DishwasherAvailabilitySchema,
|
|
55445
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
55446
|
+
supportsStart: boolean(),
|
|
55447
|
+
supportsPause: boolean(),
|
|
55448
|
+
supportsResume: boolean(),
|
|
55449
|
+
supportsStop: boolean(),
|
|
55450
|
+
supportsPower: boolean(),
|
|
55451
|
+
/** Every program the description lists, with its options. */
|
|
55452
|
+
programs: array(DishwasherProgramSchema),
|
|
55453
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
55454
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55455
|
+
});
|
|
55317
55456
|
var dishwasherCapability = {
|
|
55318
55457
|
name: "dishwasher",
|
|
55319
55458
|
scope: "device",
|
|
@@ -55321,86 +55460,102 @@ var dishwasherCapability = {
|
|
|
55321
55460
|
mode: "singleton",
|
|
55322
55461
|
deviceTypes: [DeviceType.Dishwasher],
|
|
55323
55462
|
methods: {
|
|
55324
|
-
|
|
55463
|
+
/**
|
|
55464
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
55465
|
+
* option feature keys; each is checked against the program's constraints.
|
|
55466
|
+
*/
|
|
55467
|
+
start: method(object({
|
|
55468
|
+
deviceId: DeviceIdSchema,
|
|
55469
|
+
program: string().min(1).optional(),
|
|
55470
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
55471
|
+
}), _void(), {
|
|
55325
55472
|
kind: "mutation",
|
|
55326
55473
|
auth: "protected"
|
|
55327
55474
|
}),
|
|
55328
|
-
pause: method(object({ deviceId:
|
|
55475
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55329
55476
|
kind: "mutation",
|
|
55330
55477
|
auth: "protected"
|
|
55331
55478
|
}),
|
|
55332
|
-
|
|
55479
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55480
|
+
kind: "mutation",
|
|
55481
|
+
auth: "protected"
|
|
55482
|
+
}),
|
|
55483
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55333
55484
|
kind: "mutation",
|
|
55334
55485
|
auth: "protected"
|
|
55335
55486
|
}),
|
|
55487
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55336
55488
|
setProgram: method(object({
|
|
55337
|
-
deviceId:
|
|
55489
|
+
deviceId: DeviceIdSchema,
|
|
55338
55490
|
program: string().min(1)
|
|
55339
55491
|
}), _void(), {
|
|
55340
55492
|
kind: "mutation",
|
|
55341
55493
|
auth: "protected"
|
|
55342
55494
|
}),
|
|
55343
55495
|
setPower: method(object({
|
|
55344
|
-
deviceId:
|
|
55496
|
+
deviceId: DeviceIdSchema,
|
|
55345
55497
|
on: boolean()
|
|
55346
55498
|
}), _void(), {
|
|
55347
55499
|
kind: "mutation",
|
|
55348
55500
|
auth: "protected"
|
|
55349
55501
|
}),
|
|
55350
55502
|
setHalfLoad: method(object({
|
|
55351
|
-
deviceId:
|
|
55503
|
+
deviceId: DeviceIdSchema,
|
|
55352
55504
|
on: boolean()
|
|
55353
55505
|
}), _void(), {
|
|
55354
55506
|
kind: "mutation",
|
|
55355
55507
|
auth: "protected"
|
|
55356
55508
|
}),
|
|
55357
55509
|
setHygienePlus: method(object({
|
|
55358
|
-
deviceId:
|
|
55510
|
+
deviceId: DeviceIdSchema,
|
|
55359
55511
|
on: boolean()
|
|
55360
55512
|
}), _void(), {
|
|
55361
55513
|
kind: "mutation",
|
|
55362
55514
|
auth: "protected"
|
|
55363
55515
|
}),
|
|
55364
55516
|
setExtraDry: method(object({
|
|
55365
|
-
deviceId:
|
|
55517
|
+
deviceId: DeviceIdSchema,
|
|
55366
55518
|
on: boolean()
|
|
55367
55519
|
}), _void(), {
|
|
55368
55520
|
kind: "mutation",
|
|
55369
55521
|
auth: "protected"
|
|
55370
55522
|
}),
|
|
55371
55523
|
setIntensiveZone: method(object({
|
|
55372
|
-
deviceId:
|
|
55524
|
+
deviceId: DeviceIdSchema,
|
|
55373
55525
|
on: boolean()
|
|
55374
55526
|
}), _void(), {
|
|
55375
55527
|
kind: "mutation",
|
|
55376
55528
|
auth: "protected"
|
|
55377
55529
|
}),
|
|
55378
55530
|
setVarioSpeedPlus: method(object({
|
|
55379
|
-
deviceId:
|
|
55531
|
+
deviceId: DeviceIdSchema,
|
|
55380
55532
|
on: boolean()
|
|
55381
55533
|
}), _void(), {
|
|
55382
55534
|
kind: "mutation",
|
|
55383
55535
|
auth: "protected"
|
|
55384
55536
|
}),
|
|
55385
55537
|
setChildLock: method(object({
|
|
55386
|
-
deviceId:
|
|
55538
|
+
deviceId: DeviceIdSchema,
|
|
55387
55539
|
on: boolean()
|
|
55388
55540
|
}), _void(), {
|
|
55389
55541
|
kind: "mutation",
|
|
55390
55542
|
auth: "protected"
|
|
55391
55543
|
}),
|
|
55544
|
+
/**
|
|
55545
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
55546
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
55547
|
+
* its declared range / members.
|
|
55548
|
+
*/
|
|
55392
55549
|
setOption: method(object({
|
|
55393
|
-
deviceId:
|
|
55550
|
+
deviceId: DeviceIdSchema,
|
|
55394
55551
|
key: string().min(1),
|
|
55395
|
-
value:
|
|
55396
|
-
boolean(),
|
|
55397
|
-
string(),
|
|
55398
|
-
number()
|
|
55399
|
-
])
|
|
55552
|
+
value: DishwasherValueSchema
|
|
55400
55553
|
}), _void(), {
|
|
55401
55554
|
kind: "mutation",
|
|
55402
55555
|
auth: "protected"
|
|
55403
|
-
})
|
|
55556
|
+
}),
|
|
55557
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
55558
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
55404
55559
|
},
|
|
55405
55560
|
status: {
|
|
55406
55561
|
schema: DishwasherStatusSchema,
|
|
@@ -69349,6 +69504,12 @@ Object.freeze({
|
|
|
69349
69504
|
addonId: null,
|
|
69350
69505
|
access: "view"
|
|
69351
69506
|
},
|
|
69507
|
+
"dishwasher.getOptions": {
|
|
69508
|
+
capName: "dishwasher",
|
|
69509
|
+
capScope: "device",
|
|
69510
|
+
addonId: null,
|
|
69511
|
+
access: "view"
|
|
69512
|
+
},
|
|
69352
69513
|
"dishwasher.getStatus": {
|
|
69353
69514
|
capName: "dishwasher",
|
|
69354
69515
|
capScope: "device",
|
|
@@ -69361,6 +69522,12 @@ Object.freeze({
|
|
|
69361
69522
|
addonId: null,
|
|
69362
69523
|
access: "create"
|
|
69363
69524
|
},
|
|
69525
|
+
"dishwasher.resume": {
|
|
69526
|
+
capName: "dishwasher",
|
|
69527
|
+
capScope: "device",
|
|
69528
|
+
addonId: null,
|
|
69529
|
+
access: "create"
|
|
69530
|
+
},
|
|
69364
69531
|
"dishwasher.setChildLock": {
|
|
69365
69532
|
capName: "dishwasher",
|
|
69366
69533
|
capScope: "device",
|
|
@@ -73861,6 +74028,12 @@ Object.freeze({
|
|
|
73861
74028
|
addonId: null,
|
|
73862
74029
|
access: "view"
|
|
73863
74030
|
},
|
|
74031
|
+
"storageMigration.moverClearance": {
|
|
74032
|
+
capName: "storage-migration",
|
|
74033
|
+
capScope: "system",
|
|
74034
|
+
addonId: null,
|
|
74035
|
+
access: "view"
|
|
74036
|
+
},
|
|
73864
74037
|
"storageMigration.movers": {
|
|
73865
74038
|
capName: "storage-migration",
|
|
73866
74039
|
capScope: "system",
|
|
@@ -76054,6 +76227,11 @@ Object.freeze({
|
|
|
76054
76227
|
form: "single",
|
|
76055
76228
|
optional: false
|
|
76056
76229
|
}],
|
|
76230
|
+
"dishwasher.getOptions": [{
|
|
76231
|
+
name: "deviceId",
|
|
76232
|
+
form: "single",
|
|
76233
|
+
optional: false
|
|
76234
|
+
}],
|
|
76057
76235
|
"dishwasher.getStatus": [{
|
|
76058
76236
|
name: "deviceId",
|
|
76059
76237
|
form: "single",
|
|
@@ -76064,6 +76242,11 @@ Object.freeze({
|
|
|
76064
76242
|
form: "single",
|
|
76065
76243
|
optional: false
|
|
76066
76244
|
}],
|
|
76245
|
+
"dishwasher.resume": [{
|
|
76246
|
+
name: "deviceId",
|
|
76247
|
+
form: "single",
|
|
76248
|
+
optional: false
|
|
76249
|
+
}],
|
|
76067
76250
|
"dishwasher.setChildLock": [{
|
|
76068
76251
|
name: "deviceId",
|
|
76069
76252
|
form: "single",
|
|
@@ -78150,6 +78333,9 @@ new Map(Object.entries({
|
|
|
78150
78333
|
"wrapper-update-available": "system",
|
|
78151
78334
|
"backup-completed": "system",
|
|
78152
78335
|
"export-completed": "system",
|
|
78336
|
+
"alert-critical": "system",
|
|
78337
|
+
"alert-error": "system",
|
|
78338
|
+
"alert-critical-resolved": "system",
|
|
78153
78339
|
"storage-location-low": "system",
|
|
78154
78340
|
"storage-location-critical": "system",
|
|
78155
78341
|
"storage-location-ok": "system",
|
|
@@ -78274,6 +78460,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78274
78460
|
"storage-location-ok"
|
|
78275
78461
|
]
|
|
78276
78462
|
},
|
|
78463
|
+
{
|
|
78464
|
+
id: "alerts",
|
|
78465
|
+
family: "system",
|
|
78466
|
+
label: "Alerts",
|
|
78467
|
+
kinds: [
|
|
78468
|
+
"alert-critical",
|
|
78469
|
+
"alert-error",
|
|
78470
|
+
"alert-critical-resolved"
|
|
78471
|
+
]
|
|
78472
|
+
},
|
|
78277
78473
|
{
|
|
78278
78474
|
id: "alarm",
|
|
78279
78475
|
family: "alarm",
|
|
@@ -78318,6 +78514,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
78318
78514
|
return [[descriptor.kind, field]];
|
|
78319
78515
|
})));
|
|
78320
78516
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
78517
|
+
object({
|
|
78518
|
+
phase: _enum(["raised", "resolved"]),
|
|
78519
|
+
episodeId: string().min(1),
|
|
78520
|
+
alertId: string().min(1),
|
|
78521
|
+
severity: AlertSeveritySchema,
|
|
78522
|
+
category: string(),
|
|
78523
|
+
title: string(),
|
|
78524
|
+
message: string(),
|
|
78525
|
+
sourceType: string().optional(),
|
|
78526
|
+
sourceId: string().optional(),
|
|
78527
|
+
nodeId: string().optional(),
|
|
78528
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
78529
|
+
actionUrl: string().optional(),
|
|
78530
|
+
at: number()
|
|
78531
|
+
});
|
|
78321
78532
|
var RULE_BODY_ONLY = ["body"];
|
|
78322
78533
|
var RULE_TEXT = ["title", "body"];
|
|
78323
78534
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -78327,6 +78538,11 @@ var TANK = [
|
|
|
78327
78538
|
"device-tank-full",
|
|
78328
78539
|
"device-tank-normal"
|
|
78329
78540
|
];
|
|
78541
|
+
var ALERT_EPISODE = [
|
|
78542
|
+
"alert-critical",
|
|
78543
|
+
"alert-error",
|
|
78544
|
+
"alert-critical-resolved"
|
|
78545
|
+
];
|
|
78330
78546
|
var UPDATES = [
|
|
78331
78547
|
"addon-update-available",
|
|
78332
78548
|
"server-update-available",
|
|
@@ -78519,14 +78735,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
78519
78735
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
78520
78736
|
([...RULE_TEXT], [...TANK]),
|
|
78521
78737
|
[...RULE_TEXT],
|
|
78522
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78523
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78524
|
-
[...RULE_TEXT],
|
|
78738
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78739
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78525
78740
|
[...RULE_TEXT],
|
|
78526
78741
|
[...RULE_TEXT],
|
|
78527
78742
|
[...RULE_TEXT],
|
|
78528
78743
|
[...RULE_TEXT],
|
|
78529
78744
|
[...RULE_TEXT],
|
|
78745
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78530
78746
|
[...RULE_TEXT],
|
|
78531
78747
|
[...RULE_TEXT],
|
|
78532
78748
|
[...RULE_TEXT],
|
|
@@ -78544,7 +78760,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
78544
78760
|
[...RULE_TEXT],
|
|
78545
78761
|
[...RULE_TEXT],
|
|
78546
78762
|
[...RULE_TEXT],
|
|
78547
|
-
[...RULE_TEXT],
|
|
78763
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78764
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78765
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78766
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78767
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78548
78768
|
[...RULE_TEXT],
|
|
78549
78769
|
[...RULE_TEXT],
|
|
78550
78770
|
[...RULE_TEXT],
|
package/package.json
CHANGED