@camstack/addon-provider-rtsp 1.2.128 → 1.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
|
@@ -23,7 +23,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
23
23
|
//#endregion
|
|
24
24
|
let node_net = require("node:net");
|
|
25
25
|
node_net = __toESM(node_net);
|
|
26
|
-
//#region ../types/dist/event-category-
|
|
26
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
27
27
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
28
28
|
EventCategory["SystemBoot"] = "system.boot";
|
|
29
29
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -102,9 +102,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
102
102
|
/**
|
|
103
103
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
104
104
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
105
|
-
* alert centre turns it into one
|
|
105
|
+
* alert centre turns it into one critical alert.
|
|
106
106
|
*/
|
|
107
107
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
108
|
+
/**
|
|
109
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
110
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
111
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
112
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
113
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
114
|
+
* event may be dropped (D8, D11).
|
|
115
|
+
*/
|
|
116
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
108
117
|
EventCategory["AddonError"] = "addon.error";
|
|
109
118
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
110
119
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5429,7 +5438,7 @@ var ZodIssueCode = {
|
|
|
5429
5438
|
var ZodFirstPartyTypeKind;
|
|
5430
5439
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5431
5440
|
//#endregion
|
|
5432
|
-
//#region ../types/dist/sleep-
|
|
5441
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5433
5442
|
/**
|
|
5434
5443
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5435
5444
|
* window to float samples (D455).
|
|
@@ -13313,7 +13322,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13313
13322
|
]);
|
|
13314
13323
|
var AlertActionSchema = object({
|
|
13315
13324
|
label: string(),
|
|
13316
|
-
href: string().optional()
|
|
13325
|
+
href: string().optional(),
|
|
13326
|
+
/**
|
|
13327
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13328
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13329
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13330
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13331
|
+
*/
|
|
13332
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13317
13333
|
});
|
|
13318
13334
|
var AlertStatusSchema = _enum([
|
|
13319
13335
|
"active",
|
|
@@ -42029,6 +42045,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42029
42045
|
"server-updated",
|
|
42030
42046
|
"export-completed",
|
|
42031
42047
|
"backup-completed",
|
|
42048
|
+
"alert-critical",
|
|
42049
|
+
"alert-error",
|
|
42050
|
+
"alert-critical-resolved",
|
|
42032
42051
|
"camera-online",
|
|
42033
42052
|
"camera-offline",
|
|
42034
42053
|
"camera-disabled",
|
|
@@ -51209,7 +51228,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51209
51228
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51210
51229
|
kind: "mutation",
|
|
51211
51230
|
auth: "admin"
|
|
51212
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51231
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51232
|
+
clear: boolean(),
|
|
51233
|
+
repointLocationId: string().optional()
|
|
51234
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51213
51235
|
kind: "mutation",
|
|
51214
51236
|
auth: "admin"
|
|
51215
51237
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -55473,6 +55495,11 @@ onStatusChanged: { data: object({
|
|
|
55473
55495
|
*
|
|
55474
55496
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55475
55497
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55498
|
+
*
|
|
55499
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
55500
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
55501
|
+
* the link is down, or the description does not carry it) and is never
|
|
55502
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
55476
55503
|
*/
|
|
55477
55504
|
var DishwasherStateSchema = _enum([
|
|
55478
55505
|
"idle",
|
|
@@ -55482,43 +55509,155 @@ var DishwasherStateSchema = _enum([
|
|
|
55482
55509
|
"error",
|
|
55483
55510
|
"unavailable"
|
|
55484
55511
|
]);
|
|
55512
|
+
/**
|
|
55513
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
55514
|
+
* view for compact surfaces; this is what the appliance said.
|
|
55515
|
+
*/
|
|
55516
|
+
var DishwasherOperationStateSchema = _enum([
|
|
55517
|
+
"Inactive",
|
|
55518
|
+
"Ready",
|
|
55519
|
+
"DelayedStart",
|
|
55520
|
+
"Run",
|
|
55521
|
+
"Pause",
|
|
55522
|
+
"ActionRequired",
|
|
55523
|
+
"Finished",
|
|
55524
|
+
"Error",
|
|
55525
|
+
"Aborting"
|
|
55526
|
+
]);
|
|
55527
|
+
/**
|
|
55528
|
+
* Why fields may be `null`:
|
|
55529
|
+
* - `available` — the link is up and the description is loaded;
|
|
55530
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
55531
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
55532
|
+
* be loaded, so its values cannot be decoded.
|
|
55533
|
+
*/
|
|
55534
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
55535
|
+
"available",
|
|
55536
|
+
"offline",
|
|
55537
|
+
"description-missing"
|
|
55538
|
+
]);
|
|
55485
55539
|
var DishwasherConsumableLevelSchema = _enum([
|
|
55486
55540
|
"ok",
|
|
55487
55541
|
"low",
|
|
55488
55542
|
"empty"
|
|
55489
55543
|
]);
|
|
55490
55544
|
var DishwasherStatusSchema = object({
|
|
55545
|
+
availability: DishwasherAvailabilitySchema,
|
|
55546
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55491
55547
|
state: DishwasherStateSchema,
|
|
55492
|
-
/**
|
|
55548
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
55549
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
55550
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
55493
55551
|
program: string().nullable(),
|
|
55494
|
-
/**
|
|
55552
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
55553
|
+
selectedProgram: string().nullable(),
|
|
55554
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
55495
55555
|
availablePrograms: array(string()),
|
|
55496
|
-
/**
|
|
55497
|
-
|
|
55556
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
55557
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
55558
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
55559
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
55498
55560
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
55499
55561
|
progressPercent: number().min(0).max(100).nullable(),
|
|
55500
|
-
/** True when the door is reported open. */
|
|
55501
|
-
doorOpen: boolean(),
|
|
55502
|
-
/** True when
|
|
55503
|
-
|
|
55504
|
-
/**
|
|
55505
|
-
|
|
55562
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
55563
|
+
doorOpen: boolean().nullable(),
|
|
55564
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
55565
|
+
doorLocked: boolean().nullable(),
|
|
55566
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
55567
|
+
remoteStartAllowed: boolean().nullable(),
|
|
55568
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
55569
|
+
remoteControlActive: boolean().nullable(),
|
|
55570
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
55571
|
+
localControlActive: boolean().nullable(),
|
|
55572
|
+
/** Main power / switched-on state; null when not known. */
|
|
55573
|
+
powerOn: boolean().nullable(),
|
|
55574
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
55575
|
+
powerState: string().nullable(),
|
|
55506
55576
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55507
55577
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55508
|
-
|
|
55509
|
-
|
|
55578
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55579
|
+
halfLoad: boolean().nullable(),
|
|
55580
|
+
hygienePlus: boolean().nullable(),
|
|
55510
55581
|
/** Extra dry option when the appliance exposes it. */
|
|
55511
|
-
extraDry: boolean(),
|
|
55582
|
+
extraDry: boolean().nullable(),
|
|
55512
55583
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55513
|
-
intensiveZone: boolean(),
|
|
55584
|
+
intensiveZone: boolean().nullable(),
|
|
55514
55585
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55515
|
-
varioSpeedPlus: boolean(),
|
|
55516
|
-
/** Child lock (controls disabled on the appliance). */
|
|
55517
|
-
childLock: boolean(),
|
|
55586
|
+
varioSpeedPlus: boolean().nullable(),
|
|
55587
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
55588
|
+
childLock: boolean().nullable(),
|
|
55589
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
55590
|
+
activeEvents: array(string()),
|
|
55591
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
55518
55592
|
errorCode: number().nullable(),
|
|
55593
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55519
55594
|
errorLabel: string().nullable(),
|
|
55595
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55520
55596
|
lastFetchedAt: number()
|
|
55521
55597
|
});
|
|
55598
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
55599
|
+
/** A value a program option or setting can take. */
|
|
55600
|
+
var DishwasherValueSchema = union([
|
|
55601
|
+
boolean(),
|
|
55602
|
+
string(),
|
|
55603
|
+
number()
|
|
55604
|
+
]);
|
|
55605
|
+
var DishwasherAccessSchema = _enum([
|
|
55606
|
+
"none",
|
|
55607
|
+
"read",
|
|
55608
|
+
"readWrite",
|
|
55609
|
+
"writeOnly",
|
|
55610
|
+
"readStatic"
|
|
55611
|
+
]);
|
|
55612
|
+
/**
|
|
55613
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
55614
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
55615
|
+
*/
|
|
55616
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
55617
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
55618
|
+
key: string(),
|
|
55619
|
+
/** Last segment of the key, for display. */
|
|
55620
|
+
name: string(),
|
|
55621
|
+
type: _enum([
|
|
55622
|
+
"boolean",
|
|
55623
|
+
"number",
|
|
55624
|
+
"enum",
|
|
55625
|
+
"string"
|
|
55626
|
+
]),
|
|
55627
|
+
access: DishwasherAccessSchema,
|
|
55628
|
+
/** The appliance reports this entity as currently available. */
|
|
55629
|
+
available: boolean(),
|
|
55630
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
55631
|
+
unit: string().nullable(),
|
|
55632
|
+
min: number().nullable(),
|
|
55633
|
+
max: number().nullable(),
|
|
55634
|
+
step: number().nullable(),
|
|
55635
|
+
/** Allowed members of an enum; null for other types. */
|
|
55636
|
+
enumValues: array(string()).nullable(),
|
|
55637
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
55638
|
+
});
|
|
55639
|
+
var DishwasherProgramSchema = object({
|
|
55640
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
55641
|
+
key: string(),
|
|
55642
|
+
name: string(),
|
|
55643
|
+
/** The appliance currently offers this program. */
|
|
55644
|
+
available: boolean(),
|
|
55645
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
55646
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55647
|
+
});
|
|
55648
|
+
var DishwasherOptionsSchema = object({
|
|
55649
|
+
availability: DishwasherAvailabilitySchema,
|
|
55650
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
55651
|
+
supportsStart: boolean(),
|
|
55652
|
+
supportsPause: boolean(),
|
|
55653
|
+
supportsResume: boolean(),
|
|
55654
|
+
supportsStop: boolean(),
|
|
55655
|
+
supportsPower: boolean(),
|
|
55656
|
+
/** Every program the description lists, with its options. */
|
|
55657
|
+
programs: array(DishwasherProgramSchema),
|
|
55658
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
55659
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55660
|
+
});
|
|
55522
55661
|
var dishwasherCapability = {
|
|
55523
55662
|
name: "dishwasher",
|
|
55524
55663
|
scope: "device",
|
|
@@ -55526,86 +55665,102 @@ var dishwasherCapability = {
|
|
|
55526
55665
|
mode: "singleton",
|
|
55527
55666
|
deviceTypes: [DeviceType.Dishwasher],
|
|
55528
55667
|
methods: {
|
|
55529
|
-
|
|
55668
|
+
/**
|
|
55669
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
55670
|
+
* option feature keys; each is checked against the program's constraints.
|
|
55671
|
+
*/
|
|
55672
|
+
start: method(object({
|
|
55673
|
+
deviceId: DeviceIdSchema,
|
|
55674
|
+
program: string().min(1).optional(),
|
|
55675
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
55676
|
+
}), _void(), {
|
|
55530
55677
|
kind: "mutation",
|
|
55531
55678
|
auth: "protected"
|
|
55532
55679
|
}),
|
|
55533
|
-
pause: method(object({ deviceId:
|
|
55680
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55534
55681
|
kind: "mutation",
|
|
55535
55682
|
auth: "protected"
|
|
55536
55683
|
}),
|
|
55537
|
-
|
|
55684
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55685
|
+
kind: "mutation",
|
|
55686
|
+
auth: "protected"
|
|
55687
|
+
}),
|
|
55688
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55538
55689
|
kind: "mutation",
|
|
55539
55690
|
auth: "protected"
|
|
55540
55691
|
}),
|
|
55692
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55541
55693
|
setProgram: method(object({
|
|
55542
|
-
deviceId:
|
|
55694
|
+
deviceId: DeviceIdSchema,
|
|
55543
55695
|
program: string().min(1)
|
|
55544
55696
|
}), _void(), {
|
|
55545
55697
|
kind: "mutation",
|
|
55546
55698
|
auth: "protected"
|
|
55547
55699
|
}),
|
|
55548
55700
|
setPower: method(object({
|
|
55549
|
-
deviceId:
|
|
55701
|
+
deviceId: DeviceIdSchema,
|
|
55550
55702
|
on: boolean()
|
|
55551
55703
|
}), _void(), {
|
|
55552
55704
|
kind: "mutation",
|
|
55553
55705
|
auth: "protected"
|
|
55554
55706
|
}),
|
|
55555
55707
|
setHalfLoad: method(object({
|
|
55556
|
-
deviceId:
|
|
55708
|
+
deviceId: DeviceIdSchema,
|
|
55557
55709
|
on: boolean()
|
|
55558
55710
|
}), _void(), {
|
|
55559
55711
|
kind: "mutation",
|
|
55560
55712
|
auth: "protected"
|
|
55561
55713
|
}),
|
|
55562
55714
|
setHygienePlus: method(object({
|
|
55563
|
-
deviceId:
|
|
55715
|
+
deviceId: DeviceIdSchema,
|
|
55564
55716
|
on: boolean()
|
|
55565
55717
|
}), _void(), {
|
|
55566
55718
|
kind: "mutation",
|
|
55567
55719
|
auth: "protected"
|
|
55568
55720
|
}),
|
|
55569
55721
|
setExtraDry: method(object({
|
|
55570
|
-
deviceId:
|
|
55722
|
+
deviceId: DeviceIdSchema,
|
|
55571
55723
|
on: boolean()
|
|
55572
55724
|
}), _void(), {
|
|
55573
55725
|
kind: "mutation",
|
|
55574
55726
|
auth: "protected"
|
|
55575
55727
|
}),
|
|
55576
55728
|
setIntensiveZone: method(object({
|
|
55577
|
-
deviceId:
|
|
55729
|
+
deviceId: DeviceIdSchema,
|
|
55578
55730
|
on: boolean()
|
|
55579
55731
|
}), _void(), {
|
|
55580
55732
|
kind: "mutation",
|
|
55581
55733
|
auth: "protected"
|
|
55582
55734
|
}),
|
|
55583
55735
|
setVarioSpeedPlus: method(object({
|
|
55584
|
-
deviceId:
|
|
55736
|
+
deviceId: DeviceIdSchema,
|
|
55585
55737
|
on: boolean()
|
|
55586
55738
|
}), _void(), {
|
|
55587
55739
|
kind: "mutation",
|
|
55588
55740
|
auth: "protected"
|
|
55589
55741
|
}),
|
|
55590
55742
|
setChildLock: method(object({
|
|
55591
|
-
deviceId:
|
|
55743
|
+
deviceId: DeviceIdSchema,
|
|
55592
55744
|
on: boolean()
|
|
55593
55745
|
}), _void(), {
|
|
55594
55746
|
kind: "mutation",
|
|
55595
55747
|
auth: "protected"
|
|
55596
55748
|
}),
|
|
55749
|
+
/**
|
|
55750
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
55751
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
55752
|
+
* its declared range / members.
|
|
55753
|
+
*/
|
|
55597
55754
|
setOption: method(object({
|
|
55598
|
-
deviceId:
|
|
55755
|
+
deviceId: DeviceIdSchema,
|
|
55599
55756
|
key: string().min(1),
|
|
55600
|
-
value:
|
|
55601
|
-
boolean(),
|
|
55602
|
-
string(),
|
|
55603
|
-
number()
|
|
55604
|
-
])
|
|
55757
|
+
value: DishwasherValueSchema
|
|
55605
55758
|
}), _void(), {
|
|
55606
55759
|
kind: "mutation",
|
|
55607
55760
|
auth: "protected"
|
|
55608
|
-
})
|
|
55761
|
+
}),
|
|
55762
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
55763
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
55609
55764
|
},
|
|
55610
55765
|
status: {
|
|
55611
55766
|
schema: DishwasherStatusSchema,
|
|
@@ -69554,6 +69709,12 @@ Object.freeze({
|
|
|
69554
69709
|
addonId: null,
|
|
69555
69710
|
access: "view"
|
|
69556
69711
|
},
|
|
69712
|
+
"dishwasher.getOptions": {
|
|
69713
|
+
capName: "dishwasher",
|
|
69714
|
+
capScope: "device",
|
|
69715
|
+
addonId: null,
|
|
69716
|
+
access: "view"
|
|
69717
|
+
},
|
|
69557
69718
|
"dishwasher.getStatus": {
|
|
69558
69719
|
capName: "dishwasher",
|
|
69559
69720
|
capScope: "device",
|
|
@@ -69566,6 +69727,12 @@ Object.freeze({
|
|
|
69566
69727
|
addonId: null,
|
|
69567
69728
|
access: "create"
|
|
69568
69729
|
},
|
|
69730
|
+
"dishwasher.resume": {
|
|
69731
|
+
capName: "dishwasher",
|
|
69732
|
+
capScope: "device",
|
|
69733
|
+
addonId: null,
|
|
69734
|
+
access: "create"
|
|
69735
|
+
},
|
|
69569
69736
|
"dishwasher.setChildLock": {
|
|
69570
69737
|
capName: "dishwasher",
|
|
69571
69738
|
capScope: "device",
|
|
@@ -74066,6 +74233,12 @@ Object.freeze({
|
|
|
74066
74233
|
addonId: null,
|
|
74067
74234
|
access: "view"
|
|
74068
74235
|
},
|
|
74236
|
+
"storageMigration.moverClearance": {
|
|
74237
|
+
capName: "storage-migration",
|
|
74238
|
+
capScope: "system",
|
|
74239
|
+
addonId: null,
|
|
74240
|
+
access: "view"
|
|
74241
|
+
},
|
|
74069
74242
|
"storageMigration.movers": {
|
|
74070
74243
|
capName: "storage-migration",
|
|
74071
74244
|
capScope: "system",
|
|
@@ -76325,6 +76498,11 @@ Object.freeze({
|
|
|
76325
76498
|
form: "single",
|
|
76326
76499
|
optional: false
|
|
76327
76500
|
}],
|
|
76501
|
+
"dishwasher.getOptions": [{
|
|
76502
|
+
name: "deviceId",
|
|
76503
|
+
form: "single",
|
|
76504
|
+
optional: false
|
|
76505
|
+
}],
|
|
76328
76506
|
"dishwasher.getStatus": [{
|
|
76329
76507
|
name: "deviceId",
|
|
76330
76508
|
form: "single",
|
|
@@ -76335,6 +76513,11 @@ Object.freeze({
|
|
|
76335
76513
|
form: "single",
|
|
76336
76514
|
optional: false
|
|
76337
76515
|
}],
|
|
76516
|
+
"dishwasher.resume": [{
|
|
76517
|
+
name: "deviceId",
|
|
76518
|
+
form: "single",
|
|
76519
|
+
optional: false
|
|
76520
|
+
}],
|
|
76338
76521
|
"dishwasher.setChildLock": [{
|
|
76339
76522
|
name: "deviceId",
|
|
76340
76523
|
form: "single",
|
|
@@ -78421,6 +78604,9 @@ new Map(Object.entries({
|
|
|
78421
78604
|
"wrapper-update-available": "system",
|
|
78422
78605
|
"backup-completed": "system",
|
|
78423
78606
|
"export-completed": "system",
|
|
78607
|
+
"alert-critical": "system",
|
|
78608
|
+
"alert-error": "system",
|
|
78609
|
+
"alert-critical-resolved": "system",
|
|
78424
78610
|
"storage-location-low": "system",
|
|
78425
78611
|
"storage-location-critical": "system",
|
|
78426
78612
|
"storage-location-ok": "system",
|
|
@@ -78545,6 +78731,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78545
78731
|
"storage-location-ok"
|
|
78546
78732
|
]
|
|
78547
78733
|
},
|
|
78734
|
+
{
|
|
78735
|
+
id: "alerts",
|
|
78736
|
+
family: "system",
|
|
78737
|
+
label: "Alerts",
|
|
78738
|
+
kinds: [
|
|
78739
|
+
"alert-critical",
|
|
78740
|
+
"alert-error",
|
|
78741
|
+
"alert-critical-resolved"
|
|
78742
|
+
]
|
|
78743
|
+
},
|
|
78548
78744
|
{
|
|
78549
78745
|
id: "alarm",
|
|
78550
78746
|
family: "alarm",
|
|
@@ -78589,6 +78785,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
78589
78785
|
return [[descriptor.kind, field]];
|
|
78590
78786
|
})));
|
|
78591
78787
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
78788
|
+
object({
|
|
78789
|
+
phase: _enum(["raised", "resolved"]),
|
|
78790
|
+
episodeId: string().min(1),
|
|
78791
|
+
alertId: string().min(1),
|
|
78792
|
+
severity: AlertSeveritySchema,
|
|
78793
|
+
category: string(),
|
|
78794
|
+
title: string(),
|
|
78795
|
+
message: string(),
|
|
78796
|
+
sourceType: string().optional(),
|
|
78797
|
+
sourceId: string().optional(),
|
|
78798
|
+
nodeId: string().optional(),
|
|
78799
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
78800
|
+
actionUrl: string().optional(),
|
|
78801
|
+
at: number()
|
|
78802
|
+
});
|
|
78592
78803
|
var RULE_BODY_ONLY = ["body"];
|
|
78593
78804
|
var RULE_TEXT = ["title", "body"];
|
|
78594
78805
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -78598,6 +78809,11 @@ var TANK = [
|
|
|
78598
78809
|
"device-tank-full",
|
|
78599
78810
|
"device-tank-normal"
|
|
78600
78811
|
];
|
|
78812
|
+
var ALERT_EPISODE = [
|
|
78813
|
+
"alert-critical",
|
|
78814
|
+
"alert-error",
|
|
78815
|
+
"alert-critical-resolved"
|
|
78816
|
+
];
|
|
78601
78817
|
var UPDATES = [
|
|
78602
78818
|
"addon-update-available",
|
|
78603
78819
|
"server-update-available",
|
|
@@ -78790,14 +79006,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
78790
79006
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
78791
79007
|
([...RULE_TEXT], [...TANK]),
|
|
78792
79008
|
[...RULE_TEXT],
|
|
78793
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78794
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78795
|
-
[...RULE_TEXT],
|
|
79009
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
79010
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78796
79011
|
[...RULE_TEXT],
|
|
78797
79012
|
[...RULE_TEXT],
|
|
78798
79013
|
[...RULE_TEXT],
|
|
78799
79014
|
[...RULE_TEXT],
|
|
78800
79015
|
[...RULE_TEXT],
|
|
79016
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78801
79017
|
[...RULE_TEXT],
|
|
78802
79018
|
[...RULE_TEXT],
|
|
78803
79019
|
[...RULE_TEXT],
|
|
@@ -78815,7 +79031,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
78815
79031
|
[...RULE_TEXT],
|
|
78816
79032
|
[...RULE_TEXT],
|
|
78817
79033
|
[...RULE_TEXT],
|
|
78818
|
-
[...RULE_TEXT],
|
|
79034
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79035
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79036
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79037
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79038
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78819
79039
|
[...RULE_TEXT],
|
|
78820
79040
|
[...RULE_TEXT],
|
|
78821
79041
|
[...RULE_TEXT],
|
package/dist/addon.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import net from "node:net";
|
|
2
|
-
//#region ../types/dist/event-category-
|
|
2
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
3
3
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
4
4
|
EventCategory["SystemBoot"] = "system.boot";
|
|
5
5
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -78,9 +78,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
78
78
|
/**
|
|
79
79
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
80
80
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
81
|
-
* alert centre turns it into one
|
|
81
|
+
* alert centre turns it into one critical alert.
|
|
82
82
|
*/
|
|
83
83
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
84
|
+
/**
|
|
85
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
86
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
87
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
88
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
89
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
90
|
+
* event may be dropped (D8, D11).
|
|
91
|
+
*/
|
|
92
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
84
93
|
EventCategory["AddonError"] = "addon.error";
|
|
85
94
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
86
95
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5405,7 +5414,7 @@ var ZodIssueCode = {
|
|
|
5405
5414
|
var ZodFirstPartyTypeKind;
|
|
5406
5415
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5407
5416
|
//#endregion
|
|
5408
|
-
//#region ../types/dist/sleep-
|
|
5417
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5409
5418
|
/**
|
|
5410
5419
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5411
5420
|
* window to float samples (D455).
|
|
@@ -13289,7 +13298,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13289
13298
|
]);
|
|
13290
13299
|
var AlertActionSchema = object({
|
|
13291
13300
|
label: string(),
|
|
13292
|
-
href: string().optional()
|
|
13301
|
+
href: string().optional(),
|
|
13302
|
+
/**
|
|
13303
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13304
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13305
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13306
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13307
|
+
*/
|
|
13308
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13293
13309
|
});
|
|
13294
13310
|
var AlertStatusSchema = _enum([
|
|
13295
13311
|
"active",
|
|
@@ -42005,6 +42021,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42005
42021
|
"server-updated",
|
|
42006
42022
|
"export-completed",
|
|
42007
42023
|
"backup-completed",
|
|
42024
|
+
"alert-critical",
|
|
42025
|
+
"alert-error",
|
|
42026
|
+
"alert-critical-resolved",
|
|
42008
42027
|
"camera-online",
|
|
42009
42028
|
"camera-offline",
|
|
42010
42029
|
"camera-disabled",
|
|
@@ -51185,7 +51204,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51185
51204
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51186
51205
|
kind: "mutation",
|
|
51187
51206
|
auth: "admin"
|
|
51188
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51207
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51208
|
+
clear: boolean(),
|
|
51209
|
+
repointLocationId: string().optional()
|
|
51210
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51189
51211
|
kind: "mutation",
|
|
51190
51212
|
auth: "admin"
|
|
51191
51213
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -55449,6 +55471,11 @@ onStatusChanged: { data: object({
|
|
|
55449
55471
|
*
|
|
55450
55472
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55451
55473
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55474
|
+
*
|
|
55475
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
55476
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
55477
|
+
* the link is down, or the description does not carry it) and is never
|
|
55478
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
55452
55479
|
*/
|
|
55453
55480
|
var DishwasherStateSchema = _enum([
|
|
55454
55481
|
"idle",
|
|
@@ -55458,43 +55485,155 @@ var DishwasherStateSchema = _enum([
|
|
|
55458
55485
|
"error",
|
|
55459
55486
|
"unavailable"
|
|
55460
55487
|
]);
|
|
55488
|
+
/**
|
|
55489
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
55490
|
+
* view for compact surfaces; this is what the appliance said.
|
|
55491
|
+
*/
|
|
55492
|
+
var DishwasherOperationStateSchema = _enum([
|
|
55493
|
+
"Inactive",
|
|
55494
|
+
"Ready",
|
|
55495
|
+
"DelayedStart",
|
|
55496
|
+
"Run",
|
|
55497
|
+
"Pause",
|
|
55498
|
+
"ActionRequired",
|
|
55499
|
+
"Finished",
|
|
55500
|
+
"Error",
|
|
55501
|
+
"Aborting"
|
|
55502
|
+
]);
|
|
55503
|
+
/**
|
|
55504
|
+
* Why fields may be `null`:
|
|
55505
|
+
* - `available` — the link is up and the description is loaded;
|
|
55506
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
55507
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
55508
|
+
* be loaded, so its values cannot be decoded.
|
|
55509
|
+
*/
|
|
55510
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
55511
|
+
"available",
|
|
55512
|
+
"offline",
|
|
55513
|
+
"description-missing"
|
|
55514
|
+
]);
|
|
55461
55515
|
var DishwasherConsumableLevelSchema = _enum([
|
|
55462
55516
|
"ok",
|
|
55463
55517
|
"low",
|
|
55464
55518
|
"empty"
|
|
55465
55519
|
]);
|
|
55466
55520
|
var DishwasherStatusSchema = object({
|
|
55521
|
+
availability: DishwasherAvailabilitySchema,
|
|
55522
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55467
55523
|
state: DishwasherStateSchema,
|
|
55468
|
-
/**
|
|
55524
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
55525
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
55526
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
55469
55527
|
program: string().nullable(),
|
|
55470
|
-
/**
|
|
55528
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
55529
|
+
selectedProgram: string().nullable(),
|
|
55530
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
55471
55531
|
availablePrograms: array(string()),
|
|
55472
|
-
/**
|
|
55473
|
-
|
|
55532
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
55533
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
55534
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
55535
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
55474
55536
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
55475
55537
|
progressPercent: number().min(0).max(100).nullable(),
|
|
55476
|
-
/** True when the door is reported open. */
|
|
55477
|
-
doorOpen: boolean(),
|
|
55478
|
-
/** True when
|
|
55479
|
-
|
|
55480
|
-
/**
|
|
55481
|
-
|
|
55538
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
55539
|
+
doorOpen: boolean().nullable(),
|
|
55540
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
55541
|
+
doorLocked: boolean().nullable(),
|
|
55542
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
55543
|
+
remoteStartAllowed: boolean().nullable(),
|
|
55544
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
55545
|
+
remoteControlActive: boolean().nullable(),
|
|
55546
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
55547
|
+
localControlActive: boolean().nullable(),
|
|
55548
|
+
/** Main power / switched-on state; null when not known. */
|
|
55549
|
+
powerOn: boolean().nullable(),
|
|
55550
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
55551
|
+
powerState: string().nullable(),
|
|
55482
55552
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55483
55553
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55484
|
-
|
|
55485
|
-
|
|
55554
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55555
|
+
halfLoad: boolean().nullable(),
|
|
55556
|
+
hygienePlus: boolean().nullable(),
|
|
55486
55557
|
/** Extra dry option when the appliance exposes it. */
|
|
55487
|
-
extraDry: boolean(),
|
|
55558
|
+
extraDry: boolean().nullable(),
|
|
55488
55559
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55489
|
-
intensiveZone: boolean(),
|
|
55560
|
+
intensiveZone: boolean().nullable(),
|
|
55490
55561
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55491
|
-
varioSpeedPlus: boolean(),
|
|
55492
|
-
/** Child lock (controls disabled on the appliance). */
|
|
55493
|
-
childLock: boolean(),
|
|
55562
|
+
varioSpeedPlus: boolean().nullable(),
|
|
55563
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
55564
|
+
childLock: boolean().nullable(),
|
|
55565
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
55566
|
+
activeEvents: array(string()),
|
|
55567
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
55494
55568
|
errorCode: number().nullable(),
|
|
55569
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55495
55570
|
errorLabel: string().nullable(),
|
|
55571
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55496
55572
|
lastFetchedAt: number()
|
|
55497
55573
|
});
|
|
55574
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
55575
|
+
/** A value a program option or setting can take. */
|
|
55576
|
+
var DishwasherValueSchema = union([
|
|
55577
|
+
boolean(),
|
|
55578
|
+
string(),
|
|
55579
|
+
number()
|
|
55580
|
+
]);
|
|
55581
|
+
var DishwasherAccessSchema = _enum([
|
|
55582
|
+
"none",
|
|
55583
|
+
"read",
|
|
55584
|
+
"readWrite",
|
|
55585
|
+
"writeOnly",
|
|
55586
|
+
"readStatic"
|
|
55587
|
+
]);
|
|
55588
|
+
/**
|
|
55589
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
55590
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
55591
|
+
*/
|
|
55592
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
55593
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
55594
|
+
key: string(),
|
|
55595
|
+
/** Last segment of the key, for display. */
|
|
55596
|
+
name: string(),
|
|
55597
|
+
type: _enum([
|
|
55598
|
+
"boolean",
|
|
55599
|
+
"number",
|
|
55600
|
+
"enum",
|
|
55601
|
+
"string"
|
|
55602
|
+
]),
|
|
55603
|
+
access: DishwasherAccessSchema,
|
|
55604
|
+
/** The appliance reports this entity as currently available. */
|
|
55605
|
+
available: boolean(),
|
|
55606
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
55607
|
+
unit: string().nullable(),
|
|
55608
|
+
min: number().nullable(),
|
|
55609
|
+
max: number().nullable(),
|
|
55610
|
+
step: number().nullable(),
|
|
55611
|
+
/** Allowed members of an enum; null for other types. */
|
|
55612
|
+
enumValues: array(string()).nullable(),
|
|
55613
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
55614
|
+
});
|
|
55615
|
+
var DishwasherProgramSchema = object({
|
|
55616
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
55617
|
+
key: string(),
|
|
55618
|
+
name: string(),
|
|
55619
|
+
/** The appliance currently offers this program. */
|
|
55620
|
+
available: boolean(),
|
|
55621
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
55622
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55623
|
+
});
|
|
55624
|
+
var DishwasherOptionsSchema = object({
|
|
55625
|
+
availability: DishwasherAvailabilitySchema,
|
|
55626
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
55627
|
+
supportsStart: boolean(),
|
|
55628
|
+
supportsPause: boolean(),
|
|
55629
|
+
supportsResume: boolean(),
|
|
55630
|
+
supportsStop: boolean(),
|
|
55631
|
+
supportsPower: boolean(),
|
|
55632
|
+
/** Every program the description lists, with its options. */
|
|
55633
|
+
programs: array(DishwasherProgramSchema),
|
|
55634
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
55635
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55636
|
+
});
|
|
55498
55637
|
var dishwasherCapability = {
|
|
55499
55638
|
name: "dishwasher",
|
|
55500
55639
|
scope: "device",
|
|
@@ -55502,86 +55641,102 @@ var dishwasherCapability = {
|
|
|
55502
55641
|
mode: "singleton",
|
|
55503
55642
|
deviceTypes: [DeviceType.Dishwasher],
|
|
55504
55643
|
methods: {
|
|
55505
|
-
|
|
55644
|
+
/**
|
|
55645
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
55646
|
+
* option feature keys; each is checked against the program's constraints.
|
|
55647
|
+
*/
|
|
55648
|
+
start: method(object({
|
|
55649
|
+
deviceId: DeviceIdSchema,
|
|
55650
|
+
program: string().min(1).optional(),
|
|
55651
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
55652
|
+
}), _void(), {
|
|
55506
55653
|
kind: "mutation",
|
|
55507
55654
|
auth: "protected"
|
|
55508
55655
|
}),
|
|
55509
|
-
pause: method(object({ deviceId:
|
|
55656
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55510
55657
|
kind: "mutation",
|
|
55511
55658
|
auth: "protected"
|
|
55512
55659
|
}),
|
|
55513
|
-
|
|
55660
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55661
|
+
kind: "mutation",
|
|
55662
|
+
auth: "protected"
|
|
55663
|
+
}),
|
|
55664
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55514
55665
|
kind: "mutation",
|
|
55515
55666
|
auth: "protected"
|
|
55516
55667
|
}),
|
|
55668
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55517
55669
|
setProgram: method(object({
|
|
55518
|
-
deviceId:
|
|
55670
|
+
deviceId: DeviceIdSchema,
|
|
55519
55671
|
program: string().min(1)
|
|
55520
55672
|
}), _void(), {
|
|
55521
55673
|
kind: "mutation",
|
|
55522
55674
|
auth: "protected"
|
|
55523
55675
|
}),
|
|
55524
55676
|
setPower: method(object({
|
|
55525
|
-
deviceId:
|
|
55677
|
+
deviceId: DeviceIdSchema,
|
|
55526
55678
|
on: boolean()
|
|
55527
55679
|
}), _void(), {
|
|
55528
55680
|
kind: "mutation",
|
|
55529
55681
|
auth: "protected"
|
|
55530
55682
|
}),
|
|
55531
55683
|
setHalfLoad: method(object({
|
|
55532
|
-
deviceId:
|
|
55684
|
+
deviceId: DeviceIdSchema,
|
|
55533
55685
|
on: boolean()
|
|
55534
55686
|
}), _void(), {
|
|
55535
55687
|
kind: "mutation",
|
|
55536
55688
|
auth: "protected"
|
|
55537
55689
|
}),
|
|
55538
55690
|
setHygienePlus: method(object({
|
|
55539
|
-
deviceId:
|
|
55691
|
+
deviceId: DeviceIdSchema,
|
|
55540
55692
|
on: boolean()
|
|
55541
55693
|
}), _void(), {
|
|
55542
55694
|
kind: "mutation",
|
|
55543
55695
|
auth: "protected"
|
|
55544
55696
|
}),
|
|
55545
55697
|
setExtraDry: method(object({
|
|
55546
|
-
deviceId:
|
|
55698
|
+
deviceId: DeviceIdSchema,
|
|
55547
55699
|
on: boolean()
|
|
55548
55700
|
}), _void(), {
|
|
55549
55701
|
kind: "mutation",
|
|
55550
55702
|
auth: "protected"
|
|
55551
55703
|
}),
|
|
55552
55704
|
setIntensiveZone: method(object({
|
|
55553
|
-
deviceId:
|
|
55705
|
+
deviceId: DeviceIdSchema,
|
|
55554
55706
|
on: boolean()
|
|
55555
55707
|
}), _void(), {
|
|
55556
55708
|
kind: "mutation",
|
|
55557
55709
|
auth: "protected"
|
|
55558
55710
|
}),
|
|
55559
55711
|
setVarioSpeedPlus: method(object({
|
|
55560
|
-
deviceId:
|
|
55712
|
+
deviceId: DeviceIdSchema,
|
|
55561
55713
|
on: boolean()
|
|
55562
55714
|
}), _void(), {
|
|
55563
55715
|
kind: "mutation",
|
|
55564
55716
|
auth: "protected"
|
|
55565
55717
|
}),
|
|
55566
55718
|
setChildLock: method(object({
|
|
55567
|
-
deviceId:
|
|
55719
|
+
deviceId: DeviceIdSchema,
|
|
55568
55720
|
on: boolean()
|
|
55569
55721
|
}), _void(), {
|
|
55570
55722
|
kind: "mutation",
|
|
55571
55723
|
auth: "protected"
|
|
55572
55724
|
}),
|
|
55725
|
+
/**
|
|
55726
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
55727
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
55728
|
+
* its declared range / members.
|
|
55729
|
+
*/
|
|
55573
55730
|
setOption: method(object({
|
|
55574
|
-
deviceId:
|
|
55731
|
+
deviceId: DeviceIdSchema,
|
|
55575
55732
|
key: string().min(1),
|
|
55576
|
-
value:
|
|
55577
|
-
boolean(),
|
|
55578
|
-
string(),
|
|
55579
|
-
number()
|
|
55580
|
-
])
|
|
55733
|
+
value: DishwasherValueSchema
|
|
55581
55734
|
}), _void(), {
|
|
55582
55735
|
kind: "mutation",
|
|
55583
55736
|
auth: "protected"
|
|
55584
|
-
})
|
|
55737
|
+
}),
|
|
55738
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
55739
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
55585
55740
|
},
|
|
55586
55741
|
status: {
|
|
55587
55742
|
schema: DishwasherStatusSchema,
|
|
@@ -69530,6 +69685,12 @@ Object.freeze({
|
|
|
69530
69685
|
addonId: null,
|
|
69531
69686
|
access: "view"
|
|
69532
69687
|
},
|
|
69688
|
+
"dishwasher.getOptions": {
|
|
69689
|
+
capName: "dishwasher",
|
|
69690
|
+
capScope: "device",
|
|
69691
|
+
addonId: null,
|
|
69692
|
+
access: "view"
|
|
69693
|
+
},
|
|
69533
69694
|
"dishwasher.getStatus": {
|
|
69534
69695
|
capName: "dishwasher",
|
|
69535
69696
|
capScope: "device",
|
|
@@ -69542,6 +69703,12 @@ Object.freeze({
|
|
|
69542
69703
|
addonId: null,
|
|
69543
69704
|
access: "create"
|
|
69544
69705
|
},
|
|
69706
|
+
"dishwasher.resume": {
|
|
69707
|
+
capName: "dishwasher",
|
|
69708
|
+
capScope: "device",
|
|
69709
|
+
addonId: null,
|
|
69710
|
+
access: "create"
|
|
69711
|
+
},
|
|
69545
69712
|
"dishwasher.setChildLock": {
|
|
69546
69713
|
capName: "dishwasher",
|
|
69547
69714
|
capScope: "device",
|
|
@@ -74042,6 +74209,12 @@ Object.freeze({
|
|
|
74042
74209
|
addonId: null,
|
|
74043
74210
|
access: "view"
|
|
74044
74211
|
},
|
|
74212
|
+
"storageMigration.moverClearance": {
|
|
74213
|
+
capName: "storage-migration",
|
|
74214
|
+
capScope: "system",
|
|
74215
|
+
addonId: null,
|
|
74216
|
+
access: "view"
|
|
74217
|
+
},
|
|
74045
74218
|
"storageMigration.movers": {
|
|
74046
74219
|
capName: "storage-migration",
|
|
74047
74220
|
capScope: "system",
|
|
@@ -76301,6 +76474,11 @@ Object.freeze({
|
|
|
76301
76474
|
form: "single",
|
|
76302
76475
|
optional: false
|
|
76303
76476
|
}],
|
|
76477
|
+
"dishwasher.getOptions": [{
|
|
76478
|
+
name: "deviceId",
|
|
76479
|
+
form: "single",
|
|
76480
|
+
optional: false
|
|
76481
|
+
}],
|
|
76304
76482
|
"dishwasher.getStatus": [{
|
|
76305
76483
|
name: "deviceId",
|
|
76306
76484
|
form: "single",
|
|
@@ -76311,6 +76489,11 @@ Object.freeze({
|
|
|
76311
76489
|
form: "single",
|
|
76312
76490
|
optional: false
|
|
76313
76491
|
}],
|
|
76492
|
+
"dishwasher.resume": [{
|
|
76493
|
+
name: "deviceId",
|
|
76494
|
+
form: "single",
|
|
76495
|
+
optional: false
|
|
76496
|
+
}],
|
|
76314
76497
|
"dishwasher.setChildLock": [{
|
|
76315
76498
|
name: "deviceId",
|
|
76316
76499
|
form: "single",
|
|
@@ -78397,6 +78580,9 @@ new Map(Object.entries({
|
|
|
78397
78580
|
"wrapper-update-available": "system",
|
|
78398
78581
|
"backup-completed": "system",
|
|
78399
78582
|
"export-completed": "system",
|
|
78583
|
+
"alert-critical": "system",
|
|
78584
|
+
"alert-error": "system",
|
|
78585
|
+
"alert-critical-resolved": "system",
|
|
78400
78586
|
"storage-location-low": "system",
|
|
78401
78587
|
"storage-location-critical": "system",
|
|
78402
78588
|
"storage-location-ok": "system",
|
|
@@ -78521,6 +78707,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78521
78707
|
"storage-location-ok"
|
|
78522
78708
|
]
|
|
78523
78709
|
},
|
|
78710
|
+
{
|
|
78711
|
+
id: "alerts",
|
|
78712
|
+
family: "system",
|
|
78713
|
+
label: "Alerts",
|
|
78714
|
+
kinds: [
|
|
78715
|
+
"alert-critical",
|
|
78716
|
+
"alert-error",
|
|
78717
|
+
"alert-critical-resolved"
|
|
78718
|
+
]
|
|
78719
|
+
},
|
|
78524
78720
|
{
|
|
78525
78721
|
id: "alarm",
|
|
78526
78722
|
family: "alarm",
|
|
@@ -78565,6 +78761,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
78565
78761
|
return [[descriptor.kind, field]];
|
|
78566
78762
|
})));
|
|
78567
78763
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
78764
|
+
object({
|
|
78765
|
+
phase: _enum(["raised", "resolved"]),
|
|
78766
|
+
episodeId: string().min(1),
|
|
78767
|
+
alertId: string().min(1),
|
|
78768
|
+
severity: AlertSeveritySchema,
|
|
78769
|
+
category: string(),
|
|
78770
|
+
title: string(),
|
|
78771
|
+
message: string(),
|
|
78772
|
+
sourceType: string().optional(),
|
|
78773
|
+
sourceId: string().optional(),
|
|
78774
|
+
nodeId: string().optional(),
|
|
78775
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
78776
|
+
actionUrl: string().optional(),
|
|
78777
|
+
at: number()
|
|
78778
|
+
});
|
|
78568
78779
|
var RULE_BODY_ONLY = ["body"];
|
|
78569
78780
|
var RULE_TEXT = ["title", "body"];
|
|
78570
78781
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -78574,6 +78785,11 @@ var TANK = [
|
|
|
78574
78785
|
"device-tank-full",
|
|
78575
78786
|
"device-tank-normal"
|
|
78576
78787
|
];
|
|
78788
|
+
var ALERT_EPISODE = [
|
|
78789
|
+
"alert-critical",
|
|
78790
|
+
"alert-error",
|
|
78791
|
+
"alert-critical-resolved"
|
|
78792
|
+
];
|
|
78577
78793
|
var UPDATES = [
|
|
78578
78794
|
"addon-update-available",
|
|
78579
78795
|
"server-update-available",
|
|
@@ -78766,14 +78982,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
78766
78982
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
78767
78983
|
([...RULE_TEXT], [...TANK]),
|
|
78768
78984
|
[...RULE_TEXT],
|
|
78769
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78770
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78771
|
-
[...RULE_TEXT],
|
|
78985
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78986
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78772
78987
|
[...RULE_TEXT],
|
|
78773
78988
|
[...RULE_TEXT],
|
|
78774
78989
|
[...RULE_TEXT],
|
|
78775
78990
|
[...RULE_TEXT],
|
|
78776
78991
|
[...RULE_TEXT],
|
|
78992
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78777
78993
|
[...RULE_TEXT],
|
|
78778
78994
|
[...RULE_TEXT],
|
|
78779
78995
|
[...RULE_TEXT],
|
|
@@ -78791,7 +79007,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
78791
79007
|
[...RULE_TEXT],
|
|
78792
79008
|
[...RULE_TEXT],
|
|
78793
79009
|
[...RULE_TEXT],
|
|
78794
|
-
[...RULE_TEXT],
|
|
79010
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79011
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79012
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79013
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
79014
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78795
79015
|
[...RULE_TEXT],
|
|
78796
79016
|
[...RULE_TEXT],
|
|
78797
79017
|
[...RULE_TEXT],
|