@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.
@@ -46,7 +46,7 @@ let node_fs = require("node:fs");
46
46
  node_fs = __toESM(node_fs);
47
47
  let node_path = require("node:path");
48
48
  node_path = __toESM(node_path);
49
- //#region ../types/dist/event-category-BvOFi6PY.mjs
49
+ //#region ../types/dist/event-category-DOl51-Ij.mjs
50
50
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
51
51
  EventCategory["SystemBoot"] = "system.boot";
52
52
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -125,9 +125,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
125
125
  /**
126
126
  * The node's one-shot runner boot check (D877): planned runners against the
127
127
  * process service, `degraded` when any is failed, refused or missing. The
128
- * alert centre turns it into one alert and a direct critical push.
128
+ * alert centre turns it into one critical alert.
129
129
  */
130
130
  EventCategory["SystemRunnerCheck"] = "system.runner-check";
131
+ /**
132
+ * An alert EPISODE opened or closed, emitted by the alert centre for alerts
133
+ * of severity `critical` or `error` (`AlertEpisodePayload`). The alert
134
+ * centre sends no notification of its own: Notification Center turns this
135
+ * into the `alert-critical` / `alert-error` / `alert-critical-resolved`
136
+ * system-event kinds, and reconciles from the alerts store because a bus
137
+ * event may be dropped (D8, D11).
138
+ */
139
+ EventCategory["AlertEpisode"] = "alert.episode";
131
140
  EventCategory["AddonError"] = "addon.error";
132
141
  EventCategory["AddonPageReady"] = "addon.page-ready";
133
142
  EventCategory["AddonWidgetReady"] = "addon.widget-ready";
@@ -5585,7 +5594,7 @@ var ZodIssueCode = {
5585
5594
  var ZodFirstPartyTypeKind;
5586
5595
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5587
5596
  //#endregion
5588
- //#region ../types/dist/sleep-bZIhUvjd.mjs
5597
+ //#region ../types/dist/sleep-BxjU_fJM.mjs
5589
5598
  /**
5590
5599
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5591
5600
  * window to float samples (D455).
@@ -8809,7 +8818,7 @@ object({
8809
8818
  params: record(string(), union([string(), number()])).optional()
8810
8819
  });
8811
8820
  //#endregion
8812
- //#region ../types/dist/err-msg--2RrYiLO.mjs
8821
+ //#region ../types/dist/err-msg-BXKzRBwg.mjs
8813
8822
  var DeviceType = /* @__PURE__ */ function(DeviceType) {
8814
8823
  DeviceType["Camera"] = "camera";
8815
8824
  DeviceType["Hub"] = "hub";
@@ -8901,6 +8910,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
8901
8910
  * native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
8902
8911
  * integrations sharing the same food/desiccant/hopper surface. */
8903
8912
  DeviceType["PetFeeder"] = "pet-feeder";
8913
+ /** Built-in dishwasher — program lifecycle, door / remote-start gates,
8914
+ * salt and rinse-aid levels. Installed with the `dishwasher` cap.
8915
+ * Sources: native Bosch Home Connect, reusable by similar integrations. */
8916
+ DeviceType["Dishwasher"] = "dishwasher";
8904
8917
  return DeviceType;
8905
8918
  }({});
8906
8919
  var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
@@ -9148,7 +9161,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
9148
9161
  return DeviceRole;
9149
9162
  }({});
9150
9163
  //#endregion
