@homebridge-plugins/homebridge-matter 0.4.1 → 0.6.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 +13 -0
- package/README.md +2 -1
- package/config.schema.json +8 -1
- package/dist/devices/AirQualitySensorAccessory.d.ts +50 -0
- package/dist/devices/AirQualitySensorAccessory.js +130 -0
- package/dist/devices/AirQualitySensorAccessory.js.map +1 -0
- package/dist/devices/BaseMatterAccessory.d.ts +1 -1
- package/dist/devices/ColorLightAccessory.d.ts +3 -3
- package/dist/devices/ColorLightAccessory.js +41 -6
- package/dist/devices/ColorLightAccessory.js.map +1 -1
- package/dist/devices/ColorTemperatureLightAccessory.d.ts +3 -3
- package/dist/devices/ColorTemperatureLightAccessory.js +19 -6
- package/dist/devices/ColorTemperatureLightAccessory.js.map +1 -1
- package/dist/devices/ContactSensorAccessory.d.ts +1 -1
- package/dist/devices/ContactSensorAccessory.js +2 -2
- package/dist/devices/ContactSensorAccessory.js.map +1 -1
- package/dist/devices/DimmableLightAccessory.d.ts +3 -3
- package/dist/devices/DimmableLightAccessory.js +23 -7
- package/dist/devices/DimmableLightAccessory.js.map +1 -1
- package/dist/devices/DoorLockAccessory.d.ts +1 -1
- package/dist/devices/DoorLockAccessory.js +37 -2
- package/dist/devices/DoorLockAccessory.js.map +1 -1
- package/dist/devices/ExtendedColorLightAccessory.d.ts +3 -3
- package/dist/devices/ExtendedColorLightAccessory.js +24 -6
- package/dist/devices/ExtendedColorLightAccessory.js.map +1 -1
- package/dist/devices/FanAccessory.d.ts +2 -2
- package/dist/devices/FanAccessory.js +36 -4
- package/dist/devices/FanAccessory.js.map +1 -1
- package/dist/devices/HumiditySensorAccessory.d.ts +1 -1
- package/dist/devices/HumiditySensorAccessory.js +2 -2
- package/dist/devices/HumiditySensorAccessory.js.map +1 -1
- package/dist/devices/LeakSensorAccessory.d.ts +1 -1
- package/dist/devices/LeakSensorAccessory.js +2 -2
- package/dist/devices/LeakSensorAccessory.js.map +1 -1
- package/dist/devices/LightSensorAccessory.d.ts +1 -1
- package/dist/devices/LightSensorAccessory.js +2 -2
- package/dist/devices/LightSensorAccessory.js.map +1 -1
- package/dist/devices/OccupancySensorAccessory.d.ts +1 -1
- package/dist/devices/OccupancySensorAccessory.js +3 -4
- package/dist/devices/OccupancySensorAccessory.js.map +1 -1
- package/dist/devices/OnOffLightAccessory.d.ts +1 -1
- package/dist/devices/OnOffLightAccessory.js +18 -2
- package/dist/devices/OnOffLightAccessory.js.map +1 -1
- package/dist/devices/OnOffOutletAccessory.d.ts +1 -1
- package/dist/devices/OnOffOutletAccessory.js +18 -2
- package/dist/devices/OnOffOutletAccessory.js.map +1 -1
- package/dist/devices/OnOffSwitchAccessory.d.ts +1 -1
- package/dist/devices/OnOffSwitchAccessory.js +14 -2
- package/dist/devices/OnOffSwitchAccessory.js.map +1 -1
- package/dist/devices/RoboticVacuumAccessory.d.ts +6 -6
- package/dist/devices/RoboticVacuumAccessory.js +65 -25
- package/dist/devices/RoboticVacuumAccessory.js.map +1 -1
- package/dist/devices/SmokeCOAlarmAccessory.d.ts +2 -2
- package/dist/devices/SmokeCOAlarmAccessory.js +5 -6
- package/dist/devices/SmokeCOAlarmAccessory.js.map +1 -1
- package/dist/devices/TemperatureSensorAccessory.d.ts +1 -1
- package/dist/devices/TemperatureSensorAccessory.js +2 -2
- package/dist/devices/TemperatureSensorAccessory.js.map +1 -1
- package/dist/devices/ThermostatAccessory.d.ts +4 -4
- package/dist/devices/ThermostatAccessory.js +39 -8
- package/dist/devices/ThermostatAccessory.js.map +1 -1
- package/dist/devices/VenetianBlindAccessory.d.ts +2 -2
- package/dist/devices/VenetianBlindAccessory.js +22 -5
- package/dist/devices/VenetianBlindAccessory.js.map +1 -1
- package/dist/devices/WindowBlindAccessory.d.ts +1 -1
- package/dist/devices/WindowBlindAccessory.js +25 -4
- package/dist/devices/WindowBlindAccessory.js.map +1 -1
- package/dist/devices/custom/PowerStripAccessory.d.ts +2 -2
- package/dist/devices/custom/PowerStripAccessory.js +41 -8
- package/dist/devices/custom/PowerStripAccessory.js.map +1 -1
- package/dist/devices/index.d.ts +1 -0
- package/dist/devices/index.js +1 -0
- package/dist/devices/index.js.map +1 -1
- package/dist/homebridge-ui/public/index.html +1 -0
- package/dist/platform.js +7 -1
- package/dist/platform.js.map +1 -1
- package/package.json +6 -6
|
@@ -163,7 +163,7 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
163
163
|
this.clearTimers();
|
|
164
164
|
if (newMode === 1) {
|
|
165
165
|
// Switching to Cleaning mode - start the vacuum
|
|
166
|
-
this.updateOperationalState(1); // Running
|
|
166
|
+
await this.updateOperationalState(1); // Running
|
|
167
167
|
// Simulate cleaning completion after 15 seconds
|
|
168
168
|
const completionTimer = setTimeout(() => {
|
|
169
169
|
this.logInfo('cleaning completed, returning to dock.');
|
|
@@ -178,7 +178,7 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
178
178
|
}
|
|
179
179
|
else if (newMode === 2) {
|
|
180
180
|
// Switching to Mapping mode - start mapping
|
|
181
|
-
this.updateOperationalState(1); // Running
|
|
181
|
+
await this.updateOperationalState(1); // Running
|
|
182
182
|
// Simulate mapping completion after 20 seconds
|
|
183
183
|
const completionTimer = setTimeout(() => {
|
|
184
184
|
this.logInfo('mapping completed, returning to dock.');
|
|
@@ -209,28 +209,54 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
209
209
|
];
|
|
210
210
|
const modeStr = modes[newMode] || `Unknown (mode=${newMode})`;
|
|
211
211
|
this.logInfo(`changing clean mode to: ${modeStr}`);
|
|
212
|
+
// Example: Check if device supports the requested cleaning mode
|
|
213
|
+
// const supportedModes = [0, 1, 2, 6] // Only Vacuum, Mop, Vacuum&Mop, Quick Clean
|
|
214
|
+
// if (!supportedModes.includes(newMode)) {
|
|
215
|
+
// throw new MatterStatus.InvalidAction(`Clean mode "${modeStr}" is not supported by this device`)
|
|
216
|
+
// }
|
|
217
|
+
// Example: Check if mopping is available (water tank attached)
|
|
218
|
+
// const isMopMode = [1, 2, 5, 10, 13].includes(newMode) // modes that use mop
|
|
219
|
+
// if (isMopMode && !this.isWaterTankAttached) {
|
|
220
|
+
// throw new MatterStatus.InvalidInState('Cannot use mop modes - water tank not attached')
|
|
221
|
+
// }
|
|
212
222
|
// TODO: await myVacuumAPI.setCleanMode(newMode)
|
|
213
223
|
}
|
|
214
224
|
async handlePause() {
|
|
215
225
|
this.logInfo('pausing.');
|
|
216
226
|
// TODO: await myVacuumAPI.pause()
|
|
217
227
|
this.clearTimers(); // Clear cleaning completion timer
|
|
218
|
-
this.updateOperationalState(2); // Paused
|
|
228
|
+
await this.updateOperationalState(2); // Paused
|
|
219
229
|
}
|
|
220
230
|
async handleStop() {
|
|
221
231
|
this.logInfo('stopping.');
|
|
222
232
|
// TODO: await myVacuumAPI.stop()
|
|
223
233
|
this.clearTimers();
|
|
224
|
-
this.updateRunMode(0); // Reset to Idle
|
|
225
|
-
this.updateOperationalState(0); // Stopped
|
|
234
|
+
await this.updateRunMode(0); // Reset to Idle
|
|
235
|
+
await this.updateOperationalState(0); // Stopped
|
|
226
236
|
}
|
|
227
237
|
async handleStart() {
|
|
228
238
|
this.logInfo('starting (via start command).');
|
|
239
|
+
// Example: Check battery level before starting
|
|
240
|
+
// if (this.batteryPercent < 10) {
|
|
241
|
+
// throw new MatterStatus.InvalidInState('Battery too low to start cleaning (below 10%)')
|
|
242
|
+
// }
|
|
243
|
+
// Example: Check if dust bin is full
|
|
244
|
+
// if (this.isDustBinFull) {
|
|
245
|
+
// throw new MatterStatus.InvalidInState('Dust bin is full - please empty before starting')
|
|
246
|
+
// }
|
|
247
|
+
// Example: Check if vacuum is already running
|
|
248
|
+
// if (this.operationalState === 1) { // 1 = Running
|
|
249
|
+
// throw new MatterStatus.InvalidInState('Vacuum is already running')
|
|
250
|
+
// }
|
|
251
|
+
// Example: Check if vacuum is on dock
|
|
252
|
+
// if (!this.isDocked) {
|
|
253
|
+
// throw new MatterStatus.InvalidInState('Vacuum must be docked to start mapping mode')
|
|
254
|
+
// }
|
|
229
255
|
// TODO: await myVacuumAPI.start()
|
|
230
256
|
// Clear any existing timers
|
|
231
257
|
this.clearTimers();
|
|
232
|
-
this.updateRunMode(1); // Set to Cleaning mode - this will trigger the run mode handler logic
|
|
233
|
-
this.updateOperationalState(1); // Running
|
|
258
|
+
await this.updateRunMode(1); // Set to Cleaning mode - this will trigger the run mode handler logic
|
|
259
|
+
await this.updateOperationalState(1); // Running
|
|
234
260
|
// Simulate cleaning completion after 15 seconds
|
|
235
261
|
const completionTimer = setTimeout(() => {
|
|
236
262
|
this.logInfo('cleaning completed, returning to dock.');
|
|
@@ -244,8 +270,8 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
244
270
|
// TODO: await myVacuumAPI.resume()
|
|
245
271
|
// Clear any existing timers
|
|
246
272
|
this.clearTimers();
|
|
247
|
-
this.updateRunMode(1); // Set to Cleaning mode
|
|
248
|
-
this.updateOperationalState(1); // Running
|
|
273
|
+
await this.updateRunMode(1); // Set to Cleaning mode
|
|
274
|
+
await this.updateOperationalState(1); // Running
|
|
249
275
|
// Simulate cleaning completion after 10 seconds (shorter since resuming)
|
|
250
276
|
const completionTimer = setTimeout(() => {
|
|
251
277
|
this.logInfo('cleaning completed, returning to dock.');
|
|
@@ -272,6 +298,20 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
272
298
|
const { newAreas } = request;
|
|
273
299
|
const areaNames = newAreas.map((id) => ['Living Room', 'Kitchen', 'Bedroom', 'Bathroom'][id] || `Area ${id}`);
|
|
274
300
|
this.logInfo(`selecting areas: ${areaNames.join(', ')}`);
|
|
301
|
+
// Example: Validate that all requested areas exist
|
|
302
|
+
// const validAreaIds = [0, 1, 2, 3]
|
|
303
|
+
// const invalidAreas = newAreas.filter((id: number) => !validAreaIds.includes(id))
|
|
304
|
+
// if (invalidAreas.length > 0) {
|
|
305
|
+
// throw new MatterStatus.NotFound(`Area ID(s) not found: ${invalidAreas.join(', ')}`)
|
|
306
|
+
// }
|
|
307
|
+
// Example: Check if vacuum supports area selection
|
|
308
|
+
// if (!this.supportsAreaSelection) {
|
|
309
|
+
// throw new MatterStatus.InvalidAction('This vacuum does not support area selection')
|
|
310
|
+
// }
|
|
311
|
+
// Example: Prevent selecting areas while vacuum is running
|
|
312
|
+
// if (this.operationalState === 1) { // 1 = Running
|
|
313
|
+
// throw new MatterStatus.InvalidInState('Cannot change area selection while vacuum is running')
|
|
314
|
+
// }
|
|
275
315
|
// TODO: await myVacuumAPI.selectAreas(newAreas)
|
|
276
316
|
}
|
|
277
317
|
async handleSkipArea(request) {
|
|
@@ -295,13 +335,13 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
295
335
|
returnToDock() {
|
|
296
336
|
this.logInfo('initiating return to dock sequence.');
|
|
297
337
|
// Defer ALL state updates to ensure handler completes first
|
|
298
|
-
setImmediate(() => {
|
|
338
|
+
setImmediate(async () => {
|
|
299
339
|
// Start seeking charger directly (skip intermediate Stopped state)
|
|
300
|
-
this.updateOperationalState(64); // Seeking Charger
|
|
340
|
+
await this.updateOperationalState(64); // Seeking Charger
|
|
301
341
|
// After 5 seconds, start charging
|
|
302
|
-
const chargingTimer = setTimeout(() => {
|
|
342
|
+
const chargingTimer = setTimeout(async () => {
|
|
303
343
|
this.logInfo('reached dock, now charging.');
|
|
304
|
-
this.updateOperationalState(65); // Charging
|
|
344
|
+
await this.updateOperationalState(65); // Charging
|
|
305
345
|
// After 3 more seconds, fully docked
|
|
306
346
|
const dockedTimer = setTimeout(() => {
|
|
307
347
|
this.logInfo('fully charged and docked.');
|
|
@@ -317,8 +357,8 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
317
357
|
*
|
|
318
358
|
* Since this is a platform accessory, state updates work immediately after registration.
|
|
319
359
|
*/
|
|
320
|
-
updateOperationalState(state) {
|
|
321
|
-
this.updateState('rvcOperationalState', { operationalState: state });
|
|
360
|
+
async updateOperationalState(state) {
|
|
361
|
+
await this.updateState('rvcOperationalState', { operationalState: state });
|
|
322
362
|
const states = [
|
|
323
363
|
'Stopped',
|
|
324
364
|
'Running',
|
|
@@ -335,13 +375,13 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
335
375
|
];
|
|
336
376
|
this.logInfo(`operational state updated to: ${states[state] || `Unknown (${state})`}`);
|
|
337
377
|
}
|
|
338
|
-
updateRunMode(mode) {
|
|
339
|
-
this.updateState('rvcRunMode', { currentMode: mode });
|
|
378
|
+
async updateRunMode(mode) {
|
|
379
|
+
await this.updateState('rvcRunMode', { currentMode: mode });
|
|
340
380
|
const modes = ['Idle', 'Cleaning', 'Mapping'];
|
|
341
381
|
this.logInfo(`run mode updated to: ${modes[mode] || `Unknown (${mode})`}`);
|
|
342
382
|
}
|
|
343
|
-
updateCleanMode(mode) {
|
|
344
|
-
this.updateState('rvcCleanMode', { currentMode: mode });
|
|
383
|
+
async updateCleanMode(mode) {
|
|
384
|
+
await this.updateState('rvcCleanMode', { currentMode: mode });
|
|
345
385
|
const modes = [
|
|
346
386
|
'Vacuum',
|
|
347
387
|
'Mop',
|
|
@@ -361,13 +401,13 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
361
401
|
];
|
|
362
402
|
this.logInfo(`clean mode updated to: ${modes[mode] || `Unknown (${mode})`}`);
|
|
363
403
|
}
|
|
364
|
-
updateSelectedAreas(areaIds) {
|
|
365
|
-
this.updateState('serviceArea', { selectedAreas: areaIds });
|
|
404
|
+
async updateSelectedAreas(areaIds) {
|
|
405
|
+
await this.updateState('serviceArea', { selectedAreas: areaIds });
|
|
366
406
|
const areaNames = areaIds.map(id => ['Living Room', 'Kitchen', 'Bedroom', 'Bathroom'][id] || `Area ${id}`);
|
|
367
407
|
this.logInfo(`selected areas updated to: ${areaNames.join(', ') || 'All Areas'}`);
|
|
368
408
|
}
|
|
369
|
-
updateCurrentArea(areaId) {
|
|
370
|
-
this.updateState('serviceArea', { currentArea: areaId });
|
|
409
|
+
async updateCurrentArea(areaId) {
|
|
410
|
+
await this.updateState('serviceArea', { currentArea: areaId });
|
|
371
411
|
if (areaId !== null) {
|
|
372
412
|
const areaName = ['Living Room', 'Kitchen', 'Bedroom', 'Bathroom'][areaId] || `Area ${areaId}`;
|
|
373
413
|
this.logInfo(`current area updated to: ${areaName}`);
|
|
@@ -376,8 +416,8 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
|
|
|
376
416
|
this.logInfo('current area cleared');
|
|
377
417
|
}
|
|
378
418
|
}
|
|
379
|
-
updateProgress(progress) {
|
|
380
|
-
this.updateState('serviceArea', { progress });
|
|
419
|
+
async updateProgress(progress) {
|
|
420
|
+
await this.updateState('serviceArea', { progress });
|
|
381
421
|
this.logInfo(`progress updated: ${progress.length} areas`);
|
|
382
422
|
}
|
|
383
423
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoboticVacuumAccessory.js","sourceRoot":"","sources":["../../src/devices/RoboticVacuumAccessory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RoboticVacuumAccessory.js","sourceRoot":"","sources":["../../src/devices/RoboticVacuumAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,6 @@ import type { API, Logger } from 'homebridge';
|
|
|
5
5
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
6
6
|
export declare class SmokeCOAlarmAccessory extends BaseMatterAccessory {
|
|
7
7
|
constructor(api: API, log: Logger);
|
|
8
|
-
updateSmokeState(state: 0 | 1 | 2): void
|
|
9
|
-
updateCOState(state: 0 | 1 | 2): void
|
|
8
|
+
updateSmokeState(state: 0 | 1 | 2): Promise<void>;
|
|
9
|
+
updateCOState(state: 0 | 1 | 2): Promise<void>;
|
|
10
10
|
}
|
|
@@ -5,8 +5,7 @@ import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
|
5
5
|
export class SmokeCOAlarmAccessory extends BaseMatterAccessory {
|
|
6
6
|
constructor(api, log) {
|
|
7
7
|
const serialNumber = 'SENSOR-006';
|
|
8
|
-
const
|
|
9
|
-
const SmokeSensorWithBoth = api.matter.deviceTypes.SmokeSensor.with(SmokeCoAlarmServer.with('SmokeAlarm', 'CoAlarm'));
|
|
8
|
+
const SmokeSensorWithBoth = api.matter.deviceTypes.SmokeSensor.with(api.matter.deviceTypes.SmokeSensor.requirements.SmokeCoAlarmServer.with('SmokeAlarm', 'CoAlarm'));
|
|
10
9
|
super(api, log, {
|
|
11
10
|
uuid: api.matter.uuid.generate(serialNumber),
|
|
12
11
|
displayName: 'Smoke Sensor',
|
|
@@ -35,13 +34,13 @@ export class SmokeCOAlarmAccessory extends BaseMatterAccessory {
|
|
|
35
34
|
});
|
|
36
35
|
this.logInfo('initialized.');
|
|
37
36
|
}
|
|
38
|
-
updateSmokeState(state) {
|
|
39
|
-
this.updateState('smokeCoAlarm', { smokeState: state });
|
|
37
|
+
async updateSmokeState(state) {
|
|
38
|
+
await this.updateState('smokeCoAlarm', { smokeState: state });
|
|
40
39
|
const stateStr = ['Normal', 'Warning', 'Critical'][state];
|
|
41
40
|
this.logInfo(`smoke state: ${stateStr}.`);
|
|
42
41
|
}
|
|
43
|
-
updateCOState(state) {
|
|
44
|
-
this.updateState('smokeCoAlarm', { coState: state });
|
|
42
|
+
async updateCOState(state) {
|
|
43
|
+
await this.updateState('smokeCoAlarm', { coState: state });
|
|
45
44
|
const stateStr = ['Normal', 'Warning', 'Critical'][state];
|
|
46
45
|
this.logInfo(`co state: ${stateStr}.`);
|
|
47
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SmokeCOAlarmAccessory.js","sourceRoot":"","sources":["../../src/devices/SmokeCOAlarmAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,qBAAsB,SAAQ,mBAAmB;IAC5D,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAA;QACjC,MAAM,
|
|
1
|
+
{"version":3,"file":"SmokeCOAlarmAccessory.js","sourceRoot":"","sources":["../../src/devices/SmokeCOAlarmAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,qBAAsB,SAAQ,mBAAmB;IAC5D,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAA;QACjC,MAAM,mBAAmB,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CACjE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CACjG,CAAA;QAED,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,cAAc;YAC3B,UAAU,EAAE,mBAAmB;YAC/B,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,2BAA2B;YAClC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,YAAY,EAAE;oBACZ,UAAU,EAAE,CAAC,EAAE,wCAAwC;oBACvD,OAAO,EAAE,CAAC;oBACV,YAAY,EAAE,CAAC;oBACf,WAAW,EAAE,CAAC;oBACd,cAAc,EAAE,KAAK;oBACrB,kBAAkB,EAAE,KAAK;oBACzB,iBAAiB,EAAE,CAAC;oBACpB,sBAAsB,EAAE,CAAC;oBACzB,mBAAmB,EAAE,CAAC;oBACtB,kBAAkB,EAAE,CAAC;oBACrB,qBAAqB,EAAE,CAAC;oBACxB,cAAc,EAAE,CAAC;iBAClB;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,KAAgB;QAC5C,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;QAC7D,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAA;QACzD,IAAI,CAAC,OAAO,CAAC,gBAAgB,QAAQ,GAAG,CAAC,CAAA;IAC3C,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,KAAgB;QACzC,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAA;QACzD,IAAI,CAAC,OAAO,CAAC,aAAa,QAAQ,GAAG,CAAC,CAAA;IACxC,CAAC;CACF"}
|
|
@@ -5,5 +5,5 @@ import type { API, Logger } from 'homebridge';
|
|
|
5
5
|
import { BaseMatterAccessory } from './BaseMatterAccessory.js';
|
|
6
6
|
export declare class TemperatureSensorAccessory extends BaseMatterAccessory {
|
|
7
7
|
constructor(api: API, log: Logger);
|
|
8
|
-
updateTemperature(celsius: number): void
|
|
8
|
+
updateTemperature(celsius: number): Promise<void>;
|
|
9
9
|
}
|
|
@@ -24,9 +24,9 @@ export class TemperatureSensorAccessory extends BaseMatterAccessory {
|
|
|
24
24
|
});
|
|
25
25
|
this.logInfo('initialized.');
|
|
26
26
|
}
|
|
27
|
-
updateTemperature(celsius) {
|
|
27
|
+
async updateTemperature(celsius) {
|
|
28
28
|
const value = Math.round(celsius * 100); // convert to hundredths
|
|
29
|
-
this.updateState('temperatureMeasurement', { measuredValue: value });
|
|
29
|
+
await this.updateState('temperatureMeasurement', { measuredValue: value });
|
|
30
30
|
this.logInfo(`temperature: ${celsius}°C.`);
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemperatureSensorAccessory.js","sourceRoot":"","sources":["../../src/devices/TemperatureSensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,0BAA2B,SAAQ,mBAAmB;IACjE,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAA;QACjC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,oBAAoB;YACjC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB;YACpD,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,8BAA8B;YACrC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,sBAAsB,EAAE;oBACtB,aAAa,EAAE,IAAI,EAAE,0BAA0B;oBAC/C,gBAAgB,EAAE,CAAC,IAAI;oBACvB,gBAAgB,EAAE,KAAK;iBACxB;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,iBAAiB,CAAC,OAAe;
|
|
1
|
+
{"version":3,"file":"TemperatureSensorAccessory.js","sourceRoot":"","sources":["../../src/devices/TemperatureSensorAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,0BAA2B,SAAQ,mBAAmB;IACjE,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,YAAY,CAAA;QACjC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,oBAAoB;YACjC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB;YACpD,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,8BAA8B;YACrC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,sBAAsB,EAAE;oBACtB,aAAa,EAAE,IAAI,EAAE,0BAA0B;oBAC/C,gBAAgB,EAAE,CAAC,IAAI;oBACvB,gBAAgB,EAAE,KAAK;iBACxB;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAAC,OAAe;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,CAAA,CAAC,wBAAwB;QAChE,MAAM,IAAI,CAAC,WAAW,CAAC,wBAAwB,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAA;QAC1E,IAAI,CAAC,OAAO,CAAC,gBAAgB,OAAO,KAAK,CAAC,CAAA;IAC5C,CAAC;CACF"}
|
|
@@ -9,8 +9,8 @@ export declare class ThermostatAccessory extends BaseMatterAccessory {
|
|
|
9
9
|
private handleSystemModeChange;
|
|
10
10
|
private handleOccupiedHeatingSetpointChange;
|
|
11
11
|
private handleOccupiedCoolingSetpointChange;
|
|
12
|
-
updateCurrentTemperature(celsius: number): void
|
|
13
|
-
updateHeatingSetpoint(celsius: number): void
|
|
14
|
-
updateCoolingSetpoint(celsius: number): void
|
|
15
|
-
updateSystemMode(mode: number): void
|
|
12
|
+
updateCurrentTemperature(celsius: number): Promise<void>;
|
|
13
|
+
updateHeatingSetpoint(celsius: number): Promise<void>;
|
|
14
|
+
updateCoolingSetpoint(celsius: number): Promise<void>;
|
|
15
|
+
updateSystemMode(mode: number): Promise<void>;
|
|
16
16
|
}
|
|
@@ -51,12 +51,43 @@ export class ThermostatAccessory extends BaseMatterAccessory {
|
|
|
51
51
|
const modeNames = ['Off', 'Auto', 'Reserved', 'Cool', 'Heat', 'Emergency Heating', 'Precooling', 'Fan Only'];
|
|
52
52
|
const modeName = modeNames[request.systemMode] || `Unknown (${request.systemMode})`;
|
|
53
53
|
this.logInfo(`system mode changed to: ${modeName}.`);
|
|
54
|
+
// Example: Check if requested mode is supported by device
|
|
55
|
+
// const supportedModes = [0, 3, 4] // Off, Cool, Heat
|
|
56
|
+
// if (!supportedModes.includes(request.systemMode)) {
|
|
57
|
+
// throw new MatterStatus.InvalidAction(
|
|
58
|
+
// `System mode ${modeName} is not supported by this device`
|
|
59
|
+
// )
|
|
60
|
+
// }
|
|
61
|
+
// Example: Check if mode change is allowed based on external conditions
|
|
62
|
+
// if (request.systemMode === 4 && this.outdoorTemp > 30) {
|
|
63
|
+
// throw new MatterStatus.InvalidInState(
|
|
64
|
+
// 'Heating mode disabled when outdoor temperature exceeds 30°C'
|
|
65
|
+
// )
|
|
66
|
+
// }
|
|
54
67
|
// TODO: await myThermostatAPI.setSystemMode(request.systemMode)
|
|
55
68
|
}
|
|
56
69
|
async handleOccupiedHeatingSetpointChange(request) {
|
|
57
70
|
this.logInfo(`OccupiedHeatingSetpoint change: ${JSON.stringify(request)}`);
|
|
58
71
|
const celsius = request.occupiedHeatingSetpoint / 100; // convert from hundredths to degrees
|
|
59
72
|
this.logInfo(`heating setpoint changed to: ${celsius}°C.`);
|
|
73
|
+
// Example: Validate temperature is within device limits
|
|
74
|
+
// const minTemp = 7 // 7°C
|
|
75
|
+
// const maxTemp = 30 // 30°C
|
|
76
|
+
// if (celsius < minTemp || celsius > maxTemp) {
|
|
77
|
+
// throw new MatterStatus.ConstraintError(
|
|
78
|
+
// `Heating setpoint ${celsius}°C is out of range (${minTemp}-${maxTemp}°C)`
|
|
79
|
+
// )
|
|
80
|
+
// }
|
|
81
|
+
// Example: Ensure heating setpoint is below cooling setpoint
|
|
82
|
+
// if (celsius >= this.coolingSetpoint) {
|
|
83
|
+
// throw new MatterStatus.ConstraintError(
|
|
84
|
+
// `Heating setpoint must be below cooling setpoint (${this.coolingSetpoint}°C)`
|
|
85
|
+
// )
|
|
86
|
+
// }
|
|
87
|
+
// Example: Check if heating is supported
|
|
88
|
+
// if (!this.supportsHeating) {
|
|
89
|
+
// throw new MatterStatus.InvalidInState('Device does not support heating mode')
|
|
90
|
+
// }
|
|
60
91
|
// TODO: await myThermostatAPI.setHeatingSetpoint(celsius)
|
|
61
92
|
}
|
|
62
93
|
async handleOccupiedCoolingSetpointChange(request) {
|
|
@@ -65,23 +96,23 @@ export class ThermostatAccessory extends BaseMatterAccessory {
|
|
|
65
96
|
this.logInfo(`cooling setpoint changed to: ${celsius}°C.`);
|
|
66
97
|
// TODO: await myThermostatAPI.setCoolingSetpoint(celsius)
|
|
67
98
|
}
|
|
68
|
-
updateCurrentTemperature(celsius) {
|
|
99
|
+
async updateCurrentTemperature(celsius) {
|
|
69
100
|
const value = Math.round(celsius * 100);
|
|
70
|
-
this.updateState('thermostat', { localTemperature: value });
|
|
101
|
+
await this.updateState('thermostat', { localTemperature: value });
|
|
71
102
|
this.logInfo(`current temperature: ${celsius}°C.`);
|
|
72
103
|
}
|
|
73
|
-
updateHeatingSetpoint(celsius) {
|
|
104
|
+
async updateHeatingSetpoint(celsius) {
|
|
74
105
|
const value = Math.round(celsius * 100);
|
|
75
|
-
this.updateState('thermostat', { occupiedHeatingSetpoint: value });
|
|
106
|
+
await this.updateState('thermostat', { occupiedHeatingSetpoint: value });
|
|
76
107
|
this.logInfo(`heating setpoint: ${celsius}°C.`);
|
|
77
108
|
}
|
|
78
|
-
updateCoolingSetpoint(celsius) {
|
|
109
|
+
async updateCoolingSetpoint(celsius) {
|
|
79
110
|
const value = Math.round(celsius * 100);
|
|
80
|
-
this.updateState('thermostat', { occupiedCoolingSetpoint: value });
|
|
111
|
+
await this.updateState('thermostat', { occupiedCoolingSetpoint: value });
|
|
81
112
|
this.logInfo(`cooling setpoint: ${celsius}°C.`);
|
|
82
113
|
}
|
|
83
|
-
updateSystemMode(mode) {
|
|
84
|
-
this.updateState('thermostat', { systemMode: mode });
|
|
114
|
+
async updateSystemMode(mode) {
|
|
115
|
+
await this.updateState('thermostat', { systemMode: mode });
|
|
85
116
|
}
|
|
86
117
|
}
|
|
87
118
|
//# sourceMappingURL=ThermostatAccessory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThermostatAccessory.js","sourceRoot":"","sources":["../../src/devices/ThermostatAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,mBAAoB,SAAQ,mBAAmB;IAC1D,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,gBAAgB,CAAA;QACrC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,YAAY;YACzB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU;YAC7C,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,sBAAsB;YAC7B,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,UAAU,EAAE;oBACV,gBAAgB,EAAE,IAAI,EAAE,UAAU;oBAClC,uBAAuB,EAAE,IAAI;oBAC7B,uBAAuB,EAAE,IAAI;oBAC7B,oBAAoB,EAAE,GAAG;oBACzB,oBAAoB,EAAE,IAAI;oBAC1B,oBAAoB,EAAE,IAAI;oBAC1B,oBAAoB,EAAE,IAAI;oBAC1B,0BAA0B,EAAE,CAAC,EAAE,sBAAsB;oBACrD,UAAU,EAAE,CAAC,EAAE,MAAM;iBACtB;aACF;YAED,QAAQ,EAAE;gBACR,UAAU,EAAE;oBACV,kBAAkB,EAAE,KAAK,EAAE,OAA0C,EAAE,EAAE,CACvE,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC;oBACxC,gBAAgB,EAAE,KAAK,EAAE,OAAsD,EAAE,EAAE,CACjF,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;oBACtC,6BAA6B,EAAE,KAAK,EAAE,OAAgF,EAAE,EAAE,CACxH,IAAI,CAAC,mCAAmC,CAAC,OAAO,CAAC;oBACnD,6BAA6B,EAAE,KAAK,EAAE,OAAgF,EAAE,EAAE,CACxH,IAAI,CAAC,mCAAmC,CAAC,OAAO,CAAC;iBACpD;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,wBAAwB,CAAC,OAA0C;QAC/E,IAAI,CAAC,OAAO,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACtE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QAChC,MAAM,UAAU,GAAG,MAAM,GAAG,EAAE,CAAA,CAAC,iCAAiC;QAChE,IAAI,CAAC,OAAO,CAAC,yBAAyB,UAAU,aAAa,IAAI,IAAI,CAAC,CAAA;QACtE,+DAA+D;IACjE,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,OAAsD;QACzF,IAAI,CAAC,OAAO,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC7D,6GAA6G;QAC7G,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,CAAC,CAAA;QAC5G,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,YAAY,OAAO,CAAC,UAAU,GAAG,CAAA;QACnF,IAAI,CAAC,OAAO,CAAC,2BAA2B,QAAQ,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"ThermostatAccessory.js","sourceRoot":"","sources":["../../src/devices/ThermostatAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,6 @@ export declare class VenetianBlindAccessory extends BaseMatterAccessory {
|
|
|
11
11
|
private handleUpOrOpen;
|
|
12
12
|
private handleDownOrClose;
|
|
13
13
|
private handleStop;
|
|
14
|
-
updateLiftPosition(openPercent: number): void
|
|
15
|
-
updateTiltPosition(degrees: number): void
|
|
14
|
+
updateLiftPosition(openPercent: number): Promise<void>;
|
|
15
|
+
updateTiltPosition(degrees: number): Promise<void>;
|
|
16
16
|
}
|
|
@@ -62,7 +62,24 @@ export class VenetianBlindAccessory extends BaseMatterAccessory {
|
|
|
62
62
|
this.logInfo(`GoToTiltPercentage request: ${JSON.stringify(request)}`);
|
|
63
63
|
// Matter tilt: 0=horizontal/open (0deg), 10000=vertical/closed (90deg)
|
|
64
64
|
const degrees = Math.round((request.tiltPercent100thsValue / 10000) * 90);
|
|
65
|
-
this.logInfo(`
|
|
65
|
+
this.logInfo(`tilting to ${degrees}°.`);
|
|
66
|
+
// Example: Check if blind is in correct position for tilting
|
|
67
|
+
// if (this.liftPosition < 10) {
|
|
68
|
+
// throw new MatterStatus.InvalidInState('Blind must be lowered at least 10% to adjust tilt')
|
|
69
|
+
// }
|
|
70
|
+
// Example: Check if tilt motor is already active
|
|
71
|
+
// if (this.isTiltMotorActive) {
|
|
72
|
+
// throw new MatterStatus.Busy('Tilt motor is currently in use')
|
|
73
|
+
// }
|
|
74
|
+
// Example: Check if tilt mechanism is calibrated
|
|
75
|
+
// if (!this.isTiltCalibrated) {
|
|
76
|
+
// throw new MatterStatus.InvalidInState('Tilt mechanism requires calibration')
|
|
77
|
+
// }
|
|
78
|
+
// Example: Validate tilt angle limits
|
|
79
|
+
// const maxTilt = 85 // Some blinds can't go fully to 90 degrees
|
|
80
|
+
// if (degrees > maxTilt) {
|
|
81
|
+
// throw new MatterStatus.ConstraintError(`Maximum tilt angle is ${maxTilt}°`)
|
|
82
|
+
// }
|
|
66
83
|
// TODO: await myBlindAPI.setTiltAngle(degrees)
|
|
67
84
|
}
|
|
68
85
|
async handleUpOrOpen() {
|
|
@@ -77,20 +94,20 @@ export class VenetianBlindAccessory extends BaseMatterAccessory {
|
|
|
77
94
|
this.logInfo('stopped blind.');
|
|
78
95
|
// TODO: await myBlindAPI.stop()
|
|
79
96
|
}
|
|
80
|
-
updateLiftPosition(openPercent) {
|
|
97
|
+
async updateLiftPosition(openPercent) {
|
|
81
98
|
// Convert open percentage to Matter's closed percentage (0=open, 10000=closed)
|
|
82
99
|
const closedPercent = 100 - openPercent;
|
|
83
100
|
const value = Math.round(closedPercent * 100);
|
|
84
|
-
this.updateState(this.api.matter.clusterNames.WindowCovering, {
|
|
101
|
+
await this.updateState(this.api.matter.clusterNames.WindowCovering, {
|
|
85
102
|
currentPositionLiftPercent100ths: value,
|
|
86
103
|
targetPositionLiftPercent100ths: value,
|
|
87
104
|
});
|
|
88
105
|
this.logInfo(`lift position: ${openPercent}% open.`);
|
|
89
106
|
}
|
|
90
|
-
updateTiltPosition(degrees) {
|
|
107
|
+
async updateTiltPosition(degrees) {
|
|
91
108
|
// Convert degrees (0-90) to Matter's tilt percentage (0=horizontal, 10000=vertical)
|
|
92
109
|
const value = Math.round((degrees / 90) * 10000);
|
|
93
|
-
this.updateState(this.api.matter.clusterNames.WindowCovering, {
|
|
110
|
+
await this.updateState(this.api.matter.clusterNames.WindowCovering, {
|
|
94
111
|
currentPositionTiltPercent100ths: value,
|
|
95
112
|
targetPositionTiltPercent100ths: value,
|
|
96
113
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VenetianBlindAccessory.js","sourceRoot":"","sources":["../../src/devices/VenetianBlindAccessory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAC7D,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,WAAW,CAAA;QAEhC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,uBAAuB;YACpC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc;YACjD,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,0BAA0B;YACjC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,cAAc,EAAE;oBACd,+BAA+B,EAAE,IAAI;oBACrC,gCAAgC,EAAE,IAAI;oBACtC,+BAA+B,EAAE,IAAI;oBACrC,gCAAgC,EAAE,IAAI;oBACtC,iBAAiB,EAAE;wBACjB,MAAM,EAAE,CAAC;wBACT,IAAI,EAAE,CAAC;wBACP,IAAI,EAAE,CAAC;qBACR;oBACD,cAAc,EAAE,CAAC;oBACjB,YAAY,EAAE;wBACZ,WAAW,EAAE,IAAI;wBACjB,cAAc,EAAE,IAAI;wBACpB,oBAAoB,EAAE,KAAK;wBAC3B,iBAAiB,EAAE,IAAI;wBACvB,iBAAiB,EAAE,IAAI;wBACvB,qBAAqB,EAAE,IAAI;wBAC3B,qBAAqB,EAAE,IAAI;qBAC5B;iBACF;aACF;YAED,QAAQ,EAAE;gBACR,cAAc,EAAE;oBACd,kBAAkB,EAAE,KAAK,EAAE,OAA0C,EAAE,EAAE,CACvE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC9B,kBAAkB,EAAE,KAAK,EAAE,OAA0C,EAAE,EAAE,CACvE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC9B,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;oBAC3C,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBACjD,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;iBAC1C;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAA0C;QACrE,IAAI,CAAC,OAAO,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAEtE,qEAAqE;QACrE,MAAM,aAAa,GAAG,OAAO,CAAC,sBAAsB,GAAG,GAAG,CAAA;QAC1D,MAAM,WAAW,GAAG,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACpD,IAAI,CAAC,OAAO,CAAC,YAAY,WAAW,SAAS,CAAC,CAAA;QAC9C,kDAAkD;IACpD,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAA0C;QACrE,IAAI,CAAC,OAAO,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAEtE,uEAAuE;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,sBAAsB,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAA;QACzE,IAAI,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"VenetianBlindAccessory.js","sourceRoot":"","sources":["../../src/devices/VenetianBlindAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,7 +52,19 @@ export class WindowBlindAccessory extends BaseMatterAccessory {
|
|
|
52
52
|
// Matter uses 0=open, 10000=closed, so invert to get open percentage
|
|
53
53
|
const closedPercent = request.liftPercent100thsValue / 100;
|
|
54
54
|
const openPercent = (100 - closedPercent).toFixed(0);
|
|
55
|
-
this.logInfo(`
|
|
55
|
+
this.logInfo(`moving to ${openPercent}% open.`);
|
|
56
|
+
// Example: Check if blind motor is already moving
|
|
57
|
+
// if (this.isMotorActive) {
|
|
58
|
+
// throw new MatterStatus.Busy('Blind is currently moving - stop it first')
|
|
59
|
+
// }
|
|
60
|
+
// Example: Check if blind is obstructed
|
|
61
|
+
// if (this.isObstructionDetected) {
|
|
62
|
+
// throw new MatterStatus.InvalidInState('Cannot move blind - obstruction detected')
|
|
63
|
+
// }
|
|
64
|
+
// Example: Validate position is within calibrated range
|
|
65
|
+
// if (!this.isCalibrated) {
|
|
66
|
+
// throw new MatterStatus.InvalidInState('Blind must be calibrated before position control')
|
|
67
|
+
// }
|
|
56
68
|
// TODO: await myBlindAPI.setPosition(openPercent)
|
|
57
69
|
}
|
|
58
70
|
async handleUpOrOpen() {
|
|
@@ -64,14 +76,23 @@ export class WindowBlindAccessory extends BaseMatterAccessory {
|
|
|
64
76
|
// TODO: await myBlindAPI.close()
|
|
65
77
|
}
|
|
66
78
|
async handleStop() {
|
|
67
|
-
this.logInfo('
|
|
79
|
+
this.logInfo('stopping blind.');
|
|
80
|
+
// Example: Check if blind is actually moving before stopping
|
|
81
|
+
// if (!this.isMotorActive) {
|
|
82
|
+
// throw new MatterStatus.InvalidInState('Blind is not currently moving')
|
|
83
|
+
// }
|
|
84
|
+
// Example: Check if device supports stop command
|
|
85
|
+
// if (!this.supportsStopCommand) {
|
|
86
|
+
// throw new MatterStatus.InvalidAction('This blind model does not support stop command')
|
|
87
|
+
// }
|
|
68
88
|
// TODO: await myBlindAPI.stop()
|
|
89
|
+
this.logInfo('stopped blind.');
|
|
69
90
|
}
|
|
70
|
-
updateLiftPosition(openPercent) {
|
|
91
|
+
async updateLiftPosition(openPercent) {
|
|
71
92
|
// Convert open percentage to Matter's closed percentage (0=open, 10000=closed)
|
|
72
93
|
const closedPercent = 100 - openPercent;
|
|
73
94
|
const value = Math.round(closedPercent * 100);
|
|
74
|
-
this.updateState(this.api.matter.clusterNames.WindowCovering, {
|
|
95
|
+
await this.updateState(this.api.matter.clusterNames.WindowCovering, {
|
|
75
96
|
currentPositionLiftPercent100ths: value,
|
|
76
97
|
targetPositionLiftPercent100ths: value,
|
|
77
98
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WindowBlindAccessory.js","sourceRoot":"","sources":["../../src/devices/WindowBlindAccessory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,WAAW,CAAA;QAEhC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,cAAc;YAC3B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc;YACjD,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,wBAAwB;YAC/B,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,cAAc,EAAE;oBACd,+BAA+B,EAAE,IAAI;oBACrC,gCAAgC,EAAE,IAAI;oBACtC,iBAAiB,EAAE;wBACjB,MAAM,EAAE,CAAC;wBACT,IAAI,EAAE,CAAC;wBACP,IAAI,EAAE,CAAC;qBACR;oBACD,cAAc,EAAE,CAAC;oBACjB,YAAY,EAAE;wBACZ,WAAW,EAAE,IAAI;wBACjB,cAAc,EAAE,IAAI;wBACpB,oBAAoB,EAAE,KAAK;wBAC3B,iBAAiB,EAAE,IAAI;wBACvB,iBAAiB,EAAE,KAAK;wBACxB,qBAAqB,EAAE,IAAI;wBAC3B,qBAAqB,EAAE,KAAK;qBAC7B;iBACF;aACF;YAED,QAAQ,EAAE;gBACR,cAAc,EAAE;oBACd,kBAAkB,EAAE,KAAK,EAAE,OAA0C,EAAE,EAAE,CACvE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;oBAC9B,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE;oBAC3C,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBACjD,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;iBAC1C;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAA0C;QACrE,IAAI,CAAC,OAAO,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACtE,qEAAqE;QACrE,MAAM,aAAa,GAAG,OAAO,CAAC,sBAAsB,GAAG,GAAG,CAAA;QAC1D,MAAM,WAAW,GAAG,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACpD,IAAI,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"WindowBlindAccessory.js","sourceRoot":"","sources":["../../src/devices/WindowBlindAccessory.ts"],"names":[],"mappings":"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"}
|
|
@@ -73,7 +73,7 @@ export declare class PowerStripAccessory extends BaseMatterAccessory {
|
|
|
73
73
|
* @param outletNumber - Outlet number (1-4)
|
|
74
74
|
* @param isOn - New state of the outlet
|
|
75
75
|
*/
|
|
76
|
-
updateOutletStateFromExternal(outletNumber: 1 | 2 | 3 | 4, isOn: boolean): void
|
|
76
|
+
updateOutletStateFromExternal(outletNumber: 1 | 2 | 3 | 4, isOn: boolean): Promise<void>;
|
|
77
77
|
/**
|
|
78
78
|
* Update all outlet states from external source
|
|
79
79
|
*
|
|
@@ -88,7 +88,7 @@ export declare class PowerStripAccessory extends BaseMatterAccessory {
|
|
|
88
88
|
outlet2: boolean;
|
|
89
89
|
outlet3: boolean;
|
|
90
90
|
outlet4: boolean;
|
|
91
|
-
}): void
|
|
91
|
+
}): Promise<void>;
|
|
92
92
|
/**
|
|
93
93
|
* Override updateState to support partId parameter
|
|
94
94
|
*/
|