@camstack/addon-matter-broker 0.2.127 → 0.2.129

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 (3) hide show
  1. package/dist/addon.js +368 -10
  2. package/dist/addon.mjs +368 -10
  3. package/package.json +1 -1
package/dist/addon.js CHANGED
@@ -5552,7 +5552,7 @@ var ZodIssueCode = {
5552
5552
  var ZodFirstPartyTypeKind;
5553
5553
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5554
5554
  //#endregion
5555
- //#region ../types/dist/sleep-bZIhUvjd.mjs
5555
+ //#region ../types/dist/sleep-BegKjwUu.mjs
5556
5556
  /**
5557
5557
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5558
5558
  * window to float samples (D455).
@@ -8771,7 +8771,7 @@ object({
8771
8771
  params: record(string$2(), union([string$2(), number()])).optional()
8772
8772
  });
8773
8773
  //#endregion
8774
- //#region ../types/dist/err-msg--2RrYiLO.mjs
8774
+ //#region ../types/dist/err-msg-BXKzRBwg.mjs
8775
8775
  var DeviceType = /* @__PURE__ */ function(DeviceType) {
8776
8776
  DeviceType["Camera"] = "camera";
8777
8777
  DeviceType["Hub"] = "hub";
@@ -8863,6 +8863,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
8863
8863
  * native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
8864
8864
  * integrations sharing the same food/desiccant/hopper surface. */
8865
8865
  DeviceType["PetFeeder"] = "pet-feeder";
8866
+ /** Built-in dishwasher — program lifecycle, door / remote-start gates,
8867
+ * salt and rinse-aid levels. Installed with the `dishwasher` cap.
8868
+ * Sources: native Bosch Home Connect, reusable by similar integrations. */
8869
+ DeviceType["Dishwasher"] = "dishwasher";
8866
8870
  return DeviceType;
8867
8871
  }({});
8868
8872
  var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
@@ -9120,7 +9124,7 @@ function errMsg(err) {
9120
9124
  return String(err);
9121
9125
  }
9122
9126
  //#endregion
9123
- //#region ../types/dist/composition-DOwQB_Ua.mjs
9127
+ //#region ../types/dist/composition-CB6PMT9p.mjs
9124
9128
  /**
9125
9129
  * The ffmpeg build every CamStack node downloads, per platform and arch.
9126
9130
  *
@@ -13506,8 +13510,13 @@ var AlertSeveritySchema = _enum([
13506
13510
  "info",
13507
13511
  "success",
13508
13512
  "warning",
13509
- "error"
13513
+ "error",
13514
+ "critical"
13510
13515
  ]);
13516
+ var AlertActionSchema = object({
13517
+ label: string$2(),
13518
+ href: string$2().optional()
13519
+ });
13511
13520
  var AlertStatusSchema = _enum([
13512
13521
  "active",
13513
13522
  "in-progress",
@@ -13525,6 +13534,7 @@ var AlertSchema = object({
13525
13534
  severity: AlertSeveritySchema,
13526
13535
  title: string$2(),
13527
13536
  message: string$2(),
13537
+ action: AlertActionSchema.optional(),
13528
13538
  status: AlertStatusSchema,
13529
13539
  progress: number().optional(),
13530
13540
  read: boolean(),
@@ -17935,7 +17945,11 @@ var deviceDiscoveryCapability = {
17935
17945
  };
17936
17946
  /**
17937
17947
  * `device-adoption` — generic discovery + adoption surface,
17938
- * system-scoped singleton. The de-HA-ified successor to `ha-discovery`:
17948
+ * system-scoped collection (one provider per integration addon), routed
17949
+ * by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
17950
+ * pin model as `connection-test`. The admin UI keeps using
17951
+ * `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
17952
+ * successor to `ha-discovery`:
17939
17953
  * keyed by `integrationId` (the addon resolves integrationId → broker
17940
17954
  * internally) rather than a connection-specific `brokerId`, and it
17941
17955
  * REUSES the shared `DiscoveredChildDevice` candidate type from
@@ -18100,7 +18114,7 @@ var ResyncResultSchema = object({
18100
18114
  var deviceAdoptionCapability = {
18101
18115
  name: "device-adoption",
18102
18116
  scope: "system",
18103
- mode: "singleton",
18117
+ mode: "collection",
18104
18118
  status: {
18105
18119
  schema: AdoptionStatusSchema,
18106
18120
  kind: "poll"
@@ -54132,7 +54146,8 @@ var batteryCapability = {
54132
54146
  DeviceType.Button,
54133
54147
  DeviceType.Switch,
54134
54148
  DeviceType.PetFeeder,
54135
- DeviceType.Container
54149
+ DeviceType.Container,
54150
+ DeviceType.Thermostat
54136
54151
  ],
54137
54152
  methods: {
54138
54153
  /**
@@ -55622,6 +55637,161 @@ onStatusChanged: { data: object({
55622
55637
  * whether persisting is worth a SQLite commit. */
55623
55638
  volatileStateFields: ["lastChangedAt"]
55624
55639
  };
