@camstack/addon-waste-collections 0.1.8 → 0.1.10

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.
@@ -2,7 +2,7 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
3
  import { spawn } from "node:child_process";
4
4
  import { fileURLToPath } from "node:url";
5
- //#region ../types/dist/event-category-BvOFi6PY.mjs
5
+ //#region ../types/dist/event-category-DOl51-Ij.mjs
6
6
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
7
7
  EventCategory["SystemBoot"] = "system.boot";
8
8
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -81,9 +81,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
81
81
  /**
82
82
  * The node's one-shot runner boot check (D877): planned runners against the
83
83
  * process service, `degraded` when any is failed, refused or missing. The
84
- * alert centre turns it into one alert and a direct critical push.
84
+ * alert centre turns it into one critical alert.
85
85
  */
86
86
  EventCategory["SystemRunnerCheck"] = "system.runner-check";
87
+ /**
88
+ * An alert EPISODE opened or closed, emitted by the alert centre for alerts
89
+ * of severity `critical` or `error` (`AlertEpisodePayload`). The alert
90
+ * centre sends no notification of its own: Notification Center turns this
91
+ * into the `alert-critical` / `alert-error` / `alert-critical-resolved`
92
+ * system-event kinds, and reconciles from the alerts store because a bus
93
+ * event may be dropped (D8, D11).
94
+ */
95
+ EventCategory["AlertEpisode"] = "alert.episode";
87
96
  EventCategory["AddonError"] = "addon.error";
88
97
  EventCategory["AddonPageReady"] = "addon.page-ready";
89
98
  EventCategory["AddonWidgetReady"] = "addon.widget-ready";
@@ -5541,7 +5550,7 @@ var ZodIssueCode = {
5541
5550
  var ZodFirstPartyTypeKind;
5542
5551
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5543
5552
  //#endregion
5544
- //#region ../types/dist/sleep-bZIhUvjd.mjs
5553
+ //#region ../types/dist/sleep-BxjU_fJM.mjs
5545
5554
  /**
5546
5555
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5547
5556
  * window to float samples (D455).
@@ -8787,7 +8796,7 @@ object({
8787
8796
  params: record(string(), union([string(), number()])).optional()
8788
8797
  });
8789
8798
  //#endregion
8790
- //#region ../types/dist/err-msg--2RrYiLO.mjs
8799
+ //#region ../types/dist/err-msg-BXKzRBwg.mjs
8791
8800
  var DeviceType = /* @__PURE__ */ function(DeviceType) {
8792
8801
  DeviceType["Camera"] = "camera";
8793
8802
  DeviceType["Hub"] = "hub";
@@ -8879,6 +8888,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
8879
8888
  * native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
8880
8889
  * integrations sharing the same food/desiccant/hopper surface. */
8881
8890
  DeviceType["PetFeeder"] = "pet-feeder";
8891
+ /** Built-in dishwasher — program lifecycle, door / remote-start gates,
8892
+ * salt and rinse-aid levels. Installed with the `dishwasher` cap.
8893
+ * Sources: native Bosch Home Connect, reusable by similar integrations. */
8894
+ DeviceType["Dishwasher"] = "dishwasher";
8882
8895
  return DeviceType;
8883
8896
  }({});
8884
8897
  var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
@@ -9126,7 +9139,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
9126
9139
  return DeviceRole;
9127
9140
  }({});
9128
9141
  //#endregion
