@camstack/addon-provider-wyze 0.2.140 → 0.2.141
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
|
@@ -31,7 +31,7 @@ let net = require("net");
|
|
|
31
31
|
net = __toESM(net, 1);
|
|
32
32
|
let node_child_process = require("node:child_process");
|
|
33
33
|
let node_tls = require("node:tls");
|
|
34
|
-
//#region ../types/dist/event-category-
|
|
34
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
35
35
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
36
36
|
EventCategory["SystemBoot"] = "system.boot";
|
|
37
37
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -110,9 +110,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
110
110
|
/**
|
|
111
111
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
112
112
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
113
|
-
* alert centre turns it into one
|
|
113
|
+
* alert centre turns it into one critical alert.
|
|
114
114
|
*/
|
|
115
115
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
116
|
+
/**
|
|
117
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
118
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
119
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
120
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
121
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
122
|
+
* event may be dropped (D8, D11).
|
|
123
|
+
*/
|
|
124
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
116
125
|
EventCategory["AddonError"] = "addon.error";
|
|
117
126
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
118
127
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5437,7 +5446,7 @@ var ZodIssueCode = {
|
|
|
5437
5446
|
var ZodFirstPartyTypeKind;
|
|
5438
5447
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5439
5448
|
//#endregion
|
|
5440
|
-
//#region ../types/dist/sleep-
|
|
5449
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5441
5450
|
/**
|
|
5442
5451
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5443
5452
|
* window to float samples (D455).
|
|
@@ -13234,7 +13243,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13234
13243
|
]);
|
|
13235
13244
|
var AlertActionSchema = object({
|
|
13236
13245
|
label: string(),
|
|
13237
|
-
href: string().optional()
|
|
13246
|
+
href: string().optional(),
|
|
13247
|
+
/**
|
|
13248
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13249
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13250
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13251
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13252
|
+
*/
|
|
13253
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13238
13254
|
});
|
|
13239
13255
|
var AlertStatusSchema = _enum([
|
|
13240
13256
|
"active",
|
|
@@ -41967,6 +41983,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
41967
41983
|
"server-updated",
|
|
41968
41984
|
"export-completed",
|
|
41969
41985
|
"backup-completed",
|
|
41986
|
+
"alert-critical",
|
|
41987
|
+
"alert-error",
|
|
41988
|
+
"alert-critical-resolved",
|
|
41970
41989
|
"camera-online",
|
|
41971
41990
|
"camera-offline",
|
|
41972
41991
|
"camera-disabled",
|
|
@@ -51147,7 +51166,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51147
51166
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51148
51167
|
kind: "mutation",
|
|
51149
51168
|
auth: "admin"
|
|
51150
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51169
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51170
|
+
clear: boolean(),
|
|
51171
|
+
repointLocationId: string().optional()
|
|
51172
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51151
51173
|
kind: "mutation",
|
|
51152
51174
|
auth: "admin"
|
|
51153
51175
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -55411,6 +55433,11 @@ onStatusChanged: { data: object({
|
|
|
55411
55433
|
*
|
|
55412
55434
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55413
55435
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55436
|
+
*
|
|
55437
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
55438
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
55439
|
+
* the link is down, or the description does not carry it) and is never
|
|
55440
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
55414
55441
|
*/
|
|
55415
55442
|
var DishwasherStateSchema = _enum([
|
|
55416
55443
|
"idle",
|
|
@@ -55420,43 +55447,155 @@ var DishwasherStateSchema = _enum([
|
|
|
55420
55447
|
"error",
|
|
55421
55448
|
"unavailable"
|
|
55422
55449
|
]);
|
|
55450
|
+
/**
|
|
55451
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
55452
|
+
* view for compact surfaces; this is what the appliance said.
|
|
55453
|
+
*/
|
|
55454
|
+
var DishwasherOperationStateSchema = _enum([
|
|
55455
|
+
"Inactive",
|
|
55456
|
+
"Ready",
|
|
55457
|
+
"DelayedStart",
|
|
55458
|
+
"Run",
|
|
55459
|
+
"Pause",
|
|
55460
|
+
"ActionRequired",
|
|
55461
|
+
"Finished",
|
|
55462
|
+
"Error",
|
|
55463
|
+
"Aborting"
|
|
55464
|
+
]);
|
|
55465
|
+
/**
|
|
55466
|
+
* Why fields may be `null`:
|
|
55467
|
+
* - `available` — the link is up and the description is loaded;
|
|
55468
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
55469
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
55470
|
+
* be loaded, so its values cannot be decoded.
|
|
55471
|
+
*/
|
|
55472
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
55473
|
+
"available",
|
|
55474
|
+
"offline",
|
|
55475
|
+
"description-missing"
|
|
55476
|
+
]);
|
|
55423
55477
|
var DishwasherConsumableLevelSchema = _enum([
|
|
55424
55478
|
"ok",
|
|
55425
55479
|
"low",
|
|
55426
55480
|
"empty"
|
|
55427
55481
|
]);
|
|
55428
55482
|
var DishwasherStatusSchema = object({
|
|
55483
|
+
availability: DishwasherAvailabilitySchema,
|
|
55484
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55429
55485
|
state: DishwasherStateSchema,
|
|
55430
|
-
/**
|
|
55486
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
55487
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
55488
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
55431
55489
|
program: string().nullable(),
|
|
55432
|
-
/**
|
|
55490
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
55491
|
+
selectedProgram: string().nullable(),
|
|
55492
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
55433
55493
|
availablePrograms: array(string()),
|
|
55434
|
-
/**
|
|
55435
|
-
|
|
55494
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
55495
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
55496
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
55497
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
55436
55498
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
55437
55499
|
progressPercent: number().min(0).max(100).nullable(),
|
|
55438
|
-
/** True when the door is reported open. */
|
|
55439
|
-
doorOpen: boolean(),
|
|
55440
|
-
/** True when
|
|
55441
|
-
|
|
55442
|
-
/**
|
|
55443
|
-
|
|
55500
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
55501
|
+
doorOpen: boolean().nullable(),
|
|
55502
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
55503
|
+
doorLocked: boolean().nullable(),
|
|
55504
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
55505
|
+
remoteStartAllowed: boolean().nullable(),
|
|
55506
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
55507
|
+
remoteControlActive: boolean().nullable(),
|
|
55508
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
55509
|
+
localControlActive: boolean().nullable(),
|
|
55510
|
+
/** Main power / switched-on state; null when not known. */
|
|
55511
|
+
powerOn: boolean().nullable(),
|
|
55512
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
55513
|
+
powerState: string().nullable(),
|
|
55444
55514
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55445
55515
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55446
|
-
|
|
55447
|
-
|
|
55516
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55517
|
+
halfLoad: boolean().nullable(),
|
|
55518
|
+
hygienePlus: boolean().nullable(),
|
|
55448
55519
|
/** Extra dry option when the appliance exposes it. */
|
|
55449
|
-
extraDry: boolean(),
|
|
55520
|
+
extraDry: boolean().nullable(),
|
|
55450
55521
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55451
|
-
intensiveZone: boolean(),
|
|
55522
|
+
intensiveZone: boolean().nullable(),
|
|
55452
55523
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55453
|
-
varioSpeedPlus: boolean(),
|
|
55454
|
-
/** Child lock (controls disabled on the appliance). */
|
|
55455
|
-
childLock: boolean(),
|
|
55524
|
+
varioSpeedPlus: boolean().nullable(),
|
|
55525
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
55526
|
+
childLock: boolean().nullable(),
|
|
55527
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
55528
|
+
activeEvents: array(string()),
|
|
55529
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
55456
55530
|
errorCode: number().nullable(),
|
|
55531
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55457
55532
|
errorLabel: string().nullable(),
|
|
55533
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55458
55534
|
lastFetchedAt: number()
|
|
55459
55535
|
});
|
|
55536
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
55537
|
+
/** A value a program option or setting can take. */
|
|
55538
|
+
var DishwasherValueSchema = union([
|
|
55539
|
+
boolean(),
|
|
55540
|
+
string(),
|
|
55541
|
+
number()
|
|
55542
|
+
]);
|
|
55543
|
+
var DishwasherAccessSchema = _enum([
|
|
55544
|
+
"none",
|
|
55545
|
+
"read",
|
|
55546
|
+
"readWrite",
|
|
55547
|
+
"writeOnly",
|
|
55548
|
+
"readStatic"
|
|
55549
|
+
]);
|
|
55550
|
+
/**
|
|
55551
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
55552
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
55553
|
+
*/
|
|
55554
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
55555
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
55556
|
+
key: string(),
|
|
55557
|
+
/** Last segment of the key, for display. */
|
|
55558
|
+
name: string(),
|
|
55559
|
+
type: _enum([
|
|
55560
|
+
"boolean",
|
|
55561
|
+
"number",
|
|
55562
|
+
"enum",
|
|
55563
|
+
"string"
|
|
55564
|
+
]),
|
|
55565
|
+
access: DishwasherAccessSchema,
|
|
55566
|
+
/** The appliance reports this entity as currently available. */
|
|
55567
|
+
available: boolean(),
|
|
55568
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
55569
|
+
unit: string().nullable(),
|
|
55570
|
+
min: number().nullable(),
|
|
55571
|
+
max: number().nullable(),
|
|
55572
|
+
step: number().nullable(),
|
|
55573
|
+
/** Allowed members of an enum; null for other types. */
|
|
55574
|
+
enumValues: array(string()).nullable(),
|
|
55575
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
55576
|
+
});
|
|
55577
|
+
var DishwasherProgramSchema = object({
|
|
55578
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
55579
|
+
key: string(),
|
|
55580
|
+
name: string(),
|
|
55581
|
+
/** The appliance currently offers this program. */
|
|
55582
|
+
available: boolean(),
|
|
55583
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
55584
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55585
|
+
});
|
|
55586
|
+
var DishwasherOptionsSchema = object({
|
|
55587
|
+
availability: DishwasherAvailabilitySchema,
|
|
55588
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
55589
|
+
supportsStart: boolean(),
|
|
55590
|
+
supportsPause: boolean(),
|
|
55591
|
+
supportsResume: boolean(),
|
|
55592
|
+
supportsStop: boolean(),
|
|
55593
|
+
supportsPower: boolean(),
|
|
55594
|
+
/** Every program the description lists, with its options. */
|
|
55595
|
+
programs: array(DishwasherProgramSchema),
|
|
55596
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
55597
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55598
|
+
});
|
|
55460
55599
|
var dishwasherCapability = {
|
|
55461
55600
|
name: "dishwasher",
|
|
55462
55601
|
scope: "device",
|
|
@@ -55464,86 +55603,102 @@ var dishwasherCapability = {
|
|
|
55464
55603
|
mode: "singleton",
|
|
55465
55604
|
deviceTypes: [DeviceType.Dishwasher],
|
|
55466
55605
|
methods: {
|
|
55467
|
-
|
|
55606
|
+
/**
|
|
55607
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
55608
|
+
* option feature keys; each is checked against the program's constraints.
|
|
55609
|
+
*/
|
|
55610
|
+
start: method(object({
|
|
55611
|
+
deviceId: DeviceIdSchema,
|
|
55612
|
+
program: string().min(1).optional(),
|
|
55613
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
55614
|
+
}), _void(), {
|
|
55468
55615
|
kind: "mutation",
|
|
55469
55616
|
auth: "protected"
|
|
55470
55617
|
}),
|
|
55471
|
-
pause: method(object({ deviceId:
|
|
55618
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55472
55619
|
kind: "mutation",
|
|
55473
55620
|
auth: "protected"
|
|
55474
55621
|
}),
|
|
55475
|
-
|
|
55622
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55623
|
+
kind: "mutation",
|
|
55624
|
+
auth: "protected"
|
|
55625
|
+
}),
|
|
55626
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55476
55627
|
kind: "mutation",
|
|
55477
55628
|
auth: "protected"
|
|
55478
55629
|
}),
|
|
55630
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55479
55631
|
setProgram: method(object({
|
|
55480
|
-
deviceId:
|
|
55632
|
+
deviceId: DeviceIdSchema,
|
|
55481
55633
|
program: string().min(1)
|
|
55482
55634
|
}), _void(), {
|
|
55483
55635
|
kind: "mutation",
|
|
55484
55636
|
auth: "protected"
|
|
55485
55637
|
}),
|
|
55486
55638
|
setPower: method(object({
|
|
55487
|
-
deviceId:
|
|
55639
|
+
deviceId: DeviceIdSchema,
|
|
55488
55640
|
on: boolean()
|
|
55489
55641
|
}), _void(), {
|
|
55490
55642
|
kind: "mutation",
|
|
55491
55643
|
auth: "protected"
|
|
55492
55644
|
}),
|
|
55493
55645
|
setHalfLoad: method(object({
|
|
55494
|
-
deviceId:
|
|
55646
|
+
deviceId: DeviceIdSchema,
|
|
55495
55647
|
on: boolean()
|
|
55496
55648
|
}), _void(), {
|
|
55497
55649
|
kind: "mutation",
|
|
55498
55650
|
auth: "protected"
|
|
55499
55651
|
}),
|
|
55500
55652
|
setHygienePlus: method(object({
|
|
55501
|
-
deviceId:
|
|
55653
|
+
deviceId: DeviceIdSchema,
|
|
55502
55654
|
on: boolean()
|
|
55503
55655
|
}), _void(), {
|
|
55504
55656
|
kind: "mutation",
|
|
55505
55657
|
auth: "protected"
|
|
55506
55658
|
}),
|
|
55507
55659
|
setExtraDry: method(object({
|
|
55508
|
-
deviceId:
|
|
55660
|
+
deviceId: DeviceIdSchema,
|
|
55509
55661
|
on: boolean()
|
|
55510
55662
|
}), _void(), {
|
|
55511
55663
|
kind: "mutation",
|
|
55512
55664
|
auth: "protected"
|
|
55513
55665
|
}),
|
|
55514
55666
|
setIntensiveZone: method(object({
|
|
55515
|
-
deviceId:
|
|
55667
|
+
deviceId: DeviceIdSchema,
|
|
55516
55668
|
on: boolean()
|
|
55517
55669
|
}), _void(), {
|
|
55518
55670
|
kind: "mutation",
|
|
55519
55671
|
auth: "protected"
|
|
55520
55672
|
}),
|
|
55521
55673
|
setVarioSpeedPlus: method(object({
|
|
55522
|
-
deviceId:
|
|
55674
|
+
deviceId: DeviceIdSchema,
|
|
55523
55675
|
on: boolean()
|
|
55524
55676
|
}), _void(), {
|
|
55525
55677
|
kind: "mutation",
|
|
55526
55678
|
auth: "protected"
|
|
55527
55679
|
}),
|
|
55528
55680
|
setChildLock: method(object({
|
|
55529
|
-
deviceId:
|
|
55681
|
+
deviceId: DeviceIdSchema,
|
|
55530
55682
|
on: boolean()
|
|
55531
55683
|
}), _void(), {
|
|
55532
55684
|
kind: "mutation",
|
|
55533
55685
|
auth: "protected"
|
|
55534
55686
|
}),
|
|
55687
|
+
/**
|
|
55688
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
55689
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
55690
|
+
* its declared range / members.
|
|
55691
|
+
*/
|
|
55535
55692
|
setOption: method(object({
|
|
55536
|
-
deviceId:
|
|
55693
|
+
deviceId: DeviceIdSchema,
|
|
55537
55694
|
key: string().min(1),
|
|
55538
|
-
value:
|
|
55539
|
-
boolean(),
|
|
55540
|
-
string(),
|
|
55541
|
-
number()
|
|
55542
|
-
])
|
|
55695
|
+
value: DishwasherValueSchema
|
|
55543
55696
|
}), _void(), {
|
|
55544
55697
|
kind: "mutation",
|
|
55545
55698
|
auth: "protected"
|
|
55546
|
-
})
|
|
55699
|
+
}),
|
|
55700
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
55701
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
55547
55702
|
},
|
|
55548
55703
|
status: {
|
|
55549
55704
|
schema: DishwasherStatusSchema,
|
|
@@ -69492,6 +69647,12 @@ Object.freeze({
|
|
|
69492
69647
|
addonId: null,
|
|
69493
69648
|
access: "view"
|
|
69494
69649
|
},
|
|
69650
|
+
"dishwasher.getOptions": {
|
|
69651
|
+
capName: "dishwasher",
|
|
69652
|
+
capScope: "device",
|
|
69653
|
+
addonId: null,
|
|
69654
|
+
access: "view"
|
|
69655
|
+
},
|
|
69495
69656
|
"dishwasher.getStatus": {
|
|
69496
69657
|
capName: "dishwasher",
|
|
69497
69658
|
capScope: "device",
|
|
@@ -69504,6 +69665,12 @@ Object.freeze({
|
|
|
69504
69665
|
addonId: null,
|
|
69505
69666
|
access: "create"
|
|
69506
69667
|
},
|
|
69668
|
+
"dishwasher.resume": {
|
|
69669
|
+
capName: "dishwasher",
|
|
69670
|
+
capScope: "device",
|
|
69671
|
+
addonId: null,
|
|
69672
|
+
access: "create"
|
|
69673
|
+
},
|
|
69507
69674
|
"dishwasher.setChildLock": {
|
|
69508
69675
|
capName: "dishwasher",
|
|
69509
69676
|
capScope: "device",
|
|
@@ -74004,6 +74171,12 @@ Object.freeze({
|
|
|
74004
74171
|
addonId: null,
|
|
74005
74172
|
access: "view"
|
|
74006
74173
|
},
|
|
74174
|
+
"storageMigration.moverClearance": {
|
|
74175
|
+
capName: "storage-migration",
|
|
74176
|
+
capScope: "system",
|
|
74177
|
+
addonId: null,
|
|
74178
|
+
access: "view"
|
|
74179
|
+
},
|
|
74007
74180
|
"storageMigration.movers": {
|
|
74008
74181
|
capName: "storage-migration",
|
|
74009
74182
|
capScope: "system",
|
|
@@ -76197,6 +76370,11 @@ Object.freeze({
|
|
|
76197
76370
|
form: "single",
|
|
76198
76371
|
optional: false
|
|
76199
76372
|
}],
|
|
76373
|
+
"dishwasher.getOptions": [{
|
|
76374
|
+
name: "deviceId",
|
|
76375
|
+
form: "single",
|
|
76376
|
+
optional: false
|
|
76377
|
+
}],
|
|
76200
76378
|
"dishwasher.getStatus": [{
|
|
76201
76379
|
name: "deviceId",
|
|
76202
76380
|
form: "single",
|
|
@@ -76207,6 +76385,11 @@ Object.freeze({
|
|
|
76207
76385
|
form: "single",
|
|
76208
76386
|
optional: false
|
|
76209
76387
|
}],
|
|
76388
|
+
"dishwasher.resume": [{
|
|
76389
|
+
name: "deviceId",
|
|
76390
|
+
form: "single",
|
|
76391
|
+
optional: false
|
|
76392
|
+
}],
|
|
76210
76393
|
"dishwasher.setChildLock": [{
|
|
76211
76394
|
name: "deviceId",
|
|
76212
76395
|
form: "single",
|
|
@@ -78293,6 +78476,9 @@ new Map(Object.entries({
|
|
|
78293
78476
|
"wrapper-update-available": "system",
|
|
78294
78477
|
"backup-completed": "system",
|
|
78295
78478
|
"export-completed": "system",
|
|
78479
|
+
"alert-critical": "system",
|
|
78480
|
+
"alert-error": "system",
|
|
78481
|
+
"alert-critical-resolved": "system",
|
|
78296
78482
|
"storage-location-low": "system",
|
|
78297
78483
|
"storage-location-critical": "system",
|
|
78298
78484
|
"storage-location-ok": "system",
|
|
@@ -78417,6 +78603,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78417
78603
|
"storage-location-ok"
|
|
78418
78604
|
]
|
|
78419
78605
|
},
|
|
78606
|
+
{
|
|
78607
|
+
id: "alerts",
|
|
78608
|
+
family: "system",
|
|
78609
|
+
label: "Alerts",
|
|
78610
|
+
kinds: [
|
|
78611
|
+
"alert-critical",
|
|
78612
|
+
"alert-error",
|
|
78613
|
+
"alert-critical-resolved"
|
|
78614
|
+
]
|
|
78615
|
+
},
|
|
78420
78616
|
{
|
|
78421
78617
|
id: "alarm",
|
|
78422
78618
|
family: "alarm",
|
|
@@ -78461,6 +78657,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
78461
78657
|
return [[descriptor.kind, field]];
|
|
78462
78658
|
})));
|
|
78463
78659
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
78660
|
+
object({
|
|
78661
|
+
phase: _enum(["raised", "resolved"]),
|
|
78662
|
+
episodeId: string().min(1),
|
|
78663
|
+
alertId: string().min(1),
|
|
78664
|
+
severity: AlertSeveritySchema,
|
|
78665
|
+
category: string(),
|
|
78666
|
+
title: string(),
|
|
78667
|
+
message: string(),
|
|
78668
|
+
sourceType: string().optional(),
|
|
78669
|
+
sourceId: string().optional(),
|
|
78670
|
+
nodeId: string().optional(),
|
|
78671
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
78672
|
+
actionUrl: string().optional(),
|
|
78673
|
+
at: number()
|
|
78674
|
+
});
|
|
78464
78675
|
var RULE_BODY_ONLY = ["body"];
|
|
78465
78676
|
var RULE_TEXT = ["title", "body"];
|
|
78466
78677
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -78470,6 +78681,11 @@ var TANK = [
|
|
|
78470
78681
|
"device-tank-full",
|
|
78471
78682
|
"device-tank-normal"
|
|
78472
78683
|
];
|
|
78684
|
+
var ALERT_EPISODE = [
|
|
78685
|
+
"alert-critical",
|
|
78686
|
+
"alert-error",
|
|
78687
|
+
"alert-critical-resolved"
|
|
78688
|
+
];
|
|
78473
78689
|
var UPDATES = [
|
|
78474
78690
|
"addon-update-available",
|
|
78475
78691
|
"server-update-available",
|
|
@@ -78662,14 +78878,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
78662
78878
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
78663
78879
|
([...RULE_TEXT], [...TANK]),
|
|
78664
78880
|
[...RULE_TEXT],
|
|
78665
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78666
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78667
|
-
[...RULE_TEXT],
|
|
78881
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78882
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78668
78883
|
[...RULE_TEXT],
|
|
78669
78884
|
[...RULE_TEXT],
|
|
78670
78885
|
[...RULE_TEXT],
|
|
78671
78886
|
[...RULE_TEXT],
|
|
78672
78887
|
[...RULE_TEXT],
|
|
78888
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78673
78889
|
[...RULE_TEXT],
|
|
78674
78890
|
[...RULE_TEXT],
|
|
78675
78891
|
[...RULE_TEXT],
|
|
@@ -78687,7 +78903,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
78687
78903
|
[...RULE_TEXT],
|
|
78688
78904
|
[...RULE_TEXT],
|
|
78689
78905
|
[...RULE_TEXT],
|
|
78690
|
-
[...RULE_TEXT],
|
|
78906
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78907
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78908
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78909
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78910
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78691
78911
|
[...RULE_TEXT],
|
|
78692
78912
|
[...RULE_TEXT],
|
|
78693
78913
|
[...RULE_TEXT],
|
package/dist/addon.mjs
CHANGED
|
@@ -10,7 +10,7 @@ import { getCACertificates, setDefaultCACertificates } from "node:tls";
|
|
|
10
10
|
//#region \0rolldown/runtime.js
|
|
11
11
|
var __require$1 = /* @__PURE__ */ createRequire(import.meta.url);
|
|
12
12
|
//#endregion
|
|
13
|
-
//#region ../types/dist/event-category-
|
|
13
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
14
14
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
15
15
|
EventCategory["SystemBoot"] = "system.boot";
|
|
16
16
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -89,9 +89,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
89
89
|
/**
|
|
90
90
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
91
91
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
92
|
-
* alert centre turns it into one
|
|
92
|
+
* alert centre turns it into one critical alert.
|
|
93
93
|
*/
|
|
94
94
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
95
|
+
/**
|
|
96
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
97
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
98
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
99
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
100
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
101
|
+
* event may be dropped (D8, D11).
|
|
102
|
+
*/
|
|
103
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
95
104
|
EventCategory["AddonError"] = "addon.error";
|
|
96
105
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
97
106
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5416,7 +5425,7 @@ var ZodIssueCode = {
|
|
|
5416
5425
|
var ZodFirstPartyTypeKind;
|
|
5417
5426
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5418
5427
|
//#endregion
|
|
5419
|
-
//#region ../types/dist/sleep-
|
|
5428
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5420
5429
|
/**
|
|
5421
5430
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5422
5431
|
* window to float samples (D455).
|
|
@@ -13213,7 +13222,14 @@ var AlertSeveritySchema = _enum([
|
|
|
13213
13222
|
]);
|
|
13214
13223
|
var AlertActionSchema = object({
|
|
13215
13224
|
label: string(),
|
|
13216
|
-
href: string().optional()
|
|
13225
|
+
href: string().optional(),
|
|
13226
|
+
/**
|
|
13227
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13228
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13229
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13230
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13231
|
+
*/
|
|
13232
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13217
13233
|
});
|
|
13218
13234
|
var AlertStatusSchema = _enum([
|
|
13219
13235
|
"active",
|
|
@@ -41946,6 +41962,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
41946
41962
|
"server-updated",
|
|
41947
41963
|
"export-completed",
|
|
41948
41964
|
"backup-completed",
|
|
41965
|
+
"alert-critical",
|
|
41966
|
+
"alert-error",
|
|
41967
|
+
"alert-critical-resolved",
|
|
41949
41968
|
"camera-online",
|
|
41950
41969
|
"camera-offline",
|
|
41951
41970
|
"camera-disabled",
|
|
@@ -51126,7 +51145,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51126
51145
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51127
51146
|
kind: "mutation",
|
|
51128
51147
|
auth: "admin"
|
|
51129
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51148
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51149
|
+
clear: boolean(),
|
|
51150
|
+
repointLocationId: string().optional()
|
|
51151
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51130
51152
|
kind: "mutation",
|
|
51131
51153
|
auth: "admin"
|
|
51132
51154
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -55390,6 +55412,11 @@ onStatusChanged: { data: object({
|
|
|
55390
55412
|
*
|
|
55391
55413
|
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
55392
55414
|
* provider refreshes the slice on an interval and eagerly after commands.
|
|
55415
|
+
*
|
|
55416
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
55417
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
55418
|
+
* the link is down, or the description does not carry it) and is never
|
|
55419
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
55393
55420
|
*/
|
|
55394
55421
|
var DishwasherStateSchema = _enum([
|
|
55395
55422
|
"idle",
|
|
@@ -55399,43 +55426,155 @@ var DishwasherStateSchema = _enum([
|
|
|
55399
55426
|
"error",
|
|
55400
55427
|
"unavailable"
|
|
55401
55428
|
]);
|
|
55429
|
+
/**
|
|
55430
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
55431
|
+
* view for compact surfaces; this is what the appliance said.
|
|
55432
|
+
*/
|
|
55433
|
+
var DishwasherOperationStateSchema = _enum([
|
|
55434
|
+
"Inactive",
|
|
55435
|
+
"Ready",
|
|
55436
|
+
"DelayedStart",
|
|
55437
|
+
"Run",
|
|
55438
|
+
"Pause",
|
|
55439
|
+
"ActionRequired",
|
|
55440
|
+
"Finished",
|
|
55441
|
+
"Error",
|
|
55442
|
+
"Aborting"
|
|
55443
|
+
]);
|
|
55444
|
+
/**
|
|
55445
|
+
* Why fields may be `null`:
|
|
55446
|
+
* - `available` — the link is up and the description is loaded;
|
|
55447
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
55448
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
55449
|
+
* be loaded, so its values cannot be decoded.
|
|
55450
|
+
*/
|
|
55451
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
55452
|
+
"available",
|
|
55453
|
+
"offline",
|
|
55454
|
+
"description-missing"
|
|
55455
|
+
]);
|
|
55402
55456
|
var DishwasherConsumableLevelSchema = _enum([
|
|
55403
55457
|
"ok",
|
|
55404
55458
|
"low",
|
|
55405
55459
|
"empty"
|
|
55406
55460
|
]);
|
|
55407
55461
|
var DishwasherStatusSchema = object({
|
|
55462
|
+
availability: DishwasherAvailabilitySchema,
|
|
55463
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
55408
55464
|
state: DishwasherStateSchema,
|
|
55409
|
-
/**
|
|
55465
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
55466
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
55467
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
55410
55468
|
program: string().nullable(),
|
|
55411
|
-
/**
|
|
55469
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
55470
|
+
selectedProgram: string().nullable(),
|
|
55471
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
55412
55472
|
availablePrograms: array(string()),
|
|
55413
|
-
/**
|
|
55414
|
-
|
|
55473
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
55474
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
55475
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
55476
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
55415
55477
|
/** Cycle completion 0..100, or null when not applicable. */
|
|
55416
55478
|
progressPercent: number().min(0).max(100).nullable(),
|
|
55417
|
-
/** True when the door is reported open. */
|
|
55418
|
-
doorOpen: boolean(),
|
|
55419
|
-
/** True when
|
|
55420
|
-
|
|
55421
|
-
/**
|
|
55422
|
-
|
|
55479
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
55480
|
+
doorOpen: boolean().nullable(),
|
|
55481
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
55482
|
+
doorLocked: boolean().nullable(),
|
|
55483
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
55484
|
+
remoteStartAllowed: boolean().nullable(),
|
|
55485
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
55486
|
+
remoteControlActive: boolean().nullable(),
|
|
55487
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
55488
|
+
localControlActive: boolean().nullable(),
|
|
55489
|
+
/** Main power / switched-on state; null when not known. */
|
|
55490
|
+
powerOn: boolean().nullable(),
|
|
55491
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
55492
|
+
powerState: string().nullable(),
|
|
55423
55493
|
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55424
55494
|
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
55425
|
-
|
|
55426
|
-
|
|
55495
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
55496
|
+
halfLoad: boolean().nullable(),
|
|
55497
|
+
hygienePlus: boolean().nullable(),
|
|
55427
55498
|
/** Extra dry option when the appliance exposes it. */
|
|
55428
|
-
extraDry: boolean(),
|
|
55499
|
+
extraDry: boolean().nullable(),
|
|
55429
55500
|
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
55430
|
-
intensiveZone: boolean(),
|
|
55501
|
+
intensiveZone: boolean().nullable(),
|
|
55431
55502
|
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
55432
|
-
varioSpeedPlus: boolean(),
|
|
55433
|
-
/** Child lock (controls disabled on the appliance). */
|
|
55434
|
-
childLock: boolean(),
|
|
55503
|
+
varioSpeedPlus: boolean().nullable(),
|
|
55504
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
55505
|
+
childLock: boolean().nullable(),
|
|
55506
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
55507
|
+
activeEvents: array(string()),
|
|
55508
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
55435
55509
|
errorCode: number().nullable(),
|
|
55510
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
55436
55511
|
errorLabel: string().nullable(),
|
|
55512
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
55437
55513
|
lastFetchedAt: number()
|
|
55438
55514
|
});
|
|
55515
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
55516
|
+
/** A value a program option or setting can take. */
|
|
55517
|
+
var DishwasherValueSchema = union([
|
|
55518
|
+
boolean(),
|
|
55519
|
+
string(),
|
|
55520
|
+
number()
|
|
55521
|
+
]);
|
|
55522
|
+
var DishwasherAccessSchema = _enum([
|
|
55523
|
+
"none",
|
|
55524
|
+
"read",
|
|
55525
|
+
"readWrite",
|
|
55526
|
+
"writeOnly",
|
|
55527
|
+
"readStatic"
|
|
55528
|
+
]);
|
|
55529
|
+
/**
|
|
55530
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
55531
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
55532
|
+
*/
|
|
55533
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
55534
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
55535
|
+
key: string(),
|
|
55536
|
+
/** Last segment of the key, for display. */
|
|
55537
|
+
name: string(),
|
|
55538
|
+
type: _enum([
|
|
55539
|
+
"boolean",
|
|
55540
|
+
"number",
|
|
55541
|
+
"enum",
|
|
55542
|
+
"string"
|
|
55543
|
+
]),
|
|
55544
|
+
access: DishwasherAccessSchema,
|
|
55545
|
+
/** The appliance reports this entity as currently available. */
|
|
55546
|
+
available: boolean(),
|
|
55547
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
55548
|
+
unit: string().nullable(),
|
|
55549
|
+
min: number().nullable(),
|
|
55550
|
+
max: number().nullable(),
|
|
55551
|
+
step: number().nullable(),
|
|
55552
|
+
/** Allowed members of an enum; null for other types. */
|
|
55553
|
+
enumValues: array(string()).nullable(),
|
|
55554
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
55555
|
+
});
|
|
55556
|
+
var DishwasherProgramSchema = object({
|
|
55557
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
55558
|
+
key: string(),
|
|
55559
|
+
name: string(),
|
|
55560
|
+
/** The appliance currently offers this program. */
|
|
55561
|
+
available: boolean(),
|
|
55562
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
55563
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55564
|
+
});
|
|
55565
|
+
var DishwasherOptionsSchema = object({
|
|
55566
|
+
availability: DishwasherAvailabilitySchema,
|
|
55567
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
55568
|
+
supportsStart: boolean(),
|
|
55569
|
+
supportsPause: boolean(),
|
|
55570
|
+
supportsResume: boolean(),
|
|
55571
|
+
supportsStop: boolean(),
|
|
55572
|
+
supportsPower: boolean(),
|
|
55573
|
+
/** Every program the description lists, with its options. */
|
|
55574
|
+
programs: array(DishwasherProgramSchema),
|
|
55575
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
55576
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
55577
|
+
});
|
|
55439
55578
|
var dishwasherCapability = {
|
|
55440
55579
|
name: "dishwasher",
|
|
55441
55580
|
scope: "device",
|
|
@@ -55443,86 +55582,102 @@ var dishwasherCapability = {
|
|
|
55443
55582
|
mode: "singleton",
|
|
55444
55583
|
deviceTypes: [DeviceType.Dishwasher],
|
|
55445
55584
|
methods: {
|
|
55446
|
-
|
|
55585
|
+
/**
|
|
55586
|
+
* Start a program. Without `program` the selected one starts. `options` are
|
|
55587
|
+
* option feature keys; each is checked against the program's constraints.
|
|
55588
|
+
*/
|
|
55589
|
+
start: method(object({
|
|
55590
|
+
deviceId: DeviceIdSchema,
|
|
55591
|
+
program: string().min(1).optional(),
|
|
55592
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
55593
|
+
}), _void(), {
|
|
55447
55594
|
kind: "mutation",
|
|
55448
55595
|
auth: "protected"
|
|
55449
55596
|
}),
|
|
55450
|
-
pause: method(object({ deviceId:
|
|
55597
|
+
pause: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55451
55598
|
kind: "mutation",
|
|
55452
55599
|
auth: "protected"
|
|
55453
55600
|
}),
|
|
55454
|
-
|
|
55601
|
+
resume: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55602
|
+
kind: "mutation",
|
|
55603
|
+
auth: "protected"
|
|
55604
|
+
}),
|
|
55605
|
+
stop: method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
55455
55606
|
kind: "mutation",
|
|
55456
55607
|
auth: "protected"
|
|
55457
55608
|
}),
|
|
55609
|
+
/** Select (not start) a program; refused when the appliance does not offer it. */
|
|
55458
55610
|
setProgram: method(object({
|
|
55459
|
-
deviceId:
|
|
55611
|
+
deviceId: DeviceIdSchema,
|
|
55460
55612
|
program: string().min(1)
|
|
55461
55613
|
}), _void(), {
|
|
55462
55614
|
kind: "mutation",
|
|
55463
55615
|
auth: "protected"
|
|
55464
55616
|
}),
|
|
55465
55617
|
setPower: method(object({
|
|
55466
|
-
deviceId:
|
|
55618
|
+
deviceId: DeviceIdSchema,
|
|
55467
55619
|
on: boolean()
|
|
55468
55620
|
}), _void(), {
|
|
55469
55621
|
kind: "mutation",
|
|
55470
55622
|
auth: "protected"
|
|
55471
55623
|
}),
|
|
55472
55624
|
setHalfLoad: method(object({
|
|
55473
|
-
deviceId:
|
|
55625
|
+
deviceId: DeviceIdSchema,
|
|
55474
55626
|
on: boolean()
|
|
55475
55627
|
}), _void(), {
|
|
55476
55628
|
kind: "mutation",
|
|
55477
55629
|
auth: "protected"
|
|
55478
55630
|
}),
|
|
55479
55631
|
setHygienePlus: method(object({
|
|
55480
|
-
deviceId:
|
|
55632
|
+
deviceId: DeviceIdSchema,
|
|
55481
55633
|
on: boolean()
|
|
55482
55634
|
}), _void(), {
|
|
55483
55635
|
kind: "mutation",
|
|
55484
55636
|
auth: "protected"
|
|
55485
55637
|
}),
|
|
55486
55638
|
setExtraDry: method(object({
|
|
55487
|
-
deviceId:
|
|
55639
|
+
deviceId: DeviceIdSchema,
|
|
55488
55640
|
on: boolean()
|
|
55489
55641
|
}), _void(), {
|
|
55490
55642
|
kind: "mutation",
|
|
55491
55643
|
auth: "protected"
|
|
55492
55644
|
}),
|
|
55493
55645
|
setIntensiveZone: method(object({
|
|
55494
|
-
deviceId:
|
|
55646
|
+
deviceId: DeviceIdSchema,
|
|
55495
55647
|
on: boolean()
|
|
55496
55648
|
}), _void(), {
|
|
55497
55649
|
kind: "mutation",
|
|
55498
55650
|
auth: "protected"
|
|
55499
55651
|
}),
|
|
55500
55652
|
setVarioSpeedPlus: method(object({
|
|
55501
|
-
deviceId:
|
|
55653
|
+
deviceId: DeviceIdSchema,
|
|
55502
55654
|
on: boolean()
|
|
55503
55655
|
}), _void(), {
|
|
55504
55656
|
kind: "mutation",
|
|
55505
55657
|
auth: "protected"
|
|
55506
55658
|
}),
|
|
55507
55659
|
setChildLock: method(object({
|
|
55508
|
-
deviceId:
|
|
55660
|
+
deviceId: DeviceIdSchema,
|
|
55509
55661
|
on: boolean()
|
|
55510
55662
|
}), _void(), {
|
|
55511
55663
|
kind: "mutation",
|
|
55512
55664
|
auth: "protected"
|
|
55513
55665
|
}),
|
|
55666
|
+
/**
|
|
55667
|
+
* Write any option or setting by feature key. Refused when the description does
|
|
55668
|
+
* not list it, it is not writable or not available now, or the value is outside
|
|
55669
|
+
* its declared range / members.
|
|
55670
|
+
*/
|
|
55514
55671
|
setOption: method(object({
|
|
55515
|
-
deviceId:
|
|
55672
|
+
deviceId: DeviceIdSchema,
|
|
55516
55673
|
key: string().min(1),
|
|
55517
|
-
value:
|
|
55518
|
-
boolean(),
|
|
55519
|
-
string(),
|
|
55520
|
-
number()
|
|
55521
|
-
])
|
|
55674
|
+
value: DishwasherValueSchema
|
|
55522
55675
|
}), _void(), {
|
|
55523
55676
|
kind: "mutation",
|
|
55524
55677
|
auth: "protected"
|
|
55525
|
-
})
|
|
55678
|
+
}),
|
|
55679
|
+
/** What this appliance can do, from its own description — the UI is derived from it. */
|
|
55680
|
+
getOptions: method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" })
|
|
55526
55681
|
},
|
|
55527
55682
|
status: {
|
|
55528
55683
|
schema: DishwasherStatusSchema,
|
|
@@ -69471,6 +69626,12 @@ Object.freeze({
|
|
|
69471
69626
|
addonId: null,
|
|
69472
69627
|
access: "view"
|
|
69473
69628
|
},
|
|
69629
|
+
"dishwasher.getOptions": {
|
|
69630
|
+
capName: "dishwasher",
|
|
69631
|
+
capScope: "device",
|
|
69632
|
+
addonId: null,
|
|
69633
|
+
access: "view"
|
|
69634
|
+
},
|
|
69474
69635
|
"dishwasher.getStatus": {
|
|
69475
69636
|
capName: "dishwasher",
|
|
69476
69637
|
capScope: "device",
|
|
@@ -69483,6 +69644,12 @@ Object.freeze({
|
|
|
69483
69644
|
addonId: null,
|
|
69484
69645
|
access: "create"
|
|
69485
69646
|
},
|
|
69647
|
+
"dishwasher.resume": {
|
|
69648
|
+
capName: "dishwasher",
|
|
69649
|
+
capScope: "device",
|
|
69650
|
+
addonId: null,
|
|
69651
|
+
access: "create"
|
|
69652
|
+
},
|
|
69486
69653
|
"dishwasher.setChildLock": {
|
|
69487
69654
|
capName: "dishwasher",
|
|
69488
69655
|
capScope: "device",
|
|
@@ -73983,6 +74150,12 @@ Object.freeze({
|
|
|
73983
74150
|
addonId: null,
|
|
73984
74151
|
access: "view"
|
|
73985
74152
|
},
|
|
74153
|
+
"storageMigration.moverClearance": {
|
|
74154
|
+
capName: "storage-migration",
|
|
74155
|
+
capScope: "system",
|
|
74156
|
+
addonId: null,
|
|
74157
|
+
access: "view"
|
|
74158
|
+
},
|
|
73986
74159
|
"storageMigration.movers": {
|
|
73987
74160
|
capName: "storage-migration",
|
|
73988
74161
|
capScope: "system",
|
|
@@ -76176,6 +76349,11 @@ Object.freeze({
|
|
|
76176
76349
|
form: "single",
|
|
76177
76350
|
optional: false
|
|
76178
76351
|
}],
|
|
76352
|
+
"dishwasher.getOptions": [{
|
|
76353
|
+
name: "deviceId",
|
|
76354
|
+
form: "single",
|
|
76355
|
+
optional: false
|
|
76356
|
+
}],
|
|
76179
76357
|
"dishwasher.getStatus": [{
|
|
76180
76358
|
name: "deviceId",
|
|
76181
76359
|
form: "single",
|
|
@@ -76186,6 +76364,11 @@ Object.freeze({
|
|
|
76186
76364
|
form: "single",
|
|
76187
76365
|
optional: false
|
|
76188
76366
|
}],
|
|
76367
|
+
"dishwasher.resume": [{
|
|
76368
|
+
name: "deviceId",
|
|
76369
|
+
form: "single",
|
|
76370
|
+
optional: false
|
|
76371
|
+
}],
|
|
76189
76372
|
"dishwasher.setChildLock": [{
|
|
76190
76373
|
name: "deviceId",
|
|
76191
76374
|
form: "single",
|
|
@@ -78272,6 +78455,9 @@ new Map(Object.entries({
|
|
|
78272
78455
|
"wrapper-update-available": "system",
|
|
78273
78456
|
"backup-completed": "system",
|
|
78274
78457
|
"export-completed": "system",
|
|
78458
|
+
"alert-critical": "system",
|
|
78459
|
+
"alert-error": "system",
|
|
78460
|
+
"alert-critical-resolved": "system",
|
|
78275
78461
|
"storage-location-low": "system",
|
|
78276
78462
|
"storage-location-critical": "system",
|
|
78277
78463
|
"storage-location-ok": "system",
|
|
@@ -78396,6 +78582,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
78396
78582
|
"storage-location-ok"
|
|
78397
78583
|
]
|
|
78398
78584
|
},
|
|
78585
|
+
{
|
|
78586
|
+
id: "alerts",
|
|
78587
|
+
family: "system",
|
|
78588
|
+
label: "Alerts",
|
|
78589
|
+
kinds: [
|
|
78590
|
+
"alert-critical",
|
|
78591
|
+
"alert-error",
|
|
78592
|
+
"alert-critical-resolved"
|
|
78593
|
+
]
|
|
78594
|
+
},
|
|
78399
78595
|
{
|
|
78400
78596
|
id: "alarm",
|
|
78401
78597
|
family: "alarm",
|
|
@@ -78440,6 +78636,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
78440
78636
|
return [[descriptor.kind, field]];
|
|
78441
78637
|
})));
|
|
78442
78638
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
78639
|
+
object({
|
|
78640
|
+
phase: _enum(["raised", "resolved"]),
|
|
78641
|
+
episodeId: string().min(1),
|
|
78642
|
+
alertId: string().min(1),
|
|
78643
|
+
severity: AlertSeveritySchema,
|
|
78644
|
+
category: string(),
|
|
78645
|
+
title: string(),
|
|
78646
|
+
message: string(),
|
|
78647
|
+
sourceType: string().optional(),
|
|
78648
|
+
sourceId: string().optional(),
|
|
78649
|
+
nodeId: string().optional(),
|
|
78650
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
78651
|
+
actionUrl: string().optional(),
|
|
78652
|
+
at: number()
|
|
78653
|
+
});
|
|
78443
78654
|
var RULE_BODY_ONLY = ["body"];
|
|
78444
78655
|
var RULE_TEXT = ["title", "body"];
|
|
78445
78656
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -78449,6 +78660,11 @@ var TANK = [
|
|
|
78449
78660
|
"device-tank-full",
|
|
78450
78661
|
"device-tank-normal"
|
|
78451
78662
|
];
|
|
78663
|
+
var ALERT_EPISODE = [
|
|
78664
|
+
"alert-critical",
|
|
78665
|
+
"alert-error",
|
|
78666
|
+
"alert-critical-resolved"
|
|
78667
|
+
];
|
|
78452
78668
|
var UPDATES = [
|
|
78453
78669
|
"addon-update-available",
|
|
78454
78670
|
"server-update-available",
|
|
@@ -78641,14 +78857,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
78641
78857
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
78642
78858
|
([...RULE_TEXT], [...TANK]),
|
|
78643
78859
|
[...RULE_TEXT],
|
|
78644
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78645
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
78646
|
-
[...RULE_TEXT],
|
|
78860
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78861
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
78647
78862
|
[...RULE_TEXT],
|
|
78648
78863
|
[...RULE_TEXT],
|
|
78649
78864
|
[...RULE_TEXT],
|
|
78650
78865
|
[...RULE_TEXT],
|
|
78651
78866
|
[...RULE_TEXT],
|
|
78867
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78652
78868
|
[...RULE_TEXT],
|
|
78653
78869
|
[...RULE_TEXT],
|
|
78654
78870
|
[...RULE_TEXT],
|
|
@@ -78666,7 +78882,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
78666
78882
|
[...RULE_TEXT],
|
|
78667
78883
|
[...RULE_TEXT],
|
|
78668
78884
|
[...RULE_TEXT],
|
|
78669
|
-
[...RULE_TEXT],
|
|
78885
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78886
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78887
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78888
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78889
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
78670
78890
|
[...RULE_TEXT],
|
|
78671
78891
|
[...RULE_TEXT],
|
|
78672
78892
|
[...RULE_TEXT],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-provider-wyze",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.141",
|
|
4
4
|
"description": "Wyze camera device-provider addon for CamStack — wraps the @apocaliss92/wyze-bridge-js P2P/DTLS client, feeding the stream-broker via the pull-rfc4571 lazy-publish path (a structural twin of addon-provider-reolink)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|