@camstack/addon-provider-reolink 1.2.189 → 1.2.190
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
|
@@ -36,7 +36,7 @@ let node_os = require("node:os");
|
|
|
36
36
|
node_os = require_chunk.__toESM(node_os, 1);
|
|
37
37
|
let node_fs = require("node:fs");
|
|
38
38
|
node_fs = require_chunk.__toESM(node_fs, 1);
|
|
39
|
-
//#region ../types/dist/event-category-
|
|
39
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
40
40
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
41
41
|
EventCategory["SystemBoot"] = "system.boot";
|
|
42
42
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -115,9 +115,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
115
115
|
/**
|
|
116
116
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
117
117
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
118
|
-
* alert centre turns it into one
|
|
118
|
+
* alert centre turns it into one critical alert.
|
|
119
119
|
*/
|
|
120
120
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
121
|
+
/**
|
|
122
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
123
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
124
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
125
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
126
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
127
|
+
* event may be dropped (D8, D11).
|
|
128
|
+
*/
|
|
129
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
121
130
|
EventCategory["AddonError"] = "addon.error";
|
|
122
131
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
123
132
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5442,7 +5451,7 @@ var ZodIssueCode = {
|
|
|
5442
5451
|
var ZodFirstPartyTypeKind;
|
|
5443
5452
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5444
5453
|
//#endregion
|
|
5445
|
-
//#region ../types/dist/sleep-
|
|
5454
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5446
5455
|
/**
|
|
5447
5456
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5448
5457
|
* window to float samples (D455).
|
|
@@ -13823,7 +13832,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13823
13832
|
]);
|
|
13824
13833
|
var AlertActionSchema = object({
|
|
13825
13834
|
label: string(),
|
|
13826
|
-
href: string().optional()
|
|
13835
|
+
href: string().optional(),
|
|
13836
|
+
/**
|
|
13837
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13838
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13839
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13840
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13841
|
+
*/
|
|
13842
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13827
13843
|
});
|
|
13828
13844
|
var AlertStatusSchema = _enum([
|
|
13829
13845
|
"active",
|
|
@@ -42692,6 +42708,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42692
42708
|
"server-updated",
|
|
42693
42709
|
"export-completed",
|
|
42694
42710
|
"backup-completed",
|
|
42711
|
+
"alert-critical",
|
|
42712
|
+
"alert-error",
|
|
42713
|
+
"alert-critical-resolved",
|
|
42695
42714
|
"camera-online",
|
|
42696
42715
|
"camera-offline",
|
|
42697
42716
|
"camera-disabled",
|
|
@@ -51872,7 +51891,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51872
51891
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51873
51892
|
kind: "mutation",
|
|
51874
51893
|
auth: "admin"
|
|
51875
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51894
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51895
|
+
clear: boolean(),
|
|
51896
|
+
repointLocationId: string().optional()
|
|
51897
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51876
51898
|
kind: "mutation",
|
|
51877
51899
|
auth: "admin"
|
|
51878
51900
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -56546,6 +56568,11 @@ onStatusChanged: { data: object({
|
|
|
56546
56568
|
*
|
|
56547
56569
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
56548
56570
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
56571
|
+
*
|
|
56572
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
56573
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
56574
|
+
* the link is down, or the description does not carry it) and is never
|
|
56575
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
56549
56576
|
*/
|
|
56550
56577
|
var DishwasherStateSchema = _enum([
|
|
56551
56578
|
"idle",
|
|
@@ -56555,43 +56582,155 @@ var DishwasherStateSchema = _enum([
|
|
|
56555
56582
|
"error",
|
|
56556
56583
|
"unavailable"
|
|
56557
56584
|
]);
|
|
56585
|
+
/**
|
|
56586
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
56587
|
+
* view for compact surfaces; this is what the appliance said.
|
|
56588
|
+
*/
|
|
56589
|
+
var DishwasherOperationStateSchema = _enum([
|
|
56590
|
+
"Inactive",
|
|
56591
|
+
"Ready",
|
|
56592
|
+
"DelayedStart",
|
|
56593
|
+
"Run",
|
|
56594
|
+
"Pause",
|
|
56595
|
+
"ActionRequired",
|
|
56596
|
+
"Finished",
|
|
56597
|
+
"Error",
|
|
56598
|
+
"Aborting"
|
|
56599
|
+
]);
|
|
56600
|
+
/**
|
|
56601
|
+
* Why fields may be `null`:
|
|
56602
|
+
* - `available` — the link is up and the description is loaded;
|
|
56603
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
56604
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
56605
|
+
* be loaded, so its values cannot be decoded.
|
|
56606
|
+
*/
|
|
56607
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
56608
|
+
"available",
|
|
56609
|
+
"offline",
|
|
56610
|
+
"description-missing"
|
|
56611
|
+
]);
|
|
56558
56612
|
var DishwasherConsumableLevelSchema = _enum([
|
|
56559
56613
|
"ok",
|
|
56560
56614
|
"low",
|
|
56561
56615
|
"empty"
|
|
56562
56616
|
]);
|
|
56563
56617
|
var DishwasherStatusSchema = object({
|
|
56618
|
+
availability: DishwasherAvailabilitySchema,
|
|
56619
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
56564
56620
|
state: DishwasherStateSchema,
|
|
56565
|
-
/**
|
|
56621
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
56622
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
56623
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
56566
56624
|
program: string().nullable(),
|
|
56567
|
-
/**
|
|
56625
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
56626
|
+
selectedProgram: string().nullable(),
|
|
56627
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
56568
56628
|
availablePrograms: array(string()),
|
|
56569
|
-
/**
|
|
56570
|
-
|
|
56629
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
56630
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
56631
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
56632
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
56571
56633
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
56572
56634
|
progressPercent: number().min(0).max(100).nullable(),
|
|
56573
|
-
/** True when the door is reported open. */
|
|
56574
|
-
doorOpen: boolean(),
|
|
56575
|
-
/** True when
|
|
56576
|
-
|
|
56577
|
-
/**
|
|
56578
|
-
|
|
56635
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
56636
|
+
doorOpen: boolean().nullable(),
|
|
56637
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
56638
|
+
doorLocked: boolean().nullable(),
|
|
56639
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
56640
|
+
remoteStartAllowed: boolean().nullable(),
|
|
56641
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
56642
|
+
remoteControlActive: boolean().nullable(),
|
|
56643
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
56644
|
+
localControlActive: boolean().nullable(),
|
|
56645
|
+
/** Main power / switched-on state; null when not known. */
|
|
56646
|
+
powerOn: boolean().nullable(),
|
|
56647
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
56648
|
+
powerState: string().nullable(),
|
|
56579
56649
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
56580
56650
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
56581
|
-
|
|
56582
|
-
|
|
56651
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
56652
|
+
halfLoad: boolean().nullable(),
|
|
56653
|
+
hygienePlus: boolean().nullable(),
|
|
56583
56654
|
/** Extra dry option when the appliance exposes it. */
|
|
56584
|
-
extraDry: boolean(),
|
|
56655
|
+
extraDry: boolean().nullable(),
|
|
56585
56656
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
56586
|
-
intensiveZone: boolean(),
|
|
56657
|
+
intensiveZone: boolean().nullable(),
|
|
56587
56658
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
56588
|
-
varioSpeedPlus: boolean(),
|
|
56589
|
-
/** Child lock (controls disabled on the appliance). */
|
|
56590
|
-
childLock: boolean(),
|
|
56659
|
+
varioSpeedPlus: boolean().nullable(),
|
|
56660
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
56661
|
+
childLock: boolean().nullable(),
|
|
56662
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
56663
|
+
activeEvents: array(string()),
|
|
56664
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
56591
56665
|
errorCode: number().nullable(),
|
|
56666
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
56592
56667
|
errorLabel: string().nullable(),
|
|
56668
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
56593
56669
|
lastFetchedAt: number()
|
|
56594
56670
|
});
|
|
56671
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
56672
|
+
/** A value a program option or setting can take. */
|
|
56673
|
+
var DishwasherValueSchema = union([
|
|
56674
|
+
boolean(),
|
|
56675
|
+
string(),
|
|
56676
|
+
number()
|
|
56677
|
+
]);
|
|
56678
|
+
var DishwasherAccessSchema = _enum([
|
|
56679
|
+
"none",
|
|
56680
|
+
"read",
|
|
56681
|
+
"readWrite",
|
|
56682
|
+
"writeOnly",
|
|
56683
|
+
"readStatic"
|
|
56684
|
+
]);
|
|
56685
|
+
/**
|
|
56686
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
56687
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
56688
|
+
*/
|
|
56689
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
56690
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
56691
|
+
key: string(),
|
|
56692
|
+
/** Last segment of the key, for display. */
|
|
56693
|
+
name: string(),
|
|
56694
|
+
type: _enum([
|
|
56695
|
+
"boolean",
|
|
56696
|
+
"number",
|
|
56697
|
+
"enum",
|
|
56698
|
+
"string"
|
|
56699
|
+
]),
|
|
56700
|
+
access: DishwasherAccessSchema,
|
|
56701
|
+
/** The appliance reports this entity as currently available. */
|
|
56702
|
+
available: boolean(),
|
|
56703
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
56704
|
+
unit: string().nullable(),
|
|
56705
|
+
min: number().nullable(),
|
|
56706
|
+
max: number().nullable(),
|
|
56707
|
+
step: number().nullable(),
|
|
56708
|
+
/** Allowed members of an enum; null for other types. */
|
|
56709
|
+
enumValues: array(string()).nullable(),
|
|
56710
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
56711
|
+
});
|
|
56712
|
+
var DishwasherProgramSchema = object({
|
|
56713
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
56714
|
+
key: string(),
|
|
56715
|
+
name: string(),
|
|
56716
|
+
/** The appliance currently offers this program. */
|
|
56717
|
+
available: boolean(),
|
|
56718
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
56719
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
56720
|
+
});
|
|
56721
|
+
var DishwasherOptionsSchema = object({
|
|
56722
|
+
availability: DishwasherAvailabilitySchema,
|
|
56723
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
56724
|
+
supportsStart: boolean(),
|
|
56725
|
+
supportsPause: boolean(),
|
|
56726
|
+
supportsResume: boolean(),
|
|
56727
|
+
supportsStop: boolean(),
|
|
56728
|
+
supportsPower: boolean(),
|
|
56729
|
+
/** Every program the description lists, with its options. */
|
|
56730
|
+
programs: array(DishwasherProgramSchema),
|
|
56731
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
56732
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
56733
|
+
});
|
|
56595
56734
|
var dishwasherCapability = {
|
|
56596
56735
|
name: "dishwasher",
|
|
56597
56736
|
scope: "device",
|
|
@@ -56599,86 +56738,102 @@ var dishwasherCapability = {
|
|
|
56599
56738
|
mode: "singleton",
|
|
56600
56739
|
deviceTypes: [DeviceType.Dishwasher],
|
|
56601
56740
|
methods: {
|
|
56602
|
-
|
|
56741
|
+
/**
|
|
56742
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
56743
|
+
* option feature keys; each is checked against the program's constraints.
|
|
56744
|
+
*/
|
|
56745
|
+
start: method(object({
|
|
56746
|
+
deviceId: DeviceIdSchema,
|
|
56747
|
+
program: string().min(1).optional(),
|
|
56748
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
56749
|
+
}), _void(), {
|
|
56603
56750
|
kind: "mutation",
|
|
56604
56751
|
auth: "protected"
|
|
56605
56752
|
}),
|
|
56606
|
-
pause: method(object({ deviceId:
|
|
56753
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
56607
56754
|
kind: "mutation",
|
|
56608
56755
|
auth: "protected"
|
|
56609
56756
|
}),
|
|
56610
|
-
|
|
56757
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
56758
|
+
kind: "mutation",
|
|
56759
|
+
auth: "protected"
|
|
56760
|
+
}),
|
|
56761
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
56611
56762
|
kind: "mutation",
|
|
56612
56763
|
auth: "protected"
|
|
56613
56764
|
}),
|
|
56765
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
56614
56766
|
setProgram: method(object({
|
|
56615
|
-
deviceId:
|
|
56767
|
+
deviceId: DeviceIdSchema,
|
|
56616
56768
|
program: string().min(1)
|
|
56617
56769
|
}), _void(), {
|
|
56618
56770
|
kind: "mutation",
|
|
56619
56771
|
auth: "protected"
|
|
56620
56772
|
}),
|
|
56621
56773
|
setPower: method(object({
|
|
56622
|
-
deviceId:
|
|
56774
|
+
deviceId: DeviceIdSchema,
|
|
56623
56775
|
on: boolean()
|
|
56624
56776
|
}), _void(), {
|
|
56625
56777
|
kind: "mutation",
|
|
56626
56778
|
auth: "protected"
|
|
56627
56779
|
}),
|
|
56628
56780
|
setHalfLoad: method(object({
|
|
56629
|
-
deviceId:
|
|
56781
|
+
deviceId: DeviceIdSchema,
|
|
56630
56782
|
on: boolean()
|
|
56631
56783
|
}), _void(), {
|
|
56632
56784
|
kind: "mutation",
|
|
56633
56785
|
auth: "protected"
|
|
56634
56786
|
}),
|
|
56635
56787
|
setHygienePlus: method(object({
|
|
56636
|
-
deviceId:
|
|
56788
|
+
deviceId: DeviceIdSchema,
|
|
56637
56789
|
on: boolean()
|
|
56638
56790
|
}), _void(), {
|
|
56639
56791
|
kind: "mutation",
|
|
56640
56792
|
auth: "protected"
|
|
56641
56793
|
}),
|
|
56642
56794
|
setExtraDry: method(object({
|
|
56643
|
-
deviceId:
|
|
56795
|
+
deviceId: DeviceIdSchema,
|
|
56644
56796
|
on: boolean()
|
|
56645
56797
|
}), _void(), {
|
|
56646
56798
|
kind: "mutation",
|
|
56647
56799
|
auth: "protected"
|
|
56648
56800
|
}),
|
|
56649
56801
|
setIntensiveZone: method(object({
|
|
56650
|
-
deviceId:
|
|
56802
|
+
deviceId: DeviceIdSchema,
|
|
56651
56803
|
on: boolean()
|
|
56652
56804
|
}), _void(), {
|
|
56653
56805
|
kind: "mutation",
|
|
56654
56806
|
auth: "protected"
|
|
56655
56807
|
}),
|
|
56656
56808
|
setVarioSpeedPlus: method(object({
|
|
56657
|
-
deviceId:
|
|
56809
|
+
deviceId: DeviceIdSchema,
|
|
56658
56810
|
on: boolean()
|
|
56659
56811
|
}), _void(), {
|
|
56660
56812
|
kind: "mutation",
|
|
56661
56813
|
auth: "protected"
|
|
56662
56814
|
}),
|
|
56663
56815
|
setChildLock: method(object({
|
|
56664
|
-
deviceId:
|
|
56816
|
+
deviceId: DeviceIdSchema,
|
|
56665
56817
|
on: boolean()
|
|
56666
56818
|
}), _void(), {
|
|
56667
56819
|
kind: "mutation",
|
|
56668
56820
|
auth: "protected"
|
|
56669
56821
|
}),
|
|
56822
|
+
/**
|
|
56823
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
56824
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
56825
|
+
* its declared range / members.
|
|
56826
|
+
*/
|
|
56670
56827
|
setOption: method(object({
|
|
56671
|
-
deviceId:
|
|
56828
|
+
deviceId: DeviceIdSchema,
|
|
56672
56829
|
key: string().min(1),
|
|
56673
|
-
value:
|
|
56674
|
-
boolean(),
|
|
56675
|
-
string(),
|
|
56676
|
-
number()
|
|
56677
|
-
])
|
|
56830
|
+
value: DishwasherValueSchema
|
|
56678
56831
|
}), _void(), {
|
|
56679
56832
|
kind: "mutation",
|
|
56680
56833
|
auth: "protected"
|
|
56681
|
-
})
|
|
56834
|
+
}),
|
|
56835
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
56836
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
56682
56837
|
},
|
|
56683
56838
|
status: {
|
|
56684
56839
|
schema: DishwasherStatusSchema,
|
|
@@ -71212,6 +71367,12 @@ Object.freeze({
|
|
|
71212
71367
|
addonId: null,
|
|
71213
71368
|
access: "view"
|
|
71214
71369
|
},
|
|
71370
|
+
"dishwasher.getOptions": {
|
|
71371
|
+
capName: "dishwasher",
|
|
71372
|
+
capScope: "device",
|
|
71373
|
+
addonId: null,
|
|
71374
|
+
access: "view"
|
|
71375
|
+
},
|
|
71215
71376
|
"dishwasher.getStatus": {
|
|
71216
71377
|
capName: "dishwasher",
|
|
71217
71378
|
capScope: "device",
|
|
@@ -71224,6 +71385,12 @@ Object.freeze({
|
|
|
71224
71385
|
addonId: null,
|
|
71225
71386
|
access: "create"
|
|
71226
71387
|
},
|
|
71388
|
+
"dishwasher.resume": {
|
|
71389
|
+
capName: "dishwasher",
|
|
71390
|
+
capScope: "device",
|
|
71391
|
+
addonId: null,
|
|
71392
|
+
access: "create"
|
|
71393
|
+
},
|
|
71227
71394
|
"dishwasher.setChildLock": {
|
|
71228
71395
|
capName: "dishwasher",
|
|
71229
71396
|
capScope: "device",
|
|
@@ -75724,6 +75891,12 @@ Object.freeze({
|
|
|
75724
75891
|
addonId: null,
|
|
75725
75892
|
access: "view"
|
|
75726
75893
|
},
|
|
75894
|
+
"storageMigration.moverClearance": {
|
|
75895
|
+
capName: "storage-migration",
|
|
75896
|
+
capScope: "system",
|
|
75897
|
+
addonId: null,
|
|
75898
|
+
access: "view"
|
|
75899
|
+
},
|
|
75727
75900
|
"storageMigration.movers": {
|
|
75728
75901
|
capName: "storage-migration",
|
|
75729
75902
|
capScope: "system",
|
|
@@ -78069,6 +78242,11 @@ Object.freeze({
|
|
|
78069
78242
|
form: "single",
|
|
78070
78243
|
optional: false
|
|
78071
78244
|
}],
|
|
78245
|
+
"dishwasher.getOptions": [{
|
|
78246
|
+
name: "deviceId",
|
|
78247
|
+
form: "single",
|
|
78248
|
+
optional: false
|
|
78249
|
+
}],
|
|
78072
78250
|
"dishwasher.getStatus": [{
|
|
78073
78251
|
name: "deviceId",
|
|
78074
78252
|
form: "single",
|
|
@@ -78079,6 +78257,11 @@ Object.freeze({
|
|
|
78079
78257
|
form: "single",
|
|
78080
78258
|
optional: false
|
|
78081
78259
|
}],
|
|
78260
|
+
"dishwasher.resume": [{
|
|
78261
|
+
name: "deviceId",
|
|
78262
|
+
form: "single",
|
|
78263
|
+
optional: false
|
|
78264
|
+
}],
|
|
78082
78265
|
"dishwasher.setChildLock": [{
|
|
78083
78266
|
name: "deviceId",
|
|
78084
78267
|
form: "single",
|
|
@@ -80165,6 +80348,9 @@ new Map(Object.entries({
|
|
|
80165
80348
|
"wrapper-update-available": "system",
|
|
80166
80349
|
"backup-completed": "system",
|
|
80167
80350
|
"export-completed": "system",
|
|
80351
|
+
"alert-critical": "system",
|
|
80352
|
+
"alert-error": "system",
|
|
80353
|
+
"alert-critical-resolved": "system",
|
|
80168
80354
|
"storage-location-low": "system",
|
|
80169
80355
|
"storage-location-critical": "system",
|
|
80170
80356
|
"storage-location-ok": "system",
|
|
@@ -80289,6 +80475,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
80289
80475
|
"storage-location-ok"
|
|
80290
80476
|
]
|
|
80291
80477
|
},
|
|
80478
|
+
{
|
|
80479
|
+
id: "alerts",
|
|
80480
|
+
family: "system",
|
|
80481
|
+
label: "Alerts",
|
|
80482
|
+
kinds: [
|
|
80483
|
+
"alert-critical",
|
|
80484
|
+
"alert-error",
|
|
80485
|
+
"alert-critical-resolved"
|
|
80486
|
+
]
|
|
80487
|
+
},
|
|
80292
80488
|
{
|
|
80293
80489
|
id: "alarm",
|
|
80294
80490
|
family: "alarm",
|
|
@@ -80333,6 +80529,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
80333
80529
|
return [[descriptor.kind, field]];
|
|
80334
80530
|
})));
|
|
80335
80531
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
80532
|
+
object({
|
|
80533
|
+
phase: _enum(["raised", "resolved"]),
|
|
80534
|
+
episodeId: string().min(1),
|
|
80535
|
+
alertId: string().min(1),
|
|
80536
|
+
severity: AlertSeveritySchema,
|
|
80537
|
+
category: string(),
|
|
80538
|
+
title: string(),
|
|
80539
|
+
message: string(),
|
|
80540
|
+
sourceType: string().optional(),
|
|
80541
|
+
sourceId: string().optional(),
|
|
80542
|
+
nodeId: string().optional(),
|
|
80543
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
80544
|
+
actionUrl: string().optional(),
|
|
80545
|
+
at: number()
|
|
80546
|
+
});
|
|
80336
80547
|
var RULE_BODY_ONLY = ["body"];
|
|
80337
80548
|
var RULE_TEXT = ["title", "body"];
|
|
80338
80549
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -80342,6 +80553,11 @@ var TANK = [
|
|
|
80342
80553
|
"device-tank-full",
|
|
80343
80554
|
"device-tank-normal"
|
|
80344
80555
|
];
|
|
80556
|
+
var ALERT_EPISODE = [
|
|
80557
|
+
"alert-critical",
|
|
80558
|
+
"alert-error",
|
|
80559
|
+
"alert-critical-resolved"
|
|
80560
|
+
];
|
|
80345
80561
|
var UPDATES = [
|
|
80346
80562
|
"addon-update-available",
|
|
80347
80563
|
"server-update-available",
|
|
@@ -80534,14 +80750,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
80534
80750
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
80535
80751
|
([...RULE_TEXT], [...TANK]),
|
|
80536
80752
|
[...RULE_TEXT],
|
|
80537
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
80538
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
80539
|
-
[...RULE_TEXT],
|
|
80753
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
80754
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
80540
80755
|
[...RULE_TEXT],
|
|
80541
80756
|
[...RULE_TEXT],
|
|
80542
80757
|
[...RULE_TEXT],
|
|
80543
80758
|
[...RULE_TEXT],
|
|
80544
80759
|
[...RULE_TEXT],
|
|
80760
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80545
80761
|
[...RULE_TEXT],
|
|
80546
80762
|
[...RULE_TEXT],
|
|
80547
80763
|
[...RULE_TEXT],
|
|
@@ -80559,7 +80775,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
80559
80775
|
[...RULE_TEXT],
|
|
80560
80776
|
[...RULE_TEXT],
|
|
80561
80777
|
[...RULE_TEXT],
|
|
80562
|
-
[...RULE_TEXT],
|
|
80778
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80779
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80780
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80781
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80782
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80563
80783
|
[...RULE_TEXT],
|
|
80564
80784
|
[...RULE_TEXT],
|
|
80565
80785
|
[...RULE_TEXT],
|
package/dist/addon.mjs
CHANGED
|
@@ -28,7 +28,7 @@ import { URL as URL$1 } from "url";
|
|
|
28
28
|
import { spawn as spawn$1 } from "node:child_process";
|
|
29
29
|
import os, { tmpdir } from "node:os";
|
|
30
30
|
import { createReadStream } from "node:fs";
|
|
31
|
-
//#region ../types/dist/event-category-
|
|
31
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
32
32
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
33
33
|
EventCategory["SystemBoot"] = "system.boot";
|
|
34
34
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -107,9 +107,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
107
107
|
/**
|
|
108
108
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
109
109
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
110
|
-
* alert centre turns it into one
|
|
110
|
+
* alert centre turns it into one critical alert.
|
|
111
111
|
*/
|
|
112
112
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
113
|
+
/**
|
|
114
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
115
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
116
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
117
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
118
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
119
|
+
* event may be dropped (D8, D11).
|
|
120
|
+
*/
|
|
121
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
113
122
|
EventCategory["AddonError"] = "addon.error";
|
|
114
123
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
115
124
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5434,7 +5443,7 @@ var ZodIssueCode = {
|
|
|
5434
5443
|
var ZodFirstPartyTypeKind;
|
|
5435
5444
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5436
5445
|
//#endregion
|
|
5437
|
-
//#region ../types/dist/sleep-
|
|
5446
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5438
5447
|
/**
|
|
5439
5448
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5440
5449
|
* window to float samples (D455).
|
|
@@ -13815,7 +13824,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13815
13824
|
]);
|
|
13816
13825
|
var AlertActionSchema = object({
|
|
13817
13826
|
label: string(),
|
|
13818
|
-
href: string().optional()
|
|
13827
|
+
href: string().optional(),
|
|
13828
|
+
/**
|
|
13829
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13830
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13831
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13832
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13833
|
+
*/
|
|
13834
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13819
13835
|
});
|
|
13820
13836
|
var AlertStatusSchema = _enum([
|
|
13821
13837
|
"active",
|
|
@@ -42684,6 +42700,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42684
42700
|
"server-updated",
|
|
42685
42701
|
"export-completed",
|
|
42686
42702
|
"backup-completed",
|
|
42703
|
+
"alert-critical",
|
|
42704
|
+
"alert-error",
|
|
42705
|
+
"alert-critical-resolved",
|
|
42687
42706
|
"camera-online",
|
|
42688
42707
|
"camera-offline",
|
|
42689
42708
|
"camera-disabled",
|
|
@@ -51864,7 +51883,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51864
51883
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51865
51884
|
kind: "mutation",
|
|
51866
51885
|
auth: "admin"
|
|
51867
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51886
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51887
|
+
clear: boolean(),
|
|
51888
|
+
repointLocationId: string().optional()
|
|
51889
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51868
51890
|
kind: "mutation",
|
|
51869
51891
|
auth: "admin"
|
|
51870
51892
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -56538,6 +56560,11 @@ onStatusChanged: { data: object({
|
|
|
56538
56560
|
*
|
|
56539
56561
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
56540
56562
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
56563
|
+
*
|
|
56564
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
56565
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
56566
|
+
* the link is down, or the description does not carry it) and is never
|
|
56567
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
56541
56568
|
*/
|
|
56542
56569
|
var DishwasherStateSchema = _enum([
|
|
56543
56570
|
"idle",
|
|
@@ -56547,43 +56574,155 @@ var DishwasherStateSchema = _enum([
|
|
|
56547
56574
|
"error",
|
|
56548
56575
|
"unavailable"
|
|
56549
56576
|
]);
|
|
56577
|
+
/**
|
|
56578
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
56579
|
+
* view for compact surfaces; this is what the appliance said.
|
|
56580
|
+
*/
|
|
56581
|
+
var DishwasherOperationStateSchema = _enum([
|
|
56582
|
+
"Inactive",
|
|
56583
|
+
"Ready",
|
|
56584
|
+
"DelayedStart",
|
|
56585
|
+
"Run",
|
|
56586
|
+
"Pause",
|
|
56587
|
+
"ActionRequired",
|
|
56588
|
+
"Finished",
|
|
56589
|
+
"Error",
|
|
56590
|
+
"Aborting"
|
|
56591
|
+
]);
|
|
56592
|
+
/**
|
|
56593
|
+
* Why fields may be `null`:
|
|
56594
|
+
* - `available` — the link is up and the description is loaded;
|
|
56595
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
56596
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
56597
|
+
* be loaded, so its values cannot be decoded.
|
|
56598
|
+
*/
|
|
56599
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
56600
|
+
"available",
|
|
56601
|
+
"offline",
|
|
56602
|
+
"description-missing"
|
|
56603
|
+
]);
|
|
56550
56604
|
var DishwasherConsumableLevelSchema = _enum([
|
|
56551
56605
|
"ok",
|
|
56552
56606
|
"low",
|
|
56553
56607
|
"empty"
|
|
56554
56608
|
]);
|
|
56555
56609
|
var DishwasherStatusSchema = object({
|
|
56610
|
+
availability: DishwasherAvailabilitySchema,
|
|
56611
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
56556
56612
|
state: DishwasherStateSchema,
|
|
56557
|
-
/**
|
|
56613
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
56614
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
56615
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
56558
56616
|
program: string().nullable(),
|
|
56559
|
-
/**
|
|
56617
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
56618
|
+
selectedProgram: string().nullable(),
|
|
56619
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
56560
56620
|
availablePrograms: array(string()),
|
|
56561
|
-
/**
|
|
56562
|
-
|
|
56621
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
56622
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
56623
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
56624
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
56563
56625
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
56564
56626
|
progressPercent: number().min(0).max(100).nullable(),
|
|
56565
|
-
/** True when the door is reported open. */
|
|
56566
|
-
doorOpen: boolean(),
|
|
56567
|
-
/** True when
|
|
56568
|
-
|
|
56569
|
-
/**
|
|
56570
|
-
|
|
56627
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
56628
|
+
doorOpen: boolean().nullable(),
|
|
56629
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
56630
|
+
doorLocked: boolean().nullable(),
|
|
56631
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
56632
|
+
remoteStartAllowed: boolean().nullable(),
|
|
56633
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
56634
|
+
remoteControlActive: boolean().nullable(),
|
|
56635
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
56636
|
+
localControlActive: boolean().nullable(),
|
|
56637
|
+
/** Main power / switched-on state; null when not known. */
|
|
56638
|
+
powerOn: boolean().nullable(),
|
|
56639
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
56640
|
+
powerState: string().nullable(),
|
|
56571
56641
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
56572
56642
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
56573
|
-
|
|
56574
|
-
|
|
56643
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
56644
|
+
halfLoad: boolean().nullable(),
|
|
56645
|
+
hygienePlus: boolean().nullable(),
|
|
56575
56646
|
/** Extra dry option when the appliance exposes it. */
|
|
56576
|
-
extraDry: boolean(),
|
|
56647
|
+
extraDry: boolean().nullable(),
|
|
56577
56648
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
56578
|
-
intensiveZone: boolean(),
|
|
56649
|
+
intensiveZone: boolean().nullable(),
|
|
56579
56650
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
56580
|
-
varioSpeedPlus: boolean(),
|
|
56581
|
-
/** Child lock (controls disabled on the appliance). */
|
|
56582
|
-
childLock: boolean(),
|
|
56651
|
+
varioSpeedPlus: boolean().nullable(),
|
|
56652
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
56653
|
+
childLock: boolean().nullable(),
|
|
56654
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
56655
|
+
activeEvents: array(string()),
|
|
56656
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
56583
56657
|
errorCode: number().nullable(),
|
|
56658
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
56584
56659
|
errorLabel: string().nullable(),
|
|
56660
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
56585
56661
|
lastFetchedAt: number()
|
|
56586
56662
|
});
|
|
56663
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
56664
|
+
/** A value a program option or setting can take. */
|
|
56665
|
+
var DishwasherValueSchema = union([
|
|
56666
|
+
boolean(),
|
|
56667
|
+
string(),
|
|
56668
|
+
number()
|
|
56669
|
+
]);
|
|
56670
|
+
var DishwasherAccessSchema = _enum([
|
|
56671
|
+
"none",
|
|
56672
|
+
"read",
|
|
56673
|
+
"readWrite",
|
|
56674
|
+
"writeOnly",
|
|
56675
|
+
"readStatic"
|
|
56676
|
+
]);
|
|
56677
|
+
/**
|
|
56678
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
56679
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
56680
|
+
*/
|
|
56681
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
56682
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
56683
|
+
key: string(),
|
|
56684
|
+
/** Last segment of the key, for display. */
|
|
56685
|
+
name: string(),
|
|
56686
|
+
type: _enum([
|
|
56687
|
+
"boolean",
|
|
56688
|
+
"number",
|
|
56689
|
+
"enum",
|
|
56690
|
+
"string"
|
|
56691
|
+
]),
|
|
56692
|
+
access: DishwasherAccessSchema,
|
|
56693
|
+
/** The appliance reports this entity as currently available. */
|
|
56694
|
+
available: boolean(),
|
|
56695
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
56696
|
+
unit: string().nullable(),
|
|
56697
|
+
min: number().nullable(),
|
|
56698
|
+
max: number().nullable(),
|
|
56699
|
+
step: number().nullable(),
|
|
56700
|
+
/** Allowed members of an enum; null for other types. */
|
|
56701
|
+
enumValues: array(string()).nullable(),
|
|
56702
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
56703
|
+
});
|
|
56704
|
+
var DishwasherProgramSchema = object({
|
|
56705
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
56706
|
+
key: string(),
|
|
56707
|
+
name: string(),
|
|
56708
|
+
/** The appliance currently offers this program. */
|
|
56709
|
+
available: boolean(),
|
|
56710
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
56711
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
56712
|
+
});
|
|
56713
|
+
var DishwasherOptionsSchema = object({
|
|
56714
|
+
availability: DishwasherAvailabilitySchema,
|
|
56715
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
56716
|
+
supportsStart: boolean(),
|
|
56717
|
+
supportsPause: boolean(),
|
|
56718
|
+
supportsResume: boolean(),
|
|
56719
|
+
supportsStop: boolean(),
|
|
56720
|
+
supportsPower: boolean(),
|
|
56721
|
+
/** Every program the description lists, with its options. */
|
|
56722
|
+
programs: array(DishwasherProgramSchema),
|
|
56723
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
56724
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
56725
|
+
});
|
|
56587
56726
|
var dishwasherCapability = {
|
|
56588
56727
|
name: "dishwasher",
|
|
56589
56728
|
scope: "device",
|
|
@@ -56591,86 +56730,102 @@ var dishwasherCapability = {
|
|
|
56591
56730
|
mode: "singleton",
|
|
56592
56731
|
deviceTypes: [DeviceType.Dishwasher],
|
|
56593
56732
|
methods: {
|
|
56594
|
-
|
|
56733
|
+
/**
|
|
56734
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
56735
|
+
* option feature keys; each is checked against the program's constraints.
|
|
56736
|
+
*/
|
|
56737
|
+
start: method(object({
|
|
56738
|
+
deviceId: DeviceIdSchema,
|
|
56739
|
+
program: string().min(1).optional(),
|
|
56740
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
56741
|
+
}), _void(), {
|
|
56595
56742
|
kind: "mutation",
|
|
56596
56743
|
auth: "protected"
|
|
56597
56744
|
}),
|
|
56598
|
-
pause: method(object({ deviceId:
|
|
56745
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
56599
56746
|
kind: "mutation",
|
|
56600
56747
|
auth: "protected"
|
|
56601
56748
|
}),
|
|
56602
|
-
|
|
56749
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
56750
|
+
kind: "mutation",
|
|
56751
|
+
auth: "protected"
|
|
56752
|
+
}),
|
|
56753
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
56603
56754
|
kind: "mutation",
|
|
56604
56755
|
auth: "protected"
|
|
56605
56756
|
}),
|
|
56757
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
56606
56758
|
setProgram: method(object({
|
|
56607
|
-
deviceId:
|
|
56759
|
+
deviceId: DeviceIdSchema,
|
|
56608
56760
|
program: string().min(1)
|
|
56609
56761
|
}), _void(), {
|
|
56610
56762
|
kind: "mutation",
|
|
56611
56763
|
auth: "protected"
|
|
56612
56764
|
}),
|
|
56613
56765
|
setPower: method(object({
|
|
56614
|
-
deviceId:
|
|
56766
|
+
deviceId: DeviceIdSchema,
|
|
56615
56767
|
on: boolean()
|
|
56616
56768
|
}), _void(), {
|
|
56617
56769
|
kind: "mutation",
|
|
56618
56770
|
auth: "protected"
|
|
56619
56771
|
}),
|
|
56620
56772
|
setHalfLoad: method(object({
|
|
56621
|
-
deviceId:
|
|
56773
|
+
deviceId: DeviceIdSchema,
|
|
56622
56774
|
on: boolean()
|
|
56623
56775
|
}), _void(), {
|
|
56624
56776
|
kind: "mutation",
|
|
56625
56777
|
auth: "protected"
|
|
56626
56778
|
}),
|
|
56627
56779
|
setHygienePlus: method(object({
|
|
56628
|
-
deviceId:
|
|
56780
|
+
deviceId: DeviceIdSchema,
|
|
56629
56781
|
on: boolean()
|
|
56630
56782
|
}), _void(), {
|
|
56631
56783
|
kind: "mutation",
|
|
56632
56784
|
auth: "protected"
|
|
56633
56785
|
}),
|
|
56634
56786
|
setExtraDry: method(object({
|
|
56635
|
-
deviceId:
|
|
56787
|
+
deviceId: DeviceIdSchema,
|
|
56636
56788
|
on: boolean()
|
|
56637
56789
|
}), _void(), {
|
|
56638
56790
|
kind: "mutation",
|
|
56639
56791
|
auth: "protected"
|
|
56640
56792
|
}),
|
|
56641
56793
|
setIntensiveZone: method(object({
|
|
56642
|
-
deviceId:
|
|
56794
|
+
deviceId: DeviceIdSchema,
|
|
56643
56795
|
on: boolean()
|
|
56644
56796
|
}), _void(), {
|
|
56645
56797
|
kind: "mutation",
|
|
56646
56798
|
auth: "protected"
|
|
56647
56799
|
}),
|
|
56648
56800
|
setVarioSpeedPlus: method(object({
|
|
56649
|
-
deviceId:
|
|
56801
|
+
deviceId: DeviceIdSchema,
|
|
56650
56802
|
on: boolean()
|
|
56651
56803
|
}), _void(), {
|
|
56652
56804
|
kind: "mutation",
|
|
56653
56805
|
auth: "protected"
|
|
56654
56806
|
}),
|
|
56655
56807
|
setChildLock: method(object({
|
|
56656
|
-
deviceId:
|
|
56808
|
+
deviceId: DeviceIdSchema,
|
|
56657
56809
|
on: boolean()
|
|
56658
56810
|
}), _void(), {
|
|
56659
56811
|
kind: "mutation",
|
|
56660
56812
|
auth: "protected"
|
|
56661
56813
|
}),
|
|
56814
|
+
/**
|
|
56815
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
56816
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
56817
|
+
* its declared range / members.
|
|
56818
|
+
*/
|
|
56662
56819
|
setOption: method(object({
|
|
56663
|
-
deviceId:
|
|
56820
|
+
deviceId: DeviceIdSchema,
|
|
56664
56821
|
key: string().min(1),
|
|
56665
|
-
value:
|
|
56666
|
-
boolean(),
|
|
56667
|
-
string(),
|
|
56668
|
-
number()
|
|
56669
|
-
])
|
|
56822
|
+
value: DishwasherValueSchema
|
|
56670
56823
|
}), _void(), {
|
|
56671
56824
|
kind: "mutation",
|
|
56672
56825
|
auth: "protected"
|
|
56673
|
-
})
|
|
56826
|
+
}),
|
|
56827
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
56828
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
56674
56829
|
},
|
|
56675
56830
|
status: {
|
|
56676
56831
|
schema: DishwasherStatusSchema,
|
|
@@ -71204,6 +71359,12 @@ Object.freeze({
|
|
|
71204
71359
|
addonId: null,
|
|
71205
71360
|
access: "view"
|
|
71206
71361
|
},
|
|
71362
|
+
"dishwasher.getOptions": {
|
|
71363
|
+
capName: "dishwasher",
|
|
71364
|
+
capScope: "device",
|
|
71365
|
+
addonId: null,
|
|
71366
|
+
access: "view"
|
|
71367
|
+
},
|
|
71207
71368
|
"dishwasher.getStatus": {
|
|
71208
71369
|
capName: "dishwasher",
|
|
71209
71370
|
capScope: "device",
|
|
@@ -71216,6 +71377,12 @@ Object.freeze({
|
|
|
71216
71377
|
addonId: null,
|
|
71217
71378
|
access: "create"
|
|
71218
71379
|
},
|
|
71380
|
+
"dishwasher.resume": {
|
|
71381
|
+
capName: "dishwasher",
|
|
71382
|
+
capScope: "device",
|
|
71383
|
+
addonId: null,
|
|
71384
|
+
access: "create"
|
|
71385
|
+
},
|
|
71219
71386
|
"dishwasher.setChildLock": {
|
|
71220
71387
|
capName: "dishwasher",
|
|
71221
71388
|
capScope: "device",
|
|
@@ -75716,6 +75883,12 @@ Object.freeze({
|
|
|
75716
75883
|
addonId: null,
|
|
75717
75884
|
access: "view"
|
|
75718
75885
|
},
|
|
75886
|
+
"storageMigration.moverClearance": {
|
|
75887
|
+
capName: "storage-migration",
|
|
75888
|
+
capScope: "system",
|
|
75889
|
+
addonId: null,
|
|
75890
|
+
access: "view"
|
|
75891
|
+
},
|
|
75719
75892
|
"storageMigration.movers": {
|
|
75720
75893
|
capName: "storage-migration",
|
|
75721
75894
|
capScope: "system",
|
|
@@ -78061,6 +78234,11 @@ Object.freeze({
|
|
|
78061
78234
|
form: "single",
|
|
78062
78235
|
optional: false
|
|
78063
78236
|
}],
|
|
78237
|
+
"dishwasher.getOptions": [{
|
|
78238
|
+
name: "deviceId",
|
|
78239
|
+
form: "single",
|
|
78240
|
+
optional: false
|
|
78241
|
+
}],
|
|
78064
78242
|
"dishwasher.getStatus": [{
|
|
78065
78243
|
name: "deviceId",
|
|
78066
78244
|
form: "single",
|
|
@@ -78071,6 +78249,11 @@ Object.freeze({
|
|
|
78071
78249
|
form: "single",
|
|
78072
78250
|
optional: false
|
|
78073
78251
|
}],
|
|
78252
|
+
"dishwasher.resume": [{
|
|
78253
|
+
name: "deviceId",
|
|
78254
|
+
form: "single",
|
|
78255
|
+
optional: false
|
|
78256
|
+
}],
|
|
78074
78257
|
"dishwasher.setChildLock": [{
|
|
78075
78258
|
name: "deviceId",
|
|
78076
78259
|
form: "single",
|
|
@@ -80157,6 +80340,9 @@ new Map(Object.entries({
|
|
|
80157
80340
|
"wrapper-update-available": "system",
|
|
80158
80341
|
"backup-completed": "system",
|
|
80159
80342
|
"export-completed": "system",
|
|
80343
|
+
"alert-critical": "system",
|
|
80344
|
+
"alert-error": "system",
|
|
80345
|
+
"alert-critical-resolved": "system",
|
|
80160
80346
|
"storage-location-low": "system",
|
|
80161
80347
|
"storage-location-critical": "system",
|
|
80162
80348
|
"storage-location-ok": "system",
|
|
@@ -80281,6 +80467,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
80281
80467
|
"storage-location-ok"
|
|
80282
80468
|
]
|
|
80283
80469
|
},
|
|
80470
|
+
{
|
|
80471
|
+
id: "alerts",
|
|
80472
|
+
family: "system",
|
|
80473
|
+
label: "Alerts",
|
|
80474
|
+
kinds: [
|
|
80475
|
+
"alert-critical",
|
|
80476
|
+
"alert-error",
|
|
80477
|
+
"alert-critical-resolved"
|
|
80478
|
+
]
|
|
80479
|
+
},
|
|
80284
80480
|
{
|
|
80285
80481
|
id: "alarm",
|
|
80286
80482
|
family: "alarm",
|
|
@@ -80325,6 +80521,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
80325
80521
|
return [[descriptor.kind, field]];
|
|
80326
80522
|
})));
|
|
80327
80523
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
80524
|
+
object({
|
|
80525
|
+
phase: _enum(["raised", "resolved"]),
|
|
80526
|
+
episodeId: string().min(1),
|
|
80527
|
+
alertId: string().min(1),
|
|
80528
|
+
severity: AlertSeveritySchema,
|
|
80529
|
+
category: string(),
|
|
80530
|
+
title: string(),
|
|
80531
|
+
message: string(),
|
|
80532
|
+
sourceType: string().optional(),
|
|
80533
|
+
sourceId: string().optional(),
|
|
80534
|
+
nodeId: string().optional(),
|
|
80535
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
80536
|
+
actionUrl: string().optional(),
|
|
80537
|
+
at: number()
|
|
80538
|
+
});
|
|
80328
80539
|
var RULE_BODY_ONLY = ["body"];
|
|
80329
80540
|
var RULE_TEXT = ["title", "body"];
|
|
80330
80541
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -80334,6 +80545,11 @@ var TANK = [
|
|
|
80334
80545
|
"device-tank-full",
|
|
80335
80546
|
"device-tank-normal"
|
|
80336
80547
|
];
|
|
80548
|
+
var ALERT_EPISODE = [
|
|
80549
|
+
"alert-critical",
|
|
80550
|
+
"alert-error",
|
|
80551
|
+
"alert-critical-resolved"
|
|
80552
|
+
];
|
|
80337
80553
|
var UPDATES = [
|
|
80338
80554
|
"addon-update-available",
|
|
80339
80555
|
"server-update-available",
|
|
@@ -80526,14 +80742,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
80526
80742
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
80527
80743
|
([...RULE_TEXT], [...TANK]),
|
|
80528
80744
|
[...RULE_TEXT],
|
|
80529
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
80530
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
80531
|
-
[...RULE_TEXT],
|
|
80745
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
80746
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
80532
80747
|
[...RULE_TEXT],
|
|
80533
80748
|
[...RULE_TEXT],
|
|
80534
80749
|
[...RULE_TEXT],
|
|
80535
80750
|
[...RULE_TEXT],
|
|
80536
80751
|
[...RULE_TEXT],
|
|
80752
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80537
80753
|
[...RULE_TEXT],
|
|
80538
80754
|
[...RULE_TEXT],
|
|
80539
80755
|
[...RULE_TEXT],
|
|
@@ -80551,7 +80767,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
80551
80767
|
[...RULE_TEXT],
|
|
80552
80768
|
[...RULE_TEXT],
|
|
80553
80769
|
[...RULE_TEXT],
|
|
80554
|
-
[...RULE_TEXT],
|
|
80770
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80771
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80772
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80773
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80774
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
80555
80775
|
[...RULE_TEXT],
|
|
80556
80776
|
[...RULE_TEXT],
|
|
80557
80777
|
[...RULE_TEXT],
|