9129
- //#region ../types/dist/composition-DOwQB_Ua.mjs
9142
+ //#region ../types/dist/composition-CB6PMT9p.mjs
9130
9143
  /**
9131
9144
  * The ffmpeg build every CamStack node downloads, per platform and arch.
9132
9145
  *
@@ -13512,8 +13525,20 @@ var AlertSeveritySchema = _enum([
13512
13525
  "info",
13513
13526
  "success",
13514
13527
  "warning",
13515
- "error"
13528
+ "error",
13529
+ "critical"
13516
13530
  ]);
13531
+ var AlertActionSchema = object({
13532
+ label: string(),
13533
+ href: string().optional(),
13534
+ /**
13535
+ * How `href` is followed. Absent / `app`: an admin-ui route (client-side).
13536
+ * `server`: a route the HUB serves (an addon HTTP route such as an OAuth
13537
+ * start) — the browser must leave the SPA with a full navigation, because
13538
+ * the SPA has no such route and would bounce to the home page.
13539
+ */
13540
+ navigation: _enum(["app", "server"]).optional()
13541
+ });
13517
13542
  var AlertStatusSchema = _enum([
13518
13543
  "active",
13519
13544
  "in-progress",
@@ -13531,6 +13556,7 @@ var AlertSchema = object({
13531
13556
  severity: AlertSeveritySchema,
13532
13557
  title: string(),
13533
13558
  message: string(),
13559
+ action: AlertActionSchema.optional(),
13534
13560
  status: AlertStatusSchema,
13535
13561
  progress: number().optional(),
13536
13562
  read: boolean(),
@@ -17675,7 +17701,11 @@ DeviceType.Hub, DeviceDiscoveryStatusSchema.extend({ lastFetchedAt: number().int
17675
17701
  });
17676
17702
  /**
17677
17703
  * `device-adoption` — generic discovery + adoption surface,
17678
- * system-scoped singleton. The de-HA-ified successor to `ha-discovery`:
17704
+ * system-scoped collection (one provider per integration addon), routed
17705
+ * by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
17706
+ * pin model as `connection-test`. The admin UI keeps using
17707
+ * `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
17708
+ * successor to `ha-discovery`:
17679
17709
  * keyed by `integrationId` (the addon resolves integrationId → broker
17680
17710
  * internally) rather than a connection-specific `brokerId`, and it
17681
17711
  * REUSES the shared `DiscoveredChildDevice` candidate type from
@@ -41883,6 +41913,9 @@ var NcSystemEventKindSchema = _enum([
41883
41913
  "server-updated",
41884
41914
  "export-completed",
41885
41915
  "backup-completed",
41916
+ "alert-critical",
41917
+ "alert-error",
41918
+ "alert-critical-resolved",
41886
41919
  "camera-online",
41887
41920
  "camera-offline",
41888
41921
  "camera-disabled",
@@ -50915,7 +50948,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
50915
50948
  }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
50916
50949
  kind: "mutation",
50917
50950
  auth: "admin"
50918
- }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
50951
+ }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
50952
+ clear: boolean(),
50953
+ repointLocationId: string().optional()
50954
+ }), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
50919
50955
  kind: "mutation",
50920
50956
  auth: "admin"
50921
50957
  }), method(StorageCleanupInputSchema, object({ jobId: string() }), {
@@ -53465,7 +53501,7 @@ var BatteryStatusSchema = object({
53465
53501
  */
53466
53502
  binary: boolean().optional()
53467
53503
  });
53468
- DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, method(object({
53504
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, method(object({
53469
53505
  deviceId: number(),
53470
53506
  /** Bound on the wait. Sensible range 3000–10000ms. */
53471
53507
  timeoutMs: number().int().min(500).max(3e4).default(8e3)
@@ -54351,6 +54387,250 @@ object({
54351
54387
  deviceId: number(),
54352
54388
  status: DeviceStatusSchema
54353
54389
  });
54390
+ /**
54391
+ * Smart-dishwasher cap — program lifecycle, door / remote-start gates,
54392
+ * consumable levels (salt, rinse aid) and common program options.
54393
+ *
54394
+ * Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
54395
+ * by any integration that exposes the same program / option surface.
54396
+ *
54397
+ * `kind: 'poll'` — cloud REST APIs typically have no push channel; the
54398
+ * provider refreshes the slice on an interval and eagerly after commands.
54399
+ *
54400
+ * UNKNOWN IS NOT OFF. Every field the appliance reports separately is
54401
+ * nullable: `null` means "not known right now" (the appliance has not said,
54402
+ * the link is down, or the description does not carry it) and is never
54403
+ * rendered or exported as `false` / `0`. `availability` says why.
54404
+ */
54405
+ var DishwasherStateSchema = _enum([
54406
+ "idle",
54407
+ "running",
54408
+ "paused",
54409
+ "finished",
54410
+ "error",
54411
+ "unavailable"
54412
+ ]);
54413
+ /**
54414
+ * The appliance's own operation state, uncollapsed. `state` above is the coarse
54415
+ * view for compact surfaces; this is what the appliance said.
54416
+ */
54417
+ var DishwasherOperationStateSchema = _enum([
54418
+ "Inactive",
54419
+ "Ready",
54420
+ "DelayedStart",
54421
+ "Run",
54422
+ "Pause",
54423
+ "ActionRequired",
54424
+ "Finished",
54425
+ "Error",
54426
+ "Aborting"
54427
+ ]);
54428
+ /**
54429
+ * Why fields may be `null`:
54430
+ * - `available` — the link is up and the description is loaded;
54431
+ * - `offline` — the local link is down (values are unknown, not last-known);
54432
+ * - `description-missing` — the link is up but the appliance's description could not
54433
+ * be loaded, so its values cannot be decoded.
54434
+ */
54435
+ var DishwasherAvailabilitySchema = _enum([
54436
+ "available",
54437
+ "offline",
54438
+ "description-missing"
54439
+ ]);
54440
+ var DishwasherConsumableLevelSchema = _enum([
54441
+ "ok",
54442
+ "low",
54443
+ "empty"
54444
+ ]);
54445
+ object({
54446
+ availability: DishwasherAvailabilitySchema,
54447
+ /** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
54448
+ state: DishwasherStateSchema,
54449
+ /** The appliance's operation state as reported; null when not known. */
54450
+ operationState: DishwasherOperationStateSchema.nullable(),
54451
+ /** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
54452
+ program: string().nullable(),
54453
+ /** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
54454
+ selectedProgram: string().nullable(),
54455
+ /** Feature keys of the programs the appliance currently offers — drives the UI selector. */
54456
+ availablePrograms: array(string()),
54457
+ /** Seconds remaining on the active cycle, or null when not running / not known. */
54458
+ remainingSeconds: number().int().nonnegative().nullable(),
54459
+ /** Seconds the delayed start is set to (time until the cycle starts), or null. */
54460
+ delayedStartSeconds: number().int().nonnegative().nullable(),
54461
+ /** Cycle completion 0..100, or null when not applicable. */
54462
+ progressPercent: number().min(0).max(100).nullable(),
54463
+ /** True when the door is reported open; null when the door state is not known. */
54464
+ doorOpen: boolean().nullable(),
54465
+ /** True when the door is latched (locked) during a cycle; null when not reported. */
54466
+ doorLocked: boolean().nullable(),
54467
+ /** True when remote start is allowed (door closed, power on, etc.); null when not known. */
54468
+ remoteStartAllowed: boolean().nullable(),
54469
+ /** True when the appliance accepts remote control now; null when not known. */
54470
+ remoteControlActive: boolean().nullable(),
54471
+ /** True while somebody operates the appliance at its panel; null when not reported. */
54472
+ localControlActive: boolean().nullable(),
54473
+ /** Main power / switched-on state; null when not known. */
54474
+ powerOn: boolean().nullable(),
54475
+ /** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
54476
+ powerState: string().nullable(),
54477
+ saltLevel: DishwasherConsumableLevelSchema.nullable(),
54478
+ rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
54479
+ /** Option states: null when the appliance does not expose the option or has not said. */
54480
+ halfLoad: boolean().nullable(),
54481
+ hygienePlus: boolean().nullable(),
54482
+ /** Extra dry option when the appliance exposes it. */
54483
+ extraDry: boolean().nullable(),
54484
+ /** Intensive zone (lower basket) when the appliance exposes it. */
54485
+ intensiveZone: boolean().nullable(),
54486
+ /** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
54487
+ varioSpeedPlus: boolean().nullable(),
54488
+ /** Child lock (controls disabled on the appliance); null when not known. */
54489
+ childLock: boolean().nullable(),
54490
+ /** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
54491
+ activeEvents: array(string()),
54492
+ /** Numeric error code when the appliance reports one; null otherwise. */
54493
+ errorCode: number().nullable(),
54494
+ /** Name of the raised alert-level event while the appliance is in error; null otherwise. */
54495
+ errorLabel: string().nullable(),
54496
+ /** Ms epoch of the last value received from the appliance; 0 = never. */
54497
+ lastFetchedAt: number()
54498
+ });
54499
+ var DeviceIdSchema = number().int().nonnegative();
54500
+ /** A value a program option or setting can take. */
54501
+ var DishwasherValueSchema = union([
54502
+ boolean(),
54503
+ string(),
54504
+ number()
54505
+ ]);
54506
+ var DishwasherAccessSchema = _enum([
54507
+ "none",
54508
+ "read",
54509
+ "readWrite",
54510
+ "writeOnly",
54511
+ "readStatic"
54512
+ ]);
54513
+ /**
54514
+ * One option or setting the appliance declares, with the constraints its description
54515
+ * gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
54516
+ */
54517
+ var DishwasherOptionDescriptorSchema = object({
54518
+ /** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
54519
+ key: string(),
54520
+ /** Last segment of the key, for display. */
54521
+ name: string(),
54522
+ type: _enum([
54523
+ "boolean",
54524
+ "number",
54525
+ "enum",
54526
+ "string"
54527
+ ]),
54528
+ access: DishwasherAccessSchema,
54529
+ /** The appliance reports this entity as currently available. */
54530
+ available: boolean(),
54531
+ /** Unit the description declares for a number; null when it declares none. */
54532
+ unit: string().nullable(),
54533
+ min: number().nullable(),
54534
+ max: number().nullable(),
54535
+ step: number().nullable(),
54536
+ /** Allowed members of an enum; null for other types. */
54537
+ enumValues: array(string()).nullable(),
54538
+ defaultValue: DishwasherValueSchema.nullable()
54539
+ });
54540
+ var DishwasherProgramSchema = object({
54541
+ /** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
54542
+ key: string(),
54543
+ name: string(),
54544
+ /** The appliance currently offers this program. */
54545
+ available: boolean(),
54546
+ /** The options this program lists, with the program-level access / availability / default. */
54547
+ options: array(DishwasherOptionDescriptorSchema)
54548
+ });
54549
+ var DishwasherOptionsSchema = object({
54550
+ availability: DishwasherAvailabilitySchema,
54551
+ /** What the appliance can be told to do, from the commands its description declares. */
54552
+ supportsStart: boolean(),
54553
+ supportsPause: boolean(),
54554
+ supportsResume: boolean(),
54555
+ supportsStop: boolean(),
54556
+ supportsPower: boolean(),
54557
+ /** Every program the description lists, with its options. */
54558
+ programs: array(DishwasherProgramSchema),
54559
+ /** Every option and setting entity the description lists (programs reference these by key). */
54560
+ options: array(DishwasherOptionDescriptorSchema)
54561
+ });
54562
+ DeviceType.Dishwasher, method(object({
54563
+ deviceId: DeviceIdSchema,
54564
+ program: string().min(1).optional(),
54565
+ options: record(string(), DishwasherValueSchema).optional()
54566
+ }), _void(), {
54567
+ kind: "mutation",
54568
+ auth: "protected"
54569
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54570
+ kind: "mutation",
54571
+ auth: "protected"
54572
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54573
+ kind: "mutation",
54574
+ auth: "protected"
54575
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54576
+ kind: "mutation",
54577
+ auth: "protected"
54578
+ }), method(object({
54579
+ deviceId: DeviceIdSchema,
54580
+ program: string().min(1)
54581
+ }), _void(), {
54582
+ kind: "mutation",
54583
+ auth: "protected"
54584
+ }), method(object({
54585
+ deviceId: DeviceIdSchema,
54586
+ on: boolean()
54587
+ }), _void(), {
54588
+ kind: "mutation",
54589
+ auth: "protected"
54590
+ }), method(object({
54591
+ deviceId: DeviceIdSchema,
54592
+ on: boolean()
54593
+ }), _void(), {
54594
+ kind: "mutation",
54595
+ auth: "protected"
54596
+ }), method(object({
54597
+ deviceId: DeviceIdSchema,
54598
+ on: boolean()
54599
+ }), _void(), {
54600
+ kind: "mutation",
54601
+ auth: "protected"
54602
+ }), method(object({
54603
+ deviceId: DeviceIdSchema,
54604
+ on: boolean()
54605
+ }), _void(), {
54606
+ kind: "mutation",
54607
+ auth: "protected"
54608
+ }), method(object({
54609
+ deviceId: DeviceIdSchema,
54610
+ on: boolean()
54611
+ }), _void(), {
54612
+ kind: "mutation",
54613
+ auth: "protected"
54614
+ }), method(object({
54615
+ deviceId: DeviceIdSchema,
54616
+ on: boolean()
54617
+ }), _void(), {
54618
+ kind: "mutation",
54619
+ auth: "protected"
54620
+ }), method(object({
54621
+ deviceId: DeviceIdSchema,
54622
+ on: boolean()
54623
+ }), _void(), {
54624
+ kind: "mutation",
54625
+ auth: "protected"
54626
+ }), method(object({
54627
+ deviceId: DeviceIdSchema,
54628
+ key: string().min(1),
54629
+ value: DishwasherValueSchema
54630
+ }), _void(), {
54631
+ kind: "mutation",
54632
+ auth: "protected"
54633
+ }), method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" });
54354
54634
  object({
54355
54635
  /** Ms epoch of the last press. null = never observed since this provider started. */
54356
54636
  lastPressedAt: number().nullable(),
@@ -54916,6 +55196,13 @@ object({
54916
55196
  lastChangedAt: number()
54917
55197
  });
54918
55198
  DeviceType.Sensor;
55199
+ object({
55200
+ /** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
55201
+ position: number().min(0).max(100).nullable(),
55202
+ /** Ms epoch when the slice was last updated (push or poll). */
55203
+ lastFetchedAt: number()
55204
+ });
55205
+ DeviceType.Thermostat;
54919
55206
  object({
54920
55207
  /** Whether the humidifier is currently on. */
54921
55208
  on: boolean(),
@@ -61982,7 +62269,7 @@ var AccessoryKind = {
61982
62269
  PrivacyMask: DeviceRole.PrivacyMask
61983
62270
  };
61984
62271
  AccessoryKind.Siren, AccessoryKind.Floodlight, AccessoryKind.Spotlight, AccessoryKind.PirSensor, AccessoryKind.Chime, AccessoryKind.Autotrack, AccessoryKind.Nightvision, AccessoryKind.PrivacyMask;
61985
- 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;
62272
+ 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;
61986
62273
  new Set(Object.values(DeviceType));
61987
62274
  Object.freeze({
61988
62275
  "accessories.getStatus": {
@@ -64403,6 +64690,96 @@ Object.freeze({
64403
64690
  addonId: null,
64404
64691
  access: "view"
64405
64692
  },
64693
+ "dishwasher.getOptions": {
64694
+ capName: "dishwasher",
64695
+ capScope: "device",
64696
+ addonId: null,
64697
+ access: "view"
64698
+ },
64699
+ "dishwasher.getStatus": {
64700
+ capName: "dishwasher",
64701
+ capScope: "device",
64702
+ addonId: null,
64703
+ access: "view"
64704
+ },
64705
+ "dishwasher.pause": {
64706
+ capName: "dishwasher",
64707
+ capScope: "device",
64708
+ addonId: null,
64709
+ access: "create"
64710
+ },
64711
+ "dishwasher.resume": {
64712
+ capName: "dishwasher",
64713
+ capScope: "device",
64714
+ addonId: null,
64715
+ access: "create"
64716
+ },
64717
+ "dishwasher.setChildLock": {
64718
+ capName: "dishwasher",
64719
+ capScope: "device",
64720
+ addonId: null,
64721
+ access: "create"
64722
+ },
64723
+ "dishwasher.setExtraDry": {
64724
+ capName: "dishwasher",
64725
+ capScope: "device",
64726
+ addonId: null,
64727
+ access: "create"
64728
+ },
64729
+ "dishwasher.setHalfLoad": {
64730
+ capName: "dishwasher",
64731
+ capScope: "device",
64732
+ addonId: null,
64733
+ access: "create"
64734
+ },
64735
+ "dishwasher.setHygienePlus": {
64736
+ capName: "dishwasher",
64737
+ capScope: "device",
64738
+ addonId: null,
64739
+ access: "create"
64740
+ },
64741
+ "dishwasher.setIntensiveZone": {
64742
+ capName: "dishwasher",
64743
+ capScope: "device",
64744
+ addonId: null,
64745
+ access: "create"
64746
+ },
64747
+ "dishwasher.setOption": {
64748
+ capName: "dishwasher",
64749
+ capScope: "device",
64750
+ addonId: null,
64751
+ access: "create"
64752
+ },
64753
+ "dishwasher.setPower": {
64754
+ capName: "dishwasher",
64755
+ capScope: "device",
64756
+ addonId: null,
64757
+ access: "create"
64758
+ },
64759
+ "dishwasher.setProgram": {
64760
+ capName: "dishwasher",
64761
+ capScope: "device",
64762
+ addonId: null,
64763
+ access: "create"
64764
+ },
64765
+ "dishwasher.setVarioSpeedPlus": {
64766
+ capName: "dishwasher",
64767
+ capScope: "device",
64768
+ addonId: null,
64769
+ access: "create"
64770
+ },
64771
+ "dishwasher.start": {
64772
+ capName: "dishwasher",
64773
+ capScope: "device",
64774
+ addonId: null,
64775
+ access: "create"
64776
+ },
64777
+ "dishwasher.stop": {
64778
+ capName: "dishwasher",
64779
+ capScope: "device",
64780
+ addonId: null,
64781
+ access: "create"
64782
+ },
64406
64783
  "doorbell.getStatus": {
64407
64784
  capName: "doorbell",
64408
64785
  capScope: "device",
@@ -64613,6 +64990,12 @@ Object.freeze({
64613
64990
  addonId: null,
64614
64991
  access: "view"
64615
64992
  },
64993
+ "heatingValve.getStatus": {
64994
+ capName: "heating-valve",
64995
+ capScope: "device",
64996
+ addonId: null,
64997
+ access: "view"
64998
+ },
64616
64999
  "humidifier.getStatus": {
64617
65000
  capName: "humidifier",
64618
65001
  capScope: "device",
@@ -68831,6 +69214,12 @@ Object.freeze({
68831
69214
  addonId: null,
68832
69215
  access: "view"
68833
69216
  },
69217
+ "storageMigration.moverClearance": {
69218
+ capName: "storage-migration",
69219
+ capScope: "system",
69220
+ addonId: null,
69221
+ access: "view"
69222
+ },
68834
69223
  "storageMigration.movers": {
68835
69224
  capName: "storage-migration",
68836
69225
  capScope: "system",
@@ -70200,7 +70589,7 @@ Object.freeze({
70200
70589
  access: "create"
70201
70590
  }
70202
70591
  });
70203
- 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;
70592
+ 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;
70204
70593
  DeviceFeature.BatteryOperated;
70205
70594
  Object.freeze({
70206
70595
  "accessories.getStatus": [{
@@ -71024,6 +71413,81 @@ Object.freeze({
71024
71413
  form: "single",
71025
71414
  optional: false
71026
71415
  }],
71416
+ "dishwasher.getOptions": [{
71417
+ name: "deviceId",
71418
+ form: "single",
71419
+ optional: false
71420
+ }],
71421
+ "dishwasher.getStatus": [{
71422
+ name: "deviceId",
71423
+ form: "single",
71424
+ optional: false
71425
+ }],
71426
+ "dishwasher.pause": [{
71427
+ name: "deviceId",
71428
+ form: "single",
71429
+ optional: false
71430
+ }],
71431
+ "dishwasher.resume": [{
71432
+ name: "deviceId",
71433
+ form: "single",
71434
+ optional: false
71435
+ }],
71436
+ "dishwasher.setChildLock": [{
71437
+ name: "deviceId",
71438
+ form: "single",
71439
+ optional: false
71440
+ }],
71441
+ "dishwasher.setExtraDry": [{
71442
+ name: "deviceId",
71443
+ form: "single",
71444
+ optional: false
71445
+ }],
71446
+ "dishwasher.setHalfLoad": [{
71447
+ name: "deviceId",
71448
+ form: "single",
71449
+ optional: false
71450
+ }],
71451
+ "dishwasher.setHygienePlus": [{
71452
+ name: "deviceId",
71453
+ form: "single",
71454
+ optional: false
71455
+ }],
71456
+ "dishwasher.setIntensiveZone": [{
71457
+ name: "deviceId",
71458
+ form: "single",
71459
+ optional: false
71460
+ }],
71461
+ "dishwasher.setOption": [{
71462
+ name: "deviceId",
71463
+ form: "single",
71464
+ optional: false
71465
+ }],
71466
+ "dishwasher.setPower": [{
71467
+ name: "deviceId",
71468
+ form: "single",
71469
+ optional: false
71470
+ }],
71471
+ "dishwasher.setProgram": [{
71472
+ name: "deviceId",
71473
+ form: "single",
71474
+ optional: false
71475
+ }],
71476
+ "dishwasher.setVarioSpeedPlus": [{
71477
+ name: "deviceId",
71478
+ form: "single",
71479
+ optional: false
71480
+ }],
71481
+ "dishwasher.start": [{
71482
+ name: "deviceId",
71483
+ form: "single",
71484
+ optional: false
71485
+ }],
71486
+ "dishwasher.stop": [{
71487
+ name: "deviceId",
71488
+ form: "single",
71489
+ optional: false
71490
+ }],
71027
71491
  "doorbell.getStatus": [{
71028
71492
  name: "deviceId",
71029
71493
  form: "single",
@@ -71093,6 +71557,11 @@ Object.freeze({
71093
71557
  form: "single",
71094
71558
  optional: false
71095
71559
  }],
71560
+ "heatingValve.getStatus": [{
71561
+ name: "deviceId",
71562
+ form: "single",
71563
+ optional: false
71564
+ }],
71096
71565
  "humidifier.getStatus": [{
71097
71566
  name: "deviceId",
71098
71567
  form: "single",
@@ -73050,6 +73519,9 @@ new Map(Object.entries({
73050
73519
  "wrapper-update-available": "system",
73051
73520
  "backup-completed": "system",
73052
73521
  "export-completed": "system",
73522
+ "alert-critical": "system",
73523
+ "alert-error": "system",
73524
+ "alert-critical-resolved": "system",
73053
73525
  "storage-location-low": "system",
73054
73526
  "storage-location-critical": "system",
73055
73527
  "storage-location-ok": "system",
@@ -73174,6 +73646,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
73174
73646
  "storage-location-ok"
73175
73647
  ]
73176
73648
  },
73649
+ {
73650
+ id: "alerts",
73651
+ family: "system",
73652
+ label: "Alerts",
73653
+ kinds: [
73654
+ "alert-critical",
73655
+ "alert-error",
73656
+ "alert-critical-resolved"
73657
+ ]
73658
+ },
73177
73659
  {
73178
73660
  id: "alarm",
73179
73661
  family: "alarm",
@@ -73218,6 +73700,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
73218
73700
  return [[descriptor.kind, field]];
73219
73701
  })));
73220
73702
  Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
73703
+ object({
73704
+ phase: _enum(["raised", "resolved"]),
73705
+ episodeId: string().min(1),
73706
+ alertId: string().min(1),
73707
+ severity: AlertSeveritySchema,
73708
+ category: string(),
73709
+ title: string(),
73710
+ message: string(),
73711
+ sourceType: string().optional(),
73712
+ sourceId: string().optional(),
73713
+ nodeId: string().optional(),
73714
+ /** The alert's own action link (where the operator acts on it), when it has one. */
73715
+ actionUrl: string().optional(),
73716
+ at: number()
73717
+ });
73221
73718
  var RULE_BODY_ONLY = ["body"];
73222
73719
  var RULE_TEXT = ["title", "body"];
73223
73720
  var BATTERY = ["device-battery-low", "device-battery-normal"];
@@ -73227,6 +73724,11 @@ var TANK = [
73227
73724
  "device-tank-full",
73228
73725
  "device-tank-normal"
73229
73726
  ];
73727
+ var ALERT_EPISODE = [
73728
+ "alert-critical",
73729
+ "alert-error",
73730
+ "alert-critical-resolved"
73731
+ ];
73230
73732
  var UPDATES = [
73231
73733
  "addon-update-available",
73232
73734
  "server-update-available",
@@ -73419,14 +73921,14 @@ var STATE_SUMMARY_VARS = [
73419
73921
  ([...RULE_TEXT], [...CONSUMABLE]),
73420
73922
  ([...RULE_TEXT], [...TANK]),
73421
73923
  [...RULE_TEXT],
73422
- ([...RULE_TEXT], [...UPDATES]),
73423
- ([...RULE_TEXT], [...UPDATES]),
73424
- [...RULE_TEXT],
73924
+ ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
73925
+ ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
73425
73926
  [...RULE_TEXT],
73426
73927
  [...RULE_TEXT],
73427
73928
  [...RULE_TEXT],
73428
73929
  [...RULE_TEXT],
73429
73930
  [...RULE_TEXT],
73931
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73430
73932
  [...RULE_TEXT],
73431
73933
  [...RULE_TEXT],
73432
73934
  [...RULE_TEXT],
@@ -73444,7 +73946,11 @@ var STATE_SUMMARY_VARS = [
73444
73946
  [...RULE_TEXT],
73445
73947
  [...RULE_TEXT],
73446
73948
  [...RULE_TEXT],
73447
- [...RULE_TEXT],
73949
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73950
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73951
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73952
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73953
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73448
73954
  [...RULE_TEXT],
73449
73955
  [...RULE_TEXT],
73450
73956
  [...RULE_TEXT],