@camstack/addon-model-studio 1.1.269 → 1.1.270

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.
Files changed (19) hide show
  1. package/dist/{MotionZonesSettings-CQCE7D5x.mjs → MotionZonesSettings-DzJf18cG.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-CqIzAvon.mjs → PrivacyMaskSettings-BfcxIzcV.mjs} +4 -4
  3. package/dist/{SceneMonitorEditor-D4xyT88g.mjs → SceneMonitorEditor-CXZ7rmkI.mjs} +3 -3
  4. package/dist/_stub.js +3952 -3397
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-CRat01zd.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-02gJTlkt.mjs} +3 -3
  6. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BpItLART.mjs +26 -0
  7. package/dist/addon-model-studio.css +1 -1
  8. package/dist/{hostInit-CWxJPCLF.mjs → hostInit-CLORa_rj.mjs} +2 -2
  9. package/dist/model-studio.addon.js +226 -7
  10. package/dist/model-studio.addon.mjs +226 -7
  11. package/dist/{player-overlays-Rte6z1Nb.mjs → player-overlays-mDdhIu2Z.mjs} +1 -1
  12. package/dist/remoteEntry.js +1 -1
  13. package/dist/{responsive-DBJKTwS9.mjs → responsive-BDYhKoco.mjs} +1 -1
  14. package/dist/{scene-monitor-copy-DHzQxb9S.mjs → scene-monitor-copy-CqHEekjf.mjs} +1 -1
  15. package/dist/{square-DW4sxrDb.mjs → square-Br-2YTir.mjs} +1 -1
  16. package/dist/{trash-2-BrJVk_OD.mjs → trash-2-Dyh-Oss-.mjs} +1 -1
  17. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CGhEUBpt.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CfBTbbuC.mjs} +1 -1
  18. package/package.json +1 -1
  19. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CnmMjNl4.mjs +0 -26
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.381",
39
+ version: "1.2.382",
40
40
  scope: "default",
41
41
  shareConfig: {
42
42
  singleton: !0,
@@ -81,7 +81,7 @@ async function r() {
81
81
  }
82
82
  },
83
83
  "@camstack/ui-library": {
84
- version: "1.2.299",
84
+ version: "1.2.300",
85
85
  scope: "default",
86
86
  shareConfig: {
87
87
  singleton: !0,
@@ -5800,7 +5800,7 @@ var ZodIssueCode = {
5800
5800
  var ZodFirstPartyTypeKind;
5801
5801
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5802
5802
  //#endregion
5803
- //#region ../types/dist/sleep-bZIhUvjd.mjs
5803
+ //#region ../types/dist/sleep-BOjuyoPC.mjs
5804
5804
  /**
5805
5805
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5806
5806
  * window to float samples (D455).
@@ -8829,7 +8829,7 @@ object({
8829
8829
  params: record(string(), union([string(), number()])).optional()
8830
8830
  });
8831
8831
  //#endregion
8832
- //#region ../types/dist/err-msg--2RrYiLO.mjs
8832
+ //#region ../types/dist/err-msg-BXKzRBwg.mjs
8833
8833
  var DeviceType = /* @__PURE__ */ function(DeviceType) {
8834
8834
  DeviceType["Camera"] = "camera";
8835
8835
  DeviceType["Hub"] = "hub";
@@ -8921,6 +8921,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
8921
8921
  * native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
8922
8922
  * integrations sharing the same food/desiccant/hopper surface. */
8923
8923
  DeviceType["PetFeeder"] = "pet-feeder";
8924
+ /** Built-in dishwasher — program lifecycle, door / remote-start gates,
8925
+ * salt and rinse-aid levels. Installed with the `dishwasher` cap.
8926
+ * Sources: native Bosch Home Connect, reusable by similar integrations. */
8927
+ DeviceType["Dishwasher"] = "dishwasher";
8924
8928
  return DeviceType;
8925
8929
  }({});
8926
8930
  var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
@@ -9168,7 +9172,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
9168
9172
  return DeviceRole;
9169
9173
  }({});
9170
9174
  //#endregion
9171
- //#region ../types/dist/composition-DOwQB_Ua.mjs
9175
+ //#region ../types/dist/composition-CB6PMT9p.mjs
9172
9176
  /**
9173
9177
  * The ffmpeg build every CamStack node downloads, per platform and arch.
9174
9178
  *
@@ -13710,8 +13714,13 @@ var AlertSeveritySchema = _enum([
13710
13714
  "info",
13711
13715
  "success",
13712
13716
  "warning",
13713
- "error"
13717
+ "error",
13718
+ "critical"
13714
13719
  ]);
13720
+ var AlertActionSchema = object({
13721
+ label: string(),
13722
+ href: string().optional()
13723
+ });
13715
13724
  var AlertStatusSchema = _enum([
13716
13725
  "active",
13717
13726
  "in-progress",
@@ -13729,6 +13738,7 @@ var AlertSchema = object({
13729
13738
  severity: AlertSeveritySchema,
13730
13739
  title: string(),
13731
13740
  message: string(),
13741
+ action: AlertActionSchema.optional(),
13732
13742
  status: AlertStatusSchema,
13733
13743
  progress: number().optional(),
13734
13744
  read: boolean(),
@@ -53697,7 +53707,7 @@ var BatteryStatusSchema = object({
53697
53707
  */
53698
53708
  binary: boolean().optional()
53699
53709
  });
