@homebridge-plugins/homebridge-matter 0.0.5 → 0.1.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.
Files changed (95) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +67 -33
  3. package/config.schema.json +222 -2
  4. package/dist/devices/index.d.ts +13 -0
  5. package/dist/devices/index.js +22 -0
  6. package/dist/devices/index.js.map +1 -0
  7. package/dist/devices/section-12-robotic/index.d.ts +6 -0
  8. package/dist/devices/section-12-robotic/index.js +7 -0
  9. package/dist/devices/section-12-robotic/index.js.map +1 -0
  10. package/dist/devices/section-12-robotic/robotic-vacuum-cleaner.d.ts +63 -0
  11. package/dist/devices/section-12-robotic/robotic-vacuum-cleaner.js +318 -0
  12. package/dist/devices/section-12-robotic/robotic-vacuum-cleaner.js.map +1 -0
  13. package/dist/devices/section-4-lighting/color-temperature-light.d.ts +7 -0
  14. package/dist/devices/section-4-lighting/color-temperature-light.js +62 -0
  15. package/dist/devices/section-4-lighting/color-temperature-light.js.map +1 -0
  16. package/dist/devices/section-4-lighting/dimmable-light.d.ts +7 -0
  17. package/dist/devices/section-4-lighting/dimmable-light.js +48 -0
  18. package/dist/devices/section-4-lighting/dimmable-light.js.map +1 -0
  19. package/dist/devices/section-4-lighting/extended-color-light.d.ts +12 -0
  20. package/dist/devices/section-4-lighting/extended-color-light.js +142 -0
  21. package/dist/devices/section-4-lighting/extended-color-light.js.map +1 -0
  22. package/dist/devices/section-4-lighting/index.d.ts +9 -0
  23. package/dist/devices/section-4-lighting/index.js +10 -0
  24. package/dist/devices/section-4-lighting/index.js.map +1 -0
  25. package/dist/devices/section-4-lighting/on-off-light.d.ts +7 -0
  26. package/dist/devices/section-4-lighting/on-off-light.js +37 -0
  27. package/dist/devices/section-4-lighting/on-off-light.js.map +1 -0
  28. package/dist/devices/section-5-smart-plugs/dimmable-plug-in-unit.d.ts +7 -0
  29. package/dist/devices/section-5-smart-plugs/dimmable-plug-in-unit.js +48 -0
  30. package/dist/devices/section-5-smart-plugs/dimmable-plug-in-unit.js.map +1 -0
  31. package/dist/devices/section-5-smart-plugs/index.d.ts +7 -0
  32. package/dist/devices/section-5-smart-plugs/index.js +8 -0
  33. package/dist/devices/section-5-smart-plugs/index.js.map +1 -0
  34. package/dist/devices/section-5-smart-plugs/on-off-plug-in-unit.d.ts +7 -0
  35. package/dist/devices/section-5-smart-plugs/on-off-plug-in-unit.js +37 -0
  36. package/dist/devices/section-5-smart-plugs/on-off-plug-in-unit.js.map +1 -0
  37. package/dist/devices/section-6-switches/index.d.ts +6 -0
  38. package/dist/devices/section-6-switches/index.js +7 -0
  39. package/dist/devices/section-6-switches/index.js.map +1 -0
  40. package/dist/devices/section-6-switches/on-off-light-switch.d.ts +7 -0
  41. package/dist/devices/section-6-switches/on-off-light-switch.js +30 -0
  42. package/dist/devices/section-6-switches/on-off-light-switch.js.map +1 -0
  43. package/dist/devices/section-7-sensors/contact-sensor.d.ts +7 -0
  44. package/dist/devices/section-7-sensors/contact-sensor.js +27 -0
  45. package/dist/devices/section-7-sensors/contact-sensor.js.map +1 -0
  46. package/dist/devices/section-7-sensors/humidity-sensor.d.ts +7 -0
  47. package/dist/devices/section-7-sensors/humidity-sensor.js +29 -0
  48. package/dist/devices/section-7-sensors/humidity-sensor.js.map +1 -0
  49. package/dist/devices/section-7-sensors/index.d.ts +12 -0
  50. package/dist/devices/section-7-sensors/index.js +13 -0
  51. package/dist/devices/section-7-sensors/index.js.map +1 -0
  52. package/dist/devices/section-7-sensors/light-sensor.d.ts +7 -0
  53. package/dist/devices/section-7-sensors/light-sensor.js +29 -0
  54. package/dist/devices/section-7-sensors/light-sensor.js.map +1 -0
  55. package/dist/devices/section-7-sensors/occupancy-sensor.d.ts +8 -0
  56. package/dist/devices/section-7-sensors/occupancy-sensor.js +33 -0
  57. package/dist/devices/section-7-sensors/occupancy-sensor.js.map +1 -0
  58. package/dist/devices/section-7-sensors/smoke-co-alarm.d.ts +7 -0
  59. package/dist/devices/section-7-sensors/smoke-co-alarm.js +37 -0
  60. package/dist/devices/section-7-sensors/smoke-co-alarm.js.map +1 -0
  61. package/dist/devices/section-7-sensors/temperature-sensor.d.ts +7 -0
  62. package/dist/devices/section-7-sensors/temperature-sensor.js +29 -0
  63. package/dist/devices/section-7-sensors/temperature-sensor.js.map +1 -0
  64. package/dist/devices/section-7-sensors/water-leak-detector.d.ts +7 -0
  65. package/dist/devices/section-7-sensors/water-leak-detector.js +27 -0
  66. package/dist/devices/section-7-sensors/water-leak-detector.js.map +1 -0
  67. package/dist/devices/section-8-closure/door-lock.d.ts +7 -0
  68. package/dist/devices/section-8-closure/door-lock.js +48 -0
  69. package/dist/devices/section-8-closure/door-lock.js.map +1 -0
  70. package/dist/devices/section-8-closure/index.d.ts +7 -0
  71. package/dist/devices/section-8-closure/index.js +8 -0
  72. package/dist/devices/section-8-closure/index.js.map +1 -0
  73. package/dist/devices/section-8-closure/window-covering.d.ts +9 -0
  74. package/dist/devices/section-8-closure/window-covering.js +154 -0
  75. package/dist/devices/section-8-closure/window-covering.js.map +1 -0
  76. package/dist/devices/section-9-hvac/fan.d.ts +7 -0
  77. package/dist/devices/section-9-hvac/fan.js +56 -0
  78. package/dist/devices/section-9-hvac/fan.js.map +1 -0
  79. package/dist/devices/section-9-hvac/index.d.ts +7 -0
  80. package/dist/devices/section-9-hvac/index.js +8 -0
  81. package/dist/devices/section-9-hvac/index.js.map +1 -0
  82. package/dist/devices/section-9-hvac/thermostat.d.ts +7 -0
  83. package/dist/devices/section-9-hvac/thermostat.js +61 -0
  84. package/dist/devices/section-9-hvac/thermostat.js.map +1 -0
  85. package/dist/devices/types.d.ts +16 -0
  86. package/dist/devices/types.js +5 -0
  87. package/dist/devices/types.js.map +1 -0
  88. package/dist/homebridge-ui/public/index.html +269 -0
  89. package/dist/homebridge-ui/server.js +47 -0
  90. package/dist/platform.d.ts +28 -20
  91. package/dist/platform.js +187 -973
  92. package/dist/platform.js.map +1 -1
  93. package/package.json +9 -9
  94. package/plugin-header.png +0 -0
  95. package/.claude/settings.local.json +0 -28
