@homebridge-plugins/homebridge-matter 0.2.1 → 0.3.1
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 +13 -0
- package/README.md +29 -35
- package/config.schema.json +23 -7
- package/dist/devices/BaseMatterAccessory.d.ts +4 -2
- package/dist/devices/BaseMatterAccessory.js +3 -0
- package/dist/devices/BaseMatterAccessory.js.map +1 -1
- package/dist/devices/custom/PowerStripAccessory.d.ts +96 -0
- package/dist/devices/custom/PowerStripAccessory.js +265 -0
- package/dist/devices/custom/PowerStripAccessory.js.map +1 -0
- package/dist/devices/custom/index.d.ts +7 -0
- package/dist/devices/custom/index.js +8 -0
- package/dist/devices/custom/index.js.map +1 -0
- package/dist/devices/index.d.ts +1 -0
- package/dist/devices/index.js +1 -0
- package/dist/devices/index.js.map +1 -1
- package/dist/homebridge-ui/public/index.html +34 -17
- package/dist/platform.d.ts +8 -0
- package/dist/platform.js +28 -1
- package/dist/platform.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `@homebridge-plugins/homebridge-matter` will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## v0.3.1 (2025-10-26)
|
|
6
|
+
|
|
7
|
+
### Changes
|
|
8
|
+
|
|
9
|
+
- move api doc to github repo wiki
|
|
10
|
+
- support links alignment with github wiki
|
|
11
|
+
|
|
12
|
+
## v0.3.0 (2025-10-26)
|
|
13
|
+
|
|
14
|
+
### Changes
|
|
15
|
+
|
|
16
|
+
- added structure for + first custom examples
|
|
17
|
+
|
|
5
18
|
## v0.2.1 (2025-10-25)
|
|
6
19
|
|
|
7
20
|
### Changes
|
package/README.md
CHANGED
|
@@ -21,53 +21,47 @@ Homebridge plugin to showcase examples of Matter devices in Homebridge.
|
|
|
21
21
|
|
|
22
22
|
This plugin provides example implementations of Matter device types in Homebridge:
|
|
23
23
|
|
|
24
|
-
- **21+ Matter Device Types**: Complete implementations across all major Matter device categories
|
|
25
24
|
- **Demonstration & Testing**: Perfect for developers building Matter plugins or testing Matter integrations
|
|
26
25
|
- **Example Code Reference**: Clean, documented examples showing how to implement Matter devices in Homebridge
|
|
27
|
-
- **Apple Home Compatible**:
|
|
28
|
-
- **Production Ready**: Built on the official Matter specification with proper cluster implementations
|
|
26
|
+
- **Apple Home Compatible**: Works seamlessly with Apple Home and other Matter ecosystems
|
|
29
27
|
|
|
30
|
-
|
|
28
|
+
### Prerequisites
|
|
31
29
|
|
|
32
|
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
- Colour Temperature Light
|
|
36
|
-
- Colour Light (HS)
|
|
37
|
-
- Extended Colour Light (HS+CCT)
|
|
30
|
+
- To use this plugin, you will need to already have:
|
|
31
|
+
- [Node](https://nodejs.org): latest version of `v20`, `v22` or `v24` - any other major version is not supported.
|
|
32
|
+
- [Homebridge](https://homebridge.io): `>=2.0.0-beta.31` - refer to link for more information and installation instructions.
|
|
38
33
|
|
|
39
|
-
|
|
40
|
-
- On/Off Outlet
|
|
34
|
+
### Getting Started
|
|
41
35
|
|
|
42
|
-
|
|
43
|
-
-
|
|
36
|
+
- [Home](https://github.com/homebridge-plugins/homebridge-matter/wiki/Home)
|
|
37
|
+
- [Enabling Matter](https://github.com/homebridge-plugins/homebridge-matter/wiki/Enabling-Matter)
|
|
44
38
|
|
|
45
|
-
|
|
46
|
-
- Contact Sensor
|
|
47
|
-
- Light Sensor
|
|
48
|
-
- Motion Sensor (Occupancy)
|
|
49
|
-
- Temperature Sensor
|
|
50
|
-
- Humidity Sensor
|
|
51
|
-
- Smoke/CO Alarm
|
|
52
|
-
- Water Leak Detector
|
|
39
|
+
### Development Guide
|
|
53
40
|
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
41
|
+
- [Introduction](https://github.com/homebridge-plugins/homebridge-matter/wiki/Introduction)
|
|
42
|
+
- [Core Concepts](https://github.com/homebridge-plugins/homebridge-matter/wiki/Core-Concepts)
|
|
43
|
+
- [Getting Started](https://github.com/homebridge-plugins/homebridge-matter/wiki/Getting-Started)
|
|
44
|
+
- [State Management](https://github.com/homebridge-plugins/homebridge-matter/wiki/State-Management)
|
|
45
|
+
- [Monitoring External Changes](https://github.com/homebridge-plugins/homebridge-matter/wiki/Monitoring-External-Changes)
|
|
46
|
+
- [Best Practices](https://github.com/homebridge-plugins/homebridge-matter/wiki/Best-Practices)
|
|
47
|
+
- [Advanced Patterns](https://github.com/homebridge-plugins/homebridge-matter/wiki/Advanced-Patterns)
|
|
58
48
|
|
|
59
|
-
|
|
60
|
-
- Thermostat
|
|
61
|
-
- Fan
|
|
49
|
+
### Reference
|
|
62
50
|
|
|
63
|
-
|
|
64
|
-
-
|
|
51
|
+
- [API Reference](https://github.com/homebridge-plugins/homebridge-matter/wiki/API-Reference)
|
|
52
|
+
- [Matter Types](https://github.com/homebridge-plugins/homebridge-matter/wiki/Matter-Types)
|
|
53
|
+
- [Value Conversions](https://github.com/homebridge-plugins/homebridge-matter/wiki/Value-Conversions)
|
|
65
54
|
|
|
66
|
-
###
|
|
55
|
+
### Device Reference
|
|
67
56
|
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
|
|
57
|
+
- [Lighting Devices (§4)](https://github.com/homebridge-plugins/homebridge-matter/wiki/Section-4-Lighting)
|
|
58
|
+
- [Smart Plugs/Actuators (§5)](https://github.com/homebridge-plugins/homebridge-matter/wiki/Section-5-Smart-Plugs)
|
|
59
|
+
- [Switches & Controllers (§6)](https://github.com/homebridge-plugins/homebridge-matter/wiki/Section-6-Switches)
|
|
60
|
+
- [Sensors (§7)](https://github.com/homebridge-plugins/homebridge-matter/wiki/Section-7-Sensors)
|
|
61
|
+
- [Closure Devices (§8)](https://github.com/homebridge-plugins/homebridge-matter/wiki/Section-8-Closure)
|
|
62
|
+
- [HVAC (§9)](https://github.com/homebridge-plugins/homebridge-matter/wiki/Section-9-HVAC)
|
|
63
|
+
- [Robotic Devices (§12)](https://github.com/homebridge-plugins/homebridge-matter/wiki/Section-12-Robotic)
|
|
64
|
+
- [Custom Devices](https://github.com/homebridge-plugins/homebridge-matter/wiki/Custom-Devices)
|
|
71
65
|
|
|
72
66
|
### Help/About
|
|
73
67
|
|
package/config.schema.json
CHANGED
|
@@ -135,6 +135,12 @@
|
|
|
135
135
|
"type": "boolean",
|
|
136
136
|
"default": false,
|
|
137
137
|
"description": "Enable the robotic vacuum cleaner example accessory (Matter Spec § 12.1). This device is automatically published on its own dedicated Matter bridge for Apple Home compatibility. You'll receive separate commissioning codes (QR code + manual code) for the robot vacuum in the Homebridge logs when Homebridge starts."
|
|
138
|
+
},
|
|
139
|
+
"enablePowerStrip": {
|
|
140
|
+
"title": "Enable Power Strip",
|
|
141
|
+
"type": "boolean",
|
|
142
|
+
"default": false,
|
|
143
|
+
"description": "Enable the power strip with 4 outlets example accessory. This is a custom device demonstrating how to manage multiple logical outlets within a single Matter device."
|
|
138
144
|
}
|
|
139
145
|
}
|
|
140
146
|
},
|
|
@@ -147,7 +153,7 @@
|
|
|
147
153
|
{
|
|
148
154
|
"type": "fieldset",
|
|
149
155
|
"title": "Section 4: Lighting Devices",
|
|
150
|
-
"description": "Matter Specification § 4 - Fundamental lighting device types (5 devices implemented)",
|
|
156
|
+
"description": "Matter Specification § 4 - Fundamental lighting device types (5 devices implemented).",
|
|
151
157
|
"expandable": true,
|
|
152
158
|
"expanded": false,
|
|
153
159
|
"items": [
|
|
@@ -161,7 +167,7 @@
|
|
|
161
167
|
{
|
|
162
168
|
"type": "fieldset",
|
|
163
169
|
"title": "Section 5: Smart Plugs/Actuators",
|
|
164
|
-
"description": "Matter Specification § 5 - Devices that control power and fluid flow (1 device implemented)",
|
|
170
|
+
"description": "Matter Specification § 5 - Devices that control power and fluid flow (1 device implemented).",
|
|
165
171
|
"expandable": true,
|
|
166
172
|
"expanded": false,
|
|
167
173
|
"items": [
|
|
@@ -171,7 +177,7 @@
|
|
|
171
177
|
{
|
|
172
178
|
"type": "fieldset",
|
|
173
179
|
"title": "Section 6: Switches & Controllers",
|
|
174
|
-
"description": "Matter Specification § 6 - Input devices and control interfaces (1 device implemented)",
|
|
180
|
+
"description": "Matter Specification § 6 - Input devices and control interfaces (1 device implemented).",
|
|
175
181
|
"expandable": true,
|
|
176
182
|
"expanded": false,
|
|
177
183
|
"items": [
|
|
@@ -181,7 +187,7 @@
|
|
|
181
187
|
{
|
|
182
188
|
"type": "fieldset",
|
|
183
189
|
"title": "Section 7: Sensors",
|
|
184
|
-
"description": "Matter Specification § 7 - All sensor types (7 devices implemented)",
|
|
190
|
+
"description": "Matter Specification § 7 - All sensor types (7 devices implemented).",
|
|
185
191
|
"expandable": true,
|
|
186
192
|
"expanded": false,
|
|
187
193
|
"items": [
|
|
@@ -197,7 +203,7 @@
|
|
|
197
203
|
{
|
|
198
204
|
"type": "fieldset",
|
|
199
205
|
"title": "Section 8: Closure Devices",
|
|
200
|
-
"description": "Matter Specification § 8 - Locks and window coverings (3 devices implemented)",
|
|
206
|
+
"description": "Matter Specification § 8 - Locks and window coverings (3 devices implemented).",
|
|
201
207
|
"expandable": true,
|
|
202
208
|
"expanded": false,
|
|
203
209
|
"items": [
|
|
@@ -209,7 +215,7 @@
|
|
|
209
215
|
{
|
|
210
216
|
"type": "fieldset",
|
|
211
217
|
"title": "Section 9: HVAC",
|
|
212
|
-
"description": "Matter Specification § 9 - Heating, ventilation, and air conditioning (2 devices implemented)",
|
|
218
|
+
"description": "Matter Specification § 9 - Heating, ventilation, and air conditioning (2 devices implemented).",
|
|
213
219
|
"expandable": true,
|
|
214
220
|
"expanded": false,
|
|
215
221
|
"items": [
|
|
@@ -220,12 +226,22 @@
|
|
|
220
226
|
{
|
|
221
227
|
"type": "fieldset",
|
|
222
228
|
"title": "Section 12: Robotic Devices",
|
|
223
|
-
"description": "Matter Specification § 12 - Autonomous cleaning devices (1 device implemented)",
|
|
229
|
+
"description": "Matter Specification § 12 - Autonomous cleaning devices (1 device implemented).",
|
|
224
230
|
"expandable": true,
|
|
225
231
|
"expanded": false,
|
|
226
232
|
"items": [
|
|
227
233
|
"enableRobotVacuum"
|
|
228
234
|
]
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"type": "fieldset",
|
|
238
|
+
"title": "Custom Devices",
|
|
239
|
+
"description": "Custom device examples demonstrating advanced patterns and use cases.",
|
|
240
|
+
"expandable": true,
|
|
241
|
+
"expanded": false,
|
|
242
|
+
"items": [
|
|
243
|
+
"enablePowerStrip"
|
|
244
|
+
]
|
|
229
245
|
}
|
|
230
246
|
]
|
|
231
247
|
}
|
|
@@ -18,8 +18,9 @@ export interface BaseMatterAccessoryConfig {
|
|
|
18
18
|
firmwareRevision: string;
|
|
19
19
|
hardwareRevision: string;
|
|
20
20
|
context?: Record<string, unknown>;
|
|
21
|
-
clusters
|
|
21
|
+
clusters?: MatterAccessory['clusters'];
|
|
22
22
|
handlers?: MatterAccessory['handlers'];
|
|
23
|
+
parts?: MatterAccessory['parts'];
|
|
23
24
|
}
|
|
24
25
|
/**
|
|
25
26
|
* Base class for all Matter accessories
|
|
@@ -35,8 +36,9 @@ export declare abstract class BaseMatterAccessory implements MatterAccessory {
|
|
|
35
36
|
readonly firmwareRevision: string;
|
|
36
37
|
readonly hardwareRevision: string;
|
|
37
38
|
readonly context: Record<string, unknown>;
|
|
38
|
-
readonly clusters
|
|
39
|
+
readonly clusters?: MatterAccessory['clusters'];
|
|
39
40
|
readonly handlers?: MatterAccessory['handlers'];
|
|
41
|
+
readonly parts?: MatterAccessory['parts'];
|
|
40
42
|
protected readonly api: API;
|
|
41
43
|
protected readonly log: Logger;
|
|
42
44
|
constructor(api: API, log: Logger, config: BaseMatterAccessoryConfig);
|
|
@@ -24,6 +24,7 @@ export class BaseMatterAccessory {
|
|
|
24
24
|
context;
|
|
25
25
|
clusters;
|
|
26
26
|
handlers;
|
|
27
|
+
parts;
|
|
27
28
|
// Protected properties available to child classes
|
|
28
29
|
api;
|
|
29
30
|
log;
|
|
@@ -41,6 +42,7 @@ export class BaseMatterAccessory {
|
|
|
41
42
|
this.hardwareRevision = config.hardwareRevision;
|
|
42
43
|
this.clusters = config.clusters;
|
|
43
44
|
this.handlers = config.handlers;
|
|
45
|
+
this.parts = config.parts;
|
|
44
46
|
// Set context with all metadata
|
|
45
47
|
this.context = {
|
|
46
48
|
serialNumber: this.serialNumber,
|
|
@@ -91,6 +93,7 @@ export class BaseMatterAccessory {
|
|
|
91
93
|
context: this.context,
|
|
92
94
|
clusters: this.clusters,
|
|
93
95
|
handlers: this.handlers,
|
|
96
|
+
parts: this.parts,
|
|
94
97
|
};
|
|
95
98
|
}
|
|
96
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseMatterAccessory.js","sourceRoot":"","sources":["../../src/devices/BaseMatterAccessory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"BaseMatterAccessory.js","sourceRoot":"","sources":["../../src/devices/BaseMatterAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Power Strip Accessory Class
|
|
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.
|
|
6
|
+
*
|
|
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
|
+
*/
|
|
10
|
+
import type { API, Logger } from 'homebridge';
|
|
11
|
+
import { BaseMatterAccessory } from '../BaseMatterAccessory.js';
|
|
12
|
+
export declare class PowerStripAccessory extends BaseMatterAccessory {
|
|
13
|
+
constructor(api: API, log: Logger);
|
|
14
|
+
/**
|
|
15
|
+
* Handler for individual outlet ON command
|
|
16
|
+
* Called when a specific outlet is turned on from the Home app
|
|
17
|
+
*/
|
|
18
|
+
private handleOutletOn;
|
|
19
|
+
/**
|
|
20
|
+
* Handler for individual outlet OFF command
|
|
21
|
+
* Called when a specific outlet is turned off from the Home app
|
|
22
|
+
*/
|
|
23
|
+
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
|
+
/**
|
|
33
|
+
* Extract outlet number from part ID
|
|
34
|
+
*/
|
|
35
|
+
private getOutletNumber;
|
|
36
|
+
/**
|
|
37
|
+
* Turn on a specific outlet programmatically
|
|
38
|
+
* Use this to update outlet state from external sources (API, webhooks, etc.)
|
|
39
|
+
*
|
|
40
|
+
* @param outletNumber - Outlet number (1-4)
|
|
41
|
+
*/
|
|
42
|
+
turnOnOutlet(outletNumber: 1 | 2 | 3 | 4): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Turn off a specific outlet programmatically
|
|
45
|
+
* Use this to update outlet state from external sources (API, webhooks, etc.)
|
|
46
|
+
*
|
|
47
|
+
* @param outletNumber - Outlet number (1-4)
|
|
48
|
+
*/
|
|
49
|
+
turnOffOutlet(outletNumber: 1 | 2 | 3 | 4): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Toggle a specific outlet
|
|
52
|
+
*
|
|
53
|
+
* @param outletNumber - Outlet number (1-4)
|
|
54
|
+
*/
|
|
55
|
+
toggleOutlet(outletNumber: 1 | 2 | 3 | 4): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Get the current state of a specific outlet
|
|
58
|
+
*
|
|
59
|
+
* @param outletNumber - Outlet number (1-4)
|
|
60
|
+
* @returns Current on/off state of the outlet
|
|
61
|
+
*/
|
|
62
|
+
getOutletState(outletNumber: 1 | 2 | 3 | 4): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Get the state of all outlets
|
|
65
|
+
*
|
|
66
|
+
* @returns Object containing state of all outlets
|
|
67
|
+
*/
|
|
68
|
+
getAllOutletStates(): Record<string, boolean>;
|
|
69
|
+
/**
|
|
70
|
+
* Update the state of a specific outlet from external source
|
|
71
|
+
* (e.g., when outlet state changes via physical button or other controller)
|
|
72
|
+
*
|
|
73
|
+
* @param outletNumber - Outlet number (1-4)
|
|
74
|
+
* @param isOn - New state of the outlet
|
|
75
|
+
*/
|
|
76
|
+
updateOutletStateFromExternal(outletNumber: 1 | 2 | 3 | 4, isOn: boolean): void;
|
|
77
|
+
/**
|
|
78
|
+
* Update all outlet states from external source
|
|
79
|
+
*
|
|
80
|
+
* @param states - Object containing new states for all outlets
|
|
81
|
+
* @param states.outlet1 - State for outlet 1
|
|
82
|
+
* @param states.outlet2 - State for outlet 2
|
|
83
|
+
* @param states.outlet3 - State for outlet 3
|
|
84
|
+
* @param states.outlet4 - State for outlet 4
|
|
85
|
+
*/
|
|
86
|
+
updateAllOutletStatesFromExternal(states: {
|
|
87
|
+
outlet1: boolean;
|
|
88
|
+
outlet2: boolean;
|
|
89
|
+
outlet3: boolean;
|
|
90
|
+
outlet4: boolean;
|
|
91
|
+
}): void;
|
|
92
|
+
/**
|
|
93
|
+
* Override updateState to support partId parameter
|
|
94
|
+
*/
|
|
95
|
+
protected updateState(cluster: string, attributes: Record<string, unknown>, partId?: string): void;
|
|
96
|
+
}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Power Strip Accessory Class
|
|
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.
|
|
6
|
+
*
|
|
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
|
+
*/
|
|
10
|
+
import { BaseMatterAccessory } from '../BaseMatterAccessory.js';
|
|
11
|
+
export class PowerStripAccessory extends BaseMatterAccessory {
|
|
12
|
+
constructor(api, log) {
|
|
13
|
+
const serialNumber = 'POWER-STRIP-001';
|
|
14
|
+
super(api, log, {
|
|
15
|
+
uuid: api.matter.uuid.generate(serialNumber),
|
|
16
|
+
displayName: 'Power Strip',
|
|
17
|
+
deviceType: api.matter.deviceTypes.OnOffOutlet,
|
|
18
|
+
serialNumber,
|
|
19
|
+
manufacturer: 'Homebridge Matter',
|
|
20
|
+
model: 'HB-MATTER-POWER-STRIP-4X',
|
|
21
|
+
firmwareRevision: '2.0.0',
|
|
22
|
+
hardwareRevision: '1.0.0',
|
|
23
|
+
// Main accessory can optionally have its own clusters/handlers
|
|
24
|
+
// Here we'll just use it as a container for the 4 outlet parts
|
|
25
|
+
clusters: {
|
|
26
|
+
onOff: {
|
|
27
|
+
onOff: false, // Master control
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
handlers: {
|
|
31
|
+
onOff: {
|
|
32
|
+
on: async () => this.handleMasterOn(),
|
|
33
|
+
off: async () => this.handleMasterOff(),
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
// Define 4 independent outlet parts
|
|
37
|
+
// Each part appears as a separate device in the Home app
|
|
38
|
+
parts: [
|
|
39
|
+
{
|
|
40
|
+
id: 'outlet-1',
|
|
41
|
+
displayName: 'Outlet 1',
|
|
42
|
+
deviceType: api.matter.deviceTypes.OnOffOutlet,
|
|
43
|
+
clusters: {
|
|
44
|
+
onOff: { onOff: false },
|
|
45
|
+
},
|
|
46
|
+
handlers: {
|
|
47
|
+
onOff: {
|
|
48
|
+
on: async (_args, context) => this.handleOutletOn(context?.partId || 'outlet-1'),
|
|
49
|
+
off: async (_args, context) => this.handleOutletOff(context?.partId || 'outlet-1'),
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: 'outlet-2',
|
|
55
|
+
displayName: 'Outlet 2',
|
|
56
|
+
deviceType: api.matter.deviceTypes.OnOffOutlet,
|
|
57
|
+
clusters: {
|
|
58
|
+
onOff: { onOff: false },
|
|
59
|
+
},
|
|
60
|
+
handlers: {
|
|
61
|
+
onOff: {
|
|
62
|
+
on: async (_args, context) => this.handleOutletOn(context?.partId || 'outlet-2'),
|
|
63
|
+
off: async (_args, context) => this.handleOutletOff(context?.partId || 'outlet-2'),
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
id: 'outlet-3',
|
|
69
|
+
displayName: 'Outlet 3',
|
|
70
|
+
deviceType: api.matter.deviceTypes.OnOffOutlet,
|
|
71
|
+
clusters: {
|
|
72
|
+
onOff: { onOff: false },
|
|
73
|
+
},
|
|
74
|
+
handlers: {
|
|
75
|
+
onOff: {
|
|
76
|
+
on: async (_args, context) => this.handleOutletOn(context?.partId || 'outlet-3'),
|
|
77
|
+
off: async (_args, context) => this.handleOutletOff(context?.partId || 'outlet-3'),
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: 'outlet-4',
|
|
83
|
+
displayName: 'Outlet 4',
|
|
84
|
+
deviceType: api.matter.deviceTypes.OnOffOutlet,
|
|
85
|
+
clusters: {
|
|
86
|
+
onOff: { onOff: false },
|
|
87
|
+
},
|
|
88
|
+
handlers: {
|
|
89
|
+
onOff: {
|
|
90
|
+
on: async (_args, context) => this.handleOutletOn(context?.partId || 'outlet-4'),
|
|
91
|
+
off: async (_args, context) => this.handleOutletOff(context?.partId || 'outlet-4'),
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
});
|
|
97
|
+
this.logInfo('initialized with 4 independent outlet endpoints.');
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Handler for individual outlet ON command
|
|
101
|
+
* Called when a specific outlet is turned on from the Home app
|
|
102
|
+
*/
|
|
103
|
+
async handleOutletOn(partId) {
|
|
104
|
+
const outletNumber = this.getOutletNumber(partId);
|
|
105
|
+
this.logInfo(`Outlet ${outletNumber} turned ON`);
|
|
106
|
+
// TODO: Send command to actual power strip hardware
|
|
107
|
+
// await myPowerStripAPI.turnOnOutlet(outletNumber)
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Handler for individual outlet OFF command
|
|
111
|
+
* Called when a specific outlet is turned off from the Home app
|
|
112
|
+
*/
|
|
113
|
+
async handleOutletOff(partId) {
|
|
114
|
+
const outletNumber = this.getOutletNumber(partId);
|
|
115
|
+
this.logInfo(`Outlet ${outletNumber} turned OFF`);
|
|
116
|
+
// TODO: Send command to actual power strip hardware
|
|
117
|
+
// await myPowerStripAPI.turnOffOutlet(outletNumber)
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Master ON - Turns on all outlets
|
|
121
|
+
*/
|
|
122
|
+
async handleMasterOn() {
|
|
123
|
+
this.logInfo('Master ON - turning on all outlets.');
|
|
124
|
+
// Update each outlet's state
|
|
125
|
+
for (let i = 1; i <= 4; i++) {
|
|
126
|
+
const partId = `outlet-${i}`;
|
|
127
|
+
this.updateState(this.api.matter.clusterNames.OnOff, { onOff: true }, partId);
|
|
128
|
+
}
|
|
129
|
+
// TODO: Send command to actual power strip hardware
|
|
130
|
+
// await myPowerStripAPI.turnOnAllOutlets()
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Master OFF - Turns off all outlets
|
|
134
|
+
*/
|
|
135
|
+
async handleMasterOff() {
|
|
136
|
+
this.logInfo('Master OFF - turning off all outlets.');
|
|
137
|
+
// Update each outlet's state
|
|
138
|
+
for (let i = 1; i <= 4; i++) {
|
|
139
|
+
const partId = `outlet-${i}`;
|
|
140
|
+
this.updateState(this.api.matter.clusterNames.OnOff, { onOff: false }, partId);
|
|
141
|
+
}
|
|
142
|
+
// TODO: Send command to actual power strip hardware
|
|
143
|
+
// await myPowerStripAPI.turnOffAllOutlets()
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Extract outlet number from part ID
|
|
147
|
+
*/
|
|
148
|
+
getOutletNumber(partId) {
|
|
149
|
+
const match = partId.match(/outlet-(\d+)/);
|
|
150
|
+
return match ? Number.parseInt(match[1], 10) : 0;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Turn on a specific outlet programmatically
|
|
154
|
+
* Use this to update outlet state from external sources (API, webhooks, etc.)
|
|
155
|
+
*
|
|
156
|
+
* @param outletNumber - Outlet number (1-4)
|
|
157
|
+
*/
|
|
158
|
+
async turnOnOutlet(outletNumber) {
|
|
159
|
+
const partId = `outlet-${outletNumber}`;
|
|
160
|
+
this.logInfo(`Programmatically turning ON outlet ${outletNumber}`);
|
|
161
|
+
// Update the specific outlet's state
|
|
162
|
+
this.updateState(this.api.matter.clusterNames.OnOff, { onOff: true }, partId);
|
|
163
|
+
// TODO: Send command to actual power strip hardware
|
|
164
|
+
// await myPowerStripAPI.turnOnOutlet(outletNumber)
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Turn off a specific outlet programmatically
|
|
168
|
+
* Use this to update outlet state from external sources (API, webhooks, etc.)
|
|
169
|
+
*
|
|
170
|
+
* @param outletNumber - Outlet number (1-4)
|
|
171
|
+
*/
|
|
172
|
+
async turnOffOutlet(outletNumber) {
|
|
173
|
+
const partId = `outlet-${outletNumber}`;
|
|
174
|
+
this.logInfo(`Programmatically turning OFF outlet ${outletNumber}`);
|
|
175
|
+
// Update the specific outlet's state
|
|
176
|
+
this.updateState(this.api.matter.clusterNames.OnOff, { onOff: false }, partId);
|
|
177
|
+
// TODO: Send command to actual power strip hardware
|
|
178
|
+
// await myPowerStripAPI.turnOffOutlet(outletNumber)
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Toggle a specific outlet
|
|
182
|
+
*
|
|
183
|
+
* @param outletNumber - Outlet number (1-4)
|
|
184
|
+
*/
|
|
185
|
+
async toggleOutlet(outletNumber) {
|
|
186
|
+
const currentState = this.getOutletState(outletNumber);
|
|
187
|
+
if (currentState) {
|
|
188
|
+
await this.turnOffOutlet(outletNumber);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
await this.turnOnOutlet(outletNumber);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get the current state of a specific outlet
|
|
196
|
+
*
|
|
197
|
+
* @param outletNumber - Outlet number (1-4)
|
|
198
|
+
* @returns Current on/off state of the outlet
|
|
199
|
+
*/
|
|
200
|
+
getOutletState(outletNumber) {
|
|
201
|
+
const partId = `outlet-${outletNumber}`;
|
|
202
|
+
// Get the state from the Matter server
|
|
203
|
+
const state = this.api.matter.getAccessoryState(this.uuid, this.api.matter.clusterNames.OnOff, partId);
|
|
204
|
+
return state?.onOff === true;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Get the state of all outlets
|
|
208
|
+
*
|
|
209
|
+
* @returns Object containing state of all outlets
|
|
210
|
+
*/
|
|
211
|
+
getAllOutletStates() {
|
|
212
|
+
return {
|
|
213
|
+
outlet1: this.getOutletState(1),
|
|
214
|
+
outlet2: this.getOutletState(2),
|
|
215
|
+
outlet3: this.getOutletState(3),
|
|
216
|
+
outlet4: this.getOutletState(4),
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Update the state of a specific outlet from external source
|
|
221
|
+
* (e.g., when outlet state changes via physical button or other controller)
|
|
222
|
+
*
|
|
223
|
+
* @param outletNumber - Outlet number (1-4)
|
|
224
|
+
* @param isOn - New state of the outlet
|
|
225
|
+
*/
|
|
226
|
+
updateOutletStateFromExternal(outletNumber, isOn) {
|
|
227
|
+
const partId = `outlet-${outletNumber}`;
|
|
228
|
+
this.logInfo(`Outlet ${outletNumber} state updated from external source: ${isOn ? 'ON' : 'OFF'}`);
|
|
229
|
+
// Update the specific outlet's state
|
|
230
|
+
this.updateState(this.api.matter.clusterNames.OnOff, { onOff: isOn }, partId);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Update all outlet states from external source
|
|
234
|
+
*
|
|
235
|
+
* @param states - Object containing new states for all outlets
|
|
236
|
+
* @param states.outlet1 - State for outlet 1
|
|
237
|
+
* @param states.outlet2 - State for outlet 2
|
|
238
|
+
* @param states.outlet3 - State for outlet 3
|
|
239
|
+
* @param states.outlet4 - State for outlet 4
|
|
240
|
+
*/
|
|
241
|
+
updateAllOutletStatesFromExternal(states) {
|
|
242
|
+
this.logInfo('All outlet states updated from external source.');
|
|
243
|
+
for (let i = 1; i <= 4; i++) {
|
|
244
|
+
const key = `outlet${i}`;
|
|
245
|
+
const partId = `outlet-${i}`;
|
|
246
|
+
this.updateState(this.api.matter.clusterNames.OnOff, { onOff: states[key] }, partId);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Override updateState to support partId parameter
|
|
251
|
+
*/
|
|
252
|
+
updateState(cluster, attributes, partId) {
|
|
253
|
+
if (partId) {
|
|
254
|
+
// Update a specific part
|
|
255
|
+
this.api.matter.updateAccessoryState(this.uuid, cluster, attributes, partId);
|
|
256
|
+
this.logDebug(`Updated ${cluster} state for part ${partId}:`, attributes);
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
// Update main accessory
|
|
260
|
+
this.api.matter.updateAccessoryState(this.uuid, cluster, attributes);
|
|
261
|
+
this.logDebug(`Updated ${cluster} state:`, attributes);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=PowerStripAccessory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PowerStripAccessory.js","sourceRoot":"","sources":["../../../src/devices/custom/PowerStripAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom Device Examples
|
|
3
|
+
*
|
|
4
|
+
* This folder contains custom device examples that demonstrate advanced
|
|
5
|
+
* patterns and use cases beyond the standard Matter device types.
|
|
6
|
+
*/
|
|
7
|
+
export { PowerStripAccessory } from './PowerStripAccessory.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/devices/custom/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA"}
|
package/dist/devices/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export type { BaseMatterAccessoryConfig } from './BaseMatterAccessory.js';
|
|
|
8
8
|
export { ColorLightAccessory } from './ColorLightAccessory.js';
|
|
9
9
|
export { ColorTemperatureLightAccessory } from './ColorTemperatureLightAccessory.js';
|
|
10
10
|
export { ContactSensorAccessory } from './ContactSensorAccessory.js';
|
|
11
|
+
export { PowerStripAccessory } from './custom/index.js';
|
|
11
12
|
export { DimmableLightAccessory } from './DimmableLightAccessory.js';
|
|
12
13
|
export { DoorLockAccessory } from './DoorLockAccessory.js';
|
|
13
14
|
export { ExtendedColorLightAccessory } from './ExtendedColorLightAccessory.js';
|
package/dist/devices/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
|
7
7
|
export { ColorLightAccessory } from './ColorLightAccessory.js';
|
|
8
8
|
export { ColorTemperatureLightAccessory } from './ColorTemperatureLightAccessory.js';
|
|
9
9
|
export { ContactSensorAccessory } from './ContactSensorAccessory.js';
|
|
10
|
+
export { PowerStripAccessory } from './custom/index.js';
|
|
10
11
|
export { DimmableLightAccessory } from './DimmableLightAccessory.js';
|
|
11
12
|
export { DoorLockAccessory } from './DoorLockAccessory.js';
|
|
12
13
|
export { ExtendedColorLightAccessory } from './ExtendedColorLightAccessory.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAA;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA"}
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
role="alert"
|
|
71
71
|
style="display: none; border-left: 4px solid #dc3545;"
|
|
72
72
|
>
|
|
73
|
-
|
|
73
|
+
⚠️ Homebridge Matter support and this plugin are still in development and should be considered <strong>experimental</strong>.
|
|
74
74
|
</div>
|
|
75
75
|
<div
|
|
76
76
|
id="disabledBanner"
|
|
@@ -153,25 +153,45 @@
|
|
|
153
153
|
<div id="pageSupport" class="mt-4" style="display: none;">
|
|
154
154
|
<p class="text-center lead">Thank you for using <strong>homebridge-matter</strong></p>
|
|
155
155
|
<p class="text-center">The links below will take you to our GitHub wiki</p>
|
|
156
|
-
<h4>
|
|
156
|
+
<h4>Getting Started</h4>
|
|
157
157
|
<ul>
|
|
158
|
-
<li>
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
158
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Home" target="_blank">Home</a></li>
|
|
159
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Enabling-Matter" target="_blank">Enabling Matter</a></li>
|
|
160
|
+
</ul>
|
|
161
|
+
<h4>Development Guide</h4>
|
|
162
|
+
<ul>
|
|
163
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Introduction" target="_blank">Introduction</a></li>
|
|
164
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Core-Concepts" target="_blank">Core Concepts</a></li>
|
|
165
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Getting-Started" target="_blank">Getting Started</a></li>
|
|
166
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/State-Management" target="_blank">State Management</a></li>
|
|
167
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Monitoring-External-Changes" target="_blank">Monitoring External Changes</a></li>
|
|
168
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Best-Practices" target="_blank">Best Practices</a></li>
|
|
169
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Advanced-Patterns" target="_blank">Advanced Patterns</a></li>
|
|
170
|
+
</ul>
|
|
171
|
+
<h4>Reference</h4>
|
|
172
|
+
<ul>
|
|
173
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/API-Reference" target="_blank">API Reference</a></li>
|
|
174
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Matter-Types" target="_blank">Matter Types</a></li>
|
|
175
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Value-Conversions" target="_blank">Value Conversions</a></li>
|
|
176
|
+
</ul>
|
|
177
|
+
<h4>Device Reference</h4>
|
|
178
|
+
<ul>
|
|
179
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Section-4-Lighting" target="_blank">Lighting Devices (§4)</a></li>
|
|
180
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Section-5-Smart-Plugs" target="_blank">Smart Plugs/Actuators (§5)</a></li>
|
|
181
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Section-6-Switches" target="_blank">Switches & Controllers (§6)</a></li>
|
|
182
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Section-7-Sensors" target="_blank">Sensors (§7)</a></li>
|
|
183
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Section-8-Closure" target="_blank">Closure Devices (§8)</a></li>
|
|
184
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Section-9-HVAC" target="_blank">HVAC (§9)</a></li>
|
|
185
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Section-12-Robotic" target="_blank">Robotic Devices (§12)</a></li>
|
|
186
|
+
<li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Custom-Devices" target="_blank">Custom Devices</a></li>
|
|
163
187
|
</ul>
|
|
164
188
|
<h4>Help/About</h4>
|
|
165
189
|
<ul>
|
|
166
190
|
<li>
|
|
167
|
-
<a href="https://github.com/homebridge-plugins/homebridge-matter/issues/new/choose" target="_blank"
|
|
168
|
-
>Support Request</a
|
|
169
|
-
>
|
|
191
|
+
<a href="https://github.com/homebridge-plugins/homebridge-matter/issues/new/choose" target="_blank">Support Request</a>
|
|
170
192
|
</li>
|
|
171
193
|
<li>
|
|
172
|
-
<a href="https://github.com/homebridge-plugins/homebridge-matter/blob/latest/CHANGELOG.md" target="_blank"
|
|
173
|
-
>Changelog</a
|
|
174
|
-
>
|
|
194
|
+
<a href="https://github.com/homebridge-plugins/homebridge-matter/blob/latest/CHANGELOG.md" target="_blank">Changelog</a>
|
|
175
195
|
</li>
|
|
176
196
|
<li>
|
|
177
197
|
<a href="https://github.com/sponsors/bwp91" target="_blank">About Me</a>
|
|
@@ -179,11 +199,8 @@
|
|
|
179
199
|
</ul>
|
|
180
200
|
<h4>Credits</h4>
|
|
181
201
|
<ul>
|
|
182
|
-
<li>
|
|
183
|
-
To the developers of <a href="https://github.com/matter-js/matter.js" target="_blank">matter.js</a> who make the Matter integration possible.
|
|
184
|
-
</li>
|
|
202
|
+
<li>To the developers of <a href="https://github.com/matter-js/matter.js" target="_blank">matter.js</a> who make the Matter integration possible.</li>
|
|
185
203
|
</ul>
|
|
186
|
-
|
|
187
204
|
<h4>Disclaimer</h4>
|
|
188
205
|
<ul>
|
|
189
206
|
<li>
|
package/dist/platform.d.ts
CHANGED
|
@@ -72,4 +72,12 @@ export declare class MatterPlatform implements DynamicPlatformPlugin {
|
|
|
72
72
|
* Use those codes to pair the vacuum as a separate bridge in your Home app.
|
|
73
73
|
*/
|
|
74
74
|
private registerSection12Robotic;
|
|
75
|
+
/**
|
|
76
|
+
* Custom Devices
|
|
77
|
+
*
|
|
78
|
+
* This section demonstrates custom device implementations that go beyond
|
|
79
|
+
* the standard Matter device types. These examples show advanced patterns
|
|
80
|
+
* like managing multiple logical components within a single device.
|
|
81
|
+
*/
|
|
82
|
+
private registerCustomDevices;
|
|
75
83
|
}
|
package/dist/platform.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ColorLightAccessory, ColorTemperatureLightAccessory, ContactSensorAccessory, DimmableLightAccessory, DoorLockAccessory, ExtendedColorLightAccessory, FanAccessory, HumiditySensorAccessory, LeakSensorAccessory, LightSensorAccessory, OccupancySensorAccessory, OnOffLightAccessory, OnOffOutletAccessory, OnOffSwitchAccessory, RoboticVacuumAccessory, SmokeCOAlarmAccessory, TemperatureSensorAccessory, ThermostatAccessory, VenetianBlindAccessory, WindowBlindAccessory, } from './devices/index.js';
|
|
1
|
+
import { ColorLightAccessory, ColorTemperatureLightAccessory, ContactSensorAccessory, DimmableLightAccessory, DoorLockAccessory, ExtendedColorLightAccessory, FanAccessory, HumiditySensorAccessory, LeakSensorAccessory, LightSensorAccessory, OccupancySensorAccessory, OnOffLightAccessory, OnOffOutletAccessory, OnOffSwitchAccessory, PowerStripAccessory, RoboticVacuumAccessory, SmokeCOAlarmAccessory, TemperatureSensorAccessory, ThermostatAccessory, VenetianBlindAccessory, WindowBlindAccessory, } from './devices/index.js';
|
|
2
2
|
import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
|
|
3
3
|
/**
|
|
4
4
|
* MatterPlatform
|
|
@@ -75,6 +75,7 @@ export class MatterPlatform {
|
|
|
75
75
|
this.registerSection8Closure();
|
|
76
76
|
this.registerSection9HVAC();
|
|
77
77
|
this.registerSection12Robotic();
|
|
78
|
+
this.registerCustomDevices();
|
|
78
79
|
this.log.info('═'.repeat(80));
|
|
79
80
|
this.log.info('Finished registering Matter accessories');
|
|
80
81
|
this.log.info('═'.repeat(80));
|
|
@@ -104,6 +105,7 @@ export class MatterPlatform {
|
|
|
104
105
|
{ enabled: this.config.enableThermostat, uuid: this.api.matter.uuid.generate('matter-thermostat'), name: 'Thermostat' },
|
|
105
106
|
{ enabled: this.config.enableFan, uuid: this.api.matter.uuid.generate('matter-fan'), name: 'Fan' },
|
|
106
107
|
{ enabled: this.config.enableRobotVacuum, uuid: this.api.matter.uuid.generate('matter-robot-vacuum'), name: 'Robot Vacuum' },
|
|
108
|
+
{ enabled: this.config.enablePowerStrip, uuid: this.api.matter.uuid.generate('matter-power-strip'), name: 'Power Strip' },
|
|
107
109
|
];
|
|
108
110
|
for (const { enabled, uuid, name } of configMap) {
|
|
109
111
|
if (enabled === false) {
|
|
@@ -343,5 +345,30 @@ export class MatterPlatform {
|
|
|
343
345
|
this.api.matter.publishExternalAccessories(PLUGIN_NAME, accessories);
|
|
344
346
|
}
|
|
345
347
|
}
|
|
348
|
+
/**
|
|
349
|
+
* Custom Devices
|
|
350
|
+
*
|
|
351
|
+
* This section demonstrates custom device implementations that go beyond
|
|
352
|
+
* the standard Matter device types. These examples show advanced patterns
|
|
353
|
+
* like managing multiple logical components within a single device.
|
|
354
|
+
*/
|
|
355
|
+
registerCustomDevices() {
|
|
356
|
+
this.log.info('═'.repeat(80));
|
|
357
|
+
this.log.info('Custom Devices');
|
|
358
|
+
this.log.info('═'.repeat(80));
|
|
359
|
+
const accessories = [];
|
|
360
|
+
// Power Strip (4 Outlets)
|
|
361
|
+
if (this.config.enablePowerStrip !== false) {
|
|
362
|
+
const device = new PowerStripAccessory(this.api, this.log);
|
|
363
|
+
accessories.push(device.toAccessory());
|
|
364
|
+
}
|
|
365
|
+
if (accessories.length > 0) {
|
|
366
|
+
this.log.info(`✓ Registered ${accessories.length} custom device(s)`);
|
|
367
|
+
for (const acc of accessories) {
|
|
368
|
+
this.log.info(` - ${acc.displayName}`);
|
|
369
|
+
}
|
|
370
|
+
this.api.matter.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, accessories);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
346
373
|
}
|
|
347
374
|
//# sourceMappingURL=platform.js.map
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.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": "0.
|
|
6
|
+
"version": "0.3.1",
|
|
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": "^20.18.0 || ^22.10.0 || ^24.0.0",
|
|
52
|
-
"homebridge": ">=2.0.0-alpha.
|
|
52
|
+
"homebridge": ">=2.0.0-alpha.0 <2.0.0-beta.0 || >=2.0.0-beta.31"
|
|
53
53
|
},
|
|
54
54
|
"scripts": {
|
|
55
55
|
"build": "rimraf ./dist && tsc && npm run plugin-ui",
|
|
@@ -62,9 +62,9 @@
|
|
|
62
62
|
"@homebridge/plugin-ui-utils": "^2.1.1-beta.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@antfu/eslint-config": "^6.
|
|
65
|
+
"@antfu/eslint-config": "^6.1.0",
|
|
66
66
|
"@types/node": "^24.9.1",
|
|
67
|
-
"homebridge": "2.0.0-
|
|
67
|
+
"homebridge": "^2.0.0-beta.31",
|
|
68
68
|
"rimraf": "^6.0.1",
|
|
69
69
|
"ts-node": "^10.9.2",
|
|
70
70
|
"typescript": "^5.9.3"
|