@camstack/addon-notifiers 1.2.601 → 1.2.603
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 +521 -15
- package/dist/addon.mjs +521 -15
- package/package.json +1 -1
package/dist/addon.js
CHANGED
|
@@ -29,7 +29,7 @@ let node_fs = require("node:fs");
|
|
|
29
29
|
let node_path = require("node:path");
|
|
30
30
|
node_path = __toESM(node_path);
|
|
31
31
|
let node_url = require("node:url");
|
|
32
|
-
//#region ../types/dist/event-category-
|
|
32
|
+
//#region ../types/dist/event-category-DOl51-Ij.mjs
|
|
33
33
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
34
34
|
EventCategory["SystemBoot"] = "system.boot";
|
|
35
35
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -108,9 +108,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
108
108
|
/**
|
|
109
109
|
* The node's one-shot runner boot check (D877): planned runners against the
|
|
110
110
|
* process service, `degraded` when any is failed, refused or missing. The
|
|
111
|
-
* alert centre turns it into one
|
|
111
|
+
* alert centre turns it into one critical alert.
|
|
112
112
|
*/
|
|
113
113
|
EventCategory["SystemRunnerCheck"] = "system.runner-check";
|
|
114
|
+
/**
|
|
115
|
+
* An alert EPISODE opened or closed, emitted by the alert centre for alerts
|
|
116
|
+
* of severity `critical` or `error` (`AlertEpisodePayload`). The alert
|
|
117
|
+
* centre sends no notification of its own: Notification Center turns this
|
|
118
|
+
* into the `alert-critical` / `alert-error` / `alert-critical-resolved`
|
|
119
|
+
* system-event kinds, and reconciles from the alerts store because a bus
|
|
120
|
+
* event may be dropped (D8, D11).
|
|
121
|
+
*/
|
|
122
|
+
EventCategory["AlertEpisode"] = "alert.episode";
|
|
114
123
|
EventCategory["AddonError"] = "addon.error";
|
|
115
124
|
EventCategory["AddonPageReady"] = "addon.page-ready";
|
|
116
125
|
EventCategory["AddonWidgetReady"] = "addon.widget-ready";
|
|
@@ -5568,7 +5577,7 @@ var ZodIssueCode = {
|
|
|
5568
5577
|
var ZodFirstPartyTypeKind;
|
|
5569
5578
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5570
5579
|
//#endregion
|
|
5571
|
-
//#region ../types/dist/sleep-
|
|
5580
|
+
//#region ../types/dist/sleep-BxjU_fJM.mjs
|
|
5572
5581
|
/**
|
|
5573
5582
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5574
5583
|
* window to float samples (D455).
|
|
@@ -8766,7 +8775,7 @@ function userError(code, params, englishFallback) {
|
|
|
8766
8775
|
return new CamstackError(code, params, englishFallback);
|
|
8767
8776
|
}
|
|
8768
8777
|
//#endregion
|
|
8769
|
-
//#region ../types/dist/err-msg
|
|
8778
|
+
//#region ../types/dist/err-msg-BXKzRBwg.mjs
|
|
8770
8779
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
8771
8780
|
DeviceType["Camera"] = "camera";
|
|
8772
8781
|
DeviceType["Hub"] = "hub";
|
|
@@ -8858,6 +8867,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
|
8858
8867
|
* native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
|
|
8859
8868
|
* integrations sharing the same food/desiccant/hopper surface. */
|
|
8860
8869
|
DeviceType["PetFeeder"] = "pet-feeder";
|
|
8870
|
+
/** Built-in dishwasher — program lifecycle, door / remote-start gates,
|
|
8871
|
+
* salt and rinse-aid levels. Installed with the `dishwasher` cap.
|
|
8872
|
+
* Sources: native Bosch Home Connect, reusable by similar integrations. */
|
|
8873
|
+
DeviceType["Dishwasher"] = "dishwasher";
|
|
8861
8874
|
return DeviceType;
|
|
8862
8875
|
}({});
|
|
8863
8876
|
var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
|
|
@@ -9105,7 +9118,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
9105
9118
|
return DeviceRole;
|
|
9106
9119
|
}({});
|
|
9107
9120
|
//#endregion
|
|
9108
|
-
//#region ../types/dist/composition-
|
|
9121
|
+
//#region ../types/dist/composition-CB6PMT9p.mjs
|
|
9109
9122
|
/**
|
|
9110
9123
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
9111
9124
|
*
|
|
@@ -13627,8 +13640,20 @@ var AlertSeveritySchema = _enum([
|
|
|
13627
13640
|
"info",
|
|
13628
13641
|
"success",
|
|
13629
13642
|
"warning",
|
|
13630
|
-
"error"
|
|
13643
|
+
"error",
|
|
13644
|
+
"critical"
|
|
13631
13645
|
]);
|
|
13646
|
+
var AlertActionSchema = object({
|
|
13647
|
+
label: string(),
|
|
13648
|
+
href: string().optional(),
|
|
13649
|
+
/**
|
|
13650
|
+
* How `href` is followed. Absent / `app`: an admin-ui route (client-side).
|
|
13651
|
+
* `server`: a route the HUB serves (an addon HTTP route such as an OAuth
|
|
13652
|
+
* start) — the browser must leave the SPA with a full navigation, because
|
|
13653
|
+
* the SPA has no such route and would bounce to the home page.
|
|
13654
|
+
*/
|
|
13655
|
+
navigation: _enum(["app", "server"]).optional()
|
|
13656
|
+
});
|
|
13632
13657
|
var AlertStatusSchema = _enum([
|
|
13633
13658
|
"active",
|
|
13634
13659
|
"in-progress",
|
|
@@ -13646,6 +13671,7 @@ var AlertSchema = object({
|
|
|
13646
13671
|
severity: AlertSeveritySchema,
|
|
13647
13672
|
title: string(),
|
|
13648
13673
|
message: string(),
|
|
13674
|
+
action: AlertActionSchema.optional(),
|
|
13649
13675
|
status: AlertStatusSchema,
|
|
13650
13676
|
progress: number().optional(),
|
|
13651
13677
|
read: boolean(),
|
|
@@ -17790,7 +17816,11 @@ DeviceType.Hub, DeviceDiscoveryStatusSchema.extend({ lastFetchedAt: number().int
|
|
|
17790
17816
|
});
|
|
17791
17817
|
/**
|
|
17792
17818
|
* `device-adoption` — generic discovery + adoption surface,
|
|
17793
|
-
* system-scoped
|
|
17819
|
+
* system-scoped collection (one provider per integration addon), routed
|
|
17820
|
+
* by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
|
|
17821
|
+
* pin model as `connection-test`. The admin UI keeps using
|
|
17822
|
+
* `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
|
|
17823
|
+
* successor to `ha-discovery`:
|
|
17794
17824
|
* keyed by `integrationId` (the addon resolves integrationId → broker
|
|
17795
17825
|
* internally) rather than a connection-specific `brokerId`, and it
|
|
17796
17826
|
* REUSES the shared `DiscoveredChildDevice` candidate type from
|
|
@@ -42020,6 +42050,9 @@ var NcSystemEventKindSchema = _enum([
|
|
|
42020
42050
|
"server-updated",
|
|
42021
42051
|
"export-completed",
|
|
42022
42052
|
"backup-completed",
|
|
42053
|
+
"alert-critical",
|
|
42054
|
+
"alert-error",
|
|
42055
|
+
"alert-critical-resolved",
|
|
42023
42056
|
"camera-online",
|
|
42024
42057
|
"camera-offline",
|
|
42025
42058
|
"camera-disabled",
|
|
@@ -51052,7 +51085,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
|
|
|
51052
51085
|
}), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
|
|
51053
51086
|
kind: "mutation",
|
|
51054
51087
|
auth: "admin"
|
|
51055
|
-
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({
|
|
51088
|
+
}), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
|
|
51089
|
+
clear: boolean(),
|
|
51090
|
+
repointLocationId: string().optional()
|
|
51091
|
+
}), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
|
|
51056
51092
|
kind: "mutation",
|
|
51057
51093
|
auth: "admin"
|
|
51058
51094
|
}), method(StorageCleanupInputSchema, object({ jobId: string() }), {
|
|
@@ -53602,7 +53638,7 @@ var BatteryStatusSchema = object({
|
|
|
53602
53638
|
*/
|
|
53603
53639
|
binary: boolean().optional()
|
|
53604
53640
|
});
|
|
53605
|
-
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, method(object({
|
|
53641
|
+
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, method(object({
|
|
53606
53642
|
deviceId: number(),
|
|
53607
53643
|
/** Bound on the wait. Sensible range 3000–10000ms. */
|
|
53608
53644
|
timeoutMs: number().int().min(500).max(3e4).default(8e3)
|
|
@@ -54478,6 +54514,250 @@ object({
|
|
|
54478
54514
|
deviceId: number(),
|
|
54479
54515
|
status: DeviceStatusSchema
|
|
54480
54516
|
});
|
|
54517
|
+
/**
|
|
54518
|
+
* Smart-dishwasher cap — program lifecycle, door / remote-start gates,
|
|
54519
|
+
* consumable levels (salt, rinse aid) and common program options.
|
|
54520
|
+
*
|
|
54521
|
+
* Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
|
|
54522
|
+
* by any integration that exposes the same program / option surface.
|
|
54523
|
+
*
|
|
54524
|
+
* `kind: 'poll'` — cloud REST APIs typically have no push channel; the
|
|
54525
|
+
* provider refreshes the slice on an interval and eagerly after commands.
|
|
54526
|
+
*
|
|
54527
|
+
* UNKNOWN IS NOT OFF. Every field the appliance reports separately is
|
|
54528
|
+
* nullable: `null` means "not known right now" (the appliance has not said,
|
|
54529
|
+
* the link is down, or the description does not carry it) and is never
|
|
54530
|
+
* rendered or exported as `false` / `0`. `availability` says why.
|
|
54531
|
+
*/
|
|
54532
|
+
var DishwasherStateSchema = _enum([
|
|
54533
|
+
"idle",
|
|
54534
|
+
"running",
|
|
54535
|
+
"paused",
|
|
54536
|
+
"finished",
|
|
54537
|
+
"error",
|
|
54538
|
+
"unavailable"
|
|
54539
|
+
]);
|
|
54540
|
+
/**
|
|
54541
|
+
* The appliance's own operation state, uncollapsed. `state` above is the coarse
|
|
54542
|
+
* view for compact surfaces; this is what the appliance said.
|
|
54543
|
+
*/
|
|
54544
|
+
var DishwasherOperationStateSchema = _enum([
|
|
54545
|
+
"Inactive",
|
|
54546
|
+
"Ready",
|
|
54547
|
+
"DelayedStart",
|
|
54548
|
+
"Run",
|
|
54549
|
+
"Pause",
|
|
54550
|
+
"ActionRequired",
|
|
54551
|
+
"Finished",
|
|
54552
|
+
"Error",
|
|
54553
|
+
"Aborting"
|
|
54554
|
+
]);
|
|
54555
|
+
/**
|
|
54556
|
+
* Why fields may be `null`:
|
|
54557
|
+
* - `available` — the link is up and the description is loaded;
|
|
54558
|
+
* - `offline` — the local link is down (values are unknown, not last-known);
|
|
54559
|
+
* - `description-missing` — the link is up but the appliance's description could not
|
|
54560
|
+
* be loaded, so its values cannot be decoded.
|
|
54561
|
+
*/
|
|
54562
|
+
var DishwasherAvailabilitySchema = _enum([
|
|
54563
|
+
"available",
|
|
54564
|
+
"offline",
|
|
54565
|
+
"description-missing"
|
|
54566
|
+
]);
|
|
54567
|
+
var DishwasherConsumableLevelSchema = _enum([
|
|
54568
|
+
"ok",
|
|
54569
|
+
"low",
|
|
54570
|
+
"empty"
|
|
54571
|
+
]);
|
|
54572
|
+
object({
|
|
54573
|
+
availability: DishwasherAvailabilitySchema,
|
|
54574
|
+
/** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
|
|
54575
|
+
state: DishwasherStateSchema,
|
|
54576
|
+
/** The appliance's operation state as reported; null when not known. */
|
|
54577
|
+
operationState: DishwasherOperationStateSchema.nullable(),
|
|
54578
|
+
/** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
|
|
54579
|
+
program: string().nullable(),
|
|
54580
|
+
/** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
|
|
54581
|
+
selectedProgram: string().nullable(),
|
|
54582
|
+
/** Feature keys of the programs the appliance currently offers — drives the UI selector. */
|
|
54583
|
+
availablePrograms: array(string()),
|
|
54584
|
+
/** Seconds remaining on the active cycle, or null when not running / not known. */
|
|
54585
|
+
remainingSeconds: number().int().nonnegative().nullable(),
|
|
54586
|
+
/** Seconds the delayed start is set to (time until the cycle starts), or null. */
|
|
54587
|
+
delayedStartSeconds: number().int().nonnegative().nullable(),
|
|
54588
|
+
/** Cycle completion 0..100, or null when not applicable. */
|
|
54589
|
+
progressPercent: number().min(0).max(100).nullable(),
|
|
54590
|
+
/** True when the door is reported open; null when the door state is not known. */
|
|
54591
|
+
doorOpen: boolean().nullable(),
|
|
54592
|
+
/** True when the door is latched (locked) during a cycle; null when not reported. */
|
|
54593
|
+
doorLocked: boolean().nullable(),
|
|
54594
|
+
/** True when remote start is allowed (door closed, power on, etc.); null when not known. */
|
|
54595
|
+
remoteStartAllowed: boolean().nullable(),
|
|
54596
|
+
/** True when the appliance accepts remote control now; null when not known. */
|
|
54597
|
+
remoteControlActive: boolean().nullable(),
|
|
54598
|
+
/** True while somebody operates the appliance at its panel; null when not reported. */
|
|
54599
|
+
localControlActive: boolean().nullable(),
|
|
54600
|
+
/** Main power / switched-on state; null when not known. */
|
|
54601
|
+
powerOn: boolean().nullable(),
|
|
54602
|
+
/** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
|
|
54603
|
+
powerState: string().nullable(),
|
|
54604
|
+
saltLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54605
|
+
rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
|
|
54606
|
+
/** Option states: null when the appliance does not expose the option or has not said. */
|
|
54607
|
+
halfLoad: boolean().nullable(),
|
|
54608
|
+
hygienePlus: boolean().nullable(),
|
|
54609
|
+
/** Extra dry option when the appliance exposes it. */
|
|
54610
|
+
extraDry: boolean().nullable(),
|
|
54611
|
+
/** Intensive zone (lower basket) when the appliance exposes it. */
|
|
54612
|
+
intensiveZone: boolean().nullable(),
|
|
54613
|
+
/** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
|
|
54614
|
+
varioSpeedPlus: boolean().nullable(),
|
|
54615
|
+
/** Child lock (controls disabled on the appliance); null when not known. */
|
|
54616
|
+
childLock: boolean().nullable(),
|
|
54617
|
+
/** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
|
|
54618
|
+
activeEvents: array(string()),
|
|
54619
|
+
/** Numeric error code when the appliance reports one; null otherwise. */
|
|
54620
|
+
errorCode: number().nullable(),
|
|
54621
|
+
/** Name of the raised alert-level event while the appliance is in error; null otherwise. */
|
|
54622
|
+
errorLabel: string().nullable(),
|
|
54623
|
+
/** Ms epoch of the last value received from the appliance; 0 = never. */
|
|
54624
|
+
lastFetchedAt: number()
|
|
54625
|
+
});
|
|
54626
|
+
var DeviceIdSchema = number().int().nonnegative();
|
|
54627
|
+
/** A value a program option or setting can take. */
|
|
54628
|
+
var DishwasherValueSchema = union([
|
|
54629
|
+
boolean(),
|
|
54630
|
+
string(),
|
|
54631
|
+
number()
|
|
54632
|
+
]);
|
|
54633
|
+
var DishwasherAccessSchema = _enum([
|
|
54634
|
+
"none",
|
|
54635
|
+
"read",
|
|
54636
|
+
"readWrite",
|
|
54637
|
+
"writeOnly",
|
|
54638
|
+
"readStatic"
|
|
54639
|
+
]);
|
|
54640
|
+
/**
|
|
54641
|
+
* One option or setting the appliance declares, with the constraints its description
|
|
54642
|
+
* gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
|
|
54643
|
+
*/
|
|
54644
|
+
var DishwasherOptionDescriptorSchema = object({
|
|
54645
|
+
/** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
|
|
54646
|
+
key: string(),
|
|
54647
|
+
/** Last segment of the key, for display. */
|
|
54648
|
+
name: string(),
|
|
54649
|
+
type: _enum([
|
|
54650
|
+
"boolean",
|
|
54651
|
+
"number",
|
|
54652
|
+
"enum",
|
|
54653
|
+
"string"
|
|
54654
|
+
]),
|
|
54655
|
+
access: DishwasherAccessSchema,
|
|
54656
|
+
/** The appliance reports this entity as currently available. */
|
|
54657
|
+
available: boolean(),
|
|
54658
|
+
/** Unit the description declares for a number; null when it declares none. */
|
|
54659
|
+
unit: string().nullable(),
|
|
54660
|
+
min: number().nullable(),
|
|
54661
|
+
max: number().nullable(),
|
|
54662
|
+
step: number().nullable(),
|
|
54663
|
+
/** Allowed members of an enum; null for other types. */
|
|
54664
|
+
enumValues: array(string()).nullable(),
|
|
54665
|
+
defaultValue: DishwasherValueSchema.nullable()
|
|
54666
|
+
});
|
|
54667
|
+
var DishwasherProgramSchema = object({
|
|
54668
|
+
/** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
|
|
54669
|
+
key: string(),
|
|
54670
|
+
name: string(),
|
|
54671
|
+
/** The appliance currently offers this program. */
|
|
54672
|
+
available: boolean(),
|
|
54673
|
+
/** The options this program lists, with the program-level access / availability / default. */
|
|
54674
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
54675
|
+
});
|
|
54676
|
+
var DishwasherOptionsSchema = object({
|
|
54677
|
+
availability: DishwasherAvailabilitySchema,
|
|
54678
|
+
/** What the appliance can be told to do, from the commands its description declares. */
|
|
54679
|
+
supportsStart: boolean(),
|
|
54680
|
+
supportsPause: boolean(),
|
|
54681
|
+
supportsResume: boolean(),
|
|
54682
|
+
supportsStop: boolean(),
|
|
54683
|
+
supportsPower: boolean(),
|
|
54684
|
+
/** Every program the description lists, with its options. */
|
|
54685
|
+
programs: array(DishwasherProgramSchema),
|
|
54686
|
+
/** Every option and setting entity the description lists (programs reference these by key). */
|
|
54687
|
+
options: array(DishwasherOptionDescriptorSchema)
|
|
54688
|
+
});
|
|
54689
|
+
DeviceType.Dishwasher, method(object({
|
|
54690
|
+
deviceId: DeviceIdSchema,
|
|
54691
|
+
program: string().min(1).optional(),
|
|
54692
|
+
options: record(string(), DishwasherValueSchema).optional()
|
|
54693
|
+
}), _void(), {
|
|
54694
|
+
kind: "mutation",
|
|
54695
|
+
auth: "protected"
|
|
54696
|
+
}), method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
54697
|
+
kind: "mutation",
|
|
54698
|
+
auth: "protected"
|
|
54699
|
+
}), method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
54700
|
+
kind: "mutation",
|
|
54701
|
+
auth: "protected"
|
|
54702
|
+
}), method(object({ deviceId: DeviceIdSchema }), _void(), {
|
|
54703
|
+
kind: "mutation",
|
|
54704
|
+
auth: "protected"
|
|
54705
|
+
}), method(object({
|
|
54706
|
+
deviceId: DeviceIdSchema,
|
|
54707
|
+
program: string().min(1)
|
|
54708
|
+
}), _void(), {
|
|
54709
|
+
kind: "mutation",
|
|
54710
|
+
auth: "protected"
|
|
54711
|
+
}), method(object({
|
|
54712
|
+
deviceId: DeviceIdSchema,
|
|
54713
|
+
on: boolean()
|
|
54714
|
+
}), _void(), {
|
|
54715
|
+
kind: "mutation",
|
|
54716
|
+
auth: "protected"
|
|
54717
|
+
}), method(object({
|
|
54718
|
+
deviceId: DeviceIdSchema,
|
|
54719
|
+
on: boolean()
|
|
54720
|
+
}), _void(), {
|
|
54721
|
+
kind: "mutation",
|
|
54722
|
+
auth: "protected"
|
|
54723
|
+
}), method(object({
|
|
54724
|
+
deviceId: DeviceIdSchema,
|
|
54725
|
+
on: boolean()
|
|
54726
|
+
}), _void(), {
|
|
54727
|
+
kind: "mutation",
|
|
54728
|
+
auth: "protected"
|
|
54729
|
+
}), method(object({
|
|
54730
|
+
deviceId: DeviceIdSchema,
|
|
54731
|
+
on: boolean()
|
|
54732
|
+
}), _void(), {
|
|
54733
|
+
kind: "mutation",
|
|
54734
|
+
auth: "protected"
|
|
54735
|
+
}), method(object({
|
|
54736
|
+
deviceId: DeviceIdSchema,
|
|
54737
|
+
on: boolean()
|
|
54738
|
+
}), _void(), {
|
|
54739
|
+
kind: "mutation",
|
|
54740
|
+
auth: "protected"
|
|
54741
|
+
}), method(object({
|
|
54742
|
+
deviceId: DeviceIdSchema,
|
|
54743
|
+
on: boolean()
|
|
54744
|
+
}), _void(), {
|
|
54745
|
+
kind: "mutation",
|
|
54746
|
+
auth: "protected"
|
|
54747
|
+
}), method(object({
|
|
54748
|
+
deviceId: DeviceIdSchema,
|
|
54749
|
+
on: boolean()
|
|
54750
|
+
}), _void(), {
|
|
54751
|
+
kind: "mutation",
|
|
54752
|
+
auth: "protected"
|
|
54753
|
+
}), method(object({
|
|
54754
|
+
deviceId: DeviceIdSchema,
|
|
54755
|
+
key: string().min(1),
|
|
54756
|
+
value: DishwasherValueSchema
|
|
54757
|
+
}), _void(), {
|
|
54758
|
+
kind: "mutation",
|
|
54759
|
+
auth: "protected"
|
|
54760
|
+
}), method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" });
|
|
54481
54761
|
object({
|
|
54482
54762
|
/** Ms epoch of the last press. null = never observed since this provider started. */
|
|
54483
54763
|
lastPressedAt: number().nullable(),
|
|
@@ -55043,6 +55323,13 @@ object({
|
|
|
55043
55323
|
lastChangedAt: number()
|
|
55044
55324
|
});
|
|
55045
55325
|
DeviceType.Sensor;
|
|
55326
|
+
object({
|
|
55327
|
+
/** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
|
|
55328
|
+
position: number().min(0).max(100).nullable(),
|
|
55329
|
+
/** Ms epoch when the slice was last updated (push or poll). */
|
|
55330
|
+
lastFetchedAt: number()
|
|
55331
|
+
});
|
|
55332
|
+
DeviceType.Thermostat;
|
|
55046
55333
|
object({
|
|
55047
55334
|
/** Whether the humidifier is currently on. */
|
|
55048
55335
|
on: boolean(),
|
|
@@ -62109,7 +62396,7 @@ var AccessoryKind = {
|
|
|
62109
62396
|
PrivacyMask: DeviceRole.PrivacyMask
|
|
62110
62397
|
};
|
|
62111
62398
|
AccessoryKind.Siren, AccessoryKind.Floodlight, AccessoryKind.Spotlight, AccessoryKind.PirSensor, AccessoryKind.Chime, AccessoryKind.Autotrack, AccessoryKind.Nightvision, AccessoryKind.PrivacyMask;
|
|
62112
|
-
DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Siren, DeviceType.Light, DeviceType.Fan, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder;
|
|
62399
|
+
DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Camera, DeviceType.Hub, DeviceType.Switch, DeviceType.Siren, DeviceType.Light, DeviceType.Fan, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher;
|
|
62113
62400
|
new Set(Object.values(DeviceType));
|
|
62114
62401
|
Object.freeze({
|
|
62115
62402
|
"accessories.getStatus": {
|
|
@@ -64530,6 +64817,96 @@ Object.freeze({
|
|
|
64530
64817
|
addonId: null,
|
|
64531
64818
|
access: "view"
|
|
64532
64819
|
},
|
|
64820
|
+
"dishwasher.getOptions": {
|
|
64821
|
+
capName: "dishwasher",
|
|
64822
|
+
capScope: "device",
|
|
64823
|
+
addonId: null,
|
|
64824
|
+
access: "view"
|
|
64825
|
+
},
|
|
64826
|
+
"dishwasher.getStatus": {
|
|
64827
|
+
capName: "dishwasher",
|
|
64828
|
+
capScope: "device",
|
|
64829
|
+
addonId: null,
|
|
64830
|
+
access: "view"
|
|
64831
|
+
},
|
|
64832
|
+
"dishwasher.pause": {
|
|
64833
|
+
capName: "dishwasher",
|
|
64834
|
+
capScope: "device",
|
|
64835
|
+
addonId: null,
|
|
64836
|
+
access: "create"
|
|
64837
|
+
},
|
|
64838
|
+
"dishwasher.resume": {
|
|
64839
|
+
capName: "dishwasher",
|
|
64840
|
+
capScope: "device",
|
|
64841
|
+
addonId: null,
|
|
64842
|
+
access: "create"
|
|
64843
|
+
},
|
|
64844
|
+
"dishwasher.setChildLock": {
|
|
64845
|
+
capName: "dishwasher",
|
|
64846
|
+
capScope: "device",
|
|
64847
|
+
addonId: null,
|
|
64848
|
+
access: "create"
|
|
64849
|
+
},
|
|
64850
|
+
"dishwasher.setExtraDry": {
|
|
64851
|
+
capName: "dishwasher",
|
|
64852
|
+
capScope: "device",
|
|
64853
|
+
addonId: null,
|
|
64854
|
+
access: "create"
|
|
64855
|
+
},
|
|
64856
|
+
"dishwasher.setHalfLoad": {
|
|
64857
|
+
capName: "dishwasher",
|
|
64858
|
+
capScope: "device",
|
|
64859
|
+
addonId: null,
|
|
64860
|
+
access: "create"
|
|
64861
|
+
},
|
|
64862
|
+
"dishwasher.setHygienePlus": {
|
|
64863
|
+
capName: "dishwasher",
|
|
64864
|
+
capScope: "device",
|
|
64865
|
+
addonId: null,
|
|
64866
|
+
access: "create"
|
|
64867
|
+
},
|
|
64868
|
+
"dishwasher.setIntensiveZone": {
|
|
64869
|
+
capName: "dishwasher",
|
|
64870
|
+
capScope: "device",
|
|
64871
|
+
addonId: null,
|
|
64872
|
+
access: "create"
|
|
64873
|
+
},
|
|
64874
|
+
"dishwasher.setOption": {
|
|
64875
|
+
capName: "dishwasher",
|
|
64876
|
+
capScope: "device",
|
|
64877
|
+
addonId: null,
|
|
64878
|
+
access: "create"
|
|
64879
|
+
},
|
|
64880
|
+
"dishwasher.setPower": {
|
|
64881
|
+
capName: "dishwasher",
|
|
64882
|
+
capScope: "device",
|
|
64883
|
+
addonId: null,
|
|
64884
|
+
access: "create"
|
|
64885
|
+
},
|
|
64886
|
+
"dishwasher.setProgram": {
|
|
64887
|
+
capName: "dishwasher",
|
|
64888
|
+
capScope: "device",
|
|
64889
|
+
addonId: null,
|
|
64890
|
+
access: "create"
|
|
64891
|
+
},
|
|
64892
|
+
"dishwasher.setVarioSpeedPlus": {
|
|
64893
|
+
capName: "dishwasher",
|
|
64894
|
+
capScope: "device",
|
|
64895
|
+
addonId: null,
|
|
64896
|
+
access: "create"
|
|
64897
|
+
},
|
|
64898
|
+
"dishwasher.start": {
|
|
64899
|
+
capName: "dishwasher",
|
|
64900
|
+
capScope: "device",
|
|
64901
|
+
addonId: null,
|
|
64902
|
+
access: "create"
|
|
64903
|
+
},
|
|
64904
|
+
"dishwasher.stop": {
|
|
64905
|
+
capName: "dishwasher",
|
|
64906
|
+
capScope: "device",
|
|
64907
|
+
addonId: null,
|
|
64908
|
+
access: "create"
|
|
64909
|
+
},
|
|
64533
64910
|
"doorbell.getStatus": {
|
|
64534
64911
|
capName: "doorbell",
|
|
64535
64912
|
capScope: "device",
|
|
@@ -64740,6 +65117,12 @@ Object.freeze({
|
|
|
64740
65117
|
addonId: null,
|
|
64741
65118
|
access: "view"
|
|
64742
65119
|
},
|
|
65120
|
+
"heatingValve.getStatus": {
|
|
65121
|
+
capName: "heating-valve",
|
|
65122
|
+
capScope: "device",
|
|
65123
|
+
addonId: null,
|
|
65124
|
+
access: "view"
|
|
65125
|
+
},
|
|
64743
65126
|
"humidifier.getStatus": {
|
|
64744
65127
|
capName: "humidifier",
|
|
64745
65128
|
capScope: "device",
|
|
@@ -68958,6 +69341,12 @@ Object.freeze({
|
|
|
68958
69341
|
addonId: null,
|
|
68959
69342
|
access: "view"
|
|
68960
69343
|
},
|
|
69344
|
+
"storageMigration.moverClearance": {
|
|
69345
|
+
capName: "storage-migration",
|
|
69346
|
+
capScope: "system",
|
|
69347
|
+
addonId: null,
|
|
69348
|
+
access: "view"
|
|
69349
|
+
},
|
|
68961
69350
|
"storageMigration.movers": {
|
|
68962
69351
|
capName: "storage-migration",
|
|
68963
69352
|
capScope: "system",
|
|
@@ -70327,7 +70716,7 @@ Object.freeze({
|
|
|
70327
70716
|
access: "create"
|
|
70328
70717
|
}
|
|
70329
70718
|
});
|
|
70330
|
-
DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder;
|
|
70719
|
+
DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher;
|
|
70331
70720
|
DeviceFeature.BatteryOperated;
|
|
70332
70721
|
Object.freeze({
|
|
70333
70722
|
"accessories.getStatus": [{
|
|
@@ -71151,6 +71540,81 @@ Object.freeze({
|
|
|
71151
71540
|
form: "single",
|
|
71152
71541
|
optional: false
|
|
71153
71542
|
}],
|
|
71543
|
+
"dishwasher.getOptions": [{
|
|
71544
|
+
name: "deviceId",
|
|
71545
|
+
form: "single",
|
|
71546
|
+
optional: false
|
|
71547
|
+
}],
|
|
71548
|
+
"dishwasher.getStatus": [{
|
|
71549
|
+
name: "deviceId",
|
|
71550
|
+
form: "single",
|
|
71551
|
+
optional: false
|
|
71552
|
+
}],
|
|
71553
|
+
"dishwasher.pause": [{
|
|
71554
|
+
name: "deviceId",
|
|
71555
|
+
form: "single",
|
|
71556
|
+
optional: false
|
|
71557
|
+
}],
|
|
71558
|
+
"dishwasher.resume": [{
|
|
71559
|
+
name: "deviceId",
|
|
71560
|
+
form: "single",
|
|
71561
|
+
optional: false
|
|
71562
|
+
}],
|
|
71563
|
+
"dishwasher.setChildLock": [{
|
|
71564
|
+
name: "deviceId",
|
|
71565
|
+
form: "single",
|
|
71566
|
+
optional: false
|
|
71567
|
+
}],
|
|
71568
|
+
"dishwasher.setExtraDry": [{
|
|
71569
|
+
name: "deviceId",
|
|
71570
|
+
form: "single",
|
|
71571
|
+
optional: false
|
|
71572
|
+
}],
|
|
71573
|
+
"dishwasher.setHalfLoad": [{
|
|
71574
|
+
name: "deviceId",
|
|
71575
|
+
form: "single",
|
|
71576
|
+
optional: false
|
|
71577
|
+
}],
|
|
71578
|
+
"dishwasher.setHygienePlus": [{
|
|
71579
|
+
name: "deviceId",
|
|
71580
|
+
form: "single",
|
|
71581
|
+
optional: false
|
|
71582
|
+
}],
|
|
71583
|
+
"dishwasher.setIntensiveZone": [{
|
|
71584
|
+
name: "deviceId",
|
|
71585
|
+
form: "single",
|
|
71586
|
+
optional: false
|
|
71587
|
+
}],
|
|
71588
|
+
"dishwasher.setOption": [{
|
|
71589
|
+
name: "deviceId",
|
|
71590
|
+
form: "single",
|
|
71591
|
+
optional: false
|
|
71592
|
+
}],
|
|
71593
|
+
"dishwasher.setPower": [{
|
|
71594
|
+
name: "deviceId",
|
|
71595
|
+
form: "single",
|
|
71596
|
+
optional: false
|
|
71597
|
+
}],
|
|
71598
|
+
"dishwasher.setProgram": [{
|
|
71599
|
+
name: "deviceId",
|
|
71600
|
+
form: "single",
|
|
71601
|
+
optional: false
|
|
71602
|
+
}],
|
|
71603
|
+
"dishwasher.setVarioSpeedPlus": [{
|
|
71604
|
+
name: "deviceId",
|
|
71605
|
+
form: "single",
|
|
71606
|
+
optional: false
|
|
71607
|
+
}],
|
|
71608
|
+
"dishwasher.start": [{
|
|
71609
|
+
name: "deviceId",
|
|
71610
|
+
form: "single",
|
|
71611
|
+
optional: false
|
|
71612
|
+
}],
|
|
71613
|
+
"dishwasher.stop": [{
|
|
71614
|
+
name: "deviceId",
|
|
71615
|
+
form: "single",
|
|
71616
|
+
optional: false
|
|
71617
|
+
}],
|
|
71154
71618
|
"doorbell.getStatus": [{
|
|
71155
71619
|
name: "deviceId",
|
|
71156
71620
|
form: "single",
|
|
@@ -71220,6 +71684,11 @@ Object.freeze({
|
|
|
71220
71684
|
form: "single",
|
|
71221
71685
|
optional: false
|
|
71222
71686
|
}],
|
|
71687
|
+
"heatingValve.getStatus": [{
|
|
71688
|
+
name: "deviceId",
|
|
71689
|
+
form: "single",
|
|
71690
|
+
optional: false
|
|
71691
|
+
}],
|
|
71223
71692
|
"humidifier.getStatus": [{
|
|
71224
71693
|
name: "deviceId",
|
|
71225
71694
|
form: "single",
|
|
@@ -73384,6 +73853,9 @@ new Map(Object.entries({
|
|
|
73384
73853
|
"wrapper-update-available": "system",
|
|
73385
73854
|
"backup-completed": "system",
|
|
73386
73855
|
"export-completed": "system",
|
|
73856
|
+
"alert-critical": "system",
|
|
73857
|
+
"alert-error": "system",
|
|
73858
|
+
"alert-critical-resolved": "system",
|
|
73387
73859
|
"storage-location-low": "system",
|
|
73388
73860
|
"storage-location-critical": "system",
|
|
73389
73861
|
"storage-location-ok": "system",
|
|
@@ -73508,6 +73980,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
|
|
|
73508
73980
|
"storage-location-ok"
|
|
73509
73981
|
]
|
|
73510
73982
|
},
|
|
73983
|
+
{
|
|
73984
|
+
id: "alerts",
|
|
73985
|
+
family: "system",
|
|
73986
|
+
label: "Alerts",
|
|
73987
|
+
kinds: [
|
|
73988
|
+
"alert-critical",
|
|
73989
|
+
"alert-error",
|
|
73990
|
+
"alert-critical-resolved"
|
|
73991
|
+
]
|
|
73992
|
+
},
|
|
73511
73993
|
{
|
|
73512
73994
|
id: "alarm",
|
|
73513
73995
|
family: "alarm",
|
|
@@ -73552,6 +74034,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
|
|
|
73552
74034
|
return [[descriptor.kind, field]];
|
|
73553
74035
|
})));
|
|
73554
74036
|
Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
|
|
74037
|
+
object({
|
|
74038
|
+
phase: _enum(["raised", "resolved"]),
|
|
74039
|
+
episodeId: string().min(1),
|
|
74040
|
+
alertId: string().min(1),
|
|
74041
|
+
severity: AlertSeveritySchema,
|
|
74042
|
+
category: string(),
|
|
74043
|
+
title: string(),
|
|
74044
|
+
message: string(),
|
|
74045
|
+
sourceType: string().optional(),
|
|
74046
|
+
sourceId: string().optional(),
|
|
74047
|
+
nodeId: string().optional(),
|
|
74048
|
+
/** The alert's own action link (where the operator acts on it), when it has one. */
|
|
74049
|
+
actionUrl: string().optional(),
|
|
74050
|
+
at: number()
|
|
74051
|
+
});
|
|
73555
74052
|
var RULE_BODY_ONLY = ["body"];
|
|
73556
74053
|
var RULE_TEXT = ["title", "body"];
|
|
73557
74054
|
var BATTERY = ["device-battery-low", "device-battery-normal"];
|
|
@@ -73561,6 +74058,11 @@ var TANK = [
|
|
|
73561
74058
|
"device-tank-full",
|
|
73562
74059
|
"device-tank-normal"
|
|
73563
74060
|
];
|
|
74061
|
+
var ALERT_EPISODE = [
|
|
74062
|
+
"alert-critical",
|
|
74063
|
+
"alert-error",
|
|
74064
|
+
"alert-critical-resolved"
|
|
74065
|
+
];
|
|
73564
74066
|
var UPDATES = [
|
|
73565
74067
|
"addon-update-available",
|
|
73566
74068
|
"server-update-available",
|
|
@@ -73753,14 +74255,14 @@ var STATE_SUMMARY_VARS = [
|
|
|
73753
74255
|
([...RULE_TEXT], [...CONSUMABLE]),
|
|
73754
74256
|
([...RULE_TEXT], [...TANK]),
|
|
73755
74257
|
[...RULE_TEXT],
|
|
73756
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
73757
|
-
([...RULE_TEXT], [...UPDATES]),
|
|
73758
|
-
[...RULE_TEXT],
|
|
74258
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
74259
|
+
([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
|
|
73759
74260
|
[...RULE_TEXT],
|
|
73760
74261
|
[...RULE_TEXT],
|
|
73761
74262
|
[...RULE_TEXT],
|
|
73762
74263
|
[...RULE_TEXT],
|
|
73763
74264
|
[...RULE_TEXT],
|
|
74265
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
73764
74266
|
[...RULE_TEXT],
|
|
73765
74267
|
[...RULE_TEXT],
|
|
73766
74268
|
[...RULE_TEXT],
|
|
@@ -73778,7 +74280,11 @@ var STATE_SUMMARY_VARS = [
|
|
|
73778
74280
|
[...RULE_TEXT],
|
|
73779
74281
|
[...RULE_TEXT],
|
|
73780
74282
|
[...RULE_TEXT],
|
|
73781
|
-
[...RULE_TEXT],
|
|
74283
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74284
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74285
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74286
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
74287
|
+
([...RULE_TEXT], [...ALERT_EPISODE]),
|
|
73782
74288
|
[...RULE_TEXT],
|
|
73783
74289
|
[...RULE_TEXT],
|
|
73784
74290
|
[...RULE_TEXT],
|