package/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  All notable changes to `@homebridge-plugins/homebridge-matter` will be documented in this file.
4
4
 
5
+ ## v0.1.0 (2025-10-20)
6
+
7
+ ### Changes
8
+
9
+ - added plugin header image
10
+ - update plugin repo meta files
11
+ - added custom plugin ui
12
+ - plugin code refactoring + more devices
13
+ - add plugin workflows, including release workflows
14
+ - Add Claude Code GitHub Workflow (#1)
15
+
16
+ ## v0.0.6 (2025-10-18)
17
+
18
+ ### Changes
19
+
20
+ - allow configuration of examples to expose
21
+
5
22
  ## v0.0.5 (2025-10-18)
6
23
 
7
24
  ### Changes
package/README.md CHANGED
@@ -1,52 +1,86 @@
1
1
  <p align="center">
2
+ <a href="https://github.com/homebridge-plugins/homebridge-matter"><img alt="Homebridge Verified" src="https://github.com/homebridge-plugins/homebridge-matter/blob/latest/plugin-header.png?raw=true" width="600px"></a>
3
+ </p>
4
+ <span align="center">
2
5
 
3
- <img src="https://github.com/homebridge/branding/raw/latest/logos/homebridge-wordmark-logo-vertical.png" width="150">
6
+ # homebridge-matter
4
7
 
5
- </p>
8
+ Homebridge plugin to showcase examples of Matter devices in Homebridge.
6
9
 
7
- <span align="center">
10
+ [![npm](https://img.shields.io/npm/v/@homebridge-plugins/homebridge-matter/latest?label=latest)](https://www.npmjs.com/package/@homebridge-plugins/homebridge-matter)
11
+ [![npm](https://img.shields.io/npm/v/@homebridge-plugins/homebridge-matter/beta?label=beta)](https://github.com/homebridge-plugins/homebridge-matter/wiki/Beta-Version)
12
+
13
+ [![verified-by-homebridge](https://badgen.net/badge/homebridge/verified/purple)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
8
14
 
9
- # Homebridge Matter
15
+ [![npm](https://img.shields.io/npm/dt/@homebridge-plugins/homebridge-matter)](https://www.npmjs.com/package/@homebridge-plugins/homebridge-matter)
16
+ [![Discord](https://img.shields.io/discord/432663330281226270?color=728ED5&logo=discord&label=hb-discord)](https://discord.com/channels/432663330281226270/742733745743855627)
10
17
 
11
18
  </span>
12
19
 
13
- ### Customise Plugin
20
+ ### Plugin Information
21
+
22
+ This plugin provides example implementations of Matter device types in Homebridge:
23
+
24
+ - **21+ Matter Device Types**: Complete implementations across all major Matter device categories
25
+ - **Demonstration & Testing**: Perfect for developers building Matter plugins or testing Matter integrations
26
+ - **Example Code Reference**: Clean, documented examples showing how to implement Matter devices in Homebridge
27
+ - **Apple Home Compatible**: Special support for devices like robotic vacuum cleaners that require dedicated bridges
28
+ - **Production Ready**: Built on the official Matter specification with proper cluster implementations
29
+
30
+ #### Supported Matter Device Types
31
+
32
+ **Section 4: Lighting Devices** (Matter Spec § 4) - 5 devices
33
+ - On/Off Light
34
+ - Dimmable Light
35
+ - Colour Temperature Light
36
+ - Colour Light (HS)
37
+ - Extended Colour Light (HS+CCT)
38
+
39
+ **Section 5: Smart Plugs/Actuators** (Matter Spec § 5) - 2 devices
40
+ - On/Off Outlet
41
+ - Dimmable Outlet
42
+
43
+ **Section 6: Switches & Controllers** (Matter Spec § 6) - 1 device
44
+ - On/Off Light Switch
45
+
46
+ **Section 7: Sensors** (Matter Spec § 7) - 7 devices
47
+ - Contact Sensor
48
+ - Light Sensor
49
+ - Motion Sensor (Occupancy)
50
+ - Temperature Sensor
51
+ - Humidity Sensor
52
+ - Smoke/CO Alarm
53
+ - Water Leak Detector
14
54
 
15
- You can now start customising the plugin template to suit your requirements.
55
+ **Section 8: Closure Devices** (Matter Spec § 8) - 3 devices
56
+ - Door Lock
57
+ - Window Blind
58
+ - Venetian Blind (with Tilt)
16
59
 
17
- - [`src/platform.ts`](./src/platform.ts) - this is where your device setup and discovery should go.
18
- - [`src/platformAccessory.ts`](./src/platformAccessory.ts) - this is where your accessory control logic should go, you can rename or create multiple instances of this file for each accessory type you need to implement as part of your platform plugin. You can refer to the [developer documentation](https://developers.homebridge.io/) to see what characteristics you need to implement for each service type.
19
- - [`config.schema.json`](./config.schema.json) - update the config schema to match the config you expect from the user. See the [Plugin Config Schema Documentation](https://developers.homebridge.io/#/config-schema).
60
+ **Section 9: HVAC** (Matter Spec § 9) - 2 devices
61
+ - Thermostat
62
+ - Fan
20
63
 
21
- ### Matter State Management Guide
64
+ **Section 12: Robotic Devices** (Matter Spec § 12) - 1 device
65
+ - Robotic Vacuum Cleaner (published as an external accessory on a dedicated Matter bridge)
22
66
 
23
- **Important for Matter plugin developers:** Understanding how to manage accessory state is critical when working with Matter.
67
+ ### Prerequisites
24
68
 
25
- 📖 **[Read the State Management Guide](./STATE_MANAGEMENT.md)** to learn:
69
+ - To use this plugin, you will need to already have:
70
+ - [Node](https://nodejs.org): latest version of `v20`, `v22` or `v24` - any other major version is not supported.
71
+ - [Homebridge](https://homebridge.io): `>=2.0.0-alpha.55 <2.0.0-beta.0` - refer to link for more information and installation instructions.
26
72
 
27
- - **Handlers** (Home app → Device) - How to respond when users control devices via Home app
28
- - **State Updates** (Device → Home app) - How to sync state when devices change externally (native app, physical buttons, webhooks, etc.)
29
- - Complete working examples for outlets, lights, and sensors
30
- - Differences between Matter and HAP (HomeKit Accessory Protocol) patterns
73
+ ### Help/About
31
74
 
32
- **Quick Overview:**
75
+ - [Support Request](https://github.com/homebridge-plugins/homebridge-matter/issues/new/choose)
76
+ - [Changelog](https://github.com/homebridge-plugins/homebridge-matter/blob/latest/CHANGELOG.md)
77
+ - [About Me](https://github.com/sponsors/bwp91)
33
78
 
34
- ```typescript
35
- handlers: {
36
- onOff: {
37
- on: async () => {
38
- await yourDeviceAPI.turnOn()
39
- }
40
- }
41
- }
79
+ ### Credits
42
80
 
43
- // Pattern 2: Device changes externally Update Home app
44
- function handleExternalChange(newState: boolean) {
45
- this.api.updateMatterAccessoryState('device-uuid', 'onOff', {
46
- onOff: newState,
47
- })
48
- }
49
- ```
81
+ - To the developers of [matter.js](https://github.com/matter-js/matter.js) who make the Matter integration possible.
50
82
 
51
- See [`STATE_MANAGEMENT.md`](./STATE_MANAGEMENT.md) for complete details and examples.
83
+ ### Disclaimer
52
84
 
85
+ - I am in no way affiliated with Matter and this plugin is a personal project that I maintain in my free time.
86
+ - Use this plugin entirely at your own risk - please see licence for more information.
@@ -2,7 +2,10 @@
2
2
  "pluginAlias": "Matter",
3
3
  "pluginType": "platform",
4
4
  "singular": true,
5
- "strictValidation": false,
5
+ "strictValidation": true,
6
+ "customUi": true,
7
+ "customUiPath": "./dist/homebridge-ui",
8
+ "headerDisplay": "<p align=\"center\"><img width=\"60%\" src=\"https://github.com/homebridge-plugins/homebridge-matter/blob/latest/plugin-header.png?raw=true\"></p><p align=\"center\">For help and support please visit our <a href=\"https://github.com/homebridge-plugins/homebridge-matter/wiki\">GitHub Wiki</a>. We hope you find this plugin useful!</p>",
6
9
  "schema": {
7
10
  "type": "object",
8
11
  "required": ["name"],
@@ -12,7 +15,224 @@
12
15
  "title": "Name",
13
16
  "type": "string",
14
17
  "default": "Homebridge Matter"
18
+ },
19
+ "enableOnOffLight": {
20
+ "title": "Enable On/Off Light",
21
+ "type": "boolean",
22
+ "default": false,
23
+ "description": "Enable the on/off light example accessory (Matter Spec § 4.1)."
24
+ },
25
+ "enableDimmableLight": {
26
+ "title": "Enable Dimmable Light",
27
+ "type": "boolean",
28
+ "default": false,
29
+ "description": "Enable the dimmable light example accessory (Matter Spec § 4.2)."
30
+ },
31
+ "enableColourTemperatureLight": {
32
+ "title": "Enable Colour Temperature Light",
33
+ "type": "boolean",
34
+ "default": false,
35
+ "description": "Enable the colour temperature light example accessory (Matter Spec § 4.3)."
36
+ },
37
+ "enableColourLight": {
38
+ "title": "Enable Colour Light (HS)",
39
+ "type": "boolean",
40
+ "default": false,
41
+ "description": "Enable the colour light (hue/saturation) example accessory (Matter Spec § 4.4)."
42
+ },
43
+ "enableExtendedColourLight": {
44
+ "title": "Enable Extended Colour Light (HS+CCT)",
45
+ "type": "boolean",
46
+ "default": false,
47
+ "description": "Enable the extended colour light (hue/saturation + colour temperature) example accessory (Matter Spec § 4.4)."
48
+ },
49
+ "enableOnOffOutlet": {
50
+ "title": "Enable On/Off Outlet",
51
+ "type": "boolean",
52
+ "default": false,
53
+ "description": "Enable the on/off outlet (smart plug) example accessory (Matter Spec § 5.1)."
54
+ },
55
+ "enableDimmableOutlet": {
56
+ "title": "Enable Dimmable Outlet",
57
+ "type": "boolean",
58
+ "default": false,
59
+ "description": "Enable the dimmable outlet example accessory (Matter Spec § 5.2)."
60
+ },
61
+ "enableOnOffSwitch": {
62
+ "title": "Enable On/Off Light Switch",
63
+ "type": "boolean",
64
+ "default": false,
65
+ "description": "Enable the on/off light switch example accessory (Matter Spec § 6.1)."
66
+ },
67
+ "enableContactSensor": {
68
+ "title": "Enable Contact Sensor",
69
+ "type": "boolean",
70
+ "default": false,
71
+ "description": "Enable the contact sensor example accessory (Matter Spec § 7.1)."
72
+ },
73
+ "enableLightSensor": {
74
+ "title": "Enable Light Sensor",
75
+ "type": "boolean",
76
+ "default": false,
77
+ "description": "Enable the light sensor example accessory (Matter Spec § 7.2)."
78
+ },
79
+ "enableMotionSensor": {
80
+ "title": "Enable Motion Sensor",
81
+ "type": "boolean",
82
+ "default": false,
83
+ "description": "Enable the motion sensor (occupancy sensor) example accessory (Matter Spec § 7.3)."
84
+ },
85
+ "enableTemperatureSensor": {
86
+ "title": "Enable Temperature Sensor",
87
+ "type": "boolean",
88
+ "default": false,
89
+ "description": "Enable the temperature sensor example accessory (Matter Spec § 7.4)."
90
+ },
91
+ "enableHumiditySensor": {
92
+ "title": "Enable Humidity Sensor",
93
+ "type": "boolean",
94
+ "default": false,
95
+ "description": "Enable the humidity sensor example accessory (Matter Spec § 7.7)."
96
+ },
97
+ "enableSmokeSensor": {
98
+ "title": "Enable Smoke/CO Alarm",
99
+ "type": "boolean",
100
+ "default": false,
101
+ "description": "Enable the smoke and carbon monoxide alarm example accessory (Matter Spec § 7.9)."
102
+ },
103
+ "enableLeakSensor": {
104
+ "title": "Enable Water Leak Detector",
105
+ "type": "boolean",
106
+ "default": false,
107
+ "description": "Enable the water leak detector example accessory (Matter Spec § 7.12)."
108
+ },
109
+ "enableDoorLock": {
110
+ "title": "Enable Door Lock",
111
+ "type": "boolean",
112
+ "default": false,
113
+ "description": "Enable the door lock example accessory (Matter Spec § 8.1)."
114
+ },
115
+ "enableWindowBlind": {
116
+ "title": "Enable Window Blind",
117
+ "type": "boolean",
118
+ "default": false,
119
+ "description": "Enable the window blind example accessory (Matter Spec § 8.3)."
120
+ },
121
+ "enableVenetianBlind": {
122
+ "title": "Enable Venetian Blind (Tilt)",
123
+ "type": "boolean",
124
+ "default": false,
125
+ "description": "Enable the Venetian blind with tilt control example accessory (Matter Spec § 8.3)."
126
+ },
127
+ "enableThermostat": {
128
+ "title": "Enable Thermostat",
129
+ "type": "boolean",
130
+ "default": false,
131
+ "description": "Enable the thermostat example accessory (Matter Spec § 9.1)."
132
+ },
133
+ "enableFan": {
134
+ "title": "Enable Fan",
135
+ "type": "boolean",
136
+ "default": false,
137
+ "description": "Enable the fan example accessory (Matter Spec § 9.2)."
138
+ },
139
+ "enableRobotVacuum": {
140
+ "title": "Enable Robotic Vacuum Cleaner (Apple Home Compatible)",
141
+ "type": "boolean",
142
+ "default": false,
143
+ "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."
15
144
  }
16
145
  }
17
- }
146
+ },
147
+ "layout": [
148
+ {
149
+ "type": "fieldset",
150
+ "title": "Plugin Settings",
151
+ "items": ["name"]
152
+ },
153
+ {
154
+ "type": "fieldset",
155
+ "title": "Section 4: Lighting Devices",
156
+ "description": "Matter Specification § 4 - Fundamental lighting device types (5 devices implemented)",
157
+ "expandable": true,
158
+ "expanded": false,
159
+ "items": [
160
+ "enableOnOffLight",
161
+ "enableDimmableLight",
162
+ "enableColourTemperatureLight",
163
+ "enableColourLight",
164
+ "enableExtendedColourLight"
165
+ ]
166
+ },
167
+ {
168
+ "type": "fieldset",
169
+ "title": "Section 5: Smart Plugs/Actuators",
170
+ "description": "Matter Specification § 5 - Devices that control power and fluid flow (2 devices implemented)",
171
+ "expandable": true,
172
+ "expanded": false,
173
+ "items": [
174
+ "enableOnOffOutlet",
175
+ "enableDimmableOutlet"
176
+ ]
177
+ },
178
+ {
179
+ "type": "fieldset",
180
+ "title": "Section 6: Switches & Controllers",
181
+ "description": "Matter Specification § 6 - Input devices and control interfaces (1 device implemented)",
182
+ "expandable": true,
183
+ "expanded": false,
184
+ "items": [
185
+ "enableOnOffSwitch"
186
+ ]
187
+ },
188
+ {
189
+ "type": "fieldset",
190
+ "title": "Section 7: Sensors",
191
+ "description": "Matter Specification § 7 - All sensor types (7 devices implemented)",
192
+ "expandable": true,
193
+ "expanded": false,
194
+ "items": [
195
+ "enableContactSensor",
196
+ "enableLightSensor",
197
+ "enableMotionSensor",
198
+ "enableTemperatureSensor",
199
+ "enableHumiditySensor",
200
+ "enableSmokeSensor",
201
+ "enableLeakSensor"
202
+ ]
203
+ },
204
+ {
205
+ "type": "fieldset",
206
+ "title": "Section 8: Closure Devices",
207
+ "description": "Matter Specification § 8 - Locks and window coverings (3 devices implemented)",
208
+ "expandable": true,
209
+ "expanded": false,
210
+ "items": [
211
+ "enableDoorLock",
212
+ "enableWindowBlind",
213
+ "enableVenetianBlind"
214
+ ]
215
+ },
216
+ {
217
+ "type": "fieldset",
218
+ "title": "Section 9: HVAC",
219
+ "description": "Matter Specification § 9 - Heating, ventilation, and air conditioning (2 devices implemented)",
220
+ "expandable": true,
221
+ "expanded": false,
222
+ "items": [
223
+ "enableThermostat",
224
+ "enableFan"
225
+ ]
226
+ },
227
+ {
228
+ "type": "fieldset",
229
+ "title": "Section 12: Robotic Devices",
230
+ "description": "Matter Specification § 12 - Autonomous cleaning devices (1 device implemented)",
231
+ "expandable": true,
232
+ "expanded": false,
233
+ "items": [
234
+ "enableRobotVacuum"
235
+ ]
236
+ }
237
+ ]
18
238
  }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Matter Device Implementations
3
+ *
4
+ * Organized by official Matter Specification v1.4.1 categories
5
+ */
6
+ export * from './section-4-lighting/index.js';
7
+ export * from './section-5-smart-plugs/index.js';
8
+ export * from './section-6-switches/index.js';
9
+ export * from './section-7-sensors/index.js';
10
+ export * from './section-8-closure/index.js';
11
+ export * from './section-9-hvac/index.js';
12
+ export * from './section-12-robotic/index.js';
13
+ export * from './types.js';
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Matter Device Implementations
3
+ *
4
+ * Organized by official Matter Specification v1.4.1 categories
5
+ */
6
+ // Section 4: Lighting Devices
7
+ export * from './section-4-lighting/index.js';
8
+ // Section 5: Smart Plugs/Actuators
9
+ export * from './section-5-smart-plugs/index.js';
10
+ // Section 6: Switches & Controllers
11
+ export * from './section-6-switches/index.js';
12
+ // Section 7: Sensors
13
+ export * from './section-7-sensors/index.js';
14
+ // Section 8: Closure Devices
15
+ export * from './section-8-closure/index.js';
16
+ // Section 9: HVAC
17
+ export * from './section-9-hvac/index.js';
18
+ // Section 12: Robotic Devices
19
+ export * from './section-12-robotic/index.js';
20
+ // Common types
21
+ export * from './types.js';
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devices/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8BAA8B;AAC9B,cAAc,+BAA+B,CAAA;AAE7C,mCAAmC;AACnC,cAAc,kCAAkC,CAAA;AAEhD,oCAAoC;AACpC,cAAc,+BAA+B,CAAA;AAE7C,qBAAqB;AACrB,cAAc,8BAA8B,CAAA;AAE5C,6BAA6B;AAC7B,cAAc,8BAA8B,CAAA;AAE5C,kBAAkB;AAClB,cAAc,2BAA2B,CAAA;AAEzC,8BAA8B;AAC9B,cAAc,+BAA+B,CAAA;AAE7C,eAAe;AACf,cAAc,YAAY,CAAA"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Section 12: Robotic Devices
3
+ *
4
+ * Matter Specification § 12 - Autonomous cleaning devices
5
+ */
6
+ export { registerRoboticVacuumCleaner } from './robotic-vacuum-cleaner.js';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Section 12: Robotic Devices
3
+ *
4
+ * Matter Specification § 12 - Autonomous cleaning devices
5
+ */
6
+ export { registerRoboticVacuumCleaner } from './robotic-vacuum-cleaner.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/devices/section-12-robotic/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAA"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Robotic Vacuum Cleaner Device (Matter Spec § 12.1)
3
+ *
4
+ * A robotic vacuum cleaner with autonomous cleaning capabilities.
5
+ *
6
+ * ✅ Apple Home Compatibility - EXTERNAL ACCESSORIES
7
+ * This device is published using api.matter.publishExternalAccessories() in platform.ts.
8
+ * RVC devices MUST be on their own dedicated Matter bridge for Apple Home compatibility.
9
+ *
10
+ * IMPORTANT: This function only CREATES the accessory configuration.
11
+ * The actual publishing happens in platform.ts using publishExternalAccessories().
12
+ *
13
+ * What happens when this device is published as external:
14
+ * ─────────────────────────────────────────────────────────────
15
+ * 1. Dedicated Matter Server: Gets its own MatterServer instance
16
+ * 2. Automatic Port Allocation: Receives a unique port (e.g., 5541)
17
+ * 3. Separate Commissioning: Gets its own QR code and manual pairing code
18
+ * 4. Isolation: Completely independent from other Matter accessories
19
+ * 5. Apple Home Compatible: Works properly with Apple Home's RVC requirements
20
+ *
21
+ * When you start Homebridge, you'll see logs like:
22
+ * ```
23
+ * [Matter] Publishing 1 external Matter accessory
24
+ * [Matter] Allocated port 5541 for external Matter accessory: Robot Vacuum
25
+ * [Matter] ✓ External Matter accessory published: Robot Vacuum on port 5541
26
+ * [Matter] 📱 Commissioning codes for Robot Vacuum:
27
+ * [Matter] QR Code: MT:Y.K9042C00KA0648G00
28
+ * [Matter] Manual Code: 3492-8840-7309-5200-911
29
+ * ```
30
+ *
31
+ * Use the separate QR code to commission this device in Apple Home.
32
+ *
33
+ * For developers implementing similar devices:
34
+ * ──────────────────────────────────────────────
35
+ * If you need to create your own device that requires isolation (like cameras,
36
+ * doorbells, or other complex devices that Apple Home requires on separate bridges),
37
+ * follow this pattern:
38
+ *
39
+ * 1. Create the accessory configuration in a device file (like this one)
40
+ * 2. Return it from your registration function
41
+ * 3. In platform.ts, use api.matter.publishExternalAccessories() instead of
42
+ * api.matter.registerPlatformAccessories()
43
+ *
44
+ * Example in your platform.ts:
45
+ * ```typescript
46
+ * const accessories = [...registerYourDevice(context)]
47
+ * if (accessories.length > 0) {
48
+ * // Use publishExternalAccessories for devices that need isolation
49
+ * this.api.matter.publishExternalAccessories(PLUGIN_NAME, accessories)
50
+ * }
51
+ * ```
52
+ */
53
+ import type { DeviceContext } from '../types.js';
54
+ /**
55
+ * Registers a Robotic Vacuum Cleaner accessory.
56
+ *
57
+ * NOTE: This returns the accessory configuration but does NOT publish it.
58
+ * Publishing happens in platform.ts using api.matter.publishExternalAccessories().
59
+ *
60
+ * @param context - Device context containing API, logger, and config
61
+ * @returns Array of RVC accessory configurations (empty if disabled)
62
+ */
63
+ export declare function registerRoboticVacuumCleaner(context: DeviceContext): any[];