53700
- DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, method(object({
53710
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, method(object({
53701
53711
  deviceId: number(),
53702
53712
  /** Bound on the wait. Sensible range 3000–10000ms. */
53703
53713
  timeoutMs: number().int().min(500).max(3e4).default(8e3)
@@ -54573,6 +54583,98 @@ object({
54573
54583
  deviceId: number(),
54574
54584
  status: DeviceStatusSchema
54575
54585
  });
54586
+ /**
54587
+ * Smart-dishwasher cap — program lifecycle, door / remote-start gates,
54588
+ * consumable levels (salt, rinse aid) and common program options.
54589
+ *
54590
+ * Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
54591
+ * by any integration that exposes the same program / option surface.
54592
+ *
54593
+ * `kind: 'poll'` — cloud REST APIs typically have no push channel; the
54594
+ * provider refreshes the slice on an interval and eagerly after commands.
54595
+ */
54596
+ var DishwasherStateSchema = _enum([
54597
+ "idle",
54598
+ "running",
54599
+ "paused",
54600
+ "finished",
54601
+ "error",
54602
+ "unavailable"
54603
+ ]);
54604
+ var DishwasherConsumableLevelSchema = _enum([
54605
+ "ok",
54606
+ "low",
54607
+ "empty"
54608
+ ]);
54609
+ object({
54610
+ state: DishwasherStateSchema,
54611
+ /** Active program id/name, or null when none selected / unknown. */
54612
+ program: string().nullable(),
54613
+ /** Program tokens the hardware accepts — drives the UI selector. */
54614
+ availablePrograms: array(string()),
54615
+ /** Minutes remaining on the active cycle, or null when not running. */
54616
+ remainingMinutes: number().int().nonnegative().nullable(),
54617
+ /** Cycle completion 0..100, or null when not applicable. */
54618
+ progressPercent: number().min(0).max(100).nullable(),
54619
+ /** True when the door is reported open. */
54620
+ doorOpen: boolean(),
54621
+ /** True when remote start is allowed (door closed, power on, etc.). */
54622
+ remoteStartAllowed: boolean(),
54623
+ /** Main power / switched-on state. */
54624
+ powerOn: boolean(),
54625
+ saltLevel: DishwasherConsumableLevelSchema.nullable(),
54626
+ rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
54627
+ halfLoad: boolean(),
54628
+ hygienePlus: boolean(),
54629
+ errorCode: number().nullable(),
54630
+ errorLabel: string().nullable(),
54631
+ lastFetchedAt: number()
54632
+ });
54633
+ DeviceType.Dishwasher, method(object({ deviceId: number().int().nonnegative() }), _void(), {
54634
+ kind: "mutation",
54635
+ auth: "protected"
54636
+ }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
54637
+ kind: "mutation",
54638
+ auth: "protected"
54639
+ }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
54640
+ kind: "mutation",
54641
+ auth: "protected"
54642
+ }), method(object({
54643
+ deviceId: number().int().nonnegative(),
54644
+ program: string().min(1)
54645
+ }), _void(), {
54646
+ kind: "mutation",
54647
+ auth: "protected"
54648
+ }), method(object({
54649
+ deviceId: number().int().nonnegative(),
54650
+ on: boolean()
54651
+ }), _void(), {
54652
+ kind: "mutation",
54653
+ auth: "protected"
54654
+ }), method(object({
54655
+ deviceId: number().int().nonnegative(),
54656
+ on: boolean()
54657
+ }), _void(), {
54658
+ kind: "mutation",
54659
+ auth: "protected"
54660
+ }), method(object({
54661
+ deviceId: number().int().nonnegative(),
54662
+ on: boolean()
54663
+ }), _void(), {
54664
+ kind: "mutation",
54665
+ auth: "protected"
54666
+ }), method(object({
54667
+ deviceId: number().int().nonnegative(),
54668
+ key: string().min(1),
54669
+ value: union([
54670
+ boolean(),
54671
+ string(),
54672
+ number()
54673
+ ])
54674
+ }), _void(), {
54675
+ kind: "mutation",
54676
+ auth: "protected"
54677
+ });
54576
54678
  object({
54577
54679
  /** Ms epoch of the last press. null = never observed since this provider started. */
54578
54680
  lastPressedAt: number().nullable(),
@@ -55138,6 +55240,13 @@ object({
55138
55240
  lastChangedAt: number()
55139
55241
  });
55140
55242
  DeviceType.Sensor;
55243
+ object({
55244
+ /** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
55245
+ position: number().min(0).max(100).nullable(),
55246
+ /** Ms epoch when the slice was last updated (push or poll). */
55247
+ lastFetchedAt: number()
55248
+ });
55249
+ DeviceType.Thermostat;
55141
55250
  object({
55142
55251
  /** Whether the humidifier is currently on. */
55143
55252
  on: boolean(),
@@ -62302,7 +62411,7 @@ var AccessoryKind = {
62302
62411
  PrivacyMask: DeviceRole.PrivacyMask
62303
62412
  };
62304
62413
  AccessoryKind.Siren, AccessoryKind.Floodlight, AccessoryKind.Spotlight, AccessoryKind.PirSensor, AccessoryKind.Chime, AccessoryKind.Autotrack, AccessoryKind.Nightvision, AccessoryKind.PrivacyMask;
62305
- 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;
62414
+ 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;
62306
62415
  new Set(Object.values(DeviceType));
62307
62416
  Object.freeze({
62308
62417
  "accessories.getStatus": {
@@ -64723,6 +64832,60 @@ Object.freeze({
64723
64832
  addonId: null,
64724
64833
  access: "view"
64725
64834
  },
64835
+ "dishwasher.getStatus": {
64836
+ capName: "dishwasher",
64837
+ capScope: "device",
64838
+ addonId: null,
64839
+ access: "view"
64840
+ },
64841
+ "dishwasher.pause": {
64842
+ capName: "dishwasher",
64843
+ capScope: "device",
64844
+ addonId: null,
64845
+ access: "create"
64846
+ },
64847
+ "dishwasher.setHalfLoad": {
64848
+ capName: "dishwasher",
64849
+ capScope: "device",
64850
+ addonId: null,
64851
+ access: "create"
64852
+ },
64853
+ "dishwasher.setHygienePlus": {
64854
+ capName: "dishwasher",
64855
+ capScope: "device",
64856
+ addonId: null,
64857
+ access: "create"
64858
+ },
64859
+ "dishwasher.setOption": {
64860
+ capName: "dishwasher",
64861
+ capScope: "device",
64862
+ addonId: null,
64863
+ access: "create"
64864
+ },
64865
+ "dishwasher.setPower": {
64866
+ capName: "dishwasher",
64867
+ capScope: "device",
64868
+ addonId: null,
64869
+ access: "create"
64870
+ },
64871
+ "dishwasher.setProgram": {
64872
+ capName: "dishwasher",
64873
+ capScope: "device",
64874
+ addonId: null,
64875
+ access: "create"
64876
+ },
64877
+ "dishwasher.start": {
64878
+ capName: "dishwasher",
64879
+ capScope: "device",
64880
+ addonId: null,
64881
+ access: "create"
64882
+ },
64883
+ "dishwasher.stop": {
64884
+ capName: "dishwasher",
64885
+ capScope: "device",
64886
+ addonId: null,
64887
+ access: "create"
64888
+ },
64726
64889
  "doorbell.getStatus": {
64727
64890
  capName: "doorbell",
64728
64891
  capScope: "device",
@@ -64933,6 +65096,12 @@ Object.freeze({
64933
65096
  addonId: null,
64934
65097
  access: "view"
64935
65098
  },
65099
+ "heatingValve.getStatus": {
65100
+ capName: "heating-valve",
65101
+ capScope: "device",
65102
+ addonId: null,
65103
+ access: "view"
65104
+ },
64936
65105
  "humidifier.getStatus": {
64937
65106
  capName: "humidifier",
64938
65107
  capScope: "device",
@@ -70520,7 +70689,7 @@ Object.freeze({
70520
70689
  access: "create"
70521
70690
  }
70522
70691
  });
70523
- 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;
70692
+ 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;
70524
70693
  DeviceFeature.BatteryOperated;
70525
70694
  Object.freeze({
70526
70695
  "accessories.getStatus": [{
@@ -71344,6 +71513,51 @@ Object.freeze({
71344
71513
  form: "single",
71345
71514
  optional: false
71346
71515
  }],
71516
+ "dishwasher.getStatus": [{
71517
+ name: "deviceId",
71518
+ form: "single",
71519
+ optional: false
71520
+ }],
71521
+ "dishwasher.pause": [{
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.setOption": [{
71537
+ name: "deviceId",
71538
+ form: "single",
71539
+ optional: false
71540
+ }],
71541
+ "dishwasher.setPower": [{
71542
+ name: "deviceId",
71543
+ form: "single",
71544
+ optional: false
71545
+ }],
71546
+ "dishwasher.setProgram": [{
71547
+ name: "deviceId",
71548
+ form: "single",
71549
+ optional: false
71550
+ }],
71551
+ "dishwasher.start": [{
71552
+ name: "deviceId",
71553
+ form: "single",
71554
+ optional: false
71555
+ }],
71556
+ "dishwasher.stop": [{
71557
+ name: "deviceId",
71558
+ form: "single",
71559
+ optional: false
71560
+ }],
71347
71561
  "doorbell.getStatus": [{
71348
71562
  name: "deviceId",
71349
71563
  form: "single",
@@ -71413,6 +71627,11 @@ Object.freeze({
71413
71627
  form: "single",
71414
71628
  optional: false
71415
71629
  }],
71630
+ "heatingValve.getStatus": [{
71631
+ name: "deviceId",
71632
+ form: "single",
71633
+ optional: false
71634
+ }],
71416
71635
  "humidifier.getStatus": [{
71417
71636
  name: "deviceId",
71418
71637
  form: "single",
@@ -5774,7 +5774,7 @@ var ZodIssueCode = {
5774
5774
  var ZodFirstPartyTypeKind;
5775
5775
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5776
5776
  //#endregion
5777
- //#region ../types/dist/sleep-bZIhUvjd.mjs
5777
+ //#region ../types/dist/sleep-BOjuyoPC.mjs
5778
5778
  /**
5779
5779
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5780
5780
  * window to float samples (D455).
@@ -8803,7 +8803,7 @@ object({
8803
8803
  params: record(string(), union([string(), number()])).optional()
8804
8804
  });
8805
8805
  //#endregion
8806
- //#region ../types/dist/err-msg--2RrYiLO.mjs
8806
+ //#region ../types/dist/err-msg-BXKzRBwg.mjs
8807
8807
  var DeviceType = /* @__PURE__ */ function(DeviceType) {
8808
8808
  DeviceType["Camera"] = "camera";
8809
8809
  DeviceType["Hub"] = "hub";
@@ -8895,6 +8895,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
8895
8895
  * native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
8896
8896
  * integrations sharing the same food/desiccant/hopper surface. */
8897
8897
  DeviceType["PetFeeder"] = "pet-feeder";
8898
+ /** Built-in dishwasher — program lifecycle, door / remote-start gates,
8899
+ * salt and rinse-aid levels. Installed with the `dishwasher` cap.
8900
+ * Sources: native Bosch Home Connect, reusable by similar integrations. */
8901
+ DeviceType["Dishwasher"] = "dishwasher";
8898
8902
  return DeviceType;
8899
8903
  }({});
8900
8904
  var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
@@ -9142,7 +9146,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
9142
9146
  return DeviceRole;
9143
9147
  }({});
9144
9148
  //#endregion
9145
- //#region ../types/dist/composition-DOwQB_Ua.mjs
9149
+ //#region ../types/dist/composition-CB6PMT9p.mjs
9146
9150
  /**
9147
9151
  * The ffmpeg build every CamStack node downloads, per platform and arch.
9148
9152
  *
@@ -13684,8 +13688,13 @@ var AlertSeveritySchema = _enum([
13684
13688
  "info",
13685
13689
  "success",
13686
13690
  "warning",
13687
- "error"
13691
+ "error",
13692
+ "critical"
13688
13693
  ]);
13694
+ var AlertActionSchema = object({
13695
+ label: string(),
13696
+ href: string().optional()
13697
+ });
13689
13698
  var AlertStatusSchema = _enum([
13690
13699
  "active",
13691
13700
  "in-progress",
@@ -13703,6 +13712,7 @@ var AlertSchema = object({
13703
13712
  severity: AlertSeveritySchema,
13704
13713
  title: string(),
13705
13714
  message: string(),
13715
+ action: AlertActionSchema.optional(),
13706
13716
  status: AlertStatusSchema,
13707
13717
  progress: number().optional(),
13708
13718
  read: boolean(),
@@ -53671,7 +53681,7 @@ var BatteryStatusSchema = object({
53671
53681
  */
53672
53682
  binary: boolean().optional()
53673
53683
  });
53674
- DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, method(object({
53684
+ DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, method(object({
53675
53685
  deviceId: number(),
53676
53686
  /** Bound on the wait. Sensible range 3000–10000ms. */
53677
53687
  timeoutMs: number().int().min(500).max(3e4).default(8e3)
@@ -54547,6 +54557,98 @@ object({
54547
54557
  deviceId: number(),
54548
54558
  status: DeviceStatusSchema
54549
54559
  });
54560
+ /**
54561
+ * Smart-dishwasher cap — program lifecycle, door / remote-start gates,
54562
+ * consumable levels (salt, rinse aid) and common program options.
54563
+ *
54564
+ * Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
54565
+ * by any integration that exposes the same program / option surface.
54566
+ *
54567
+ * `kind: 'poll'` — cloud REST APIs typically have no push channel; the
54568
+ * provider refreshes the slice on an interval and eagerly after commands.
54569
+ */
54570
+ var DishwasherStateSchema = _enum([
54571
+ "idle",
54572
+ "running",
54573
+ "paused",
54574
+ "finished",
54575
+ "error",
54576
+ "unavailable"
54577
+ ]);
54578
+ var DishwasherConsumableLevelSchema = _enum([
54579
+ "ok",
54580
+ "low",
54581
+ "empty"
54582
+ ]);
54583
+ object({
54584
+ state: DishwasherStateSchema,
54585
+ /** Active program id/name, or null when none selected / unknown. */
54586
+ program: string().nullable(),
54587
+ /** Program tokens the hardware accepts — drives the UI selector. */
54588
+ availablePrograms: array(string()),
54589
+ /** Minutes remaining on the active cycle, or null when not running. */
54590
+ remainingMinutes: number().int().nonnegative().nullable(),
54591
+ /** Cycle completion 0..100, or null when not applicable. */
54592
+ progressPercent: number().min(0).max(100).nullable(),
54593
+ /** True when the door is reported open. */
54594
+ doorOpen: boolean(),
54595
+ /** True when remote start is allowed (door closed, power on, etc.). */
54596
+ remoteStartAllowed: boolean(),
54597
+ /** Main power / switched-on state. */
54598
+ powerOn: boolean(),
54599
+ saltLevel: DishwasherConsumableLevelSchema.nullable(),
54600
+ rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
54601
+ halfLoad: boolean(),
54602
+ hygienePlus: boolean(),
54603
+ errorCode: number().nullable(),
54604
+ errorLabel: string().nullable(),
54605
+ lastFetchedAt: number()
54606
+ });
54607
+ DeviceType.Dishwasher, method(object({ deviceId: number().int().nonnegative() }), _void(), {
54608
+ kind: "mutation",
54609
+ auth: "protected"
54610
+ }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
54611
+ kind: "mutation",
54612
+ auth: "protected"
54613
+ }), method(object({ deviceId: number().int().nonnegative() }), _void(), {
54614
+ kind: "mutation",
54615
+ auth: "protected"
54616
+ }), method(object({
54617
+ deviceId: number().int().nonnegative(),
54618
+ program: string().min(1)
54619
+ }), _void(), {
54620
+ kind: "mutation",
54621
+ auth: "protected"
54622
+ }), method(object({
54623
+ deviceId: number().int().nonnegative(),
54624
+ on: boolean()
54625
+ }), _void(), {
54626
+ kind: "mutation",
54627
+ auth: "protected"
54628
+ }), method(object({
54629
+ deviceId: number().int().nonnegative(),
54630
+ on: boolean()
54631
+ }), _void(), {
54632
+ kind: "mutation",
54633
+ auth: "protected"
54634
+ }), method(object({
54635
+ deviceId: number().int().nonnegative(),
54636
+ on: boolean()
54637
+ }), _void(), {
54638
+ kind: "mutation",
54639
+ auth: "protected"
54640
+ }), method(object({
54641
+ deviceId: number().int().nonnegative(),
54642
+ key: string().min(1),
54643
+ value: union([
54644
+ boolean(),
54645
+ string(),
54646
+ number()
54647
+ ])
54648
+ }), _void(), {
54649
+ kind: "mutation",
54650
+ auth: "protected"
54651
+ });
54550
54652
  object({
54551
54653
  /** Ms epoch of the last press. null = never observed since this provider started. */
54552
54654
  lastPressedAt: number().nullable(),
@@ -55112,6 +55214,13 @@ object({
55112
55214
  lastChangedAt: number()
55113
55215
  });
55114
55216
  DeviceType.Sensor;
55217
+ object({
55218
+ /** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
55219
+ position: number().min(0).max(100).nullable(),
55220
+ /** Ms epoch when the slice was last updated (push or poll). */
55221
+ lastFetchedAt: number()
55222
+ });
55223
+ DeviceType.Thermostat;
55115
55224
  object({
55116
55225
  /** Whether the humidifier is currently on. */
55117
55226
  on: boolean(),
@@ -62276,7 +62385,7 @@ var AccessoryKind = {
62276
62385
  PrivacyMask: DeviceRole.PrivacyMask
62277
62386
  };
62278
62387
  AccessoryKind.Siren, AccessoryKind.Floodlight, AccessoryKind.Spotlight, AccessoryKind.PirSensor, AccessoryKind.Chime, AccessoryKind.Autotrack, AccessoryKind.Nightvision, AccessoryKind.PrivacyMask;
62279
- 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;
62388
+ 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;
62280
62389
  new Set(Object.values(DeviceType));
62281
62390
  Object.freeze({
62282
62391
  "accessories.getStatus": {
@@ -64697,6 +64806,60 @@ Object.freeze({
64697
64806
  addonId: null,
64698
64807
  access: "view"
64699
64808
  },
64809
+ "dishwasher.getStatus": {
64810
+ capName: "dishwasher",
64811
+ capScope: "device",
64812
+ addonId: null,
64813
+ access: "view"
64814
+ },
64815
+ "dishwasher.pause": {
64816
+ capName: "dishwasher",
64817
+ capScope: "device",
64818
+ addonId: null,
64819
+ access: "create"
64820
+ },
64821
+ "dishwasher.setHalfLoad": {
64822
+ capName: "dishwasher",
64823
+ capScope: "device",
64824
+ addonId: null,
64825
+ access: "create"
64826
+ },
64827
+ "dishwasher.setHygienePlus": {
64828
+ capName: "dishwasher",
64829
+ capScope: "device",
64830
+ addonId: null,
64831
+ access: "create"
64832
+ },
64833
+ "dishwasher.setOption": {
64834
+ capName: "dishwasher",
64835
+ capScope: "device",
64836
+ addonId: null,
64837
+ access: "create"
64838
+ },
64839
+ "dishwasher.setPower": {
64840
+ capName: "dishwasher",
64841
+ capScope: "device",
64842
+ addonId: null,
64843
+ access: "create"
64844
+ },
64845
+ "dishwasher.setProgram": {
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
+ },
64700
64863
  "doorbell.getStatus": {
64701
64864
  capName: "doorbell",
64702
64865
  capScope: "device",
@@ -64907,6 +65070,12 @@ Object.freeze({
64907
65070
  addonId: null,
64908
65071
  access: "view"
64909
65072
  },
65073
+ "heatingValve.getStatus": {
65074
+ capName: "heating-valve",
65075
+ capScope: "device",
65076
+ addonId: null,
65077
+ access: "view"
65078
+ },
64910
65079
  "humidifier.getStatus": {
64911
65080
  capName: "humidifier",
64912
65081
  capScope: "device",
@@ -70494,7 +70663,7 @@ Object.freeze({
70494
70663
  access: "create"
70495
70664
  }
70496
70665
  });
70497
- 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;
70666
+ 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;
70498
70667
  DeviceFeature.BatteryOperated;
70499
70668
  Object.freeze({
70500
70669
  "accessories.getStatus": [{
@@ -71318,6 +71487,51 @@ Object.freeze({
71318
71487
  form: "single",
71319
71488
  optional: false
71320
71489
  }],
71490
+ "dishwasher.getStatus": [{
71491
+ name: "deviceId",
71492
+ form: "single",
71493
+ optional: false
71494
+ }],
71495
+ "dishwasher.pause": [{
71496
+ name: "deviceId",
71497
+ form: "single",
71498
+ optional: false
71499
+ }],
71500
+ "dishwasher.setHalfLoad": [{
71501
+ name: "deviceId",
71502
+ form: "single",
71503
+ optional: false
71504
+ }],
71505
+ "dishwasher.setHygienePlus": [{
71506
+ name: "deviceId",
71507
+ form: "single",
71508
+ optional: false
71509
+ }],
71510
+ "dishwasher.setOption": [{
71511
+ name: "deviceId",
71512
+ form: "single",
71513
+ optional: false
71514
+ }],
71515
+ "dishwasher.setPower": [{
71516
+ name: "deviceId",
71517
+ form: "single",
71518
+ optional: false
71519
+ }],
71520
+ "dishwasher.setProgram": [{
71521
+ name: "deviceId",
71522
+ form: "single",
71523
+ optional: false
71524
+ }],
71525
+ "dishwasher.start": [{
71526
+ name: "deviceId",
71527
+ form: "single",
71528
+ optional: false
71529
+ }],
71530
+ "dishwasher.stop": [{
71531
+ name: "deviceId",
71532
+ form: "single",
71533
+ optional: false
71534
+ }],
71321
71535
  "doorbell.getStatus": [{
71322
71536
  name: "deviceId",
71323
71537
  form: "single",
@@ -71387,6 +71601,11 @@ Object.freeze({
71387
71601
  form: "single",
71388
71602
  optional: false
71389
71603
  }],
71604
+ "heatingValve.getStatus": [{
71605
+ name: "deviceId",
71606
+ form: "single",
71607
+ optional: false
71608
+ }],
71390
71609
  "humidifier.getStatus": [{
71391
71610
  name: "deviceId",
71392
71611
  form: "single",
@@ -1,6 +1,6 @@
1
1
  import { S as e, d as t, u as n, v as r } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DMBKVIH7.mjs";
2
2
  import { n as i, r as a, t as o } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
3
- import { g as s, h as c } from "./responsive-DBJKTwS9.mjs";
3
+ import { g as s, h as c } from "./responsive-BDYhKoco.mjs";
4
4
  var l = s("chevron-down", [["path", {
5
5
  d: "m6 9 6 6 6-6",
6
6
  key: "qrunsl"