@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.
@@ -6,7 +6,7 @@ let node_fs = require("node:fs");
6
6
  let node_path = require("node:path");
7
7
  let node_child_process = require("node:child_process");
8
8
  let node_url = require("node:url");
9
- //#region ../types/dist/event-category-BvOFi6PY.mjs
9
+ //#region ../types/dist/event-category-DOl51-Ij.mjs
10
10
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
11
11
  EventCategory["SystemBoot"] = "system.boot";
12
12
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -85,9 +85,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
85
85
  /**
86
86
  * The node's one-shot runner boot check (D877): planned runners against the
87
87
  * process service, `degraded` when any is failed, refused or missing. The
88
- * alert centre turns it into one alert and a direct critical push.
88
+ * alert centre turns it into one critical alert.
89
89
  */
90
90
  EventCategory["SystemRunnerCheck"] = "system.runner-check";
91
+ /**
92
+ * An alert EPISODE opened or closed, emitted by the alert centre for alerts
93
+ * of severity `critical` or `error` (`AlertEpisodePayload`). The alert
94
+ * centre sends no notification of its own: Notification Center turns this
95
+ * into the `alert-critical` / `alert-error` / `alert-critical-resolved`
96
+ * system-event kinds, and reconciles from the alerts store because a bus
97
+ * event may be dropped (D8, D11).
98
+ */
99
+ EventCategory["AlertEpisode"] = "alert.episode";
91
100
  EventCategory["AddonError"] = "addon.error";
92
101
  EventCategory["AddonPageReady"] = "addon.page-ready";
93
102
  EventCategory["AddonWidgetReady"] = "addon.widget-ready";
@@ -5545,7 +5554,7 @@ var ZodIssueCode = {
5545
5554
  var ZodFirstPartyTypeKind;
5546
5555
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5547
5556
  //#endregion
5548
- //#region ../types/dist/sleep-bZIhUvjd.mjs
5557
+ //#region ../types/dist/sleep-BxjU_fJM.mjs
5549
5558
  /**
5550
5559
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5551
5560
  * window to float samples (D455).
@@ -8791,7 +8800,7 @@ object({
8791
8800
  params: record(string(), union([string(), number()])).optional()
8792
8801
  });
8793
8802
  //#endregion
8794
- //#region ../types/dist/err-msg--2RrYiLO.mjs
8803
+ //#region ../types/dist/err-msg-BXKzRBwg.mjs
8795
8804
  var DeviceType = /* @__PURE__ */ function(DeviceType) {
8796
8805
  DeviceType["Camera"] = "camera";
8797
8806
  DeviceType["Hub"] = "hub";
@@ -8883,6 +8892,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
8883
8892
  * native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
8884
8893
  * integrations sharing the same food/desiccant/hopper surface. */
8885
8894
  DeviceType["PetFeeder"] = "pet-feeder";
8895
+ /** Built-in dishwasher — program lifecycle, door / remote-start gates,
8896
+ * salt and rinse-aid levels. Installed with the `dishwasher` cap.
8897
+ * Sources: native Bosch Home Connect, reusable by similar integrations. */
8898
+ DeviceType["Dishwasher"] = "dishwasher";
8886
8899
  return DeviceType;
8887
8900
  }({});
8888
8901
  var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
@@ -9130,7 +9143,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
9130
9143
  return DeviceRole;
9131
9144
  }({});
9132
9145
  //#endregion
