@homebridge-plugins/homebridge-matter 0.0.1 → 0.0.3
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/.claude/settings.local.json +24 -0
- package/CHANGELOG.md +24 -0
- package/README.md +32 -0
- package/dist/index.js.map +1 -1
- package/dist/platform.d.ts +1 -21
- package/dist/platform.js +157 -468
- package/dist/platform.js.map +1 -1
- package/dist/settings.js.map +1 -1
- package/package.json +9 -11
- package/.idea/copilot.data.migration.agent.xml +0 -6
- package/.idea/copilot.data.migration.ask.xml +0 -6
- package/.idea/copilot.data.migration.ask2agent.xml +0 -6
- package/.idea/copilot.data.migration.edit.xml +0 -6
- package/.idea/dictionaries/benpotter.xml +0 -3
- package/.idea/homebridge-matter.iml +0 -8
- package/.idea/inspectionProfiles/Project_Default.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/vcs.xml +0 -6
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(git -C ../homebridge log -1 --oneline)",
|
|
5
|
+
"Bash(git -C ../homebridge show --stat 481784d)",
|
|
6
|
+
"Read(//Users/benpotter/Documents/GitHub/homebridge/src/matter/**)",
|
|
7
|
+
"Read(//Users/benpotter/Documents/GitHub/homebridge/src/**)",
|
|
8
|
+
"Bash(npm run build)",
|
|
9
|
+
"Read(//Users/benpotter/Documents/GitHub/homebridge/node_modules/@matter/**)",
|
|
10
|
+
"WebFetch(domain:github.com)",
|
|
11
|
+
"WebSearch",
|
|
12
|
+
"Read(//Users/benpotter/Documents/GitHub/homebridge/**)",
|
|
13
|
+
"Bash(git -C ../homebridge show --stat HEAD)",
|
|
14
|
+
"Bash(git -C ../homebridge log -10 --oneline)",
|
|
15
|
+
"Bash(git -C ../homebridge show --stat 0420d2b)",
|
|
16
|
+
"Bash(find:*)",
|
|
17
|
+
"Bash(cat:*)",
|
|
18
|
+
"Read(//Users/benpotter/.homebridge/matter/**)",
|
|
19
|
+
"Read(//Users/benpotter/.homebridge/**)"
|
|
20
|
+
],
|
|
21
|
+
"deny": [],
|
|
22
|
+
"ask": []
|
|
23
|
+
}
|
|
24
|
+
}
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
All notable changes to `@homebridge-plugins/homebridge-matter` will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## v0.0.3 (2025-10-17)
|
|
6
|
+
|
|
7
|
+
### Changes
|
|
8
|
+
|
|
9
|
+
- added more examples for lights, examples provided:
|
|
10
|
+
- light on/off
|
|
11
|
+
- light + brightness
|
|
12
|
+
- light + brightness + color
|
|
13
|
+
- light + brightness + color temperature
|
|
14
|
+
- light + brightness + color temperature + color
|
|
15
|
+
|
|
16
|
+
## v0.0.2 (2025-10-15)
|
|
17
|
+
|
|
18
|
+
### Changes
|
|
19
|
+
|
|
20
|
+
- added simple examples for getting/updating device state
|
|
21
|
+
|
|
22
|
+
## v0.0.1 (2025-10-03)
|
|
23
|
+
|
|
24
|
+
- Initial release
|
package/README.md
CHANGED
|
@@ -135,6 +135,38 @@ You can now start customising the plugin template to suit your requirements.
|
|
|
135
135
|
- [`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.
|
|
136
136
|
- [`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).
|
|
137
137
|
|
|
138
|
+
### Matter State Management Guide
|
|
139
|
+
|
|
140
|
+
**Important for Matter plugin developers:** Understanding how to manage accessory state is critical when working with Matter.
|
|
141
|
+
|
|
142
|
+
📖 **[Read the State Management Guide](./STATE_MANAGEMENT.md)** to learn:
|
|
143
|
+
|
|
144
|
+
- **Handlers** (Home app → Device) - How to respond when users control devices via Home app
|
|
145
|
+
- **State Updates** (Device → Home app) - How to sync state when devices change externally (native app, physical buttons, webhooks, etc.)
|
|
146
|
+
- Complete working examples for outlets, lights, and sensors
|
|
147
|
+
- Differences between Matter and HAP (HomeKit Accessory Protocol) patterns
|
|
148
|
+
|
|
149
|
+
**Quick Overview:**
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
handlers: {
|
|
153
|
+
onOff: {
|
|
154
|
+
on: async () => {
|
|
155
|
+
await yourDeviceAPI.turnOn()
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Pattern 2: Device changes externally → Update Home app
|
|
161
|
+
function handleExternalChange(newState: boolean) {
|
|
162
|
+
this.api.updateMatterAccessoryState('device-uuid', 'onOff', {
|
|
163
|
+
onOff: newState,
|
|
164
|
+
})
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
See [`STATE_MANAGEMENT.md`](./STATE_MANAGEMENT.md) for complete details and examples.
|
|
169
|
+
|
|
138
170
|
### Versioning Your Plugin
|
|
139
171
|
|
|
140
172
|
Given a version number `MAJOR`.`MINOR`.`PATCH`, such as `1.4.3`, increment the:
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE1D;;GAEG;AACH,eAAe,CAAC,GAAQ,EAAE,EAAE;IAC1B,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,EAAE,yBAAyB,CAAC,CAAA;AAC7E,CAAC,CAAA"}
|
package/dist/platform.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare class ExampleHomebridgePlatform implements DynamicPlatformPlugin
|
|
|
13
13
|
* Required for DynamicPlatformPlugin
|
|
14
14
|
* Called when homebridge restores cached accessories from disk at startup
|
|
15
15
|
*/
|
|
16
|
-
configureAccessory(
|
|
16
|
+
configureAccessory(): void;
|
|
17
17
|
/**
|
|
18
18
|
* Register all Matter accessory examples
|
|
19
19
|
*/
|
|
@@ -22,24 +22,4 @@ export declare class ExampleHomebridgePlatform implements DynamicPlatformPlugin
|
|
|
22
22
|
* Lighting Devices
|
|
23
23
|
*/
|
|
24
24
|
private registerLightingDevices;
|
|
25
|
-
/**
|
|
26
|
-
* Switches and Outlets
|
|
27
|
-
*/
|
|
28
|
-
private registerSwitchesAndOutlets;
|
|
29
|
-
/**
|
|
30
|
-
* Sensors
|
|
31
|
-
*/
|
|
32
|
-
private registerSensors;
|
|
33
|
-
/**
|
|
34
|
-
* HVAC Devices
|
|
35
|
-
*/
|
|
36
|
-
private registerHVAC;
|
|
37
|
-
/**
|
|
38
|
-
* Security Devices
|
|
39
|
-
*/
|
|
40
|
-
private registerSecurity;
|
|
41
|
-
/**
|
|
42
|
-
* Other Devices
|
|
43
|
-
*/
|
|
44
|
-
private registerOtherDevices;
|
|
45
25
|
}
|
package/dist/platform.js
CHANGED
|
@@ -28,9 +28,8 @@ export class ExampleHomebridgePlatform {
|
|
|
28
28
|
* Required for DynamicPlatformPlugin
|
|
29
29
|
* Called when homebridge restores cached accessories from disk at startup
|
|
30
30
|
*/
|
|
31
|
-
configureAccessory(accessory) {
|
|
32
|
-
this
|
|
33
|
-
this.accessories.set(accessory.UUID, accessory);
|
|
31
|
+
configureAccessory( /* accessory: PlatformAccessory */) {
|
|
32
|
+
// Note this is not used for Matter accessories, as they are registered dynamically
|
|
34
33
|
}
|
|
35
34
|
/**
|
|
36
35
|
* Register all Matter accessory examples
|
|
@@ -45,40 +44,66 @@ export class ExampleHomebridgePlatform {
|
|
|
45
44
|
// this.registerSecurity();
|
|
46
45
|
// this.registerOtherDevices();
|
|
47
46
|
this.log.info('Finished registering Matter accessories');
|
|
47
|
+
// You can read current state using the API
|
|
48
|
+
const onOffState = this.api.matter.getAccessoryState('matter-dimmable-light', this.api.matter.clusterNames.OnOff);
|
|
49
|
+
if (onOffState) {
|
|
50
|
+
this.log.info(`[On/Off Light] 📖 Reading Dimmable Light on/off via API: ${onOffState.onOff ? 'ON' : 'OFF'}`);
|
|
51
|
+
}
|
|
52
|
+
const levelState = this.api.matter.getAccessoryState('matter-dimmable-light', this.api.matter.clusterNames.LevelControl);
|
|
53
|
+
if (levelState) {
|
|
54
|
+
this.log.info(`[On/Off Light] 📖 Reading Dimmable Light brightness via API: ${levelState.currentLevel} (${Math.round((levelState?.currentLevel || 0) / 254 * 100)}%)`);
|
|
55
|
+
}
|
|
56
|
+
// // ═══════════════════════════════════════════════════════════════
|
|
57
|
+
// // PATTERN 2 DEMONSTRATION: Update Dimmable Light WITHOUT handler
|
|
58
|
+
// // ═══════════════════════════════════════════════════════════════
|
|
59
|
+
// // Simulating: Dimmable light state changed externally (like via native app)
|
|
60
|
+
// // This will update the Home app WITHOUT triggering the dimmable light's handler
|
|
61
|
+
// // Note: Homebridge automatically defers the update to avoid transaction conflicts
|
|
62
|
+
// this.log.info('[On/Off Light] → Updating Dimmable Light state using updateMatterAccessoryState (no handler!)')
|
|
63
|
+
//
|
|
64
|
+
// this.api.matter.updateAccessoryState(uuidLightDimmable, this.api.matter.clusterNames.OnOff, {
|
|
65
|
+
// onOff: true,
|
|
66
|
+
// })
|
|
48
67
|
}
|
|
49
68
|
/**
|
|
50
69
|
* Lighting Devices
|
|
51
70
|
*/
|
|
52
71
|
registerLightingDevices() {
|
|
72
|
+
const uuidLightOnOff = this.api.matter.uuid.generate('matter-onoff-light');
|
|
73
|
+
const uuidLightDimmable = this.api.matter.uuid.generate('matter-dimmable-light');
|
|
74
|
+
const uuidLightColourTemp = this.api.matter.uuid.generate('matter-colour-temp-light');
|
|
75
|
+
const uuidLightColour = this.api.matter.uuid.generate('matter-colour-light');
|
|
76
|
+
const uuidLightExtendedColour = this.api.matter.uuid.generate('matter-extended-colour-light');
|
|
53
77
|
// 1. On/Off Light
|
|
54
|
-
this.api.
|
|
55
|
-
uuid:
|
|
78
|
+
this.api.matter.registerAccessory({
|
|
79
|
+
uuid: uuidLightOnOff,
|
|
56
80
|
displayName: 'On/Off Light',
|
|
57
|
-
deviceType: this.api.
|
|
81
|
+
deviceType: this.api.matter.deviceTypes.OnOffLight,
|
|
58
82
|
serialNumber: 'LIGHT-001',
|
|
59
83
|
manufacturer: 'Matter Examples',
|
|
60
84
|
model: 'OnOffLight v1',
|
|
61
85
|
clusters: {
|
|
62
86
|
onOff: {
|
|
63
|
-
onOff:
|
|
87
|
+
onOff: true,
|
|
64
88
|
},
|
|
65
89
|
},
|
|
90
|
+
// These are called when the user controls the accessory via the Home app
|
|
66
91
|
handlers: {
|
|
67
92
|
onOff: {
|
|
68
|
-
on: async () => {
|
|
69
|
-
this.log.info('[On/Off Light]
|
|
93
|
+
on: async ( /* no args */) => {
|
|
94
|
+
this.log.info('[On/Off Light] ✓ Handler `on` called (user controlled via Home app)');
|
|
70
95
|
},
|
|
71
|
-
off: async () => {
|
|
72
|
-
this.log.info('[On/Off Light]
|
|
96
|
+
off: async ( /* no args */) => {
|
|
97
|
+
this.log.info('[On/Off Light] ✓ Handler `off` called (user controlled via Home app)');
|
|
73
98
|
},
|
|
74
99
|
},
|
|
75
100
|
},
|
|
76
101
|
});
|
|
77
102
|
// 2. Dimmable Light
|
|
78
|
-
this.api.
|
|
79
|
-
uuid:
|
|
103
|
+
this.api.matter.registerAccessory({
|
|
104
|
+
uuid: uuidLightDimmable,
|
|
80
105
|
displayName: 'Dimmable Light',
|
|
81
|
-
deviceType: this.api.
|
|
106
|
+
deviceType: this.api.matter.deviceTypes.DimmableLight,
|
|
82
107
|
serialNumber: 'LIGHT-002',
|
|
83
108
|
manufacturer: 'Matter Examples',
|
|
84
109
|
model: 'DimmableLight v1',
|
|
@@ -87,191 +112,87 @@ export class ExampleHomebridgePlatform {
|
|
|
87
112
|
onOff: false,
|
|
88
113
|
},
|
|
89
114
|
levelControl: {
|
|
90
|
-
currentLevel: 127,
|
|
115
|
+
currentLevel: 127,
|
|
91
116
|
minLevel: 1,
|
|
92
117
|
maxLevel: 254,
|
|
93
118
|
},
|
|
94
119
|
},
|
|
120
|
+
// These are called when the user controls the accessory via the Home app
|
|
95
121
|
handlers: {
|
|
96
122
|
onOff: {
|
|
97
123
|
on: async () => {
|
|
98
|
-
this.log.info('[Dimmable Light]
|
|
124
|
+
this.log.info('[Dimmable Light] ✓ Handler `on` called (user controlled via Home app)');
|
|
99
125
|
},
|
|
100
126
|
off: async () => {
|
|
101
|
-
this.log.info('[Dimmable Light]
|
|
127
|
+
this.log.info('[Dimmable Light] ✓ Handler `off` called (user controlled via Home app)');
|
|
102
128
|
},
|
|
103
129
|
},
|
|
104
130
|
levelControl: {
|
|
105
|
-
|
|
106
|
-
|
|
131
|
+
moveToLevelWithOnOff: async (request) => {
|
|
132
|
+
const { level } = request;
|
|
133
|
+
this.log.info(`[Dimmable Light] ✓ Handler \`moveToLevel\` called with ${level} (${Math.round(level / 254 * 100)}%)`);
|
|
107
134
|
},
|
|
108
135
|
},
|
|
109
136
|
},
|
|
110
137
|
});
|
|
111
|
-
//
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
// serialNumber: 'LIGHT-003',
|
|
118
|
-
// manufacturer: 'Matter Examples',
|
|
119
|
-
// model: 'ColorTempLight v1',
|
|
120
|
-
//
|
|
121
|
-
// clusters: {
|
|
122
|
-
// onOff: {
|
|
123
|
-
// onOff: false,
|
|
124
|
-
// },
|
|
125
|
-
// levelControl: {
|
|
126
|
-
// currentLevel: 127,
|
|
127
|
-
// minLevel: 1,
|
|
128
|
-
// maxLevel: 254,
|
|
129
|
-
// },
|
|
130
|
-
// colorControl: {
|
|
131
|
-
// colorMode: 2, // Color temperature mode
|
|
132
|
-
// colorTemperatureMireds: 250, // ~4000K
|
|
133
|
-
// colorTempPhysicalMinMireds: 147, // 6800K
|
|
134
|
-
// colorTempPhysicalMaxMireds: 454, // 2200K
|
|
135
|
-
// },
|
|
136
|
-
// },
|
|
137
|
-
//
|
|
138
|
-
// handlers: {
|
|
139
|
-
// onOff: {
|
|
140
|
-
// on: async () => {
|
|
141
|
-
// this.log.info('[Color Temp Light] Turned ON');
|
|
142
|
-
// },
|
|
143
|
-
// off: async () => {
|
|
144
|
-
// this.log.info('[Color Temp Light] Turned OFF');
|
|
145
|
-
// },
|
|
146
|
-
// },
|
|
147
|
-
// levelControl: {
|
|
148
|
-
// moveToLevel: async (args: any) => {
|
|
149
|
-
// this.log.info(`[Color Temp Light] Brightness changed to ${args.level}`);
|
|
150
|
-
// },
|
|
151
|
-
// },
|
|
152
|
-
// colorControl: {
|
|
153
|
-
// moveToColorTemperature: async (args: any) => {
|
|
154
|
-
// const kelvin = Math.round(1000000 / args.colorTemperatureMireds);
|
|
155
|
-
// this.log.info(`[Color Temp Light] Color temperature changed to ${args.colorTemperatureMireds} mireds (~${kelvin}K)`);
|
|
156
|
-
// },
|
|
157
|
-
// },
|
|
158
|
-
// },
|
|
159
|
-
// });
|
|
160
|
-
//
|
|
161
|
-
// // 4. Extended Color Light (RGB)
|
|
162
|
-
// this.api.registerMatterAccessory({
|
|
163
|
-
// uuid: 'matter-rgb-light',
|
|
164
|
-
// displayName: 'RGB Color Light',
|
|
165
|
-
// deviceType: this.api.matterDeviceTypes.ExtendedColorLight,
|
|
166
|
-
// serialNumber: 'LIGHT-004',
|
|
167
|
-
// manufacturer: 'Matter Examples',
|
|
168
|
-
// model: 'RGBLight v1',
|
|
169
|
-
//
|
|
170
|
-
// clusters: {
|
|
171
|
-
// onOff: {
|
|
172
|
-
// onOff: false,
|
|
173
|
-
// },
|
|
174
|
-
// levelControl: {
|
|
175
|
-
// currentLevel: 127,
|
|
176
|
-
// minLevel: 1,
|
|
177
|
-
// maxLevel: 254,
|
|
178
|
-
// },
|
|
179
|
-
// colorControl: {
|
|
180
|
-
// colorMode: 1, // Hue/Saturation mode
|
|
181
|
-
// currentHue: 0, // Red
|
|
182
|
-
// currentSaturation: 254, // Full saturation
|
|
183
|
-
// colorCapabilities: 0x0001, // Hue/Saturation support
|
|
184
|
-
// },
|
|
185
|
-
// },
|
|
186
|
-
//
|
|
187
|
-
// handlers: {
|
|
188
|
-
// onOff: {
|
|
189
|
-
// on: async () => {
|
|
190
|
-
// this.log.info('[RGB Light] Turned ON');
|
|
191
|
-
// },
|
|
192
|
-
// off: async () => {
|
|
193
|
-
// this.log.info('[RGB Light] Turned OFF');
|
|
194
|
-
// },
|
|
195
|
-
// },
|
|
196
|
-
// levelControl: {
|
|
197
|
-
// moveToLevel: async (args: any) => {
|
|
198
|
-
// this.log.info(`[RGB Light] Brightness changed to ${args.level}`);
|
|
199
|
-
// },
|
|
200
|
-
// },
|
|
201
|
-
// colorControl: {
|
|
202
|
-
// moveToHue: async (args: any) => {
|
|
203
|
-
// this.log.info(`[RGB Light] Hue changed to ${args.hue}`);
|
|
204
|
-
// },
|
|
205
|
-
// moveToSaturation: async (args: any) => {
|
|
206
|
-
// this.log.info(`[RGB Light] Saturation changed to ${args.saturation}`);
|
|
207
|
-
// },
|
|
208
|
-
// moveToHueAndSaturation: async (args: any) => {
|
|
209
|
-
// this.log.info(`[RGB Light] Color changed to H:${args.hue} S:${args.saturation}`);
|
|
210
|
-
// },
|
|
211
|
-
// },
|
|
212
|
-
// },
|
|
213
|
-
// });
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Switches and Outlets
|
|
217
|
-
*/
|
|
218
|
-
registerSwitchesAndOutlets() {
|
|
219
|
-
// 5. On/Off Switch
|
|
220
|
-
this.api.registerMatterAccessory({
|
|
221
|
-
uuid: 'matter-switch',
|
|
222
|
-
displayName: 'On/Off Switch',
|
|
223
|
-
deviceType: this.api.matterDeviceTypes.OnOffSwitch,
|
|
224
|
-
serialNumber: 'SWITCH-001',
|
|
138
|
+
// 3. Colour Temperature Light
|
|
139
|
+
this.api.matter.registerAccessory({
|
|
140
|
+
uuid: uuidLightColourTemp,
|
|
141
|
+
displayName: 'Colour Temperature Light',
|
|
142
|
+
deviceType: this.api.matter.deviceTypes.ColorTemperatureLight,
|
|
143
|
+
serialNumber: 'LIGHT-003',
|
|
225
144
|
manufacturer: 'Matter Examples',
|
|
226
|
-
model: '
|
|
145
|
+
model: 'ColourTempLight v1',
|
|
227
146
|
clusters: {
|
|
228
147
|
onOff: {
|
|
229
148
|
onOff: false,
|
|
230
149
|
},
|
|
150
|
+
levelControl: {
|
|
151
|
+
currentLevel: 127,
|
|
152
|
+
minLevel: 1,
|
|
153
|
+
maxLevel: 254,
|
|
154
|
+
},
|
|
155
|
+
colorControl: {
|
|
156
|
+
colorMode: 2, // Colour temperature mode
|
|
157
|
+
colorTemperatureMireds: 250, // ~4000K
|
|
158
|
+
colorTempPhysicalMinMireds: 147, // 6800K (coolest)
|
|
159
|
+
colorTempPhysicalMaxMireds: 454, // 2200K (warmest)
|
|
160
|
+
coupleColorTempToLevelMinMireds: 147,
|
|
161
|
+
},
|
|
231
162
|
},
|
|
163
|
+
// These are called when the user controls the accessory via the Home app
|
|
232
164
|
handlers: {
|
|
233
165
|
onOff: {
|
|
234
|
-
on: async () => {
|
|
235
|
-
this.log.info('[
|
|
166
|
+
on: async ( /* no args */) => {
|
|
167
|
+
this.log.info('[Colour Temp Light] handler `on` called (user controlled via Home app)');
|
|
236
168
|
},
|
|
237
|
-
off: async () => {
|
|
238
|
-
this.log.info('[
|
|
169
|
+
off: async ( /* no args */) => {
|
|
170
|
+
this.log.info('[Colour Temp Light] Turned `off` called (user controlled via Home app)');
|
|
239
171
|
},
|
|
240
172
|
},
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
uuid: 'matter-outlet',
|
|
246
|
-
displayName: 'Smart Outlet',
|
|
247
|
-
deviceType: this.api.matterDeviceTypes.OnOffOutlet,
|
|
248
|
-
serialNumber: 'OUTLET-001',
|
|
249
|
-
manufacturer: 'Matter Examples',
|
|
250
|
-
model: 'Outlet v1',
|
|
251
|
-
clusters: {
|
|
252
|
-
onOff: {
|
|
253
|
-
onOff: false,
|
|
254
|
-
},
|
|
255
|
-
},
|
|
256
|
-
handlers: {
|
|
257
|
-
onOff: {
|
|
258
|
-
on: async () => {
|
|
259
|
-
this.log.info('[Outlet] Turned ON');
|
|
173
|
+
levelControl: {
|
|
174
|
+
moveToLevelWithOnOff: async (request) => {
|
|
175
|
+
const { level } = request;
|
|
176
|
+
this.log.info(`[Colour Light] ✓ Handler \`moveToLevel\` called with ${level} (${Math.round(level / 254 * 100)}%)`);
|
|
260
177
|
},
|
|
261
|
-
|
|
262
|
-
|
|
178
|
+
},
|
|
179
|
+
colorControl: {
|
|
180
|
+
moveToColorTemperatureLogic: async (request) => {
|
|
181
|
+
const { targetMireds, transitionTime } = request;
|
|
182
|
+
const kelvin = Math.round(1000000 / targetMireds);
|
|
183
|
+
this.log.info(`[Colour Temp Light] ✓ Handler \`moveToColorTemperatureLogic\` called with ${targetMireds} mireds (~${kelvin}K), transition: ${transitionTime}s`);
|
|
263
184
|
},
|
|
264
185
|
},
|
|
265
186
|
},
|
|
266
187
|
});
|
|
267
|
-
//
|
|
268
|
-
this.api.
|
|
269
|
-
uuid:
|
|
270
|
-
displayName: '
|
|
271
|
-
deviceType: this.api.
|
|
272
|
-
serialNumber: '
|
|
188
|
+
// 4. Colour Light (Hue/Saturation ONLY - no CCT)
|
|
189
|
+
this.api.matter.registerAccessory({
|
|
190
|
+
uuid: uuidLightColour,
|
|
191
|
+
displayName: 'Colour Light (HS)',
|
|
192
|
+
deviceType: this.api.matter.deviceTypes.ExtendedColorLight,
|
|
193
|
+
serialNumber: 'LIGHT-004',
|
|
273
194
|
manufacturer: 'Matter Examples',
|
|
274
|
-
model: '
|
|
195
|
+
model: 'ColorLight v1',
|
|
275
196
|
clusters: {
|
|
276
197
|
onOff: {
|
|
277
198
|
onOff: false,
|
|
@@ -281,341 +202,109 @@ export class ExampleHomebridgePlatform {
|
|
|
281
202
|
minLevel: 1,
|
|
282
203
|
maxLevel: 254,
|
|
283
204
|
},
|
|
205
|
+
colorControl: {
|
|
206
|
+
colorMode: 0, // Hue/Saturation mode
|
|
207
|
+
currentHue: 0, // Red (0 degrees)
|
|
208
|
+
currentSaturation: 254, // Full saturation
|
|
209
|
+
currentX: 41942, // Also provide XY for compatibility
|
|
210
|
+
currentY: 21626,
|
|
211
|
+
},
|
|
284
212
|
},
|
|
213
|
+
// These are called when the user controls the accessory via the Home app
|
|
285
214
|
handlers: {
|
|
286
215
|
onOff: {
|
|
287
216
|
on: async () => {
|
|
288
|
-
this.log.info('[
|
|
217
|
+
this.log.info('[Colour Light HS] ✓ Handler `on` called (user controlled via Home app)');
|
|
289
218
|
},
|
|
290
219
|
off: async () => {
|
|
291
|
-
this.log.info('[
|
|
220
|
+
this.log.info('[Colour Light HS] ✓ Handler `off` called (user controlled via Home app)');
|
|
292
221
|
},
|
|
293
222
|
},
|
|
294
223
|
levelControl: {
|
|
295
|
-
|
|
296
|
-
|
|
224
|
+
moveToLevelWithOnOff: async (request) => {
|
|
225
|
+
const { level } = request;
|
|
226
|
+
this.log.info(`[Colour Light HS] ✓ Handler \`moveToLevel\` called with ${level} (${Math.round(level / 254 * 100)}%)`);
|
|
297
227
|
},
|
|
298
228
|
},
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
registerSensors() {
|
|
306
|
-
// 8. Temperature Sensor
|
|
307
|
-
this.api.registerMatterAccessory({
|
|
308
|
-
uuid: 'matter-temp-sensor',
|
|
309
|
-
displayName: 'Temperature Sensor',
|
|
310
|
-
deviceType: this.api.matterDeviceTypes.TemperatureSensor,
|
|
311
|
-
serialNumber: 'TEMP-001',
|
|
312
|
-
manufacturer: 'Matter Examples',
|
|
313
|
-
model: 'TempSensor v1',
|
|
314
|
-
clusters: {
|
|
315
|
-
temperatureMeasurement: {
|
|
316
|
-
measuredValue: 2100, // 21.00°C (in hundredths of degree Celsius)
|
|
317
|
-
minMeasuredValue: -5000, // -50°C
|
|
318
|
-
maxMeasuredValue: 10000, // 100°C
|
|
319
|
-
},
|
|
320
|
-
},
|
|
321
|
-
});
|
|
322
|
-
// 9. Humidity Sensor
|
|
323
|
-
this.api.registerMatterAccessory({
|
|
324
|
-
uuid: 'matter-humidity-sensor',
|
|
325
|
-
displayName: 'Humidity Sensor',
|
|
326
|
-
deviceType: this.api.matterDeviceTypes.HumiditySensor,
|
|
327
|
-
serialNumber: 'HUM-001',
|
|
328
|
-
manufacturer: 'Matter Examples',
|
|
329
|
-
model: 'HumiditySensor v1',
|
|
330
|
-
clusters: {
|
|
331
|
-
relativeHumidityMeasurement: {
|
|
332
|
-
measuredValue: 5000, // 50% (in hundredths of percent)
|
|
333
|
-
minMeasuredValue: 0,
|
|
334
|
-
maxMeasuredValue: 10000, // 100%
|
|
335
|
-
},
|
|
336
|
-
},
|
|
337
|
-
});
|
|
338
|
-
// 10. Light Sensor
|
|
339
|
-
this.api.registerMatterAccessory({
|
|
340
|
-
uuid: 'matter-light-sensor',
|
|
341
|
-
displayName: 'Light Sensor',
|
|
342
|
-
deviceType: this.api.matterDeviceTypes.LightSensor,
|
|
343
|
-
serialNumber: 'LIGHT-SENSOR-001',
|
|
344
|
-
manufacturer: 'Matter Examples',
|
|
345
|
-
model: 'LightSensor v1',
|
|
346
|
-
clusters: {
|
|
347
|
-
illuminanceMeasurement: {
|
|
348
|
-
measuredValue: 1000, // Lux value
|
|
349
|
-
minMeasuredValue: 1,
|
|
350
|
-
maxMeasuredValue: 65535,
|
|
351
|
-
},
|
|
352
|
-
},
|
|
353
|
-
});
|
|
354
|
-
// 11. Motion Sensor
|
|
355
|
-
this.api.registerMatterAccessory({
|
|
356
|
-
uuid: 'matter-motion-sensor',
|
|
357
|
-
displayName: 'Motion Sensor',
|
|
358
|
-
deviceType: this.api.matterDeviceTypes.MotionSensor,
|
|
359
|
-
serialNumber: 'MOTION-001',
|
|
360
|
-
manufacturer: 'Matter Examples',
|
|
361
|
-
model: 'MotionSensor v1',
|
|
362
|
-
clusters: {
|
|
363
|
-
occupancySensing: {
|
|
364
|
-
occupancy: 0, // 0 = not occupied, 1 = occupied
|
|
365
|
-
occupancySensorType: 0, // PIR sensor
|
|
366
|
-
},
|
|
367
|
-
},
|
|
368
|
-
});
|
|
369
|
-
// 12. Contact Sensor
|
|
370
|
-
this.api.registerMatterAccessory({
|
|
371
|
-
uuid: 'matter-contact-sensor',
|
|
372
|
-
displayName: 'Contact Sensor',
|
|
373
|
-
deviceType: this.api.matterDeviceTypes.ContactSensor,
|
|
374
|
-
serialNumber: 'CONTACT-001',
|
|
375
|
-
manufacturer: 'Matter Examples',
|
|
376
|
-
model: 'ContactSensor v1',
|
|
377
|
-
clusters: {
|
|
378
|
-
booleanState: {
|
|
379
|
-
stateValue: false, // false = contact, true = no contact
|
|
380
|
-
},
|
|
381
|
-
},
|
|
382
|
-
});
|
|
383
|
-
// 13. Leak Sensor
|
|
384
|
-
this.api.registerMatterAccessory({
|
|
385
|
-
uuid: 'matter-leak-sensor',
|
|
386
|
-
displayName: 'Water Leak Sensor',
|
|
387
|
-
deviceType: this.api.matterDeviceTypes.LeakSensor,
|
|
388
|
-
serialNumber: 'LEAK-001',
|
|
389
|
-
manufacturer: 'Matter Examples',
|
|
390
|
-
model: 'LeakSensor v1',
|
|
391
|
-
clusters: {
|
|
392
|
-
booleanState: {
|
|
393
|
-
stateValue: false, // false = no leak, true = leak detected
|
|
394
|
-
},
|
|
395
|
-
},
|
|
396
|
-
});
|
|
397
|
-
// 14. Smoke Sensor
|
|
398
|
-
this.api.registerMatterAccessory({
|
|
399
|
-
uuid: 'matter-smoke-sensor',
|
|
400
|
-
displayName: 'Smoke/CO Alarm',
|
|
401
|
-
deviceType: this.api.matterDeviceTypes.SmokeSensor,
|
|
402
|
-
serialNumber: 'SMOKE-001',
|
|
403
|
-
manufacturer: 'Matter Examples',
|
|
404
|
-
model: 'SmokeCOAlarm v1',
|
|
405
|
-
clusters: {
|
|
406
|
-
smokeCoAlarm: {
|
|
407
|
-
smokeState: 0, // 0 = normal, 1 = warning, 2 = critical
|
|
408
|
-
coState: 0, // 0 = normal, 1 = warning, 2 = critical
|
|
409
|
-
batteryAlert: 0, // 0 = normal, 1 = warning, 2 = critical
|
|
410
|
-
},
|
|
411
|
-
},
|
|
412
|
-
});
|
|
413
|
-
}
|
|
414
|
-
/**
|
|
415
|
-
* HVAC Devices
|
|
416
|
-
*/
|
|
417
|
-
registerHVAC() {
|
|
418
|
-
// 15. Thermostat
|
|
419
|
-
this.api.registerMatterAccessory({
|
|
420
|
-
uuid: 'matter-thermostat',
|
|
421
|
-
displayName: 'Thermostat',
|
|
422
|
-
deviceType: this.api.matterDeviceTypes.Thermostat,
|
|
423
|
-
serialNumber: 'THERMO-001',
|
|
424
|
-
manufacturer: 'Matter Examples',
|
|
425
|
-
model: 'Thermostat v1',
|
|
426
|
-
clusters: {
|
|
427
|
-
thermostat: {
|
|
428
|
-
localTemperature: 2100, // 21°C (in hundredths)
|
|
429
|
-
occupiedCoolingSetpoint: 2400, // 24°C
|
|
430
|
-
occupiedHeatingSetpoint: 2000, // 20°C
|
|
431
|
-
systemMode: 1, // 0 = Off, 1 = Auto, 3 = Cool, 4 = Heat
|
|
432
|
-
controlSequenceOfOperation: 4, // Cooling and heating
|
|
433
|
-
},
|
|
434
|
-
},
|
|
435
|
-
handlers: {
|
|
436
|
-
thermostat: {
|
|
437
|
-
setpointRaiseLower: async (args) => {
|
|
438
|
-
this.log.info(`[Thermostat] Setpoint changed by ${args.amount / 10}°C`);
|
|
439
|
-
},
|
|
440
|
-
},
|
|
441
|
-
},
|
|
442
|
-
});
|
|
443
|
-
// 16. Fan
|
|
444
|
-
this.api.registerMatterAccessory({
|
|
445
|
-
uuid: 'matter-fan',
|
|
446
|
-
displayName: 'Fan',
|
|
447
|
-
deviceType: this.api.matterDeviceTypes.Fan,
|
|
448
|
-
serialNumber: 'FAN-001',
|
|
449
|
-
manufacturer: 'Matter Examples',
|
|
450
|
-
model: 'Fan v1',
|
|
451
|
-
clusters: {
|
|
452
|
-
fanControl: {
|
|
453
|
-
fanMode: 0, // 0 = Off, 1 = Low, 2 = Medium, 3 = High, 4 = On, 5 = Auto, 6 = Smart
|
|
454
|
-
percentCurrent: 0,
|
|
455
|
-
percentSetting: 0,
|
|
456
|
-
},
|
|
457
|
-
},
|
|
458
|
-
handlers: {
|
|
459
|
-
fanControl: {
|
|
460
|
-
step: async (args) => {
|
|
461
|
-
this.log.info(`[Fan] Step ${args.direction === 0 ? 'increase' : 'decrease'}`);
|
|
229
|
+
colorControl: {
|
|
230
|
+
moveToColorLogic: async (request) => {
|
|
231
|
+
const { targetX, targetY, transitionTime } = request;
|
|
232
|
+
const xFloat = (targetX / 65535).toFixed(4);
|
|
233
|
+
const yFloat = (targetY / 65535).toFixed(4);
|
|
234
|
+
this.log.info(`[Colour Light HS] ✓ Handler \`moveToColorLogic\` called with x=${targetX} (~${xFloat}), y=${targetY} (~${yFloat}), transition: ${transitionTime}s`);
|
|
462
235
|
},
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
* Security Devices
|
|
469
|
-
*/
|
|
470
|
-
registerSecurity() {
|
|
471
|
-
// 17. Door Lock
|
|
472
|
-
this.api.registerMatterAccessory({
|
|
473
|
-
uuid: 'matter-door-lock',
|
|
474
|
-
displayName: 'Smart Door Lock',
|
|
475
|
-
deviceType: this.api.matterDeviceTypes.DoorLock,
|
|
476
|
-
serialNumber: 'LOCK-001',
|
|
477
|
-
manufacturer: 'Matter Examples',
|
|
478
|
-
model: 'DoorLock v1',
|
|
479
|
-
clusters: {
|
|
480
|
-
doorLock: {
|
|
481
|
-
lockState: 1, // 0 = not fully locked, 1 = locked, 2 = unlocked
|
|
482
|
-
lockType: 0, // 0 = dead bolt
|
|
483
|
-
actuatorEnabled: true,
|
|
484
|
-
},
|
|
485
|
-
},
|
|
486
|
-
handlers: {
|
|
487
|
-
doorLock: {
|
|
488
|
-
lockDoor: async () => {
|
|
489
|
-
this.log.info('[Door Lock] Locked');
|
|
490
|
-
},
|
|
491
|
-
unlockDoor: async () => {
|
|
492
|
-
this.log.info('[Door Lock] Unlocked');
|
|
236
|
+
moveToHueAndSaturationLogic: async (request) => {
|
|
237
|
+
const { targetHue, targetSaturation, transitionTime } = request;
|
|
238
|
+
const hueDegrees = Math.round((targetHue / 254) * 360);
|
|
239
|
+
const saturationPercent = Math.round((targetSaturation / 254) * 100);
|
|
240
|
+
this.log.info(`[Colour Light HS] ✓ Handler \`moveToHueAndSaturationLogic\` called with hue=${targetHue} (~${hueDegrees}°), saturation=${targetSaturation} (~${saturationPercent}%), transition: ${transitionTime}s`);
|
|
493
241
|
},
|
|
242
|
+
// NOTE: No moveToColorTemperatureLogic handler - this light only supports color, not CCT
|
|
494
243
|
},
|
|
495
244
|
},
|
|
496
245
|
});
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
this.api.registerMatterAccessory({
|
|
504
|
-
uuid: 'matter-window-covering',
|
|
505
|
-
displayName: 'Window Blinds',
|
|
506
|
-
deviceType: this.api.matterDeviceTypes.WindowCovering,
|
|
507
|
-
serialNumber: 'BLIND-001',
|
|
246
|
+
// 5. Extended Colour Light (Hue/Saturation + CCT)
|
|
247
|
+
this.api.matter.registerAccessory({
|
|
248
|
+
uuid: uuidLightExtendedColour,
|
|
249
|
+
displayName: 'Extended Colour Light (HS+CCT)',
|
|
250
|
+
deviceType: this.api.matter.deviceTypes.ExtendedColorLight,
|
|
251
|
+
serialNumber: 'LIGHT-005',
|
|
508
252
|
manufacturer: 'Matter Examples',
|
|
509
|
-
model: '
|
|
510
|
-
clusters: {
|
|
511
|
-
windowCovering: {
|
|
512
|
-
currentPositionLiftPercent100ths: 0, // 0 = fully open, 10000 = fully closed
|
|
513
|
-
targetPositionLiftPercent100ths: 0,
|
|
514
|
-
type: 0, // 0 = rollershade
|
|
515
|
-
configStatus: 0x03, // operational and online
|
|
516
|
-
},
|
|
517
|
-
},
|
|
518
|
-
handlers: {
|
|
519
|
-
windowCovering: {
|
|
520
|
-
upOrOpen: async () => {
|
|
521
|
-
this.log.info('[Window Covering] Opening');
|
|
522
|
-
},
|
|
523
|
-
downOrClose: async () => {
|
|
524
|
-
this.log.info('[Window Covering] Closing');
|
|
525
|
-
},
|
|
526
|
-
stopMotion: async () => {
|
|
527
|
-
this.log.info('[Window Covering] Stopped');
|
|
528
|
-
},
|
|
529
|
-
goToLiftPercentage: async (args) => {
|
|
530
|
-
this.log.info(`[Window Covering] Moving to ${args.liftPercent100thsValue / 100}%`);
|
|
531
|
-
},
|
|
532
|
-
},
|
|
533
|
-
},
|
|
534
|
-
});
|
|
535
|
-
// 19. Generic Switch
|
|
536
|
-
this.api.registerMatterAccessory({
|
|
537
|
-
uuid: 'matter-generic-switch',
|
|
538
|
-
displayName: 'Generic Switch',
|
|
539
|
-
deviceType: this.api.matterDeviceTypes.GenericSwitch,
|
|
540
|
-
serialNumber: 'GSWITCH-001',
|
|
541
|
-
manufacturer: 'Matter Examples',
|
|
542
|
-
model: 'GenericSwitch v1',
|
|
543
|
-
clusters: {
|
|
544
|
-
switch: {
|
|
545
|
-
numberOfPositions: 2,
|
|
546
|
-
currentPosition: 0,
|
|
547
|
-
},
|
|
548
|
-
},
|
|
549
|
-
});
|
|
550
|
-
// 20. Pump
|
|
551
|
-
this.api.registerMatterAccessory({
|
|
552
|
-
uuid: 'matter-pump',
|
|
553
|
-
displayName: 'Water Pump',
|
|
554
|
-
deviceType: this.api.matterDeviceTypes.Pump,
|
|
555
|
-
serialNumber: 'PUMP-001',
|
|
556
|
-
manufacturer: 'Matter Examples',
|
|
557
|
-
model: 'Pump v1',
|
|
253
|
+
model: 'ExtendedColorLight v1',
|
|
558
254
|
clusters: {
|
|
559
255
|
onOff: {
|
|
560
256
|
onOff: false,
|
|
561
257
|
},
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
},
|
|
567
|
-
handlers: {
|
|
568
|
-
onOff: {
|
|
569
|
-
on: async () => {
|
|
570
|
-
this.log.info('[Pump] Turned ON');
|
|
571
|
-
},
|
|
572
|
-
off: async () => {
|
|
573
|
-
this.log.info('[Pump] Turned OFF');
|
|
574
|
-
},
|
|
575
|
-
},
|
|
576
|
-
},
|
|
577
|
-
});
|
|
578
|
-
// 21. Room Air Conditioner
|
|
579
|
-
this.api.registerMatterAccessory({
|
|
580
|
-
uuid: 'matter-air-conditioner',
|
|
581
|
-
displayName: 'Air Conditioner',
|
|
582
|
-
deviceType: this.api.matterDeviceTypes.RoomAirConditioner,
|
|
583
|
-
serialNumber: 'AC-001',
|
|
584
|
-
manufacturer: 'Matter Examples',
|
|
585
|
-
model: 'RoomAC v1',
|
|
586
|
-
clusters: {
|
|
587
|
-
onOff: {
|
|
588
|
-
onOff: false,
|
|
589
|
-
},
|
|
590
|
-
thermostat: {
|
|
591
|
-
localTemperature: 2500, // 25°C
|
|
592
|
-
occupiedCoolingSetpoint: 2200, // 22°C
|
|
593
|
-
systemMode: 3, // Cool mode
|
|
594
|
-
controlSequenceOfOperation: 2, // Cooling only
|
|
258
|
+
levelControl: {
|
|
259
|
+
currentLevel: 127,
|
|
260
|
+
minLevel: 1,
|
|
261
|
+
maxLevel: 254,
|
|
595
262
|
},
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
263
|
+
colorControl: {
|
|
264
|
+
colorMode: 0, // Hue/Saturation mode
|
|
265
|
+
currentHue: 0, // Red (0 degrees)
|
|
266
|
+
currentSaturation: 254, // Full saturation
|
|
267
|
+
currentX: 41942, // Also provide XY for compatibility
|
|
268
|
+
currentY: 21626,
|
|
269
|
+
colorTemperatureMireds: 250, // ~4000K (for CCT mode)
|
|
270
|
+
colorTempPhysicalMinMireds: 147, // 6800K (coolest)
|
|
271
|
+
colorTempPhysicalMaxMireds: 454, // 2200K (warmest)
|
|
272
|
+
coupleColorTempToLevelMinMireds: 147,
|
|
600
273
|
},
|
|
601
274
|
},
|
|
275
|
+
// These are called when the user controls the accessory via the Home app
|
|
602
276
|
handlers: {
|
|
603
277
|
onOff: {
|
|
604
278
|
on: async () => {
|
|
605
|
-
this.log.info('[
|
|
279
|
+
this.log.info('[Extended Colour Light] ✓ Handler `on` called (user controlled via Home app)');
|
|
606
280
|
},
|
|
607
281
|
off: async () => {
|
|
608
|
-
this.log.info('[
|
|
282
|
+
this.log.info('[Extended Colour Light] ✓ Handler `off` called (user controlled via Home app)');
|
|
609
283
|
},
|
|
610
284
|
},
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
285
|
+
levelControl: {
|
|
286
|
+
moveToLevelWithOnOff: async (request) => {
|
|
287
|
+
const { level } = request;
|
|
288
|
+
this.log.info(`[Extended Colour Light] ✓ Handler \`moveToLevel\` called with ${level} (${Math.round(level / 254 * 100)}%)`);
|
|
614
289
|
},
|
|
615
290
|
},
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
291
|
+
colorControl: {
|
|
292
|
+
moveToColorLogic: async (request) => {
|
|
293
|
+
const { targetX, targetY, transitionTime } = request;
|
|
294
|
+
const xFloat = (targetX / 65535).toFixed(4);
|
|
295
|
+
const yFloat = (targetY / 65535).toFixed(4);
|
|
296
|
+
this.log.info(`[Extended Colour Light] ✓ Handler \`moveToColorLogic\` called with x=${targetX} (~${xFloat}), y=${targetY} (~${yFloat}), transition: ${transitionTime}s`);
|
|
297
|
+
},
|
|
298
|
+
moveToHueAndSaturationLogic: async (request) => {
|
|
299
|
+
const { targetHue, targetSaturation, transitionTime } = request;
|
|
300
|
+
const hueDegrees = Math.round((targetHue / 254) * 360);
|
|
301
|
+
const saturationPercent = Math.round((targetSaturation / 254) * 100);
|
|
302
|
+
this.log.info(`[Extended Colour Light] ✓ Handler \`moveToHueAndSaturationLogic\` called with hue=${targetHue} (~${hueDegrees}°), saturation=${targetSaturation} (~${saturationPercent}%), transition: ${transitionTime}s`);
|
|
303
|
+
},
|
|
304
|
+
moveToColorTemperatureLogic: async (request) => {
|
|
305
|
+
const { targetMireds, transitionTime } = request;
|
|
306
|
+
const kelvin = Math.round(1000000 / targetMireds);
|
|
307
|
+
this.log.info(`[Extended Colour Light] ✓ Handler \`moveToColorTemperatureLogic\` called with ${targetMireds} mireds (~${kelvin}K), transition: ${transitionTime}s`);
|
|
619
308
|
},
|
|
620
309
|
},
|
|
621
310
|
},
|
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/dist/settings.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAA;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,uCAAuC,CAAA"}
|
package/package.json
CHANGED
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
"name": "@homebridge-plugins/homebridge-matter",
|
|
3
3
|
"displayName": "Homebridge Matter",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "0.0.
|
|
5
|
+
"version": "0.0.3",
|
|
6
6
|
"description": "A short description about what your plugin does.",
|
|
7
7
|
"author": "Your Name",
|
|
8
8
|
"license": "Apache-2.0",
|
|
9
|
-
"homepage": "https://github.com
|
|
9
|
+
"homepage": "https://github.com/homebridge-plugins/homebridge-matter#readme",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "git+https://github.com
|
|
12
|
+
"url": "git+https://github.com/homebridge-plugins/homebridge-matter.git"
|
|
13
13
|
},
|
|
14
14
|
"bugs": {
|
|
15
|
-
"url": "https://github.com
|
|
15
|
+
"url": "https://github.com/homebridge-plugins/homebridge-matter/issues"
|
|
16
16
|
},
|
|
17
17
|
"keywords": [
|
|
18
18
|
"homebridge-plugin"
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"scripts": {
|
|
26
26
|
"build": "rimraf ./dist && tsc",
|
|
27
|
-
"lint": "eslint . --
|
|
27
|
+
"lint": "eslint . --fix",
|
|
28
28
|
"prepublishOnly": "npm run lint && npm run build",
|
|
29
29
|
"watch": "npm run build && npm link && nodemon"
|
|
30
30
|
},
|
|
@@ -32,14 +32,12 @@
|
|
|
32
32
|
"homebridge-lib": "^7.1.9"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@eslint
|
|
36
|
-
"@types/node": "^24.
|
|
37
|
-
"
|
|
38
|
-
"homebridge": "2.0.0-alpha.43",
|
|
35
|
+
"@antfu/eslint-config": "^6.0.0",
|
|
36
|
+
"@types/node": "^24.8.1",
|
|
37
|
+
"homebridge": "2.0.0-alpha.47",
|
|
39
38
|
"nodemon": "^3.1.10",
|
|
40
39
|
"rimraf": "^6.0.1",
|
|
41
40
|
"ts-node": "^10.9.2",
|
|
42
|
-
"typescript": "^5.9.3"
|
|
43
|
-
"typescript-eslint": "^8.46.0"
|
|
41
|
+
"typescript": "^5.9.3"
|
|
44
42
|
}
|
|
45
43
|
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<module type="WEB_MODULE" version="4">
|
|
3
|
-
<component name="NewModuleRootManager">
|
|
4
|
-
<content url="file://$MODULE_DIR$" />
|
|
5
|
-
<orderEntry type="inheritedJdk" />
|
|
6
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
|
7
|
-
</component>
|
|
8
|
-
</module>
|
package/.idea/modules.xml
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="ProjectModuleManager">
|
|
4
|
-
<modules>
|
|
5
|
-
<module fileurl="file://$PROJECT_DIR$/.idea/homebridge-matter.iml" filepath="$PROJECT_DIR$/.idea/homebridge-matter.iml" />
|
|
6
|
-
</modules>
|
|
7
|
-
</component>
|
|
8
|
-
</project>
|