@homebridge-plugins/homebridge-matter 1.1.0 → 1.2.0

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to `@homebridge-plugins/homebridge-matter` will be documented in this file.
4
4
 
5
+ ## v1.2.0 (2026-04-05)
6
+
7
+ ### Changed
8
+
9
+ - fix: allow combined accessories
10
+ - dependency updates
11
+
5
12
  ## v1.1.0 (2026-04-02)
6
13
 
7
14
  ### Changed
package/README.md CHANGED
@@ -27,7 +27,7 @@ This plugin provides example implementations of Matter device types in Homebridg
27
27
 
28
28
  - To use this plugin, you will need to already have:
29
29
  - [Node](https://nodejs.org): latest version of `v22` or `v24` - any other major version is not supported.
30
- - [Homebridge](https://homebridge.io): `>=2.0.0-beta.83` - refer to link for more information and installation instructions.
30
+ - [Homebridge](https://homebridge.io): `>=2.0.0-beta.85` - refer to link for more information and installation instructions.
31
31
 
32
32
  ### Getting Started
33
33
 
@@ -1,11 +1,19 @@
1
1
  /**
2
2
  * Power Strip Accessory Class
3
3
  *
4
- * This demonstrates a composed device with multiple independent endpoints (parts).
5
- * Each outlet appears as a separate device in the Home app and can be controlled independently.
4
+ * This demonstrates a composed device with multiple independent child endpoints (parts).
5
+ * The parent uses BridgedNode as a non-controllable container, and each outlet is a
6
+ * child endpoint. In Apple Home, this appears as a single accessory that can be
7
+ * expanded into separate tiles for independent control.
6
8
  *
7
- * This uses the Homebridge Matter API's `parts` feature to create true multi-endpoint
8
- * composed devices, where each part has its own Matter endpoint.
9
+ * This uses the Homebridge Matter API's `parts` feature to create true sub-endpoint
10
+ * composed devices, where each part is a child of the parent endpoint.
11
+ *
12
+ * Note: In Apple Home, the child accessories inherit their name from the parent
13
+ * accessory's displayName, not from the individual part displayName. This is a
14
+ * HomeKit limitation. The part displayName is used in the Homebridge UI.
15
+ *
16
+ * @see https://github.com/matter-js/matter.js/blob/main/docs/MIGRATION_GUIDE_08.md
9
17
  */
10
18
  import type { API, ClusterStateMap, Logger } from 'homebridge';
11
19
  import { BaseMatterAccessory } from '../BaseMatterAccessory.js';
@@ -21,14 +29,6 @@ export declare class PowerStripAccessory extends BaseMatterAccessory {
21
29
  * Called when a specific outlet is turned off from the Home app
22
30
  */
23
31
  private handleOutletOff;
24
- /**
25
- * Master ON - Turns on all outlets
26
- */
27
- private handleMasterOn;
28
- /**
29
- * Master OFF - Turns off all outlets
30
- */
31
- private handleMasterOff;
32
32
  /**
33
33
  * Extract outlet number from part ID
34
34
  */
@@ -1,11 +1,19 @@
1
1
  /**
2
2
  * Power Strip Accessory Class
3
3
  *
4
- * This demonstrates a composed device with multiple independent endpoints (parts).
5
- * Each outlet appears as a separate device in the Home app and can be controlled independently.
4
+ * This demonstrates a composed device with multiple independent child endpoints (parts).
5
+ * The parent uses BridgedNode as a non-controllable container, and each outlet is a
6
+ * child endpoint. In Apple Home, this appears as a single accessory that can be
7
+ * expanded into separate tiles for independent control.
6
8
  *
7
- * This uses the Homebridge Matter API's `parts` feature to create true multi-endpoint
8
- * composed devices, where each part has its own Matter endpoint.
9
+ * This uses the Homebridge Matter API's `parts` feature to create true sub-endpoint
10
+ * composed devices, where each part is a child of the parent endpoint.
11
+ *
12
+ * Note: In Apple Home, the child accessories inherit their name from the parent
13
+ * accessory's displayName, not from the individual part displayName. This is a
14
+ * HomeKit limitation. The part displayName is used in the Homebridge UI.
15
+ *
16
+ * @see https://github.com/matter-js/matter.js/blob/main/docs/MIGRATION_GUIDE_08.md
9
17
  */
10
18
  import { BaseMatterAccessory } from '../BaseMatterAccessory.js';
11
19
  const OUTLET_REGEX = /outlet-(\d+)/;
@@ -15,27 +23,16 @@ export class PowerStripAccessory extends BaseMatterAccessory {
15
23
  super(api, log, {
16
24
  UUID: api.matter.uuid.generate(serialNumber),
17
25
  displayName: 'Power Strip',
18
- deviceType: api.matter.deviceTypes.OnOffOutlet,
26
+ deviceType: api.matter.deviceTypes.BridgedNode,
19
27
  serialNumber,
20
28
  manufacturer: 'Homebridge Matter',
21
29
  model: 'HB-MATTER-POWER-STRIP-4X',
22
30
  firmwareRevision: '2.0.0',
23
31
  hardwareRevision: '1.0.0',
24
- // Main accessory can optionally have its own clusters/handlers
25
- // Here we'll just use it as a container for the 4 outlet parts
26
- clusters: {
27
- onOff: {
28
- onOff: false, // Master control
29
- },
30
- },
31
- handlers: {
32
- onOff: {
33
- on: async () => this.handleMasterOn(),
34
- off: async () => this.handleMasterOff(),
35
- },
36
- },
37
- // Define 4 independent outlet parts
38
- // Each part appears as a separate device in the Home app
32
+ // BridgedNode is a non-controllable container for composed devices.
33
+ // No clusters or handlers on the parent only the child parts below.
34
+ // In Apple Home, the parts appear as a single accessory that can be
35
+ // expanded into separate tiles.
39
36
  parts: [
40
37
  {
41
38
  id: 'outlet-1',
@@ -104,21 +101,6 @@ export class PowerStripAccessory extends BaseMatterAccessory {
104
101
  async handleOutletOn(partId) {
105
102
  const outletNumber = this.getOutletNumber(partId);
106
103
  this.logInfo(`Outlet ${outletNumber} turned ON`);
107
- // Example: Check per-outlet overcurrent protection
108
- // if (this.outletHasTrippedBreaker(outletNumber)) {
109
- // throw new MatterStatus.InvalidInState(`Outlet ${outletNumber} overcurrent protection tripped`)
110
- // }
111
- // Example: Check if outlet is disabled via child lock
112
- // if (this.isChildLockEnabled(outletNumber)) {
113
- // throw new MatterStatus.PermissionDenied(`Outlet ${outletNumber} is child-locked`)
114
- // }
115
- // Example: Check total power strip load capacity
116
- // const currentLoad = await this.getTotalPowerDraw()
117
- // if (currentLoad + this.estimatedOutletLoad > this.maxWattage) {
118
- // throw new MatterStatus.ResourceExhausted(
119
- // `Cannot turn on - would exceed power strip capacity (${this.maxWattage}W)`
120
- // )
121
- // }
122
104
  // TODO: Send command to actual power strip hardware
123
105
  // await myPowerStripAPI.turnOnOutlet(outletNumber)
124
106
  }
@@ -132,50 +114,6 @@ export class PowerStripAccessory extends BaseMatterAccessory {
132
114
  // TODO: Send command to actual power strip hardware
133
115
  // await myPowerStripAPI.turnOffOutlet(outletNumber)
134
116
  }
135
- /**
136
- * Master ON - Turns on all outlets
137
- */
138
- async handleMasterOn() {
139
- this.logInfo('Master ON - turning on all outlets.');
140
- // Example: Check if any outlet has a tripped breaker
141
- // const trippedOutlets = this.getTrippedOutlets()
142
- // if (trippedOutlets.length > 0) {
143
- // throw new MatterStatus.InvalidInState(
144
- // `Cannot turn on all - outlets ${trippedOutlets.join(', ')} have tripped breakers`
145
- // )
146
- // }
147
- // Example: Check if turning on all outlets would exceed capacity
148
- // const totalEstimatedLoad = this.estimatedOutletLoad * 4
149
- // if (totalEstimatedLoad > this.maxWattage) {
150
- // throw new MatterStatus.ResourceExhausted(
151
- // `Cannot turn on all outlets - would exceed ${this.maxWattage}W capacity`
152
- // )
153
- // }
154
- // Example: Check if master control is disabled
155
- // if (this.isMasterControlDisabled) {
156
- // throw new MatterStatus.PermissionDenied('Master control is disabled - control outlets individually')
157
- // }
158
- // Update each outlet's state
159
- for (let i = 1; i <= 4; i++) {
160
- const partId = `outlet-${i}`;
161
- await this.updateState(this.api.matter.clusterNames.OnOff, { onOff: true }, partId);
162
- }
163
- // TODO: Send command to actual power strip hardware
164
- // await myPowerStripAPI.turnOnAllOutlets()
165
- }
166
- /**
167
- * Master OFF - Turns off all outlets
168
- */
169
- async handleMasterOff() {
170
- this.logInfo('Master OFF - turning off all outlets.');
171
- // Update each outlet's state
172
- for (let i = 1; i <= 4; i++) {
173
- const partId = `outlet-${i}`;
174
- await this.updateState(this.api.matter.clusterNames.OnOff, { onOff: false }, partId);
175
- }
176
- // TODO: Send command to actual power strip hardware
177
- // await myPowerStripAPI.turnOffAllOutlets()
178
- }
179
117
  /**
180
118
  * Extract outlet number from part ID
181
119
  */
@@ -192,10 +130,7 @@ export class PowerStripAccessory extends BaseMatterAccessory {
192
130
  async turnOnOutlet(outletNumber) {
193
131
  const partId = `outlet-${outletNumber}`;
194
132
  this.logInfo(`Programmatically turning ON outlet ${outletNumber}`);
195
- // Update the specific outlet's state
196
133
  await this.updateState(this.api.matter.clusterNames.OnOff, { onOff: true }, partId);
197
- // TODO: Send command to actual power strip hardware
198
- // await myPowerStripAPI.turnOnOutlet(outletNumber)
199
134
  }
200
135
  /**
201
136
  * Turn off a specific outlet programmatically
@@ -206,10 +141,7 @@ export class PowerStripAccessory extends BaseMatterAccessory {
206
141
  async turnOffOutlet(outletNumber) {
207
142
  const partId = `outlet-${outletNumber}`;
208
143
  this.logInfo(`Programmatically turning OFF outlet ${outletNumber}`);
209
- // Update the specific outlet's state
210
144
  await this.updateState(this.api.matter.clusterNames.OnOff, { onOff: false }, partId);
211
- // TODO: Send command to actual power strip hardware
212
- // await myPowerStripAPI.turnOffOutlet(outletNumber)
213
145
  }
214
146
  /**
215
147
  * Toggle a specific outlet
@@ -233,7 +165,6 @@ export class PowerStripAccessory extends BaseMatterAccessory {
233
165
  */
234
166
  async getOutletState(outletNumber) {
235
167
  const partId = `outlet-${outletNumber}`;
236
- // Get the state using the typed readState helper
237
168
  const state = await this.readState('onOff', partId);
238
169
  return state?.onOff === true;
239
170
  }
@@ -260,7 +191,6 @@ export class PowerStripAccessory extends BaseMatterAccessory {
260
191
  async updateOutletStateFromExternal(outletNumber, isOn) {
261
192
  const partId = `outlet-${outletNumber}`;
262
193
  this.logInfo(`Outlet ${outletNumber} state updated from external source: ${isOn ? 'ON' : 'OFF'}`);
263
- // Update the specific outlet's state
264
194
  await this.updateState(this.api.matter.clusterNames.OnOff, { onOff: isOn }, partId);
265
195
  }
266
196
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PowerStripAccessory.js","sourceRoot":"","sources":["../../../src/devices/custom/PowerStripAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PowerStripAccessory.js","sourceRoot":"","sources":["../../../src/devices/custom/PowerStripAccessory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "displayName": "Homebridge Matter",
4
4
  "alias": "Matter",
5
5
  "type": "module",
6
- "version": "1.1.0",
6
+ "version": "1.2.0",
7
7
  "description": "Homebridge plugin to showcase examples of Matter devices in Homebridge.",
8
8
  "author": {
9
9
  "name": "bwp91",
@@ -49,7 +49,7 @@
49
49
  "main": "dist/index.js",
50
50
  "engines": {
51
51
  "node": "^22.10.0 || ^24.0.0",
52
- "homebridge": ">=2.0.0-beta.83"
52
+ "homebridge": ">=2.0.0-beta.85"
53
53
  },
54
54
  "scripts": {
55
55
  "build": "rimraf ./dist && tsc && npm run plugin-ui",
@@ -63,8 +63,8 @@
63
63
  },
64
64
  "devDependencies": {
65
65
  "@antfu/eslint-config": "^8.0.0",
66
- "@types/node": "^25.5.0",
67
- "homebridge": "^2.0.0-beta.83",
66
+ "@types/node": "^25.5.2",
67
+ "homebridge": "2.0.0-beta.85",
68
68
  "rimraf": "^6.1.3",
69
69
  "ts-node": "^10.9.2",
70
70
  "typescript": "^6.0.2"