@homebridge-plugins/homebridge-matter 0.0.6 → 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.
- package/CHANGELOG.md +11 -0
- package/README.md +67 -33
- package/config.schema.json +73 -77
- package/dist/devices/index.d.ts +13 -0
- package/dist/devices/index.js +22 -0
- package/dist/devices/index.js.map +1 -0
- package/dist/devices/section-12-robotic/index.d.ts +6 -0
- package/dist/devices/section-12-robotic/index.js +7 -0
- package/dist/devices/section-12-robotic/index.js.map +1 -0
- package/dist/devices/section-12-robotic/robotic-vacuum-cleaner.d.ts +63 -0
- package/dist/devices/section-12-robotic/robotic-vacuum-cleaner.js +318 -0
- package/dist/devices/section-12-robotic/robotic-vacuum-cleaner.js.map +1 -0
- package/dist/devices/section-4-lighting/color-temperature-light.d.ts +7 -0
- package/dist/devices/section-4-lighting/color-temperature-light.js +62 -0
- package/dist/devices/section-4-lighting/color-temperature-light.js.map +1 -0
- package/dist/devices/section-4-lighting/dimmable-light.d.ts +7 -0
- package/dist/devices/section-4-lighting/dimmable-light.js +48 -0
- package/dist/devices/section-4-lighting/dimmable-light.js.map +1 -0
- package/dist/devices/section-4-lighting/extended-color-light.d.ts +12 -0
- package/dist/devices/section-4-lighting/extended-color-light.js +142 -0
- package/dist/devices/section-4-lighting/extended-color-light.js.map +1 -0
- package/dist/devices/section-4-lighting/index.d.ts +9 -0
- package/dist/devices/section-4-lighting/index.js +10 -0
- package/dist/devices/section-4-lighting/index.js.map +1 -0
- package/dist/devices/section-4-lighting/on-off-light.d.ts +7 -0
- package/dist/devices/section-4-lighting/on-off-light.js +37 -0
- package/dist/devices/section-4-lighting/on-off-light.js.map +1 -0
- package/dist/devices/section-5-smart-plugs/dimmable-plug-in-unit.d.ts +7 -0
- package/dist/devices/section-5-smart-plugs/dimmable-plug-in-unit.js +48 -0
- package/dist/devices/section-5-smart-plugs/dimmable-plug-in-unit.js.map +1 -0
- package/dist/devices/section-5-smart-plugs/index.d.ts +7 -0
- package/dist/devices/section-5-smart-plugs/index.js +8 -0
- package/dist/devices/section-5-smart-plugs/index.js.map +1 -0
- package/dist/devices/section-5-smart-plugs/on-off-plug-in-unit.d.ts +7 -0
- package/dist/devices/section-5-smart-plugs/on-off-plug-in-unit.js +37 -0
- package/dist/devices/section-5-smart-plugs/on-off-plug-in-unit.js.map +1 -0
- package/dist/devices/section-6-switches/index.d.ts +6 -0
- package/dist/devices/section-6-switches/index.js +7 -0
- package/dist/devices/section-6-switches/index.js.map +1 -0
- package/dist/devices/section-6-switches/on-off-light-switch.d.ts +7 -0
- package/dist/devices/section-6-switches/on-off-light-switch.js +30 -0
- package/dist/devices/section-6-switches/on-off-light-switch.js.map +1 -0
- package/dist/devices/section-7-sensors/contact-sensor.d.ts +7 -0
- package/dist/devices/section-7-sensors/contact-sensor.js +27 -0
- package/dist/devices/section-7-sensors/contact-sensor.js.map +1 -0
- package/dist/devices/section-7-sensors/humidity-sensor.d.ts +7 -0
- package/dist/devices/section-7-sensors/humidity-sensor.js +29 -0
- package/dist/devices/section-7-sensors/humidity-sensor.js.map +1 -0
- package/dist/devices/section-7-sensors/index.d.ts +12 -0
- package/dist/devices/section-7-sensors/index.js +13 -0
- package/dist/devices/section-7-sensors/index.js.map +1 -0
- package/dist/devices/section-7-sensors/light-sensor.d.ts +7 -0
- package/dist/devices/section-7-sensors/light-sensor.js +29 -0
- package/dist/devices/section-7-sensors/light-sensor.js.map +1 -0
- package/dist/devices/section-7-sensors/occupancy-sensor.d.ts +8 -0
- package/dist/devices/section-7-sensors/occupancy-sensor.js +33 -0
- package/dist/devices/section-7-sensors/occupancy-sensor.js.map +1 -0
- package/dist/devices/section-7-sensors/smoke-co-alarm.d.ts +7 -0
- package/dist/devices/section-7-sensors/smoke-co-alarm.js +37 -0
- package/dist/devices/section-7-sensors/smoke-co-alarm.js.map +1 -0
- package/dist/devices/section-7-sensors/temperature-sensor.d.ts +7 -0
- package/dist/devices/section-7-sensors/temperature-sensor.js +29 -0
- package/dist/devices/section-7-sensors/temperature-sensor.js.map +1 -0
- package/dist/devices/section-7-sensors/water-leak-detector.d.ts +7 -0
- package/dist/devices/section-7-sensors/water-leak-detector.js +27 -0
- package/dist/devices/section-7-sensors/water-leak-detector.js.map +1 -0
- package/dist/devices/section-8-closure/door-lock.d.ts +7 -0
- package/dist/devices/section-8-closure/door-lock.js +48 -0
- package/dist/devices/section-8-closure/door-lock.js.map +1 -0
- package/dist/devices/section-8-closure/index.d.ts +7 -0
- package/dist/devices/section-8-closure/index.js +8 -0
- package/dist/devices/section-8-closure/index.js.map +1 -0
- package/dist/devices/section-8-closure/window-covering.d.ts +9 -0
- package/dist/devices/section-8-closure/window-covering.js +154 -0
- package/dist/devices/section-8-closure/window-covering.js.map +1 -0
- package/dist/devices/section-9-hvac/fan.d.ts +7 -0
- package/dist/devices/section-9-hvac/fan.js +56 -0
- package/dist/devices/section-9-hvac/fan.js.map +1 -0
- package/dist/devices/section-9-hvac/index.d.ts +7 -0
- package/dist/devices/section-9-hvac/index.js +8 -0
- package/dist/devices/section-9-hvac/index.js.map +1 -0
- package/dist/devices/section-9-hvac/thermostat.d.ts +7 -0
- package/dist/devices/section-9-hvac/thermostat.js +61 -0
- package/dist/devices/section-9-hvac/thermostat.js.map +1 -0
- package/dist/devices/types.d.ts +16 -0
- package/dist/devices/types.js +5 -0
- package/dist/devices/types.js.map +1 -0
- package/dist/homebridge-ui/public/index.html +269 -0
- package/dist/homebridge-ui/server.js +47 -0
- package/dist/platform.d.ts +25 -21
- package/dist/platform.js +133 -1023
- package/dist/platform.js.map +1 -1
- package/package.json +9 -9
- package/plugin-header.png +0 -0
- package/.claude/settings.local.json +0 -28
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
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
|
+
|
|
5
16
|
## v0.0.6 (2025-10-18)
|
|
6
17
|
|
|
7
18
|
### 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
|
-
|
|
6
|
+
# homebridge-matter
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
Homebridge plugin to showcase examples of Matter devices in Homebridge.
|
|
6
9
|
|
|
7
|
-
|
|
10
|
+
[](https://www.npmjs.com/package/@homebridge-plugins/homebridge-matter)
|
|
11
|
+
[](https://github.com/homebridge-plugins/homebridge-matter/wiki/Beta-Version)
|
|
12
|
+
|
|
13
|
+
[](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)
|
|
8
14
|
|
|
9
|
-
|
|
15
|
+
[](https://www.npmjs.com/package/@homebridge-plugins/homebridge-matter)
|
|
16
|
+
[](https://discord.com/channels/432663330281226270/742733745743855627)
|
|
10
17
|
|
|
11
18
|
</span>
|
|
12
19
|
|
|
13
|
-
###
|
|
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
|
-
|
|
55
|
+
**Section 8: Closure Devices** (Matter Spec § 8) - 3 devices
|
|
56
|
+
- Door Lock
|
|
57
|
+
- Window Blind
|
|
58
|
+
- Venetian Blind (with Tilt)
|
|
16
59
|
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
60
|
+
**Section 9: HVAC** (Matter Spec § 9) - 2 devices
|
|
61
|
+
- Thermostat
|
|
62
|
+
- Fan
|
|
20
63
|
|
|
21
|
-
|
|
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
|
-
|
|
67
|
+
### Prerequisites
|
|
24
68
|
|
|
25
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
35
|
-
handlers: {
|
|
36
|
-
onOff: {
|
|
37
|
-
on: async () => {
|
|
38
|
-
await yourDeviceAPI.turnOn()
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
79
|
+
### Credits
|
|
42
80
|
|
|
43
|
-
|
|
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
|
-
|
|
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.
|
package/config.schema.json
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
"pluginAlias": "Matter",
|
|
3
3
|
"pluginType": "platform",
|
|
4
4
|
"singular": true,
|
|
5
|
-
"strictValidation":
|
|
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"],
|
|
@@ -17,133 +20,127 @@
|
|
|
17
20
|
"title": "Enable On/Off Light",
|
|
18
21
|
"type": "boolean",
|
|
19
22
|
"default": false,
|
|
20
|
-
"description": "Enable the on/off light example accessory."
|
|
23
|
+
"description": "Enable the on/off light example accessory (Matter Spec § 4.1)."
|
|
21
24
|
},
|
|
22
25
|
"enableDimmableLight": {
|
|
23
26
|
"title": "Enable Dimmable Light",
|
|
24
27
|
"type": "boolean",
|
|
25
28
|
"default": false,
|
|
26
|
-
"description": "Enable the dimmable light example accessory."
|
|
29
|
+
"description": "Enable the dimmable light example accessory (Matter Spec § 4.2)."
|
|
27
30
|
},
|
|
28
31
|
"enableColourTemperatureLight": {
|
|
29
32
|
"title": "Enable Colour Temperature Light",
|
|
30
33
|
"type": "boolean",
|
|
31
34
|
"default": false,
|
|
32
|
-
"description": "Enable the colour temperature light example accessory."
|
|
35
|
+
"description": "Enable the colour temperature light example accessory (Matter Spec § 4.3)."
|
|
33
36
|
},
|
|
34
37
|
"enableColourLight": {
|
|
35
38
|
"title": "Enable Colour Light (HS)",
|
|
36
39
|
"type": "boolean",
|
|
37
40
|
"default": false,
|
|
38
|
-
"description": "Enable the colour light (hue/saturation) example accessory."
|
|
41
|
+
"description": "Enable the colour light (hue/saturation) example accessory (Matter Spec § 4.4)."
|
|
39
42
|
},
|
|
40
43
|
"enableExtendedColourLight": {
|
|
41
44
|
"title": "Enable Extended Colour Light (HS+CCT)",
|
|
42
45
|
"type": "boolean",
|
|
43
46
|
"default": false,
|
|
44
|
-
"description": "Enable the extended colour light (hue/saturation + colour temperature) example accessory."
|
|
45
|
-
},
|
|
46
|
-
"enableOnOffSwitch": {
|
|
47
|
-
"title": "Enable On/Off Switch",
|
|
48
|
-
"type": "boolean",
|
|
49
|
-
"default": false,
|
|
50
|
-
"description": "Enable the on/off switch example accessory"
|
|
47
|
+
"description": "Enable the extended colour light (hue/saturation + colour temperature) example accessory (Matter Spec § 4.4)."
|
|
51
48
|
},
|
|
52
49
|
"enableOnOffOutlet": {
|
|
53
50
|
"title": "Enable On/Off Outlet",
|
|
54
51
|
"type": "boolean",
|
|
55
52
|
"default": false,
|
|
56
|
-
"description": "Enable the on/off outlet (smart plug) example accessory."
|
|
53
|
+
"description": "Enable the on/off outlet (smart plug) example accessory (Matter Spec § 5.1)."
|
|
57
54
|
},
|
|
58
55
|
"enableDimmableOutlet": {
|
|
59
56
|
"title": "Enable Dimmable Outlet",
|
|
60
57
|
"type": "boolean",
|
|
61
58
|
"default": false,
|
|
62
|
-
"description": "Enable the dimmable outlet example accessory."
|
|
59
|
+
"description": "Enable the dimmable outlet example accessory (Matter Spec § 5.2)."
|
|
63
60
|
},
|
|
64
|
-
"
|
|
65
|
-
"title": "Enable
|
|
61
|
+
"enableOnOffSwitch": {
|
|
62
|
+
"title": "Enable On/Off Light Switch",
|
|
66
63
|
"type": "boolean",
|
|
67
64
|
"default": false,
|
|
68
|
-
"description": "Enable the
|
|
65
|
+
"description": "Enable the on/off light switch example accessory (Matter Spec § 6.1)."
|
|
69
66
|
},
|
|
70
|
-
"
|
|
71
|
-
"title": "Enable
|
|
67
|
+
"enableContactSensor": {
|
|
68
|
+
"title": "Enable Contact Sensor",
|
|
72
69
|
"type": "boolean",
|
|
73
70
|
"default": false,
|
|
74
|
-
"description": "Enable the
|
|
71
|
+
"description": "Enable the contact sensor example accessory (Matter Spec § 7.1)."
|
|
75
72
|
},
|
|
76
73
|
"enableLightSensor": {
|
|
77
74
|
"title": "Enable Light Sensor",
|
|
78
75
|
"type": "boolean",
|
|
79
76
|
"default": false,
|
|
80
|
-
"description": "Enable the light sensor example accessory."
|
|
77
|
+
"description": "Enable the light sensor example accessory (Matter Spec § 7.2)."
|
|
81
78
|
},
|
|
82
79
|
"enableMotionSensor": {
|
|
83
80
|
"title": "Enable Motion Sensor",
|
|
84
81
|
"type": "boolean",
|
|
85
82
|
"default": false,
|
|
86
|
-
"description": "Enable the motion sensor example accessory."
|
|
83
|
+
"description": "Enable the motion sensor (occupancy sensor) example accessory (Matter Spec § 7.3)."
|
|
87
84
|
},
|
|
88
|
-
"
|
|
89
|
-
"title": "Enable
|
|
85
|
+
"enableTemperatureSensor": {
|
|
86
|
+
"title": "Enable Temperature Sensor",
|
|
90
87
|
"type": "boolean",
|
|
91
88
|
"default": false,
|
|
92
|
-
"description": "Enable the
|
|
89
|
+
"description": "Enable the temperature sensor example accessory (Matter Spec § 7.4)."
|
|
93
90
|
},
|
|
94
|
-
"
|
|
95
|
-
"title": "Enable
|
|
91
|
+
"enableHumiditySensor": {
|
|
92
|
+
"title": "Enable Humidity Sensor",
|
|
96
93
|
"type": "boolean",
|
|
97
94
|
"default": false,
|
|
98
|
-
"description": "Enable the
|
|
95
|
+
"description": "Enable the humidity sensor example accessory (Matter Spec § 7.7)."
|
|
99
96
|
},
|
|
100
97
|
"enableSmokeSensor": {
|
|
101
|
-
"title": "Enable Smoke
|
|
102
|
-
"type": "boolean",
|
|
103
|
-
"default": false,
|
|
104
|
-
"description": "Enable the smoke sensor example accessory."
|
|
105
|
-
},
|
|
106
|
-
"enableThermostat": {
|
|
107
|
-
"title": "Enable Thermostat",
|
|
98
|
+
"title": "Enable Smoke/CO Alarm",
|
|
108
99
|
"type": "boolean",
|
|
109
100
|
"default": false,
|
|
110
|
-
"description": "Enable the
|
|
101
|
+
"description": "Enable the smoke and carbon monoxide alarm example accessory (Matter Spec § 7.9)."
|
|
111
102
|
},
|
|
112
|
-
"
|
|
113
|
-
"title": "Enable
|
|
103
|
+
"enableLeakSensor": {
|
|
104
|
+
"title": "Enable Water Leak Detector",
|
|
114
105
|
"type": "boolean",
|
|
115
106
|
"default": false,
|
|
116
|
-
"description": "Enable the
|
|
107
|
+
"description": "Enable the water leak detector example accessory (Matter Spec § 7.12)."
|
|
117
108
|
},
|
|
118
109
|
"enableDoorLock": {
|
|
119
110
|
"title": "Enable Door Lock",
|
|
120
111
|
"type": "boolean",
|
|
121
112
|
"default": false,
|
|
122
|
-
"description": "Enable the door lock example accessory."
|
|
123
|
-
},
|
|
124
|
-
"enableGarageDoor": {
|
|
125
|
-
"title": "Enable Garage Door",
|
|
126
|
-
"type": "boolean",
|
|
127
|
-
"default": false,
|
|
128
|
-
"description": "Enable the garage door example accessory."
|
|
113
|
+
"description": "Enable the door lock example accessory (Matter Spec § 8.1)."
|
|
129
114
|
},
|
|
130
115
|
"enableWindowBlind": {
|
|
131
116
|
"title": "Enable Window Blind",
|
|
132
117
|
"type": "boolean",
|
|
133
118
|
"default": false,
|
|
134
|
-
"description": "Enable the window blind example accessory."
|
|
119
|
+
"description": "Enable the window blind example accessory (Matter Spec § 8.3)."
|
|
135
120
|
},
|
|
136
121
|
"enableVenetianBlind": {
|
|
137
122
|
"title": "Enable Venetian Blind (Tilt)",
|
|
138
123
|
"type": "boolean",
|
|
139
124
|
"default": false,
|
|
140
|
-
"description": "Enable the Venetian blind with tilt control example accessory."
|
|
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)."
|
|
141
138
|
},
|
|
142
139
|
"enableRobotVacuum": {
|
|
143
|
-
"title": "Enable
|
|
140
|
+
"title": "Enable Robotic Vacuum Cleaner (Apple Home Compatible)",
|
|
144
141
|
"type": "boolean",
|
|
145
142
|
"default": false,
|
|
146
|
-
"description": "Enable the robotic vacuum cleaner example accessory."
|
|
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."
|
|
147
144
|
}
|
|
148
145
|
}
|
|
149
146
|
},
|
|
@@ -155,8 +152,8 @@
|
|
|
155
152
|
},
|
|
156
153
|
{
|
|
157
154
|
"type": "fieldset",
|
|
158
|
-
"title": "Lighting Devices",
|
|
159
|
-
"description": "
|
|
155
|
+
"title": "Section 4: Lighting Devices",
|
|
156
|
+
"description": "Matter Specification § 4 - Fundamental lighting device types (5 devices implemented)",
|
|
160
157
|
"expandable": true,
|
|
161
158
|
"expanded": false,
|
|
162
159
|
"items": [
|
|
@@ -169,69 +166,68 @@
|
|
|
169
166
|
},
|
|
170
167
|
{
|
|
171
168
|
"type": "fieldset",
|
|
172
|
-
"title": "
|
|
173
|
-
"description": "
|
|
169
|
+
"title": "Section 5: Smart Plugs/Actuators",
|
|
170
|
+
"description": "Matter Specification § 5 - Devices that control power and fluid flow (2 devices implemented)",
|
|
174
171
|
"expandable": true,
|
|
175
172
|
"expanded": false,
|
|
176
173
|
"items": [
|
|
177
|
-
"enableOnOffSwitch",
|
|
178
174
|
"enableOnOffOutlet",
|
|
179
175
|
"enableDimmableOutlet"
|
|
180
176
|
]
|
|
181
177
|
},
|
|
182
178
|
{
|
|
183
179
|
"type": "fieldset",
|
|
184
|
-
"title": "
|
|
185
|
-
"description": "
|
|
180
|
+
"title": "Section 6: Switches & Controllers",
|
|
181
|
+
"description": "Matter Specification § 6 - Input devices and control interfaces (1 device implemented)",
|
|
186
182
|
"expandable": true,
|
|
187
183
|
"expanded": false,
|
|
188
184
|
"items": [
|
|
189
|
-
"
|
|
190
|
-
"enableHumiditySensor",
|
|
191
|
-
"enableLightSensor",
|
|
192
|
-
"enableMotionSensor",
|
|
193
|
-
"enableContactSensor",
|
|
194
|
-
"enableLeakSensor",
|
|
195
|
-
"enableSmokeSensor"
|
|
185
|
+
"enableOnOffSwitch"
|
|
196
186
|
]
|
|
197
187
|
},
|
|
198
188
|
{
|
|
199
189
|
"type": "fieldset",
|
|
200
|
-
"title": "
|
|
201
|
-
"description": "
|
|
190
|
+
"title": "Section 7: Sensors",
|
|
191
|
+
"description": "Matter Specification § 7 - All sensor types (7 devices implemented)",
|
|
202
192
|
"expandable": true,
|
|
203
193
|
"expanded": false,
|
|
204
194
|
"items": [
|
|
205
|
-
"
|
|
206
|
-
"
|
|
195
|
+
"enableContactSensor",
|
|
196
|
+
"enableLightSensor",
|
|
197
|
+
"enableMotionSensor",
|
|
198
|
+
"enableTemperatureSensor",
|
|
199
|
+
"enableHumiditySensor",
|
|
200
|
+
"enableSmokeSensor",
|
|
201
|
+
"enableLeakSensor"
|
|
207
202
|
]
|
|
208
203
|
},
|
|
209
204
|
{
|
|
210
205
|
"type": "fieldset",
|
|
211
|
-
"title": "
|
|
212
|
-
"description": "
|
|
206
|
+
"title": "Section 8: Closure Devices",
|
|
207
|
+
"description": "Matter Specification § 8 - Locks and window coverings (3 devices implemented)",
|
|
213
208
|
"expandable": true,
|
|
214
209
|
"expanded": false,
|
|
215
210
|
"items": [
|
|
216
211
|
"enableDoorLock",
|
|
217
|
-
"
|
|
212
|
+
"enableWindowBlind",
|
|
213
|
+
"enableVenetianBlind"
|
|
218
214
|
]
|
|
219
215
|
},
|
|
220
216
|
{
|
|
221
217
|
"type": "fieldset",
|
|
222
|
-
"title": "
|
|
223
|
-
"description": "
|
|
218
|
+
"title": "Section 9: HVAC",
|
|
219
|
+
"description": "Matter Specification § 9 - Heating, ventilation, and air conditioning (2 devices implemented)",
|
|
224
220
|
"expandable": true,
|
|
225
221
|
"expanded": false,
|
|
226
222
|
"items": [
|
|
227
|
-
"
|
|
228
|
-
"
|
|
223
|
+
"enableThermostat",
|
|
224
|
+
"enableFan"
|
|
229
225
|
]
|
|
230
226
|
},
|
|
231
227
|
{
|
|
232
228
|
"type": "fieldset",
|
|
233
|
-
"title": "
|
|
234
|
-
"description": "
|
|
229
|
+
"title": "Section 12: Robotic Devices",
|
|
230
|
+
"description": "Matter Specification § 12 - Autonomous cleaning devices (1 device implemented)",
|
|
235
231
|
"expandable": true,
|
|
236
232
|
"expanded": false,
|
|
237
233
|
"items": [
|
|
@@ -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 @@
|
|
|
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[];
|