9151
- //#region ../types/dist/composition-DOwQB_Ua.mjs
9164
+ //#region ../types/dist/composition-CB6PMT9p.mjs
9152
9165
  /**
9153
9166
  * The ffmpeg build every CamStack node downloads, per platform and arch.
9154
9167
  *
@@ -13534,8 +13547,20 @@ var AlertSeveritySchema = _enum([
13534
13547
  "info",
13535
13548
  "success",
13536
13549
  "warning",
13537
- "error"
13550
+ "error",
13551
+ "critical"
13538
13552
  ]);
13553
+ var AlertActionSchema = object({
13554
+ label: string(),
13555
+ href: string().optional(),
13556
+ /**
13557
+ * How `href` is followed. Absent / `app`: an admin-ui route (client-side).
13558
+ * `server`: a route the HUB serves (an addon HTTP route such as an OAuth
13559
+ * start) — the browser must leave the SPA with a full navigation, because
13560
+ * the SPA has no such route and would bounce to the home page.
13561
+ */
13562
+ navigation: _enum(["app", "server"]).optional()
13563
+ });
13539
13564
  var AlertStatusSchema = _enum([
13540
13565
  "active",
13541
13566
  "in-progress",
@@ -13553,6 +13578,7 @@ var AlertSchema = object({
13553
13578
  severity: AlertSeveritySchema,
13554
13579
  title: string(),
13555
13580
  message: string(),
13581
+ action: AlertActionSchema.optional(),
13556
13582
  status: AlertStatusSchema,
13557
13583
  progress: number().optional(),
13558
13584
  read: boolean(),
@@ -17746,7 +17772,11 @@ DeviceType.Hub, DeviceDiscoveryStatusSchema.extend({ lastFetchedAt: number().int
17746
17772
  });
17747
17773
  /**
17748
17774
  * `device-adoption` — generic discovery + adoption surface,
17749
- * system-scoped singleton. The de-HA-ified successor to `ha-discovery`:
17775
+ * system-scoped collection (one provider per integration addon), routed
17776
+ * by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
17777
+ * pin model as `connection-test`. The admin UI keeps using
17778
+ * `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
17779
+ * successor to `ha-discovery`:
17750
17780
  * keyed by `integrationId` (the addon resolves integrationId → broker
17751
17781
  * internally) rather than a connection-specific `brokerId`, and it
17752
17782
  * REUSES the shared `DiscoveredChildDevice` candidate type from
@@ -41973,6 +42003,9 @@ var NcSystemEventKindSchema = _enum([
41973
42003
  "server-updated",
41974
42004
  "export-completed",
41975
42005
  "backup-completed",
42006
+ "alert-critical",
42007
+ "alert-error",
42008
+ "alert-critical-resolved",
41976
42009
  "camera-online",
41977
42010
  "camera-offline",
41978
42011
  "camera-disabled",
@@ -51005,7 +51038,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
51005
51038
  }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
51006
51039
  kind: "mutation",
51007
51040
  auth: "admin"
51008
- }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
51041
+ }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
51042
+ clear: boolean(),
51043
+ repointLocationId: string().optional()
51044
+ }), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
51009
51045
  kind: "mutation",
51010
51046
  auth: "admin"
51011
51047
  }), method(StorageCleanupInputSchema, object({ jobId: string() }), {
@@ -53555,7 +53591,7 @@ var BatteryStatusSchema = object({
53555
53591
  */
53556
53592
  binary: boolean().optional()
53557
53593
  });
53558
- DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, method(object({
53594
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, method(object({
53559
53595
  deviceId: number(),
53560
53596
  /** Bound on the wait. Sensible range 3000–10000ms. */
53561
53597
  timeoutMs: number().int().min(500).max(3e4).default(8e3)
@@ -54431,6 +54467,250 @@ object({
54431
54467
  deviceId: number(),
54432
54468
  status: DeviceStatusSchema
54433
54469
  });
54470
+ /**
54471
+ * Smart-dishwasher cap — program lifecycle, door / remote-start gates,
54472
+ * consumable levels (salt, rinse aid) and common program options.
54473
+ *
54474
+ * Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
54475
+ * by any integration that exposes the same program / option surface.
54476
+ *
54477
+ * `kind: 'poll'` — cloud REST APIs typically have no push channel; the
54478
+ * provider refreshes the slice on an interval and eagerly after commands.
54479
+ *
54480
+ * UNKNOWN IS NOT OFF. Every field the appliance reports separately is
54481
+ * nullable: `null` means "not known right now" (the appliance has not said,
54482
+ * the link is down, or the description does not carry it) and is never
54483
+ * rendered or exported as `false` / `0`. `availability` says why.
54484
+ */
54485
+ var DishwasherStateSchema = _enum([
54486
+ "idle",
54487
+ "running",
54488
+ "paused",
54489
+ "finished",
54490
+ "error",
54491
+ "unavailable"
54492
+ ]);
54493
+ /**
54494
+ * The appliance's own operation state, uncollapsed. `state` above is the coarse
54495
+ * view for compact surfaces; this is what the appliance said.
54496
+ */
54497
+ var DishwasherOperationStateSchema = _enum([
54498
+ "Inactive",
54499
+ "Ready",
54500
+ "DelayedStart",
54501
+ "Run",
54502
+ "Pause",
54503
+ "ActionRequired",
54504
+ "Finished",
54505
+ "Error",
54506
+ "Aborting"
54507
+ ]);
54508
+ /**
54509
+ * Why fields may be `null`:
54510
+ * - `available` — the link is up and the description is loaded;
54511
+ * - `offline` — the local link is down (values are unknown, not last-known);
54512
+ * - `description-missing` — the link is up but the appliance's description could not
54513
+ * be loaded, so its values cannot be decoded.
54514
+ */
54515
+ var DishwasherAvailabilitySchema = _enum([
54516
+ "available",
54517
+ "offline",
54518
+ "description-missing"
54519
+ ]);
54520
+ var DishwasherConsumableLevelSchema = _enum([
54521
+ "ok",
54522
+ "low",
54523
+ "empty"
54524
+ ]);
54525
+ object({
54526
+ availability: DishwasherAvailabilitySchema,
54527
+ /** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
54528
+ state: DishwasherStateSchema,
54529
+ /** The appliance's operation state as reported; null when not known. */
54530
+ operationState: DishwasherOperationStateSchema.nullable(),
54531
+ /** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
54532
+ program: string().nullable(),
54533
+ /** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
54534
+ selectedProgram: string().nullable(),
54535
+ /** Feature keys of the programs the appliance currently offers — drives the UI selector. */
54536
+ availablePrograms: array(string()),
54537
+ /** Seconds remaining on the active cycle, or null when not running / not known. */
54538
+ remainingSeconds: number().int().nonnegative().nullable(),
54539
+ /** Seconds the delayed start is set to (time until the cycle starts), or null. */
54540
+ delayedStartSeconds: number().int().nonnegative().nullable(),
54541
+ /** Cycle completion 0..100, or null when not applicable. */
54542
+ progressPercent: number().min(0).max(100).nullable(),
54543
+ /** True when the door is reported open; null when the door state is not known. */
54544
+ doorOpen: boolean().nullable(),
54545
+ /** True when the door is latched (locked) during a cycle; null when not reported. */
54546
+ doorLocked: boolean().nullable(),
54547
+ /** True when remote start is allowed (door closed, power on, etc.); null when not known. */
54548
+ remoteStartAllowed: boolean().nullable(),
54549
+ /** True when the appliance accepts remote control now; null when not known. */
54550
+ remoteControlActive: boolean().nullable(),
54551
+ /** True while somebody operates the appliance at its panel; null when not reported. */
54552
+ localControlActive: boolean().nullable(),
54553
+ /** Main power / switched-on state; null when not known. */
54554
+ powerOn: boolean().nullable(),
54555
+ /** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
54556
+ powerState: string().nullable(),
54557
+ saltLevel: DishwasherConsumableLevelSchema.nullable(),
54558
+ rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
54559
+ /** Option states: null when the appliance does not expose the option or has not said. */
54560
+ halfLoad: boolean().nullable(),
54561
+ hygienePlus: boolean().nullable(),
54562
+ /** Extra dry option when the appliance exposes it. */
54563
+ extraDry: boolean().nullable(),
54564
+ /** Intensive zone (lower basket) when the appliance exposes it. */
54565
+ intensiveZone: boolean().nullable(),
54566
+ /** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
54567
+ varioSpeedPlus: boolean().nullable(),
54568
+ /** Child lock (controls disabled on the appliance); null when not known. */
54569
+ childLock: boolean().nullable(),
54570
+ /** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
54571
+ activeEvents: array(string()),
54572
+ /** Numeric error code when the appliance reports one; null otherwise. */
54573
+ errorCode: number().nullable(),
54574
+ /** Name of the raised alert-level event while the appliance is in error; null otherwise. */
54575
+ errorLabel: string().nullable(),
54576
+ /** Ms epoch of the last value received from the appliance; 0 = never. */
54577
+ lastFetchedAt: number()
54578
+ });
54579
+ var DeviceIdSchema = number().int().nonnegative();
54580
+ /** A value a program option or setting can take. */
54581
+ var DishwasherValueSchema = union([
54582
+ boolean(),
54583
+ string(),
54584
+ number()
54585
+ ]);
54586
+ var DishwasherAccessSchema = _enum([
54587
+ "none",
54588
+ "read",
54589
+ "readWrite",
54590
+ "writeOnly",
54591
+ "readStatic"
54592
+ ]);
54593
+ /**
54594
+ * One option or setting the appliance declares, with the constraints its description
54595
+ * gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
54596
+ */
54597
+ var DishwasherOptionDescriptorSchema = object({
54598
+ /** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
54599
+ key: string(),
54600
+ /** Last segment of the key, for display. */
54601
+ name: string(),
54602
+ type: _enum([
54603
+ "boolean",
54604
+ "number",
54605
+ "enum",
54606
+ "string"
54607
+ ]),
54608
+ access: DishwasherAccessSchema,
54609
+ /** The appliance reports this entity as currently available. */
54610
+ available: boolean(),
54611
+ /** Unit the description declares for a number; null when it declares none. */
54612
+ unit: string().nullable(),
54613
+ min: number().nullable(),
54614
+ max: number().nullable(),
54615
+ step: number().nullable(),
54616
+ /** Allowed members of an enum; null for other types. */
54617
+ enumValues: array(string()).nullable(),
54618
+ defaultValue: DishwasherValueSchema.nullable()
54619
+ });
54620
+ var DishwasherProgramSchema = object({
54621
+ /** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
54622
+ key: string(),
54623
+ name: string(),
54624
+ /** The appliance currently offers this program. */
54625
+ available: boolean(),
54626
+ /** The options this program lists, with the program-level access / availability / default. */
54627
+ options: array(DishwasherOptionDescriptorSchema)
54628
+ });
54629
+ var DishwasherOptionsSchema = object({
54630
+ availability: DishwasherAvailabilitySchema,
54631
+ /** What the appliance can be told to do, from the commands its description declares. */
54632
+ supportsStart: boolean(),
54633
+ supportsPause: boolean(),
54634
+ supportsResume: boolean(),
54635
+ supportsStop: boolean(),
54636
+ supportsPower: boolean(),
54637
+ /** Every program the description lists, with its options. */
54638
+ programs: array(DishwasherProgramSchema),
54639
+ /** Every option and setting entity the description lists (programs reference these by key). */
54640
+ options: array(DishwasherOptionDescriptorSchema)
54641
+ });
54642
+ DeviceType.Dishwasher, method(object({
54643
+ deviceId: DeviceIdSchema,
54644
+ program: string().min(1).optional(),
54645
+ options: record(string(), DishwasherValueSchema).optional()
54646
+ }), _void(), {
54647
+ kind: "mutation",
54648
+ auth: "protected"
54649
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54650
+ kind: "mutation",
54651
+ auth: "protected"
54652
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54653
+ kind: "mutation",
54654
+ auth: "protected"
54655
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54656
+ kind: "mutation",
54657
+ auth: "protected"
54658
+ }), method(object({
54659
+ deviceId: DeviceIdSchema,
54660
+ program: string().min(1)
54661
+ }), _void(), {
54662
+ kind: "mutation",
54663
+ auth: "protected"
54664
+ }), method(object({
54665
+ deviceId: DeviceIdSchema,
54666
+ on: boolean()
54667
+ }), _void(), {
54668
+ kind: "mutation",
54669
+ auth: "protected"
54670
+ }), method(object({
54671
+ deviceId: DeviceIdSchema,
54672
+ on: boolean()
54673
+ }), _void(), {
54674
+ kind: "mutation",
54675
+ auth: "protected"
54676
+ }), method(object({
54677
+ deviceId: DeviceIdSchema,
54678
+ on: boolean()
54679
+ }), _void(), {
54680
+ kind: "mutation",
54681
+ auth: "protected"
54682
+ }), method(object({
54683
+ deviceId: DeviceIdSchema,
54684
+ on: boolean()
54685
+ }), _void(), {
54686
+ kind: "mutation",
54687
+ auth: "protected"
54688
+ }), method(object({
54689
+ deviceId: DeviceIdSchema,
54690
+ on: boolean()
54691
+ }), _void(), {
54692
+ kind: "mutation",
54693
+ auth: "protected"
54694
+ }), method(object({
54695
+ deviceId: DeviceIdSchema,
54696
+ on: boolean()
54697
+ }), _void(), {
54698
+ kind: "mutation",
54699
+ auth: "protected"
54700
+ }), method(object({
54701
+ deviceId: DeviceIdSchema,
54702
+ on: boolean()
54703
+ }), _void(), {
54704
+ kind: "mutation",
54705
+ auth: "protected"
54706
+ }), method(object({
54707
+ deviceId: DeviceIdSchema,
54708
+ key: string().min(1),
54709
+ value: DishwasherValueSchema
54710
+ }), _void(), {
54711
+ kind: "mutation",
54712
+ auth: "protected"
54713
+ }), method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" });
54434
54714
  object({
54435
54715
  /** Ms epoch of the last press. null = never observed since this provider started. */
54436
54716
  lastPressedAt: number().nullable(),
@@ -54996,6 +55276,13 @@ object({
54996
55276
  lastChangedAt: number()
54997
55277
  });
54998
55278
  DeviceType.Sensor;
55279
+ object({
55280
+ /** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
55281
+ position: number().min(0).max(100).nullable(),
55282
+ /** Ms epoch when the slice was last updated (push or poll). */
55283
+ lastFetchedAt: number()
55284
+ });
55285
+ DeviceType.Thermostat;
54999
55286
  object({
55000
55287
  /** Whether the humidifier is currently on. */
55001
55288
  on: boolean(),
@@ -62062,7 +62349,7 @@ var AccessoryKind = {
62062
62349
  PrivacyMask: DeviceRole.PrivacyMask
62063
62350
  };
62064
62351
  AccessoryKind.Siren, AccessoryKind.Floodlight, AccessoryKind.Spotlight, AccessoryKind.PirSensor, AccessoryKind.Chime, AccessoryKind.Autotrack, AccessoryKind.Nightvision, AccessoryKind.PrivacyMask;
62065
- 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;
62352
+ 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;
62066
62353
  new Set(Object.values(DeviceType));
62067
62354
  Object.freeze({
62068
62355
  "accessories.getStatus": {
@@ -64483,6 +64770,96 @@ Object.freeze({
64483
64770
  addonId: null,
64484
64771
  access: "view"
64485
64772
  },
64773
+ "dishwasher.getOptions": {
64774
+ capName: "dishwasher",
64775
+ capScope: "device",
64776
+ addonId: null,
64777
+ access: "view"
64778
+ },
64779
+ "dishwasher.getStatus": {
64780
+ capName: "dishwasher",
64781
+ capScope: "device",
64782
+ addonId: null,
64783
+ access: "view"
64784
+ },
64785
+ "dishwasher.pause": {
64786
+ capName: "dishwasher",
64787
+ capScope: "device",
64788
+ addonId: null,
64789
+ access: "create"
64790
+ },
64791
+ "dishwasher.resume": {
64792
+ capName: "dishwasher",
64793
+ capScope: "device",
64794
+ addonId: null,
64795
+ access: "create"
64796
+ },
64797
+ "dishwasher.setChildLock": {
64798
+ capName: "dishwasher",
64799
+ capScope: "device",
64800
+ addonId: null,
64801
+ access: "create"
64802
+ },
64803
+ "dishwasher.setExtraDry": {
64804
+ capName: "dishwasher",
64805
+ capScope: "device",
64806
+ addonId: null,
64807
+ access: "create"
64808
+ },
64809
+ "dishwasher.setHalfLoad": {
64810
+ capName: "dishwasher",
64811
+ capScope: "device",
64812
+ addonId: null,
64813
+ access: "create"
64814
+ },
64815
+ "dishwasher.setHygienePlus": {
64816
+ capName: "dishwasher",
64817
+ capScope: "device",
64818
+ addonId: null,
64819
+ access: "create"
64820
+ },
64821
+ "dishwasher.setIntensiveZone": {
64822
+ capName: "dishwasher",
64823
+ capScope: "device",
64824
+ addonId: null,
64825
+ access: "create"
64826
+ },
64827
+ "dishwasher.setOption": {
64828
+ capName: "dishwasher",
64829
+ capScope: "device",
64830
+ addonId: null,
64831
+ access: "create"
64832
+ },
64833
+ "dishwasher.setPower": {
64834
+ capName: "dishwasher",
64835
+ capScope: "device",
64836
+ addonId: null,
64837
+ access: "create"
64838
+ },
64839
+ "dishwasher.setProgram": {
64840
+ capName: "dishwasher",
64841
+ capScope: "device",
64842
+ addonId: null,
64843
+ access: "create"
64844
+ },
64845
+ "dishwasher.setVarioSpeedPlus": {
64846
+ capName: "dishwasher",
64847
+ capScope: "device",
64848
+ addonId: null,
64849
+ access: "create"
64850
+ },
64851
+ "dishwasher.start": {
64852
+ capName: "dishwasher",
64853
+ capScope: "device",
64854
+ addonId: null,
64855
+ access: "create"
64856
+ },
64857
+ "dishwasher.stop": {
64858
+ capName: "dishwasher",
64859
+ capScope: "device",
64860
+ addonId: null,
64861
+ access: "create"
64862
+ },
64486
64863
  "doorbell.getStatus": {
64487
64864
  capName: "doorbell",
64488
64865
  capScope: "device",
@@ -64693,6 +65070,12 @@ Object.freeze({
64693
65070
  addonId: null,
64694
65071
  access: "view"
64695
65072
  },
65073
+ "heatingValve.getStatus": {
65074
+ capName: "heating-valve",
65075
+ capScope: "device",
65076
+ addonId: null,
65077
+ access: "view"
65078
+ },
64696
65079
  "humidifier.getStatus": {
64697
65080
  capName: "humidifier",
64698
65081
  capScope: "device",
@@ -68911,6 +69294,12 @@ Object.freeze({
68911
69294
  addonId: null,
68912
69295
  access: "view"
68913
69296
  },
69297
+ "storageMigration.moverClearance": {
69298
+ capName: "storage-migration",
69299
+ capScope: "system",
69300
+ addonId: null,
69301
+ access: "view"
69302
+ },
68914
69303
  "storageMigration.movers": {
68915
69304
  capName: "storage-migration",
68916
69305
  capScope: "system",
@@ -70280,7 +70669,7 @@ Object.freeze({
70280
70669
  access: "create"
70281
70670
  }
70282
70671
  });
70283
- 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;
70672
+ 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;
70284
70673
  DeviceFeature.BatteryOperated;
70285
70674
  Object.freeze({
70286
70675
  "accessories.getStatus": [{
@@ -71104,6 +71493,81 @@ Object.freeze({
71104
71493
  form: "single",
71105
71494
  optional: false
71106
71495
  }],
71496
+ "dishwasher.getOptions": [{
71497
+ name: "deviceId",
71498
+ form: "single",
71499
+ optional: false
71500
+ }],
71501
+ "dishwasher.getStatus": [{
71502
+ name: "deviceId",
71503
+ form: "single",
71504
+ optional: false
71505
+ }],
71506
+ "dishwasher.pause": [{
71507
+ name: "deviceId",
71508
+ form: "single",
71509
+ optional: false
71510
+ }],
71511
+ "dishwasher.resume": [{
71512
+ name: "deviceId",
71513
+ form: "single",
71514
+ optional: false
71515
+ }],
71516
+ "dishwasher.setChildLock": [{
71517
+ name: "deviceId",
71518
+ form: "single",
71519
+ optional: false
71520
+ }],
71521
+ "dishwasher.setExtraDry": [{
71522
+ name: "deviceId",
71523
+ form: "single",
71524
+ optional: false
71525
+ }],
71526
+ "dishwasher.setHalfLoad": [{
71527
+ name: "deviceId",
71528
+ form: "single",
71529
+ optional: false
71530
+ }],
71531
+ "dishwasher.setHygienePlus": [{
71532
+ name: "deviceId",
71533
+ form: "single",
71534
+ optional: false
71535
+ }],
71536
+ "dishwasher.setIntensiveZone": [{
71537
+ name: "deviceId",
71538
+ form: "single",
71539
+ optional: false
71540
+ }],
71541
+ "dishwasher.setOption": [{
71542
+ name: "deviceId",
71543
+ form: "single",
71544
+ optional: false
71545
+ }],
71546
+ "dishwasher.setPower": [{
71547
+ name: "deviceId",
71548
+ form: "single",
71549
+ optional: false
71550
+ }],
71551
+ "dishwasher.setProgram": [{
71552
+ name: "deviceId",
71553
+ form: "single",
71554
+ optional: false
71555
+ }],
71556
+ "dishwasher.setVarioSpeedPlus": [{
71557
+ name: "deviceId",
71558
+ form: "single",
71559
+ optional: false
71560
+ }],
71561
+ "dishwasher.start": [{
71562
+ name: "deviceId",
71563
+ form: "single",
71564
+ optional: false
71565
+ }],
71566
+ "dishwasher.stop": [{
71567
+ name: "deviceId",
71568
+ form: "single",
71569
+ optional: false
71570
+ }],
71107
71571
  "doorbell.getStatus": [{
71108
71572
  name: "deviceId",
71109
71573
  form: "single",
@@ -71173,6 +71637,11 @@ Object.freeze({
71173
71637
  form: "single",
71174
71638
  optional: false
71175
71639
  }],
71640
+ "heatingValve.getStatus": [{
71641
+ name: "deviceId",
71642
+ form: "single",
71643
+ optional: false
71644
+ }],
71176
71645
  "humidifier.getStatus": [{
71177
71646
  name: "deviceId",
71178
71647
  form: "single",
@@ -73130,6 +73599,9 @@ new Map(Object.entries({
73130
73599
  "wrapper-update-available": "system",
73131
73600
  "backup-completed": "system",
73132
73601
  "export-completed": "system",
73602
+ "alert-critical": "system",
73603
+ "alert-error": "system",
73604
+ "alert-critical-resolved": "system",
73133
73605
  "storage-location-low": "system",
73134
73606
  "storage-location-critical": "system",
73135
73607
  "storage-location-ok": "system",
@@ -73254,6 +73726,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
73254
73726
  "storage-location-ok"
73255
73727
  ]
73256
73728
  },
73729
+ {
73730
+ id: "alerts",
73731
+ family: "system",
73732
+ label: "Alerts",
73733
+ kinds: [
73734
+ "alert-critical",
73735
+ "alert-error",
73736
+ "alert-critical-resolved"
73737
+ ]
73738
+ },
73257
73739
  {
73258
73740
  id: "alarm",
73259
73741
  family: "alarm",
@@ -73298,6 +73780,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
73298
73780
  return [[descriptor.kind, field]];
73299
73781
  })));
73300
73782
  Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
73783
+ object({
73784
+ phase: _enum(["raised", "resolved"]),
73785
+ episodeId: string().min(1),
73786
+ alertId: string().min(1),
73787
+ severity: AlertSeveritySchema,
73788
+ category: string(),
73789
+ title: string(),
73790
+ message: string(),
73791
+ sourceType: string().optional(),
73792
+ sourceId: string().optional(),
73793
+ nodeId: string().optional(),
73794
+ /** The alert's own action link (where the operator acts on it), when it has one. */
73795
+ actionUrl: string().optional(),
73796
+ at: number()
73797
+ });
73301
73798
  var RULE_BODY_ONLY = ["body"];
73302
73799
  var RULE_TEXT = ["title", "body"];
73303
73800
  var BATTERY = ["device-battery-low", "device-battery-normal"];
@@ -73307,6 +73804,11 @@ var TANK = [
73307
73804
  "device-tank-full",
73308
73805
  "device-tank-normal"
73309
73806
  ];
73807
+ var ALERT_EPISODE = [
73808
+ "alert-critical",
73809
+ "alert-error",
73810
+ "alert-critical-resolved"
73811
+ ];
73310
73812
  var UPDATES = [
73311
73813
  "addon-update-available",
73312
73814
  "server-update-available",
@@ -73499,14 +74001,14 @@ var STATE_SUMMARY_VARS = [
73499
74001
  ([...RULE_TEXT], [...CONSUMABLE]),
73500
74002
  ([...RULE_TEXT], [...TANK]),
73501
74003
  [...RULE_TEXT],
73502
- ([...RULE_TEXT], [...UPDATES]),
73503
- ([...RULE_TEXT], [...UPDATES]),
73504
- [...RULE_TEXT],
74004
+ ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
74005
+ ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
73505
74006
  [...RULE_TEXT],
73506
74007
  [...RULE_TEXT],
73507
74008
  [...RULE_TEXT],
73508
74009
  [...RULE_TEXT],
73509
74010
  [...RULE_TEXT],
74011
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73510
74012
  [...RULE_TEXT],
73511
74013
  [...RULE_TEXT],
73512
74014
  [...RULE_TEXT],
@@ -73524,7 +74026,11 @@ var STATE_SUMMARY_VARS = [
73524
74026
  [...RULE_TEXT],
73525
74027
  [...RULE_TEXT],
73526
74028
  [...RULE_TEXT],
73527
- [...RULE_TEXT],
74029
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74030
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74031
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74032
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
74033
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73528
74034
  [...RULE_TEXT],
73529
74035
  [...RULE_TEXT],
73530
74036
  [...RULE_TEXT],