@camstack/addon-mqtt-broker 1.2.126 → 1.2.128

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.
@@ -39,7 +39,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
39
39
  var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
40
40
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
41
41
  //#endregion
42
- //#region ../types/dist/event-category-BvOFi6PY.mjs
42
+ //#region ../types/dist/event-category-DOl51-Ij.mjs
43
43
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
44
44
  EventCategory["SystemBoot"] = "system.boot";
45
45
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -118,9 +118,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
118
118
  /**
119
119
  * The node's one-shot runner boot check (D877): planned runners against the
120
120
  * process service, `degraded` when any is failed, refused or missing. The
121
- * alert centre turns it into one alert and a direct critical push.
121
+ * alert centre turns it into one critical alert.
122
122
  */
123
123
  EventCategory["SystemRunnerCheck"] = "system.runner-check";
124
+ /**
125
+ * An alert EPISODE opened or closed, emitted by the alert centre for alerts
126
+ * of severity `critical` or `error` (`AlertEpisodePayload`). The alert
127
+ * centre sends no notification of its own: Notification Center turns this
128
+ * into the `alert-critical` / `alert-error` / `alert-critical-resolved`
129
+ * system-event kinds, and reconciles from the alerts store because a bus
130
+ * event may be dropped (D8, D11).
131
+ */
132
+ EventCategory["AlertEpisode"] = "alert.episode";
124
133
  EventCategory["AddonError"] = "addon.error";
125
134
  EventCategory["AddonPageReady"] = "addon.page-ready";
126
135
  EventCategory["AddonWidgetReady"] = "addon.widget-ready";
@@ -5578,7 +5587,7 @@ var ZodIssueCode = {
5578
5587
  var ZodFirstPartyTypeKind;
5579
5588
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5580
5589
  //#endregion
5581
- //#region ../types/dist/sleep-bZIhUvjd.mjs
5590
+ //#region ../types/dist/sleep-BxjU_fJM.mjs
5582
5591
  /**
5583
5592
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5584
5593
  * window to float samples (D455).
@@ -8802,7 +8811,7 @@ object({
8802
8811
  params: record(string(), union([string(), number()])).optional()
8803
8812
  });
8804
8813
  //#endregion
8805
- //#region ../types/dist/err-msg--2RrYiLO.mjs
8814
+ //#region ../types/dist/err-msg-BXKzRBwg.mjs
8806
8815
  var DeviceType = /* @__PURE__ */ function(DeviceType) {
8807
8816
  DeviceType["Camera"] = "camera";
8808
8817
  DeviceType["Hub"] = "hub";
@@ -8894,6 +8903,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
8894
8903
  * native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
8895
8904
  * integrations sharing the same food/desiccant/hopper surface. */
8896
8905
  DeviceType["PetFeeder"] = "pet-feeder";
8906
+ /** Built-in dishwasher — program lifecycle, door / remote-start gates,
8907
+ * salt and rinse-aid levels. Installed with the `dishwasher` cap.
8908
+ * Sources: native Bosch Home Connect, reusable by similar integrations. */
8909
+ DeviceType["Dishwasher"] = "dishwasher";
8897
8910
  return DeviceType;
8898
8911
  }({});
8899
8912
  var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
@@ -9141,7 +9154,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
9141
9154
  return DeviceRole;
9142
9155
  }({});
9143
9156
  //#endregion