55640
+ /**
55641
+ * Smart-dishwasher cap — program lifecycle, door / remote-start gates,
55642
+ * consumable levels (salt, rinse aid) and common program options.
55643
+ *
55644
+ * Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
55645
+ * by any integration that exposes the same program / option surface.
55646
+ *
55647
+ * `kind: 'poll'` — cloud REST APIs typically have no push channel; the
55648
+ * provider refreshes the slice on an interval and eagerly after commands.
55649
+ */
55650
+ var DishwasherStateSchema = _enum([
55651
+ "idle",
55652
+ "running",
55653
+ "paused",
55654
+ "finished",
55655
+ "error",
55656
+ "unavailable"
55657
+ ]);
55658
+ var DishwasherConsumableLevelSchema = _enum([
55659
+ "ok",
55660
+ "low",
55661
+ "empty"
55662
+ ]);
55663
+ var DishwasherStatusSchema = object({
55664
+ state: DishwasherStateSchema,
55665
+ /** Active program id/name, or null when none selected / unknown. */
55666
+ program: string$2().nullable(),
55667
+ /** Program tokens the hardware accepts — drives the UI selector. */
55668
+ availablePrograms: array(string$2()),
55669
+ /** Minutes remaining on the active cycle, or null when not running. */
55670
+ remainingMinutes: number().int().nonnegative().nullable(),
55671
+ /** Cycle completion 0..100, or null when not applicable. */
55672
+ progressPercent: number().min(0).max(100).nullable(),
55673
+ /** True when the door is reported open. */
55674
+ doorOpen: boolean(),
55675
+ /** True when remote start is allowed (door closed, power on, etc.). */
55676
+ remoteStartAllowed: boolean(),
55677
+ /** Main power / switched-on state. */
55678
+ powerOn: boolean(),
55679
+ saltLevel: DishwasherConsumableLevelSchema.nullable(),
55680
+ rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
55681
+ halfLoad: boolean(),
55682
+ hygienePlus: boolean(),
55683
+ /** Extra dry option when the appliance exposes it. */
55684
+ extraDry: boolean(),
55685
+ /** Intensive zone (lower basket) when the appliance exposes it. */
55686
+ intensiveZone: boolean(),
55687
+ /** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
55688
+ varioSpeedPlus: boolean(),
55689
+ /** Child lock (controls disabled on the appliance). */
55690
+ childLock: boolean(),
55691
+ errorCode: number().nullable(),
55692
+ errorLabel: string$2().nullable(),
55693
+ lastFetchedAt: number()
55694
+ });
55695
+ var dishwasherCapability = {
55696
+ name: "dishwasher",
55697
+ scope: "device",
55698
+ deviceNative: true,
55699
+ mode: "singleton",
55700
+ deviceTypes: [DeviceType.Dishwasher],
55701
+ methods: {
55702
+ start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
55703
+ kind: "mutation",
55704
+ auth: "protected"
55705
+ }),
55706
+ pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
55707
+ kind: "mutation",
55708
+ auth: "protected"
55709
+ }),
55710
+ stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
55711
+ kind: "mutation",
55712
+ auth: "protected"
55713
+ }),
55714
+ setProgram: method(object({
55715
+ deviceId: number().int().nonnegative(),
55716
+ program: string$2().min(1)
55717
+ }), _void(), {
55718
+ kind: "mutation",
55719
+ auth: "protected"
55720
+ }),
55721
+ setPower: method(object({
55722
+ deviceId: number().int().nonnegative(),
55723
+ on: boolean()
55724
+ }), _void(), {
55725
+ kind: "mutation",
55726
+ auth: "protected"
55727
+ }),
55728
+ setHalfLoad: method(object({
55729
+ deviceId: number().int().nonnegative(),
55730
+ on: boolean()
55731
+ }), _void(), {
55732
+ kind: "mutation",
55733
+ auth: "protected"
55734
+ }),
55735
+ setHygienePlus: method(object({
55736
+ deviceId: number().int().nonnegative(),
55737
+ on: boolean()
55738
+ }), _void(), {
55739
+ kind: "mutation",
55740
+ auth: "protected"
55741
+ }),
55742
+ setExtraDry: method(object({
55743
+ deviceId: number().int().nonnegative(),
55744
+ on: boolean()
55745
+ }), _void(), {
55746
+ kind: "mutation",
55747
+ auth: "protected"
55748
+ }),
55749
+ setIntensiveZone: method(object({
55750
+ deviceId: number().int().nonnegative(),
55751
+ on: boolean()
55752
+ }), _void(), {
55753
+ kind: "mutation",
55754
+ auth: "protected"
55755
+ }),
55756
+ setVarioSpeedPlus: method(object({
55757
+ deviceId: number().int().nonnegative(),
55758
+ on: boolean()
55759
+ }), _void(), {
55760
+ kind: "mutation",
55761
+ auth: "protected"
55762
+ }),
55763
+ setChildLock: method(object({
55764
+ deviceId: number().int().nonnegative(),
55765
+ on: boolean()
55766
+ }), _void(), {
55767
+ kind: "mutation",
55768
+ auth: "protected"
55769
+ }),
55770
+ setOption: method(object({
55771
+ deviceId: number().int().nonnegative(),
55772
+ key: string$2().min(1),
55773
+ value: union([
55774
+ boolean(),
55775
+ string$2(),
55776
+ number()
55777
+ ])
55778
+ }), _void(), {
55779
+ kind: "mutation",
55780
+ auth: "protected"
55781
+ })
55782
+ },
55783
+ status: {
55784
+ schema: DishwasherStatusSchema,
55785
+ kind: "poll"
55786
+ },
55787
+ runtimeState: DishwasherStatusSchema,
55788
+ durability: "session",
55789
+ history: { fields: { progressPercent: {
55790
+ kind: "gauge",
55791
+ unit: "%",
55792
+ deadband: 2
55793
+ } } }
55794
+ };
55625
55795
  var DoorbellStatusSchema = object({
55626
55796
  /** Ms epoch of the last press. null = never observed since this provider started. */
55627
55797
  lastPressedAt: number().nullable(),
@@ -56424,6 +56594,32 @@ var gasCapability = {
56424
56594
  * whether persisting is worth a SQLite commit. */
56425
56595
  volatileStateFields: ["lastChangedAt"]
56426
56596
  };
56597
+ var HeatingValveStatusSchema = object({
56598
+ /** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
56599
+ position: number().min(0).max(100).nullable(),
56600
+ /** Ms epoch when the slice was last updated (push or poll). */
56601
+ lastFetchedAt: number()
56602
+ });
56603
+ var heatingValveCapability = {
56604
+ name: "heating-valve",
56605
+ scope: "device",
56606
+ deviceNative: true,
56607
+ mode: "singleton",
56608
+ deviceTypes: [DeviceType.Thermostat],
56609
+ methods: {},
56610
+ status: {
56611
+ schema: HeatingValveStatusSchema,
56612
+ kind: "push"
56613
+ },
56614
+ runtimeState: HeatingValveStatusSchema,
56615
+ durability: "session",
56616
+ history: { fields: { position: {
56617
+ kind: "gauge",
56618
+ unit: "%",
56619
+ deadband: 1
56620
+ } } },
56621
+ volatileStateFields: ["lastFetchedAt"]
56622
+ };
56427
56623
  /**
56428
56624
  * Humidifier / dehumidifier cap. Models HA `humidifier.*` entities —
56429
56625
  * an on/off actuator with an optional target-humidity setpoint and an
@@ -65844,6 +66040,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
65844
66040
  dayNight: dayNightCapability,
65845
66041
  deviceDiscovery: deviceDiscoveryCapability,
65846
66042
  deviceStatus: deviceStatusCapability,
66043
+ dishwasher: dishwasherCapability,
65847
66044
  doorbell: doorbellCapability,
65848
66045
  enumSensor: enumSensorCapability,
65849
66046
  eventEmitter: eventEmitterCapability,
@@ -65851,6 +66048,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
65851
66048
  featureProbe: featureProbeCapability,
65852
66049
  flood: floodCapability,
65853
66050
  gas: gasCapability,
66051
+ heatingValve: heatingValveCapability,
65854
66052
  humidifier: humidifierCapability,
65855
66053
  humiditySensor: humiditySensorCapability,
65856
66054
  image: imageCapability,
@@ -66576,6 +66774,12 @@ var BaseDeviceProvider = class extends BaseAddon {
66576
66774
  provider: this
66577
66775
  }];
66578
66776
  }
66777
+ /** Flatten `super.onInitialize()` whether it returned an array or an envelope. */
66778
+ providerRegistrationsFromSuper(result) {
66779
+ if (Array.isArray(result)) return result;
66780
+ if (result !== void 0 && result.providers !== void 0) return [...result.providers];
66781
+ return [];
66782
+ }
66579
66783
  async onShutdown() {
66580
66784
  this._restoreShuttingDown = true;
66581
66785
  this.cancelRestoreRetries();
@@ -67102,7 +67306,7 @@ var BaseDeviceProvider = class extends BaseAddon {
67102
67306
  return toDeviceSummary(device, this.addonId);
67103
67307
  }
67104
67308
  };
67105
- 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;
67309
+ 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;
67106
67310
  new Set(Object.values(DeviceType));
67107
67311
  Object.freeze({
67108
67312
  "accessories.getStatus": {
@@ -69523,6 +69727,84 @@ Object.freeze({
69523
69727
  addonId: null,
69524
69728
  access: "view"
69525
69729
  },
69730
+ "dishwasher.getStatus": {
69731
+ capName: "dishwasher",
69732
+ capScope: "device",
69733
+ addonId: null,
69734
+ access: "view"
69735
+ },
69736
+ "dishwasher.pause": {
69737
+ capName: "dishwasher",
69738
+ capScope: "device",
69739
+ addonId: null,
69740
+ access: "create"
69741
+ },
69742
+ "dishwasher.setChildLock": {
69743
+ capName: "dishwasher",
69744
+ capScope: "device",
69745
+ addonId: null,
69746
+ access: "create"
69747
+ },
69748
+ "dishwasher.setExtraDry": {
69749
+ capName: "dishwasher",
69750
+ capScope: "device",
69751
+ addonId: null,
69752
+ access: "create"
69753
+ },
69754
+ "dishwasher.setHalfLoad": {
69755
+ capName: "dishwasher",
69756
+ capScope: "device",
69757
+ addonId: null,
69758
+ access: "create"
69759
+ },
69760
+ "dishwasher.setHygienePlus": {
69761
+ capName: "dishwasher",
69762
+ capScope: "device",
69763
+ addonId: null,
69764
+ access: "create"
69765
+ },
69766
+ "dishwasher.setIntensiveZone": {
69767
+ capName: "dishwasher",
69768
+ capScope: "device",
69769
+ addonId: null,
69770
+ access: "create"
69771
+ },
69772
+ "dishwasher.setOption": {
69773
+ capName: "dishwasher",
69774
+ capScope: "device",
69775
+ addonId: null,
69776
+ access: "create"
69777
+ },
69778
+ "dishwasher.setPower": {
69779
+ capName: "dishwasher",
69780
+ capScope: "device",
69781
+ addonId: null,
69782
+ access: "create"
69783
+ },
69784
+ "dishwasher.setProgram": {
69785
+ capName: "dishwasher",
69786
+ capScope: "device",
69787
+ addonId: null,
69788
+ access: "create"
69789
+ },
69790
+ "dishwasher.setVarioSpeedPlus": {
69791
+ capName: "dishwasher",
69792
+ capScope: "device",
69793
+ addonId: null,
69794
+ access: "create"
69795
+ },
69796
+ "dishwasher.start": {
69797
+ capName: "dishwasher",
69798
+ capScope: "device",
69799
+ addonId: null,
69800
+ access: "create"
69801
+ },
69802
+ "dishwasher.stop": {
69803
+ capName: "dishwasher",
69804
+ capScope: "device",
69805
+ addonId: null,
69806
+ access: "create"
69807
+ },
69526
69808
  "doorbell.getStatus": {
69527
69809
  capName: "doorbell",
69528
69810
  capScope: "device",
@@ -69733,6 +70015,12 @@ Object.freeze({
69733
70015
  addonId: null,
69734
70016
  access: "view"
69735
70017
  },
70018
+ "heatingValve.getStatus": {
70019
+ capName: "heating-valve",
70020
+ capScope: "device",
70021
+ addonId: null,
70022
+ access: "view"
70023
+ },
69736
70024
  "humidifier.getStatus": {
69737
70025
  capName: "humidifier",
69738
70026
  capScope: "device",
@@ -75320,7 +75608,7 @@ Object.freeze({
75320
75608
  access: "create"
75321
75609
  }
75322
75610
  });
75323
- 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;
75611
+ 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;
75324
75612
  DeviceFeature.BatteryOperated;
75325
75613
  Object.freeze({
75326
75614
  "accessories.getStatus": [{
@@ -76144,6 +76432,71 @@ Object.freeze({
76144
76432
  form: "single",
76145
76433
  optional: false
76146
76434
  }],
76435
+ "dishwasher.getStatus": [{
76436
+ name: "deviceId",
76437
+ form: "single",
76438
+ optional: false
76439
+ }],
76440
+ "dishwasher.pause": [{
76441
+ name: "deviceId",
76442
+ form: "single",
76443
+ optional: false
76444
+ }],
76445
+ "dishwasher.setChildLock": [{
76446
+ name: "deviceId",
76447
+ form: "single",
76448
+ optional: false
76449
+ }],
76450
+ "dishwasher.setExtraDry": [{
76451
+ name: "deviceId",
76452
+ form: "single",
76453
+ optional: false
76454
+ }],
76455
+ "dishwasher.setHalfLoad": [{
76456
+ name: "deviceId",
76457
+ form: "single",
76458
+ optional: false
76459
+ }],
76460
+ "dishwasher.setHygienePlus": [{
76461
+ name: "deviceId",
76462
+ form: "single",
76463
+ optional: false
76464
+ }],
76465
+ "dishwasher.setIntensiveZone": [{
76466
+ name: "deviceId",
76467
+ form: "single",
76468
+ optional: false
76469
+ }],
76470
+ "dishwasher.setOption": [{
76471
+ name: "deviceId",
76472
+ form: "single",
76473
+ optional: false
76474
+ }],
76475
+ "dishwasher.setPower": [{
76476
+ name: "deviceId",
76477
+ form: "single",
76478
+ optional: false
76479
+ }],
76480
+ "dishwasher.setProgram": [{
76481
+ name: "deviceId",
76482
+ form: "single",
76483
+ optional: false
76484
+ }],
76485
+ "dishwasher.setVarioSpeedPlus": [{
76486
+ name: "deviceId",
76487
+ form: "single",
76488
+ optional: false
76489
+ }],
76490
+ "dishwasher.start": [{
76491
+ name: "deviceId",
76492
+ form: "single",
76493
+ optional: false
76494
+ }],
76495
+ "dishwasher.stop": [{
76496
+ name: "deviceId",
76497
+ form: "single",
76498
+ optional: false
76499
+ }],
76147
76500
  "doorbell.getStatus": [{
76148
76501
  name: "deviceId",
76149
76502
  form: "single",
@@ -76213,6 +76566,11 @@ Object.freeze({
76213
76566
  form: "single",
76214
76567
  optional: false
76215
76568
  }],
76569
+ "heatingValve.getStatus": [{
76570
+ name: "deviceId",
76571
+ form: "single",
76572
+ optional: false
76573
+ }],
76216
76574
  "humidifier.getStatus": [{
76217
76575
  name: "deviceId",
76218
76576
  form: "single",
@@ -190137,7 +190495,7 @@ var MatterBrokerAddon = class extends BaseDeviceProvider {
190137
190495
  super({ ...DEFAULTS });
190138
190496
  }
190139
190497
  async onInitialize() {
190140
- const regs = await super.onInitialize();
190498
+ const regs = this.providerRegistrationsFromSuper(await super.onInitialize());
190141
190499
  const records = this.ctx.records;
190142
190500
  if (records === void 0) throw new Error("matter-broker: ctx.records is required (hub-only addon)");
190143
190501
  await records.declare({ brokers: matterBrokersEntryKind });
package/dist/addon.mjs CHANGED
@@ -5550,7 +5550,7 @@ var ZodIssueCode = {
5550
5550
  var ZodFirstPartyTypeKind;
5551
5551
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5552
5552
  //#endregion
5553
- //#region ../types/dist/sleep-bZIhUvjd.mjs
5553
+ //#region ../types/dist/sleep-BegKjwUu.mjs
5554
5554
  /**
5555
5555
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5556
5556
  * window to float samples (D455).
@@ -8769,7 +8769,7 @@ object({
8769
8769
  params: record(string$2(), union([string$2(), number()])).optional()
8770
8770
  });
8771
8771
  //#endregion
8772
- //#region ../types/dist/err-msg--2RrYiLO.mjs
8772
+ //#region ../types/dist/err-msg-BXKzRBwg.mjs
8773
8773
  var DeviceType = /* @__PURE__ */ function(DeviceType) {
8774
8774
  DeviceType["Camera"] = "camera";
8775
8775
  DeviceType["Hub"] = "hub";
@@ -8861,6 +8861,10 @@ var DeviceType = /* @__PURE__ */ function(DeviceType) {
8861
8861
  * native PetKit (`nodepetkit` `FeederDevice`), reusable by other feeder
8862
8862
  * integrations sharing the same food/desiccant/hopper surface. */
8863
8863
  DeviceType["PetFeeder"] = "pet-feeder";
8864
+ /** Built-in dishwasher — program lifecycle, door / remote-start gates,
8865
+ * salt and rinse-aid levels. Installed with the `dishwasher` cap.
8866
+ * Sources: native Bosch Home Connect, reusable by similar integrations. */
8867
+ DeviceType["Dishwasher"] = "dishwasher";
8864
8868
  return DeviceType;
8865
8869
  }({});
8866
8870
  var DeviceFeature = /* @__PURE__ */ function(DeviceFeature) {
@@ -9118,7 +9122,7 @@ function errMsg(err) {
9118
9122
  return String(err);
9119
9123
  }
9120
9124
  //#endregion
9121
- //#region ../types/dist/composition-DOwQB_Ua.mjs
9125
+ //#region ../types/dist/composition-CB6PMT9p.mjs
9122
9126
  /**
9123
9127
  * The ffmpeg build every CamStack node downloads, per platform and arch.
9124
9128
  *
@@ -13504,8 +13508,13 @@ var AlertSeveritySchema = _enum([
13504
13508
  "info",
13505
13509
  "success",
13506
13510
  "warning",
13507
- "error"
13511
+ "error",
13512
+ "critical"
13508
13513
  ]);
13514
+ var AlertActionSchema = object({
13515
+ label: string$2(),
13516
+ href: string$2().optional()
13517
+ });
13509
13518
  var AlertStatusSchema = _enum([
13510
13519
  "active",
13511
13520
  "in-progress",
@@ -13523,6 +13532,7 @@ var AlertSchema = object({
13523
13532
  severity: AlertSeveritySchema,
13524
13533
  title: string$2(),
13525
13534
  message: string$2(),
13535
+ action: AlertActionSchema.optional(),
13526
13536
  status: AlertStatusSchema,
13527
13537
  progress: number().optional(),
13528
13538
  read: boolean(),
@@ -17933,7 +17943,11 @@ var deviceDiscoveryCapability = {
17933
17943
  };
17934
17944
  /**
17935
17945
  * `device-adoption` — generic discovery + adoption surface,
17936
- * system-scoped singleton. The de-HA-ified successor to `ha-discovery`:
17946
+ * system-scoped collection (one provider per integration addon), routed
17947
+ * by explicit `{ addonId }` on direct `deviceAdoption.*` calls — the same
17948
+ * pin model as `connection-test`. The admin UI keeps using
17949
+ * `deviceManager.adoption*` (which already threads `addonId`). The de-HA-ified
17950
+ * successor to `ha-discovery`:
17937
17951
  * keyed by `integrationId` (the addon resolves integrationId → broker
17938
17952
  * internally) rather than a connection-specific `brokerId`, and it
17939
17953
  * REUSES the shared `DiscoveredChildDevice` candidate type from
@@ -18098,7 +18112,7 @@ var ResyncResultSchema = object({
18098
18112
  var deviceAdoptionCapability = {
18099
18113
  name: "device-adoption",
18100
18114
  scope: "system",
18101
- mode: "singleton",
18115
+ mode: "collection",
18102
18116
  status: {
18103
18117
  schema: AdoptionStatusSchema,
18104
18118
  kind: "poll"
@@ -54130,7 +54144,8 @@ var batteryCapability = {
54130
54144
  DeviceType.Button,
54131
54145
  DeviceType.Switch,
54132
54146
  DeviceType.PetFeeder,
54133
- DeviceType.Container
54147
+ DeviceType.Container,
54148
+ DeviceType.Thermostat
54134
54149
  ],
54135
54150
  methods: {
54136
54151
  /**
@@ -55620,6 +55635,161 @@ onStatusChanged: { data: object({
55620
55635
  * whether persisting is worth a SQLite commit. */
55621
55636
  volatileStateFields: ["lastChangedAt"]
55622
55637
  };
55638
+ /**
55639
+ * Smart-dishwasher cap — program lifecycle, door / remote-start gates,
55640
+ * consumable levels (salt, rinse aid) and common program options.
55641
+ *
55642
+ * Sources: native Bosch Home Connect (`dishwasher` device type). Reusable
55643
+ * by any integration that exposes the same program / option surface.
55644
+ *
55645
+ * `kind: 'poll'` — cloud REST APIs typically have no push channel; the
55646
+ * provider refreshes the slice on an interval and eagerly after commands.
55647
+ */
55648
+ var DishwasherStateSchema = _enum([
55649
+ "idle",
55650
+ "running",
55651
+ "paused",
55652
+ "finished",
55653
+ "error",
55654
+ "unavailable"
55655
+ ]);
55656
+ var DishwasherConsumableLevelSchema = _enum([
55657
+ "ok",
55658
+ "low",
55659
+ "empty"
55660
+ ]);
55661
+ var DishwasherStatusSchema = object({
55662
+ state: DishwasherStateSchema,
55663
+ /** Active program id/name, or null when none selected / unknown. */
55664
+ program: string$2().nullable(),
55665
+ /** Program tokens the hardware accepts — drives the UI selector. */
55666
+ availablePrograms: array(string$2()),
55667
+ /** Minutes remaining on the active cycle, or null when not running. */
55668
+ remainingMinutes: number().int().nonnegative().nullable(),
55669
+ /** Cycle completion 0..100, or null when not applicable. */
55670
+ progressPercent: number().min(0).max(100).nullable(),
55671
+ /** True when the door is reported open. */
55672
+ doorOpen: boolean(),
55673
+ /** True when remote start is allowed (door closed, power on, etc.). */
55674
+ remoteStartAllowed: boolean(),
55675
+ /** Main power / switched-on state. */
55676
+ powerOn: boolean(),
55677
+ saltLevel: DishwasherConsumableLevelSchema.nullable(),
55678
+ rinseAidLevel: DishwasherConsumableLevelSchema.nullable(),
55679
+ halfLoad: boolean(),
55680
+ hygienePlus: boolean(),
55681
+ /** Extra dry option when the appliance exposes it. */
55682
+ extraDry: boolean(),
55683
+ /** Intensive zone (lower basket) when the appliance exposes it. */
55684
+ intensiveZone: boolean(),
55685
+ /** VarioSpeed / VarioSpeed+ when the appliance exposes it. */
55686
+ varioSpeedPlus: boolean(),
55687
+ /** Child lock (controls disabled on the appliance). */
55688
+ childLock: boolean(),
55689
+ errorCode: number().nullable(),
55690
+ errorLabel: string$2().nullable(),
55691
+ lastFetchedAt: number()
55692
+ });
55693
+ var dishwasherCapability = {
55694
+ name: "dishwasher",
55695
+ scope: "device",
55696
+ deviceNative: true,
55697
+ mode: "singleton",
55698
+ deviceTypes: [DeviceType.Dishwasher],
55699
+ methods: {
55700
+ start: method(object({ deviceId: number().int().nonnegative() }), _void(), {
55701
+ kind: "mutation",
55702
+ auth: "protected"
55703
+ }),
55704
+ pause: method(object({ deviceId: number().int().nonnegative() }), _void(), {
55705
+ kind: "mutation",
55706
+ auth: "protected"
55707
+ }),
55708
+ stop: method(object({ deviceId: number().int().nonnegative() }), _void(), {
55709
+ kind: "mutation",
55710
+ auth: "protected"
55711
+ }),
55712
+ setProgram: method(object({
55713
+ deviceId: number().int().nonnegative(),
55714
+ program: string$2().min(1)
55715
+ }), _void(), {
55716
+ kind: "mutation",
55717
+ auth: "protected"
55718
+ }),
55719
+ setPower: method(object({
55720
+ deviceId: number().int().nonnegative(),
55721
+ on: boolean()
55722
+ }), _void(), {
55723
+ kind: "mutation",
55724
+ auth: "protected"
55725
+ }),
55726
+ setHalfLoad: method(object({
55727
+ deviceId: number().int().nonnegative(),
55728
+ on: boolean()
55729
+ }), _void(), {
55730
+ kind: "mutation",
55731
+ auth: "protected"
55732
+ }),
55733
+ setHygienePlus: method(object({
55734
+ deviceId: number().int().nonnegative(),
55735
+ on: boolean()
55736
+ }), _void(), {
55737
+ kind: "mutation",
55738
+ auth: "protected"
55739
+ }),
55740
+ setExtraDry: method(object({
55741
+ deviceId: number().int().nonnegative(),
55742
+ on: boolean()
55743
+ }), _void(), {
55744
+ kind: "mutation",
55745
+ auth: "protected"
55746
+ }),
55747
+ setIntensiveZone: method(object({
55748
+ deviceId: number().int().nonnegative(),
55749
+ on: boolean()
55750
+ }), _void(), {
55751
+ kind: "mutation",
55752
+ auth: "protected"
55753
+ }),
55754
+ setVarioSpeedPlus: method(object({
55755
+ deviceId: number().int().nonnegative(),
55756
+ on: boolean()
55757
+ }), _void(), {
55758
+ kind: "mutation",
55759
+ auth: "protected"
55760
+ }),
55761
+ setChildLock: method(object({
55762
+ deviceId: number().int().nonnegative(),
55763
+ on: boolean()
55764
+ }), _void(), {
55765
+ kind: "mutation",
55766
+ auth: "protected"
55767
+ }),
55768
+ setOption: method(object({
55769
+ deviceId: number().int().nonnegative(),
55770
+ key: string$2().min(1),
55771
+ value: union([
55772
+ boolean(),
55773
+ string$2(),
55774
+ number()
55775
+ ])
55776
+ }), _void(), {
55777
+ kind: "mutation",
55778
+ auth: "protected"
55779
+ })
55780
+ },
55781
+ status: {
55782
+ schema: DishwasherStatusSchema,
55783
+ kind: "poll"
55784
+ },
55785
+ runtimeState: DishwasherStatusSchema,
55786
+ durability: "session",
55787
+ history: { fields: { progressPercent: {
55788
+ kind: "gauge",
55789
+ unit: "%",
55790
+ deadband: 2
55791
+ } } }
55792
+ };
55623
55793
  var DoorbellStatusSchema = object({
55624
55794
  /** Ms epoch of the last press. null = never observed since this provider started. */
55625
55795
  lastPressedAt: number().nullable(),
@@ -56422,6 +56592,32 @@ var gasCapability = {
56422
56592
  * whether persisting is worth a SQLite commit. */
56423
56593
  volatileStateFields: ["lastChangedAt"]
56424
56594
  };
56595
+ var HeatingValveStatusSchema = object({
56596
+ /** Radiator valve opening 0 (closed) .. 100 (open). Null = not yet known. */
56597
+ position: number().min(0).max(100).nullable(),
56598
+ /** Ms epoch when the slice was last updated (push or poll). */
56599
+ lastFetchedAt: number()
56600
+ });
56601
+ var heatingValveCapability = {
56602
+ name: "heating-valve",
56603
+ scope: "device",
56604
+ deviceNative: true,
56605
+ mode: "singleton",
56606
+ deviceTypes: [DeviceType.Thermostat],
56607
+ methods: {},
56608
+ status: {
56609
+ schema: HeatingValveStatusSchema,
56610
+ kind: "push"
56611
+ },
56612
+ runtimeState: HeatingValveStatusSchema,
56613
+ durability: "session",
56614
+ history: { fields: { position: {
56615
+ kind: "gauge",
56616
+ unit: "%",
56617
+ deadband: 1
56618
+ } } },
56619
+ volatileStateFields: ["lastFetchedAt"]
56620
+ };
56425
56621
  /**
56426
56622
  * Humidifier / dehumidifier cap. Models HA `humidifier.*` entities —
56427
56623
  * an on/off actuator with an optional target-humidity setpoint and an
@@ -65842,6 +66038,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
65842
66038
  dayNight: dayNightCapability,
65843
66039
  deviceDiscovery: deviceDiscoveryCapability,
65844
66040
  deviceStatus: deviceStatusCapability,
66041
+ dishwasher: dishwasherCapability,
65845
66042
  doorbell: doorbellCapability,
65846
66043
  enumSensor: enumSensorCapability,
65847
66044
  eventEmitter: eventEmitterCapability,
@@ -65849,6 +66046,7 @@ var DEVICE_LOCAL_STATE_CAPS = {
65849
66046
  featureProbe: featureProbeCapability,
65850
66047
  flood: floodCapability,
65851
66048
  gas: gasCapability,
66049
+ heatingValve: heatingValveCapability,
65852
66050
  humidifier: humidifierCapability,
65853
66051
  humiditySensor: humiditySensorCapability,
65854
66052
  image: imageCapability,
@@ -66574,6 +66772,12 @@ var BaseDeviceProvider = class extends BaseAddon {
66574
66772
  provider: this
66575
66773
  }];
66576
66774
  }
66775
+ /** Flatten `super.onInitialize()` whether it returned an array or an envelope. */
66776
+ providerRegistrationsFromSuper(result) {
66777
+ if (Array.isArray(result)) return result;
66778
+ if (result !== void 0 && result.providers !== void 0) return [...result.providers];
66779
+ return [];
66780
+ }
66577
66781
  async onShutdown() {
66578
66782
  this._restoreShuttingDown = true;
66579
66783
  this.cancelRestoreRetries();
@@ -67100,7 +67304,7 @@ var BaseDeviceProvider = class extends BaseAddon {
67100
67304
  return toDeviceSummary(device, this.addonId);
67101
67305
  }
67102
67306
  };
67103
- 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;
67307
+ 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;
67104
67308
  new Set(Object.values(DeviceType));
67105
67309
  Object.freeze({
67106
67310
  "accessories.getStatus": {
@@ -69521,6 +69725,84 @@ Object.freeze({
69521
69725
  addonId: null,
69522
69726
  access: "view"
69523
69727
  },
69728
+ "dishwasher.getStatus": {
69729
+ capName: "dishwasher",
69730
+ capScope: "device",
69731
+ addonId: null,
69732
+ access: "view"
69733
+ },
69734
+ "dishwasher.pause": {
69735
+ capName: "dishwasher",
69736
+ capScope: "device",
69737
+ addonId: null,
69738
+ access: "create"
69739
+ },
69740
+ "dishwasher.setChildLock": {
69741
+ capName: "dishwasher",
69742
+ capScope: "device",
69743
+ addonId: null,
69744
+ access: "create"
69745
+ },
69746
+ "dishwasher.setExtraDry": {
69747
+ capName: "dishwasher",
69748
+ capScope: "device",
69749
+ addonId: null,
69750
+ access: "create"
69751
+ },
69752
+ "dishwasher.setHalfLoad": {
69753
+ capName: "dishwasher",
69754
+ capScope: "device",
69755
+ addonId: null,
69756
+ access: "create"
69757
+ },
69758
+ "dishwasher.setHygienePlus": {
69759
+ capName: "dishwasher",
69760
+ capScope: "device",
69761
+ addonId: null,
69762
+ access: "create"
69763
+ },
69764
+ "dishwasher.setIntensiveZone": {
69765
+ capName: "dishwasher",
69766
+ capScope: "device",
69767
+ addonId: null,
69768
+ access: "create"
69769
+ },
69770
+ "dishwasher.setOption": {
69771
+ capName: "dishwasher",
69772
+ capScope: "device",
69773
+ addonId: null,
69774
+ access: "create"
69775
+ },
69776
+ "dishwasher.setPower": {
69777
+ capName: "dishwasher",
69778
+ capScope: "device",
69779
+ addonId: null,
69780
+ access: "create"
69781
+ },
69782
+ "dishwasher.setProgram": {
69783
+ capName: "dishwasher",
69784
+ capScope: "device",
69785
+ addonId: null,
69786
+ access: "create"
69787
+ },
69788
+ "dishwasher.setVarioSpeedPlus": {
69789
+ capName: "dishwasher",
69790
+ capScope: "device",
69791
+ addonId: null,
69792
+ access: "create"
69793
+ },
69794
+ "dishwasher.start": {
69795
+ capName: "dishwasher",
69796
+ capScope: "device",
69797
+ addonId: null,
69798
+ access: "create"
69799
+ },
69800
+ "dishwasher.stop": {
69801
+ capName: "dishwasher",
69802
+ capScope: "device",
69803
+ addonId: null,
69804
+ access: "create"
69805
+ },
69524
69806
  "doorbell.getStatus": {
69525
69807
  capName: "doorbell",
69526
69808
  capScope: "device",
@@ -69731,6 +70013,12 @@ Object.freeze({
69731
70013
  addonId: null,
69732
70014
  access: "view"
69733
70015
  },
70016
+ "heatingValve.getStatus": {
70017
+ capName: "heating-valve",
70018
+ capScope: "device",
70019
+ addonId: null,
70020
+ access: "view"
70021
+ },
69734
70022
  "humidifier.getStatus": {
69735
70023
  capName: "humidifier",
69736
70024
  capScope: "device",
@@ -75318,7 +75606,7 @@ Object.freeze({
75318
75606
  access: "create"
75319
75607
  }
75320
75608
  });
75321
- 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;
75609
+ 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;
75322
75610
  DeviceFeature.BatteryOperated;
75323
75611
  Object.freeze({
75324
75612
  "accessories.getStatus": [{
@@ -76142,6 +76430,71 @@ Object.freeze({
76142
76430
  form: "single",
76143
76431
  optional: false
76144
76432
  }],
76433
+ "dishwasher.getStatus": [{
76434
+ name: "deviceId",
76435
+ form: "single",
76436
+ optional: false
76437
+ }],
76438
+ "dishwasher.pause": [{
76439
+ name: "deviceId",
76440
+ form: "single",
76441
+ optional: false
76442
+ }],
76443
+ "dishwasher.setChildLock": [{
76444
+ name: "deviceId",
76445
+ form: "single",
76446
+ optional: false
76447
+ }],
76448
+ "dishwasher.setExtraDry": [{
76449
+ name: "deviceId",
76450
+ form: "single",
76451
+ optional: false
76452
+ }],
76453
+ "dishwasher.setHalfLoad": [{
76454
+ name: "deviceId",
76455
+ form: "single",
76456
+ optional: false
76457
+ }],
76458
+ "dishwasher.setHygienePlus": [{
76459
+ name: "deviceId",
76460
+ form: "single",
76461
+ optional: false
76462
+ }],
76463
+ "dishwasher.setIntensiveZone": [{
76464
+ name: "deviceId",
76465
+ form: "single",
76466
+ optional: false
76467
+ }],
76468
+ "dishwasher.setOption": [{
76469
+ name: "deviceId",
76470
+ form: "single",
76471
+ optional: false
76472
+ }],
76473
+ "dishwasher.setPower": [{
76474
+ name: "deviceId",
76475
+ form: "single",
76476
+ optional: false
76477
+ }],
76478
+ "dishwasher.setProgram": [{
76479
+ name: "deviceId",
76480
+ form: "single",
76481
+ optional: false
76482
+ }],
76483
+ "dishwasher.setVarioSpeedPlus": [{
76484
+ name: "deviceId",
76485
+ form: "single",
76486
+ optional: false
76487
+ }],
76488
+ "dishwasher.start": [{
76489
+ name: "deviceId",
76490
+ form: "single",
76491
+ optional: false
76492
+ }],
76493
+ "dishwasher.stop": [{
76494
+ name: "deviceId",
76495
+ form: "single",
76496
+ optional: false
76497
+ }],
76145
76498
  "doorbell.getStatus": [{
76146
76499
  name: "deviceId",
76147
76500
  form: "single",
@@ -76211,6 +76564,11 @@ Object.freeze({
76211
76564
  form: "single",
76212
76565
  optional: false
76213
76566
  }],
76567
+ "heatingValve.getStatus": [{
76568
+ name: "deviceId",
76569
+ form: "single",
76570
+ optional: false
76571
+ }],
76214
76572
  "humidifier.getStatus": [{
76215
76573
  name: "deviceId",
76216
76574
  form: "single",
@@ -190135,7 +190493,7 @@ var MatterBrokerAddon = class extends BaseDeviceProvider {
190135
190493
  super({ ...DEFAULTS });
190136
190494
  }
190137
190495
  async onInitialize() {
190138
- const regs = await super.onInitialize();
190496
+ const regs = this.providerRegistrationsFromSuper(await super.onInitialize());
190139
190497
  const records = this.ctx.records;
190140
190498
  if (records === void 0) throw new Error("matter-broker: ctx.records is required (hub-only addon)");
190141
190499
  await records.declare({ brokers: matterBrokersEntryKind });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-matter-broker",
3
- "version": "0.2.127",
3
+ "version": "0.2.129",
4
4
  "description": "Matter broker addon for CamStack — owns a Matter fabric (commissioning + the long-lived controller) via the matter.js controller and brokers commissioned Matter nodes into CamStack",
5
5
  "keywords": [
6
6
  "camstack",