9133
- //#region ../types/dist/composition-DOwQB_Ua.mjs
9146
+ //#region ../types/dist/composition-CB6PMT9p.mjs
9134
9147
  /**
9135
9148
  * The ffmpeg build every CamStack node downloads, per platform and arch.
9136
9149
  *
@@ -13516,8 +13529,20 @@ var AlertSeveritySchema = _enum([
13516
13529
  "info",
13517
13530
  "success",
13518
13531
  "warning",
13519
- "error"
13532
+ "error",
13533
+ "critical"
13520
13534
  ]);
13535
+ var AlertActionSchema = object({
13536
+ label: string(),
13537
+ href: string().optional(),
13538
+ /**
13539
+ * How `href` is followed. Absent / `app`: an admin-ui route (client-side).
13540
+ * `server`: a route the HUB serves (an addon HTTP route such as an OAuth
13541
+ * start) — the browser must leave the SPA with a full navigation, because
13542
+ * the SPA has no such route and would bounce to the home page.
13543
+ */
13544
+ navigation: _enum(["app", "server"]).optional()
13545
+ });
13521
13546
  var AlertStatusSchema = _enum([
13522
13547
  "active",
13523
13548
  "in-progress",
@@ -13535,6 +13560,7 @@ var AlertSchema = object({
13535
13560
  severity: AlertSeveritySchema,
13536
13561
  title: string(),
13537
13562
  message: string(),
13563
+ action: AlertActionSchema.optional(),
13538
13564
  status: AlertStatusSchema,
13539
13565
  progress: number().optional(),
13540
13566
  read: boolean(),
@@ -17679,7 +17705,11 @@ DeviceType.Hub, DeviceDiscoveryStatusSchema.extend({ lastFetchedAt: number().int
17679
17705
  });
17680
17706
  /**
17681
17707
  * `device-adoption` — generic discovery + adoption surface,
17682
- * system-scoped singleton. The de-HA-ified successor to `ha-discovery`:
17708
+ * system-scoped collection (one provider per integration addon), routed
17709
+ * by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
17710
+ * pin model as `connection-test`. The admin UI keeps using
17711
+ * `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
17712
+ * successor to `ha-discovery`:
17683
17713
  * keyed by `integrationId` (the addon resolves integrationId → broker
17684
17714
  * internally) rather than a connection-specific `brokerId`, and it
17685
17715
  * REUSES the shared `DiscoveredChildDevice` candidate type from
@@ -41887,6 +41917,9 @@ var NcSystemEventKindSchema = _enum([
41887
41917
  "server-updated",
41888
41918
  "export-completed",
41889
41919
  "backup-completed",
41920
+ "alert-critical",
41921
+ "alert-error",
41922
+ "alert-critical-resolved",
41890
41923
  "camera-online",
41891
41924
  "camera-offline",
41892
41925
  "camera-disabled",
@@ -50919,7 +50952,10 @@ method(StorageMigrationInputSchema, StorageMigrationPlanSchema, { auth: "admin"
50919
50952
  }), method(object({ jobId: string().optional() }), StorageMigrationJobSchema.nullable(), { auth: "admin" }), method(object({ jobId: string() }), object({ cancelled: boolean() }), {
50920
50953
  kind: "mutation",
50921
50954
  auth: "admin"
50922
- }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
50955
+ }), method(object({}), array(StorageMigrationMoverSchema).readonly(), { auth: "admin" }), method(object({ locationIds: array(string()).readonly() }), object({
50956
+ clear: boolean(),
50957
+ repointLocationId: string().optional()
50958
+ }), { auth: "admin" }), method(object({}), array(StorageMigrationResidueSchema).readonly(), { auth: "admin" }), method(StorageMigrationDrainInputSchema, object({ jobId: string() }), {
50923
50959
  kind: "mutation",
50924
50960
  auth: "admin"
50925
50961
  }), method(StorageCleanupInputSchema, object({ jobId: string() }), {
@@ -53469,7 +53505,7 @@ var BatteryStatusSchema = object({
53469
53505
  */
53470
53506
  binary: boolean().optional()
53471
53507
  });
53472
- DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, method(object({
53508
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, method(object({
53473
53509
  deviceId: number(),
53474
53510
  /** Bound on the wait. Sensible range 3000–10000ms. */
53475
53511
  timeoutMs: number().int().min(500).max(3e4).default(8e3)
@@ -54355,6 +54391,250 @@ object({
54355
54391
  deviceId: number(),
54356
54392
  status: DeviceStatusSchema
54357
54393
  });
54394
+ /**
54395
+ * Smart-dishwasher cap — program lifecycle, door / remote-start gates,
54396
+ * consumable levels (salt, rinse aid) and common program options.
54397
+ *
54398
+ * Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
54399
+ * by any integration that exposes the same program / option surface.
54400
+ *
54401
+ * `kind: 'poll'` — cloud REST APIs typically have no push channel; the
54402
+ * provider refreshes the slice on an interval and eagerly after commands.
54403
+ *
54404
+ * UNKNOWN IS NOT OFF. Every field the appliance reports separately is
54405
+ * nullable: `null` means "not known right now" (the appliance has not said,
54406
+ * the link is down, or the description does not carry it) and is never
54407
+ * rendered or exported as `false` / `0`. `availability` says why.
54408
+ */
54409
+ var DishwasherStateSchema = _enum([
54410
+ "idle",
54411
+ "running",
54412
+ "paused",
54413
+ "finished",
54414
+ "error",
54415
+ "unavailable"
54416
+ ]);
54417
+ /**
54418
+ * The appliance's own operation state, uncollapsed. `state` above is the coarse
54419
+ * view for compact surfaces; this is what the appliance said.
54420
+ */
54421
+ var DishwasherOperationStateSchema = _enum([
54422
+ "Inactive",
54423
+ "Ready",
54424
+ "DelayedStart",
54425
+ "Run",
54426
+ "Pause",
54427
+ "ActionRequired",
54428
+ "Finished",
54429
+ "Error",
54430
+ "Aborting"
54431
+ ]);
54432
+ /**
54433
+ * Why fields may be `null`:
54434
+ * - `available` — the link is up and the description is loaded;
54435
+ * - `offline` — the local link is down (values are unknown, not last-known);
54436
+ * - `description-missing` — the link is up but the appliance's description could not
54437
+ * be loaded, so its values cannot be decoded.
54438
+ */
54439
+ var DishwasherAvailabilitySchema = _enum([
54440
+ "available",
54441
+ "offline",
54442
+ "description-missing"
54443
+ ]);
54444
+ var DishwasherConsumableLevelSchema = _enum([
54445
+ "ok",
54446
+ "low",
54447
+ "empty"
54448
+ ]);
54449
+ object({
54450
+ availability: DishwasherAvailabilitySchema,
54451
+ /** Coarse state for compact surfaces; `unavailable` whenever the appliance state is not known. */
54452
+ state: DishwasherStateSchema,
54453
+ /** The appliance's operation state as reported; null when not known. */
54454
+ operationState: DishwasherOperationStateSchema.nullable(),
54455
+ /** Feature key of the ACTIVE (running) program, or null when none runs / not known. */
54456
+ program: string().nullable(),
54457
+ /** Feature key of the SELECTED program (what Start would run), or null when none / not known. */
54458
+ selectedProgram: string().nullable(),
54459
+ /** Feature keys of the programs the appliance currently offers — drives the UI selector. */
54460
+ availablePrograms: array(string()),
54461
+ /** Seconds remaining on the active cycle, or null when not running / not known. */
54462
+ remainingSeconds: number().int().nonnegative().nullable(),
54463
+ /** Seconds the delayed start is set to (time until the cycle starts), or null. */
54464
+ delayedStartSeconds: number().int().nonnegative().nullable(),
54465
+ /** Cycle completion 0..100, or null when not applicable. */
54466
+ progressPercent: number().min(0).max(100).nullable(),
54467
+ /** True when the door is reported open; null when the door state is not known. */
54468
+ doorOpen: boolean().nullable(),
54469
+ /** True when the door is latched (locked) during a cycle; null when not reported. */
54470
+ doorLocked: boolean().nullable(),
54471
+ /** True when remote start is allowed (door closed, power on, etc.); null when not known. */
54472
+ remoteStartAllowed: boolean().nullable(),
54473
+ /** True when the appliance accepts remote control now; null when not known. */
54474
+ remoteControlActive: boolean().nullable(),
54475
+ /** True while somebody operates the appliance at its panel; null when not reported. */
54476
+ localControlActive: boolean().nullable(),
54477
+ /** Main power / switched-on state; null when not known. */
54478
+ powerOn: boolean().nullable(),
54479
+ /** The raw power state (`On`, `Off`, `Standby`, …); null when not known. */
54480
+ powerState: string().nullable(),
54481
+ saltLevel: DishwasherConsumableLevelSchema.nullable(),
54482
+ rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
54483
+ /** Option states: null when the appliance does not expose the option or has not said. */
54484
+ halfLoad: boolean().nullable(),
54485
+ hygienePlus: boolean().nullable(),
54486
+ /** Extra dry option when the appliance exposes it. */
54487
+ extraDry: boolean().nullable(),
54488
+ /** Intensive zone (lower basket) when the appliance exposes it. */
54489
+ intensiveZone: boolean().nullable(),
54490
+ /** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
54491
+ varioSpeedPlus: boolean().nullable(),
54492
+ /** Child lock (controls disabled on the appliance); null when not known. */
54493
+ childLock: boolean().nullable(),
54494
+ /** Feature keys of the events currently raised (salt low, rinse aid low, program finished, …). */
54495
+ activeEvents: array(string()),
54496
+ /** Numeric error code when the appliance reports one; null otherwise. */
54497
+ errorCode: number().nullable(),
54498
+ /** Name of the raised alert-level event while the appliance is in error; null otherwise. */
54499
+ errorLabel: string().nullable(),
54500
+ /** Ms epoch of the last value received from the appliance; 0 = never. */
54501
+ lastFetchedAt: number()
54502
+ });
54503
+ var DeviceIdSchema = number().int().nonnegative();
54504
+ /** A value a program option or setting can take. */
54505
+ var DishwasherValueSchema = union([
54506
+ boolean(),
54507
+ string(),
54508
+ number()
54509
+ ]);
54510
+ var DishwasherAccessSchema = _enum([
54511
+ "none",
54512
+ "read",
54513
+ "readWrite",
54514
+ "writeOnly",
54515
+ "readStatic"
54516
+ ]);
54517
+ /**
54518
+ * One option or setting the appliance declares, with the constraints its description
54519
+ * gives. A `readWrite` descriptor that is `available` is what `setOption` accepts.
54520
+ */
54521
+ var DishwasherOptionDescriptorSchema = object({
54522
+ /** Feature key (`Dishcare.Dishwasher.Option.ExtraDry`). */
54523
+ key: string(),
54524
+ /** Last segment of the key, for display. */
54525
+ name: string(),
54526
+ type: _enum([
54527
+ "boolean",
54528
+ "number",
54529
+ "enum",
54530
+ "string"
54531
+ ]),
54532
+ access: DishwasherAccessSchema,
54533
+ /** The appliance reports this entity as currently available. */
54534
+ available: boolean(),
54535
+ /** Unit the description declares for a number; null when it declares none. */
54536
+ unit: string().nullable(),
54537
+ min: number().nullable(),
54538
+ max: number().nullable(),
54539
+ step: number().nullable(),
54540
+ /** Allowed members of an enum; null for other types. */
54541
+ enumValues: array(string()).nullable(),
54542
+ defaultValue: DishwasherValueSchema.nullable()
54543
+ });
54544
+ var DishwasherProgramSchema = object({
54545
+ /** Feature key (`Dishcare.Dishwasher.Program.Eco50`) — what `setProgram` / `start` take. */
54546
+ key: string(),
54547
+ name: string(),
54548
+ /** The appliance currently offers this program. */
54549
+ available: boolean(),
54550
+ /** The options this program lists, with the program-level access / availability / default. */
54551
+ options: array(DishwasherOptionDescriptorSchema)
54552
+ });
54553
+ var DishwasherOptionsSchema = object({
54554
+ availability: DishwasherAvailabilitySchema,
54555
+ /** What the appliance can be told to do, from the commands its description declares. */
54556
+ supportsStart: boolean(),
54557
+ supportsPause: boolean(),
54558
+ supportsResume: boolean(),
54559
+ supportsStop: boolean(),
54560
+ supportsPower: boolean(),
54561
+ /** Every program the description lists, with its options. */
54562
+ programs: array(DishwasherProgramSchema),
54563
+ /** Every option and setting entity the description lists (programs reference these by key). */
54564
+ options: array(DishwasherOptionDescriptorSchema)
54565
+ });
54566
+ DeviceType.Dishwasher, method(object({
54567
+ deviceId: DeviceIdSchema,
54568
+ program: string().min(1).optional(),
54569
+ options: record(string(), DishwasherValueSchema).optional()
54570
+ }), _void(), {
54571
+ kind: "mutation",
54572
+ auth: "protected"
54573
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54574
+ kind: "mutation",
54575
+ auth: "protected"
54576
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54577
+ kind: "mutation",
54578
+ auth: "protected"
54579
+ }), method(object({ deviceId: DeviceIdSchema }), _void(), {
54580
+ kind: "mutation",
54581
+ auth: "protected"
54582
+ }), method(object({
54583
+ deviceId: DeviceIdSchema,
54584
+ program: string().min(1)
54585
+ }), _void(), {
54586
+ kind: "mutation",
54587
+ auth: "protected"
54588
+ }), method(object({
54589
+ deviceId: DeviceIdSchema,
54590
+ on: boolean()
54591
+ }), _void(), {
54592
+ kind: "mutation",
54593
+ auth: "protected"
54594
+ }), method(object({
54595
+ deviceId: DeviceIdSchema,
54596
+ on: boolean()
54597
+ }), _void(), {
54598
+ kind: "mutation",
54599
+ auth: "protected"
54600
+ }), method(object({
54601
+ deviceId: DeviceIdSchema,
54602
+ on: boolean()
54603
+ }), _void(), {
54604
+ kind: "mutation",
54605
+ auth: "protected"
54606
+ }), method(object({
54607
+ deviceId: DeviceIdSchema,
54608
+ on: boolean()
54609
+ }), _void(), {
54610
+ kind: "mutation",
54611
+ auth: "protected"
54612
+ }), method(object({
54613
+ deviceId: DeviceIdSchema,
54614
+ on: boolean()
54615
+ }), _void(), {
54616
+ kind: "mutation",
54617
+ auth: "protected"
54618
+ }), method(object({
54619
+ deviceId: DeviceIdSchema,
54620
+ on: boolean()
54621
+ }), _void(), {
54622
+ kind: "mutation",
54623
+ auth: "protected"
54624
+ }), method(object({
54625
+ deviceId: DeviceIdSchema,
54626
+ on: boolean()
54627
+ }), _void(), {
54628
+ kind: "mutation",
54629
+ auth: "protected"
54630
+ }), method(object({
54631
+ deviceId: DeviceIdSchema,
54632
+ key: string().min(1),
54633
+ value: DishwasherValueSchema
54634
+ }), _void(), {
54635
+ kind: "mutation",
54636
+ auth: "protected"
54637
+ }), method(object({ deviceId: DeviceIdSchema }), DishwasherOptionsSchema, { auth: "protected" });
54358
54638
  object({
54359
54639
  /** Ms epoch of the last press. null = never observed since this provider started. */
54360
54640
  lastPressedAt: number().nullable(),
@@ -54920,6 +55200,13 @@ object({
54920
55200
  lastChangedAt: number()
54921
55201
  });
54922
55202
  DeviceType.Sensor;
55203
+ object({
55204
+ /** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
55205
+ position: number().min(0).max(100).nullable(),
55206
+ /** Ms epoch when the slice was last updated (push or poll). */
55207
+ lastFetchedAt: number()
55208
+ });
55209
+ DeviceType.Thermostat;
54923
55210
  object({
54924
55211
  /** Whether the humidifier is currently on. */
54925
55212
  on: boolean(),
@@ -61986,7 +62273,7 @@ var AccessoryKind = {
61986
62273
  PrivacyMask: DeviceRole.PrivacyMask
61987
62274
  };
61988
62275
  AccessoryKind.Siren, AccessoryKind.Floodlight, AccessoryKind.Spotlight, AccessoryKind.PirSensor, AccessoryKind.Chime, AccessoryKind.Autotrack, AccessoryKind.Nightvision, AccessoryKind.PrivacyMask;
61989
- 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;
62276
+ 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;
61990
62277
  new Set(Object.values(DeviceType));
61991
62278
  Object.freeze({
61992
62279
  "accessories.getStatus": {
@@ -64407,6 +64694,96 @@ Object.freeze({
64407
64694
  addonId: null,
64408
64695
  access: "view"
64409
64696
  },
64697
+ "dishwasher.getOptions": {
64698
+ capName: "dishwasher",
64699
+ capScope: "device",
64700
+ addonId: null,
64701
+ access: "view"
64702
+ },
64703
+ "dishwasher.getStatus": {
64704
+ capName: "dishwasher",
64705
+ capScope: "device",
64706
+ addonId: null,
64707
+ access: "view"
64708
+ },
64709
+ "dishwasher.pause": {
64710
+ capName: "dishwasher",
64711
+ capScope: "device",
64712
+ addonId: null,
64713
+ access: "create"
64714
+ },
64715
+ "dishwasher.resume": {
64716
+ capName: "dishwasher",
64717
+ capScope: "device",
64718
+ addonId: null,
64719
+ access: "create"
64720
+ },
64721
+ "dishwasher.setChildLock": {
64722
+ capName: "dishwasher",
64723
+ capScope: "device",
64724
+ addonId: null,
64725
+ access: "create"
64726
+ },
64727
+ "dishwasher.setExtraDry": {
64728
+ capName: "dishwasher",
64729
+ capScope: "device",
64730
+ addonId: null,
64731
+ access: "create"
64732
+ },
64733
+ "dishwasher.setHalfLoad": {
64734
+ capName: "dishwasher",
64735
+ capScope: "device",
64736
+ addonId: null,
64737
+ access: "create"
64738
+ },
64739
+ "dishwasher.setHygienePlus": {
64740
+ capName: "dishwasher",
64741
+ capScope: "device",
64742
+ addonId: null,
64743
+ access: "create"
64744
+ },
64745
+ "dishwasher.setIntensiveZone": {
64746
+ capName: "dishwasher",
64747
+ capScope: "device",
64748
+ addonId: null,
64749
+ access: "create"
64750
+ },
64751
+ "dishwasher.setOption": {
64752
+ capName: "dishwasher",
64753
+ capScope: "device",
64754
+ addonId: null,
64755
+ access: "create"
64756
+ },
64757
+ "dishwasher.setPower": {
64758
+ capName: "dishwasher",
64759
+ capScope: "device",
64760
+ addonId: null,
64761
+ access: "create"
64762
+ },
64763
+ "dishwasher.setProgram": {
64764
+ capName: "dishwasher",
64765
+ capScope: "device",
64766
+ addonId: null,
64767
+ access: "create"
64768
+ },
64769
+ "dishwasher.setVarioSpeedPlus": {
64770
+ capName: "dishwasher",
64771
+ capScope: "device",
64772
+ addonId: null,
64773
+ access: "create"
64774
+ },
64775
+ "dishwasher.start": {
64776
+ capName: "dishwasher",
64777
+ capScope: "device",
64778
+ addonId: null,
64779
+ access: "create"
64780
+ },
64781
+ "dishwasher.stop": {
64782
+ capName: "dishwasher",
64783
+ capScope: "device",
64784
+ addonId: null,
64785
+ access: "create"
64786
+ },
64410
64787
  "doorbell.getStatus": {
64411
64788
  capName: "doorbell",
64412
64789
  capScope: "device",
@@ -64617,6 +64994,12 @@ Object.freeze({
64617
64994
  addonId: null,
64618
64995
  access: "view"
64619
64996
  },
64997
+ "heatingValve.getStatus": {
64998
+ capName: "heating-valve",
64999
+ capScope: "device",
65000
+ addonId: null,
65001
+ access: "view"
65002
+ },
64620
65003
  "humidifier.getStatus": {
64621
65004
  capName: "humidifier",
64622
65005
  capScope: "device",
@@ -68835,6 +69218,12 @@ Object.freeze({
68835
69218
  addonId: null,
68836
69219
  access: "view"
68837
69220
  },
69221
+ "storageMigration.moverClearance": {
69222
+ capName: "storage-migration",
69223
+ capScope: "system",
69224
+ addonId: null,
69225
+ access: "view"
69226
+ },
68838
69227
  "storageMigration.movers": {
68839
69228
  capName: "storage-migration",
68840
69229
  capScope: "system",
@@ -70204,7 +70593,7 @@ Object.freeze({
70204
70593
  access: "create"
70205
70594
  }
70206
70595
  });
70207
- 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;
70596
+ 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;
70208
70597
  DeviceFeature.BatteryOperated;
70209
70598
  Object.freeze({
70210
70599
  "accessories.getStatus": [{
@@ -71028,6 +71417,81 @@ Object.freeze({
71028
71417
  form: "single",
71029
71418
  optional: false
71030
71419
  }],
71420
+ "dishwasher.getOptions": [{
71421
+ name: "deviceId",
71422
+ form: "single",
71423
+ optional: false
71424
+ }],
71425
+ "dishwasher.getStatus": [{
71426
+ name: "deviceId",
71427
+ form: "single",
71428
+ optional: false
71429
+ }],
71430
+ "dishwasher.pause": [{
71431
+ name: "deviceId",
71432
+ form: "single",
71433
+ optional: false
71434
+ }],
71435
+ "dishwasher.resume": [{
71436
+ name: "deviceId",
71437
+ form: "single",
71438
+ optional: false
71439
+ }],
71440
+ "dishwasher.setChildLock": [{
71441
+ name: "deviceId",
71442
+ form: "single",
71443
+ optional: false
71444
+ }],
71445
+ "dishwasher.setExtraDry": [{
71446
+ name: "deviceId",
71447
+ form: "single",
71448
+ optional: false
71449
+ }],
71450
+ "dishwasher.setHalfLoad": [{
71451
+ name: "deviceId",
71452
+ form: "single",
71453
+ optional: false
71454
+ }],
71455
+ "dishwasher.setHygienePlus": [{
71456
+ name: "deviceId",
71457
+ form: "single",
71458
+ optional: false
71459
+ }],
71460
+ "dishwasher.setIntensiveZone": [{
71461
+ name: "deviceId",
71462
+ form: "single",
71463
+ optional: false
71464
+ }],
71465
+ "dishwasher.setOption": [{
71466
+ name: "deviceId",
71467
+ form: "single",
71468
+ optional: false
71469
+ }],
71470
+ "dishwasher.setPower": [{
71471
+ name: "deviceId",
71472
+ form: "single",
71473
+ optional: false
71474
+ }],
71475
+ "dishwasher.setProgram": [{
71476
+ name: "deviceId",
71477
+ form: "single",
71478
+ optional: false
71479
+ }],
71480
+ "dishwasher.setVarioSpeedPlus": [{
71481
+ name: "deviceId",
71482
+ form: "single",
71483
+ optional: false
71484
+ }],
71485
+ "dishwasher.start": [{
71486
+ name: "deviceId",
71487
+ form: "single",
71488
+ optional: false
71489
+ }],
71490
+ "dishwasher.stop": [{
71491
+ name: "deviceId",
71492
+ form: "single",
71493
+ optional: false
71494
+ }],
71031
71495
  "doorbell.getStatus": [{
71032
71496
  name: "deviceId",
71033
71497
  form: "single",
@@ -71097,6 +71561,11 @@ Object.freeze({
71097
71561
  form: "single",
71098
71562
  optional: false
71099
71563
  }],
71564
+ "heatingValve.getStatus": [{
71565
+ name: "deviceId",
71566
+ form: "single",
71567
+ optional: false
71568
+ }],
71100
71569
  "humidifier.getStatus": [{
71101
71570
  name: "deviceId",
71102
71571
  form: "single",
@@ -73054,6 +73523,9 @@ new Map(Object.entries({
73054
73523
  "wrapper-update-available": "system",
73055
73524
  "backup-completed": "system",
73056
73525
  "export-completed": "system",
73526
+ "alert-critical": "system",
73527
+ "alert-error": "system",
73528
+ "alert-critical-resolved": "system",
73057
73529
  "storage-location-low": "system",
73058
73530
  "storage-location-critical": "system",
73059
73531
  "storage-location-ok": "system",
@@ -73178,6 +73650,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
73178
73650
  "storage-location-ok"
73179
73651
  ]
73180
73652
  },
73653
+ {
73654
+ id: "alerts",
73655
+ family: "system",
73656
+ label: "Alerts",
73657
+ kinds: [
73658
+ "alert-critical",
73659
+ "alert-error",
73660
+ "alert-critical-resolved"
73661
+ ]
73662
+ },
73181
73663
  {
73182
73664
  id: "alarm",
73183
73665
  family: "alarm",
@@ -73222,6 +73704,21 @@ var NC_SENSOR_RAISED_FIELD_BY_KIND = Object.freeze(Object.fromEntries(Object.ent
73222
73704
  return [[descriptor.kind, field]];
73223
73705
  })));
73224
73706
  Object.freeze(Object.keys(NC_SENSOR_RAISED_FIELD_BY_KIND));
73707
+ object({
73708
+ phase: _enum(["raised", "resolved"]),
73709
+ episodeId: string().min(1),
73710
+ alertId: string().min(1),
73711
+ severity: AlertSeveritySchema,
73712
+ category: string(),
73713
+ title: string(),
73714
+ message: string(),
73715
+ sourceType: string().optional(),
73716
+ sourceId: string().optional(),
73717
+ nodeId: string().optional(),
73718
+ /** The alert's own action link (where the operator acts on it), when it has one. */
73719
+ actionUrl: string().optional(),
73720
+ at: number()
73721
+ });
73225
73722
  var RULE_BODY_ONLY = ["body"];
73226
73723
  var RULE_TEXT = ["title", "body"];
73227
73724
  var BATTERY = ["device-battery-low", "device-battery-normal"];
@@ -73231,6 +73728,11 @@ var TANK = [
73231
73728
  "device-tank-full",
73232
73729
  "device-tank-normal"
73233
73730
  ];
73731
+ var ALERT_EPISODE = [
73732
+ "alert-critical",
73733
+ "alert-error",
73734
+ "alert-critical-resolved"
73735
+ ];
73234
73736
  var UPDATES = [
73235
73737
  "addon-update-available",
73236
73738
  "server-update-available",
@@ -73423,14 +73925,14 @@ var STATE_SUMMARY_VARS = [
73423
73925
  ([...RULE_TEXT], [...CONSUMABLE]),
73424
73926
  ([...RULE_TEXT], [...TANK]),
73425
73927
  [...RULE_TEXT],
73426
- ([...RULE_TEXT], [...UPDATES]),
73427
- ([...RULE_TEXT], [...UPDATES]),
73428
- [...RULE_TEXT],
73928
+ ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
73929
+ ([...RULE_TEXT], [...UPDATES, ...ALERT_EPISODE]),
73429
73930
  [...RULE_TEXT],
73430
73931
  [...RULE_TEXT],
73431
73932
  [...RULE_TEXT],
73432
73933
  [...RULE_TEXT],
73433
73934
  [...RULE_TEXT],
73935
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73434
73936
  [...RULE_TEXT],
73435
73937
  [...RULE_TEXT],
73436
73938
  [...RULE_TEXT],
@@ -73448,7 +73950,11 @@ var STATE_SUMMARY_VARS = [
73448
73950
  [...RULE_TEXT],
73449
73951
  [...RULE_TEXT],
73450
73952
  [...RULE_TEXT],
73451
- [...RULE_TEXT],
73953
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73954
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73955
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73956
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73957
+ ([...RULE_TEXT], [...ALERT_EPISODE]),
73452
73958
  [...RULE_TEXT],
73453
73959
  [...RULE_TEXT],
73454
73960
  [...RULE_TEXT],