9144
- //#region ../types/dist/composition-DOwQB_Ua.mjs
9157
+ //#region ../types/dist/composition-CB6PMT9p.mjs
9145
9158
  /**
9146
9159
  * The ffmpeg build every CamStack node downloads, per platform and arch.
9147
9160
  *
@@ -13527,8 +13540,20 @@ var AlertSeveritySchema = _enum([
13527
13540
  "info",
13528
13541
  "success",
13529
13542
  "warning",
13530
- "error"
13543
+ "error",
13544
+ "critical"
13531
13545
  ]);
13546
+ var AlertActionSchema = object({
13547
+ label: string(),
13548
+ href: string().optional(),
13549
+ /**
13550
+ * How `href` is followed. Absent / `app`: an admin-ui route (client-side).
13551
+ * `server`: a route the HUB serves (an addon HTTP route such as an OAuth
13552
+ * start) — the browser must leave the SPA with a full navigation, because
13553
+ * the SPA has no such route and would bounce to the home page.
13554
+ */
13555
+ navigation: _enum(["app", "server"]).optional()
13556
+ });
13532
13557
  var AlertStatusSchema = _enum([
13533
13558
  "active",
13534
13559
  "in-progress",
@@ -13546,6 +13571,7 @@ var AlertSchema = object({
13546
13571
  severity: AlertSeveritySchema,
13547
13572
  title: string(),
13548
13573
  message: string(),
13574
+ action: AlertActionSchema.optional(),
13549
13575
  status: AlertStatusSchema,
13550
13576
  progress: number().optional(),
13551
13577
  read: boolean(),
@@ -17739,7 +17765,11 @@ DeviceType.Hub, DeviceDiscoveryStatusSchema.extend({ lastFetchedAt: number().int
17739
17765
  });
17740
17766
  /**
17741
17767
  * `device-adoption` — generic discovery + adoption surface,
17742
- * system-scoped singleton. The de-HA-ified successor to `ha-discovery`:
17768
+ * system-scoped collection (one provider per integration addon), routed
17769
+ * by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
17770
+ * pin model as `connection-test`. The admin UI keeps using
17771
+ * `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
17772
+ * successor to `ha-discovery`:
17743
17773
  * keyed by `integrationId` (the addon resolves integrationId → broker
17744
17774
  * internally) rather than a connection-specific `brokerId`, and it
17745
17775
  * REUSES the shared `DiscoveredChildDevice` candidate type from
@@ -41966,6 +41996,9 @@ var NcSystemEventKindSchema = _enum([
41966
41996
  "server-updated",
41967
41997
  "export-completed",
41968
41998
  "backup-completed",
41999
+ "alert-critical",
42000
+ "alert-error",
42001
+ "alert-critical-resolved",
41969
42002
  "camera-online",
41970
42003
  "camera-offline",
41971
42004
  "camera-disabled",
@@ -50998,7 +51031,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
50998
51031
  }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
50999
51032
  kind: "mutation",
51000
51033
  auth: "admin"
51001
- }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
51034
+ }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
51035
+ clear: boolean(),
51036
+ repointLocationId: string().optional()
51037
+ }), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
51002
51038
  kind: "mutation",
51003
51039
  auth: "admin"
51004
51040
  }), method(StorageCleanupInputSchema, object({ jobId: string() }), {
@@ -53548,7 +53584,7 @@ var BatteryStatusSchema = object({
53548
53584
  */
53549
53585
  binary: boolean().optional()
53550
53586
  });
53551
- DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, method(object({
53587
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, method(object({
53552
53588
  deviceId: number(),
53553
53589
  /** Bound on the wait. Sensible range 3000–10000ms. */
53554
53590
  timeoutMs: number().int().min(500).max(3e4).default(8e3)
@@ -54424,6 +54460,250 @@ object({
54424
54460
  deviceId: number(),
54425
54461
  status: DeviceStatusSchema
54426
54462
  });
54463
+ /**
54464
+ * Smart-dishwasher cap — program lifecycle, door / remote-start gates,
54465
+ * consumable levels (salt, rinse aid) and common program options.
54466
+ *
54467
+ * Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
54468
+ * by any integration that exposes the same program / option surface.
54469
+ *
54470
+ * `kind: 'poll'` — cloud REST APIs typically have no push channel; the
54471
+ * provider refreshes the slice on an interval and eagerly after commands.
54472
+ *
54473
+ * UNKNOWN IS NOT OFF. Every field the appliance reports separately is
54474
+ * nullable: `null` means "not known right now" (the appliance has not said,
54475
+ * the link is down, or the description does not carry it) and is never
54476
+ * rendered or exported as `false` / `0`. `availability` says why.
54477
+ */
54478
+ var DishwasherStateSchema = _enum([
54479
+ "idle",
54480
+ "running",
54481
+ "paused",
54482
+ "finished",
54483
+ "error",
54484
+ "unavailable"
54485
+ ]);
54486
+ /**
54487
+ * The appliance's own operation state, uncollapsed. `state` above is the coarse
54488
+ * view for compact surfaces; this is what the appliance said.
54489
+ */
54490
+ var DishwasherOperationStateSchema = _enum([
54491
+ "Inactive",
54492
+ "Ready",
54493
+ "DelayedStart",
54494
+ "Run",
54495
+ "Pause",
54496
+ "ActionRequired",
54497
+ "Finished",
54498
+ "Error",
54499
+ "Aborting"
54500
+ ]);
54501
+ /**
54502
+ * Why fields may be `null`:
54503
+ * - `available` — the link is up and the description is loaded;
54504
+ * - `offline` — the local link is down (values are unknown, not last-known);
54505
+ * - `description-missing` — the link is up but the appliance's description could not
54506
+ * be loaded, so its values cannot be decoded.
54507
+ */
54508
+ var DishwasherAvailabilitySchema = _enum([
54509
+ "available",
54510
+ "offline",
54511
+ "description-missing"
54512
+ ]);
54513
+ var DishwasherConsumableLevelSchema = _enum([
54514
+ "ok",
54515
+ "low",
54516
+ "empty"
54517
+ ]);
54518
+ object({
54519
+ availability: DishwasherAvailabilitySchema,
54520
+ /** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
54521
+ state: DishwasherStateSchema,
54522
+ /** The appliance's operation state as reported; null when not known. */
54523
+ operationState: DishwasherOperationStateSchema.nullable(),
54524
+ /** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
54525
+ program: string().nullable(),
54526
+ /** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
54527
+ selectedProgram: string().nullable(),
54528
+ /** Feature keys of the programs the appliance currently offers — drives the UI selector. */
54529
+ availablePrograms: array(string()),
54530
+ /** Seconds remaining on the active cycle, or null when not running / not known. */
54531
+ remainingSeconds: number().int().nonnegative().nullable(),
54532
+ /** Seconds the delayed start is set to (time until the cycle starts), or null. */
54533
+ delayedStartSeconds: number().int().nonnegative().nullable(),
54534
+ /** Cycle completion 0..100, or null when not applicable. */
54535
+ progressPercent: number().min(0).max(100).nullable(),
54536
+ /** True when the door is reported open; null when the door state is not known. */
54537
+ doorOpen: boolean().nullable(),
54538
+ /** True when the door is latched (locked) during a cycle; null when not reported. */
54539
+ doorLocked: boolean().nullable(),
54540
+ /** True when remote start is allowed (door closed, power on, etc.); null when not known. */
54541
+ remoteStartAllowed: boolean().nullable(),
54542
+ /** True when the appliance accepts remote control now; null when not known. */
54543
+ remoteControlActive: boolean().nullable(),
54544
+ /** True while somebody operates the appliance at its panel; null when not reported. */
54545
+ localControlActive: boolean().nullable(),
54546
+ /** Main power / switched-on state; null when not known. */
54547
+ powerOn: boolean().nullable(),
54548
+ /** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
54549
+ powerState: string().nullable(),
54550
+ saltLevel: DishwasherConsumableLevelSchema.nullable(),
54551
+ rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
54552
+ /** Option states: null when the appliance does not expose the option or has not said. */
54553
+ halfLoad: boolean().nullable(),
54554
+ hygienePlus: boolean().nullable(),
54555
+ /** Extra dry option when the appliance exposes it. */
54556
+ extraDry: boolean().nullable(),
54557
+ /** Intensive zone (lower basket) when the appliance exposes it. */
54558
+ intensiveZone: boolean().nullable(),
54559
+ /** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
54560
+ varioSpeedPlus: boolean().nullable(),
54561
+ /** Child lock (controls disabled on the appliance); null when not known. */
54562
+ childLock: boolean().nullable(),
54563
+ /** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
54564
+ activeEvents: array(string()),
54565
+ /** Numeric error code when the appliance reports one; null otherwise. */
54566
+ errorCode: number().nullable(),
54567
+ /** Name of the raised alert-level event while the appliance is in error; null otherwise. */
54568
+ errorLabel: string().nullable(),
54569
+ /** Ms epoch of the last value received from the appliance; 0 = never. */
54570
+ lastFetchedAt: number()
54571
+ });
54572
+ var DeviceIdSchema = number().int().nonnegative();
54573
+ /** A value a program option or setting can take. */
54574
+ var DishwasherValueSchema = union([
54575
+ boolean(),
54576
+ string(),
54577
+ number()
54578
+ ]);
54579
+ var DishwasherAccessSchema = _enum([
54580
+ "none",
54581
+ "read",
54582
+ "readWrite",
54583
+ "writeOnly",
54584
+ "readStatic"
54585
+ ]);
54586
+ /**
54587
+ * One option or setting the appliance declares, with the constraints its description
54588
+ * gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
54589
+ */
54590
+ var DishwasherOptionDescriptorSchema = object({
54591
+ /** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
54592
+ key: string(),
54593
+ /** Last segment of the key, for display. */
54594
+ name: string(),
54595
+ type: _enum([
54596
+ "boolean",
54597
+ "number",
54598
+ "enum",
54599
+ "string"
54600
+ ]),
54601
+ access: DishwasherAccessSchema,
54602
+ /** The appliance reports this entity as currently available. */
54603
+ available: boolean(),
54604
+ /** Unit the description declares for a number; null when it declares none. */
54605
+ unit: string().nullable(),
54606
+ min: number().nullable(),
54607
+ max: number().nullable(),
54608
+ step: number().nullable(),
54609
+ /** Allowed members of an enum; null for other types. */
54610
+ enumValues: array(string()).nullable(),
54611
+ defaultValue: DishwasherValueSchema.nullable()
54612
+ });
54613
+ var DishwasherProgramSchema = object({
54614
+ /** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
54615
+ key: string(),
54616
+ name: string(),
54617
+ /** The appliance currently offers this program. */
54618
+ available: boolean(),
54619
+ /** The options this program lists, with the program-level access / availability / default. */
54620
+ options: array(DishwasherOptionDescriptorSchema)
54621
+ });
54622
+ var DishwasherOptionsSchema = object({
54623
+ availability: DishwasherAvailabilitySchema,
54624
+ /** What the appliance can be told to do, from the commands its description declares. */
54625
+ supportsStart: boolean(),
54626
+ supportsPause: boolean(),
54627
+ supportsResume: boolean(),
54628
+ supportsStop: boolean(),
54629
+ supportsPower: boolean(),
54630
+ /** Every program the description lists, with its options. */
54631
+ programs: array(DishwasherProgramSchema),
54632
+ /** Every option and setting entity the description lists (programs reference these by key). */
54633
+ options: array(DishwasherOptionDescriptorSchema)
54634
+ });
54635
+ DeviceType.Dishwasher, method(object({
54636
+ deviceId: DeviceIdSchema,
54637
+ program: string().min(1).optional(),
54638
+ options: record(string(), DishwasherValueSchema).optional()
54639
+ }), _void(), {
54640
+ kind: "mutation",
54641
+ auth: "protected"
54642
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54643
+ kind: "mutation",
54644
+ auth: "protected"
54645
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54646
+ kind: "mutation",
54647
+ auth: "protected"
54648
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54649
+ kind: "mutation",
54650
+ auth: "protected"
54651
+ }), method(object({
54652
+ deviceId: DeviceIdSchema,
54653
+ program: string().min(1)
54654
+ }), _void(), {
54655
+ kind: "mutation",
54656
+ auth: "protected"
54657
+ }), method(object({
54658
+ deviceId: DeviceIdSchema,
54659
+ on: boolean()
54660
+ }), _void(), {
54661
+ kind: "mutation",
54662
+ auth: "protected"
54663
+ }), method(object({
54664
+ deviceId: DeviceIdSchema,
54665
+ on: boolean()
54666
+ }), _void(), {
54667
+ kind: "mutation",
54668
+ auth: "protected"
54669
+ }), method(object({
54670
+ deviceId: DeviceIdSchema,
54671
+ on: boolean()
54672
+ }), _void(), {
54673
+ kind: "mutation",
54674
+ auth: "protected"
54675
+ }), method(object({
54676
+ deviceId: DeviceIdSchema,
54677
+ on: boolean()
54678
+ }), _void(), {
54679
+ kind: "mutation",
54680
+ auth: "protected"
54681
+ }), method(object({
54682
+ deviceId: DeviceIdSchema,
54683
+ on: boolean()
54684
+ }), _void(), {
54685
+ kind: "mutation",
54686
+ auth: "protected"
54687
+ }), method(object({
54688
+ deviceId: DeviceIdSchema,
54689
+ on: boolean()
54690
+ }), _void(), {
54691
+ kind: "mutation",
54692
+ auth: "protected"
54693
+ }), method(object({
54694
+ deviceId: DeviceIdSchema,
54695
+ on: boolean()
54696
+ }), _void(), {
54697
+ kind: "mutation",
54698
+ auth: "protected"
54699
+ }), method(object({
54700
+ deviceId: DeviceIdSchema,
54701
+ key: string().min(1),
54702
+ value: DishwasherValueSchema
54703
+ }), _void(), {
54704
+ kind: "mutation",
54705
+ auth: "protected"
54706
+ }), method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" });
54427
54707
  object({
54428
54708
  /** Ms epoch of the last press. null = never observed since this provider started. */
54429
54709
  lastPressedAt: number().nullable(),
@@ -54989,6 +55269,13 @@ object({
54989
55269
  lastChangedAt: number()
54990
55270
  });
54991
55271
  DeviceType.Sensor;
55272
+ object({
55273
+ /** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
55274
+ position: number().min(0).max(100).nullable(),
55275
+ /** Ms epoch when the slice was last updated (push or poll). */
55276
+ lastFetchedAt: number()
55277
+ });
55278
+ DeviceType.Thermostat;
54992
55279
  object({
54993
55280
  /** Whether the humidifier is currently on. */
54994
55281
  on: boolean(),
@@ -62055,7 +62342,7 @@ var AccessoryKind = {
62055
62342
  PrivacyMask: DeviceRole.PrivacyMask
62056
62343
  };
62057
62344
  AccessoryKind.Siren, AccessoryKind.Floodlight, AccessoryKind.Spotlight, AccessoryKind.PirSensor, AccessoryKind.Chime, AccessoryKind.Autotrack, AccessoryKind.Nightvision, AccessoryKind.PrivacyMask;
62058
- 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;
62345
+ 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;
62059
62346
  new Set(Object.values(DeviceType));
62060
62347
  Object.freeze({
62061
62348
  "accessories.getStatus": {
@@ -64476,6 +64763,96 @@ Object.freeze({
64476
64763
  addonId: null,
64477
64764
  access: "view"
64478
64765
  },
64766
+ "dishwasher.getOptions": {
64767
+ capName: "dishwasher",
64768
+ capScope: "device",
64769
+ addonId: null,
64770
+ access: "view"
64771
+ },
64772
+ "dishwasher.getStatus": {
64773
+ capName: "dishwasher",
64774
+ capScope: "device",
64775
+ addonId: null,
64776
+ access: "view"
64777
+ },
64778
+ "dishwasher.pause": {
64779
+ capName: "dishwasher",
64780
+ capScope: "device",
64781
+ addonId: null,
64782
+ access: "create"
64783
+ },
64784
+ "dishwasher.resume": {
64785
+ capName: "dishwasher",
64786
+ capScope: "device",
64787
+ addonId: null,
64788
+ access: "create"
64789
+ },
64790
+ "dishwasher.setChildLock": {
64791
+ capName: "dishwasher",
64792
+ capScope: "device",
64793
+ addonId: null,
64794
+ access: "create"
64795
+ },
64796
+ "dishwasher.setExtraDry": {
64797
+ capName: "dishwasher",
64798
+ capScope: "device",
64799
+ addonId: null,
64800
+ access: "create"
64801
+ },
64802
+ "dishwasher.setHalfLoad": {
64803
+ capName: "dishwasher",
64804
+ capScope: "device",
64805
+ addonId: null,
64806
+ access: "create"
64807
+ },
64808
+ "dishwasher.setHygienePlus": {
64809
+ capName: "dishwasher",
64810
+ capScope: "device",
64811
+ addonId: null,
64812
+ access: "create"
64813
+ },
64814
+ "dishwasher.setIntensiveZone": {
64815
+ capName: "dishwasher",
64816
+ capScope: "device",
64817
+ addonId: null,
64818
+ access: "create"
64819
+ },
64820
+ "dishwasher.setOption": {
64821
+ capName: "dishwasher",
64822
+ capScope: "device",
64823
+ addonId: null,
64824
+ access: "create"
64825
+ },
64826
+ "dishwasher.setPower": {
64827
+ capName: "dishwasher",
64828
+ capScope: "device",
64829
+ addonId: null,
64830
+ access: "create"
64831
+ },
64832
+ "dishwasher.setProgram": {
64833
+ capName: "dishwasher",
64834
+ capScope: "device",
64835
+ addonId: null,
64836
+ access: "create"
64837
+ },
64838
+ "dishwasher.setVarioSpeedPlus": {
64839
+ capName: "dishwasher",
64840
+ capScope: "device",
64841
+ addonId: null,
64842
+ access: "create"
64843
+ },
64844
+ "dishwasher.start": {
64845
+ capName: "dishwasher",
64846
+ capScope: "device",
64847
+ addonId: null,
64848
+ access: "create"
64849
+ },
64850
+ "dishwasher.stop": {
64851
+ capName: "dishwasher",
64852
+ capScope: "device",
64853
+ addonId: null,
64854
+ access: "create"
64855
+ },
64479
64856
  "doorbell.getStatus": {
64480
64857
  capName: "doorbell",
64481
64858
  capScope: "device",
@@ -64686,6 +65063,12 @@ Object.freeze({
64686
65063
  addonId: null,
64687
65064
  access: "view"
64688
65065
  },
65066
+ "heatingValve.getStatus": {
65067
+ capName: "heating-valve",
65068
+ capScope: "device",
65069
+ addonId: null,
65070
+ access: "view"
65071
+ },
64689
65072
  "humidifier.getStatus": {
64690
65073
  capName: "humidifier",
64691
65074
  capScope: "device",
@@ -68904,6 +69287,12 @@ Object.freeze({
68904
69287
  addonId: null,
68905
69288
  access: "view"
68906
69289
  },
69290
+ "storageMigration.moverClearance": {
69291
+ capName: "storage-migration",
69292
+ capScope: "system",
69293
+ addonId: null,
69294
+ access: "view"
69295
+ },
68907
69296
  "storageMigration.movers": {
68908
69297
  capName: "storage-migration",
68909
69298
  capScope: "system",
@@ -70273,7 +70662,7 @@ Object.freeze({
70273
70662
  access: "create"
70274
70663
  }
70275
70664
  });
70276
- 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;
70665
+ 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;
70277
70666
  DeviceFeature.BatteryOperated;
70278
70667
  Object.freeze({
70279
70668
  "accessories.getStatus": [{
@@ -71097,6 +71486,81 @@ Object.freeze({
71097
71486
  form: "single",
71098
71487
  optional: false
71099
71488
  }],
71489
+ "dishwasher.getOptions": [{
71490
+ name: "deviceId",
71491
+ form: "single",
71492
+ optional: false
71493
+ }],
71494
+ "dishwasher.getStatus": [{
71495
+ name: "deviceId",
71496
+ form: "single",
71497
+ optional: false
71498
+ }],
71499
+ "dishwasher.pause": [{
71500
+ name: "deviceId",
71501
+ form: "single",
71502
+ optional: false
71503
+ }],
71504
+ "dishwasher.resume": [{
71505
+ name: "deviceId",
71506
+ form: "single",
71507
+ optional: false
71508
+ }],
71509
+ "dishwasher.setChildLock": [{
71510
+ name: "deviceId",
71511
+ form: "single",
71512
+ optional: false
71513
+ }],
71514
+ "dishwasher.setExtraDry": [{
71515
+ name: "deviceId",
71516
+ form: "single",
71517
+ optional: false
71518
+ }],
71519
+ "dishwasher.setHalfLoad": [{
71520
+ name: "deviceId",
71521
+ form: "single",
71522
+ optional: false
71523
+ }],
71524
+ "dishwasher.setHygienePlus": [{
71525
+ name: "deviceId",
71526
+ form: "single",
71527
+ optional: false
71528
+ }],
71529
+ "dishwasher.setIntensiveZone": [{
71530
+ name: "deviceId",
71531
+ form: "single",
71532
+ optional: false
71533
+ }],
71534
+ "dishwasher.setOption": [{
71535
+ name: "deviceId",
71536
+ form: "single",
71537
+ optional: false
71538
+ }],
71539
+ "dishwasher.setPower": [{
71540
+ name: "deviceId",
71541
+ form: "single",
71542
+ optional: false
71543
+ }],
71544
+ "dishwasher.setProgram": [{
71545
+ name: "deviceId",
71546
+ form: "single",
71547
+ optional: false
71548
+ }],
71549
+ "dishwasher.setVarioSpeedPlus": [{
71550
+ name: "deviceId",
71551
+ form: "single",
71552
+ optional: false
71553
+ }],
71554
+ "dishwasher.start": [{
71555
+ name: "deviceId",
71556
+ form: "single",
71557
+ optional: false
71558
+ }],
71559
+ "dishwasher.stop": [{
71560
+ name: "deviceId",
71561
+ form: "single",
71562
+ optional: false
71563
+ }],
71100
71564
  "doorbell.getStatus": [{
71101
71565
  name: "deviceId",
71102
71566
  form: "single",
@@ -71166,6 +71630,11 @@ Object.freeze({
71166
71630
  form: "single",
71167
71631
  optional: false
71168
71632
  }],
71633
+ "heatingValve.getStatus": [{
71634
+ name: "deviceId",
71635
+ form: "single",
71636
+ optional: false
71637
+ }],
71169
71638
  "humidifier.getStatus": [{
71170
71639
  name: "deviceId",
71171
71640
  form: "single",
@@ -73123,6 +73592,9 @@ new Map(Object.entries({
73123
73592
  "wrapper-update-available": "system",
73124
73593
  "backup-completed": "system",
73125
73594
  "export-completed": "system",
73595
+ "alert-critical": "system",
73596
+ "alert-error": "system",
73597
+ "alert-critical-resolved": "system",
73126
73598
  "storage-location-low": "system",
73127
73599
  "storage-location-critical": "system",
73128
73600
  "storage-location-ok": "system",
@@ -73247,6 +73719,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
73247
73719
  "storage-location-ok"
73248
73720
  ]
73249
73721
  },
73722
+ {
73723
+ id: "alerts",
73724
+ family: "system",
73725
+ label: "Alerts",
73726
+ kinds: [
73727
+ "alert-critical",
73728
+ "alert-error",
73729
+ "alert-critical-resolved"
73730
+ ]
73731
+ },
73250
73732
  {
73251
73733
  id: "alarm",
73252
73734
  family: "alarm",
@@ -73291,6 +73773,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
73291
73773
  return [[descriptor.kind, field]];
73292
73774
  })));
73293
73775
  Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
73776
+ object({
73777
+ phase: _enum(["raised", "resolved"]),
73778
+ episodeId: string().min(1),
73779
+ alertId: string().min(1),
73780
+ severity: AlertSeveritySchema,
73781
+ category: string(),
73782
+ title: string(),
73783
+ message: string(),
73784
+ sourceType: string().optional(),
73785
+ sourceId: string().optional(),
73786
+ nodeId: string().optional(),
73787
+ /** The alert's own action link (where the operator acts on it), when it has one. */
73788
+ actionUrl: string().optional(),
73789
+ at: number()
73790
+ });
73294
73791
  var RULE_BODY_ONLY = ["body"];
73295
73792
  var RULE_TEXT = ["title", "body"];
73296
73793
  var BATTERY = ["device-battery-low", "device-battery-normal"];
@@ -73300,6 +73797,11 @@ var TANK = [
73300
73797
  "device-tank-full",
73301
73798
  "device-tank-normal"
73302
73799
  ];
73800
+ var ALERT_EPISODE = [
73801
+ "alert-critical",
73802
+ "alert-error",
73803
+ "alert-critical-resolved"
73804
+ ];
73303
73805
  var UPDATES = [
73304
73806
  "addon-update-available",
73305
73807
  "server-update-available",
@@ -73492,14 +73994,14 @@ var STATE_SUMMARY_VARS = [
73492
73994
  ([...RULE_TEXT], [...CONSUMABLE]),
73493
73995
  ([...RULE_TEXT], [...TANK]),
73494
73996
  [...RULE_TEXT],
73495
- ([...RULE_TEXT], [...UPDATES]),
73496
- ([...RULE_TEXT], [...UPDATES]),
73497
- [...RULE_TEXT],
73997
+ ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
73998
+ ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
73498
73999
  [...RULE_TEXT],
73499
74000
  [...RULE_TEXT],
73500
74001
  [...RULE_TEXT],
73501
74002
  [...RULE_TEXT],
73502
74003
  [...RULE_TEXT],
74004
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73503
74005
  [...RULE_TEXT],
73504
74006
  [...RULE_TEXT],
73505
74007
  [...RULE_TEXT],
@@ -73517,7 +74019,11 @@ var STATE_SUMMARY_VARS = [
73517
74019
  [...RULE_TEXT],
73518
74020
  [...RULE_TEXT],
73519
74021
  [...RULE_TEXT],
73520
- [...RULE_TEXT],
74022
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74023
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74024
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74025
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74026
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73521
74027
  [...RULE_TEXT],
73522
74028
  [...RULE_TEXT],
73523
74029
  [...RULE_TEXT],