@homebridge-plugins/homebridge-matter 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +2 -1
  3. package/dist/devices/ColorLightAccessory.js +35 -0
  4. package/dist/devices/ColorLightAccessory.js.map +1 -1
  5. package/dist/devices/ColorTemperatureLightAccessory.js +13 -0
  6. package/dist/devices/ColorTemperatureLightAccessory.js.map +1 -1
  7. package/dist/devices/DimmableLightAccessory.js +16 -0
  8. package/dist/devices/DimmableLightAccessory.js.map +1 -1
  9. package/dist/devices/DoorLockAccessory.js +35 -0
  10. package/dist/devices/DoorLockAccessory.js.map +1 -1
  11. package/dist/devices/ExtendedColorLightAccessory.js +18 -0
  12. package/dist/devices/ExtendedColorLightAccessory.js.map +1 -1
  13. package/dist/devices/FanAccessory.js +32 -0
  14. package/dist/devices/FanAccessory.js.map +1 -1
  15. package/dist/devices/OnOffLightAccessory.js +16 -0
  16. package/dist/devices/OnOffLightAccessory.js.map +1 -1
  17. package/dist/devices/OnOffOutletAccessory.js +16 -0
  18. package/dist/devices/OnOffOutletAccessory.js.map +1 -1
  19. package/dist/devices/OnOffSwitchAccessory.js +12 -0
  20. package/dist/devices/OnOffSwitchAccessory.js.map +1 -1
  21. package/dist/devices/RoboticVacuumAccessory.d.ts +5 -0
  22. package/dist/devices/RoboticVacuumAccessory.js +67 -0
  23. package/dist/devices/RoboticVacuumAccessory.js.map +1 -1
  24. package/dist/devices/ThermostatAccessory.js +31 -0
  25. package/dist/devices/ThermostatAccessory.js.map +1 -1
  26. package/dist/devices/VenetianBlindAccessory.js +18 -1
  27. package/dist/devices/VenetianBlindAccessory.js.map +1 -1
  28. package/dist/devices/WindowBlindAccessory.js +23 -2
  29. package/dist/devices/WindowBlindAccessory.js.map +1 -1
  30. package/dist/devices/custom/PowerStripAccessory.js +33 -0
  31. package/dist/devices/custom/PowerStripAccessory.js.map +1 -1
  32. package/dist/homebridge-ui/public/index.html +1 -0
  33. package/package.json +6 -6
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to `@homebridge-plugins/homebridge-matter` will be documented in this file.
4
4
 
5
+ ## v0.5.0 (2025-11-02)
6
+
7
+ ### Changes
8
+
9
+ - added examples of correct error handling
10
+
11
+ ## v0.4.1 (2025-10-28)
12
+
13
+ ### Changes
14
+
15
+ - example for vacuum battery status
16
+
5
17
  ## v0.4.0 (2025-10-28)
6
18
 
7
19
  ### Changes
package/README.md CHANGED
@@ -29,7 +29,7 @@ This plugin provides example implementations of Matter device types in Homebridg
29
29
 
30
30
  - To use this plugin, you will need to already have:
31
31
  - [Node](https://nodejs.org): latest version of `v20`, `v22` or `v24` - any other major version is not supported.
32
- - [Homebridge](https://homebridge.io): `>=2.0.0-beta.36` - refer to link for more information and installation instructions.
32
+ - [Homebridge](https://homebridge.io): `>=2.0.0-beta.40` - refer to link for more information and installation instructions.
33
33
 
34
34
  ### Getting Started
35
35
 
@@ -43,6 +43,7 @@ This plugin provides example implementations of Matter device types in Homebridg
43
43
  - [Getting Started](https://github.com/homebridge-plugins/homebridge-matter/wiki/Getting-Started)
44
44
  - [State Management](https://github.com/homebridge-plugins/homebridge-matter/wiki/State-Management)
45
45
  - [Monitoring External Changes](https://github.com/homebridge-plugins/homebridge-matter/wiki/Monitoring-External-Changes)
46
+ - [Error Handling](https://github.com/homebridge-plugins/homebridge-matter/wiki/Error-Handling)
46
47
  - [Best Practices](https://github.com/homebridge-plugins/homebridge-matter/wiki/Best-Practices)
47
48
  - [Advanced Patterns](https://github.com/homebridge-plugins/homebridge-matter/wiki/Advanced-Patterns)
48
49
 
@@ -48,6 +48,21 @@ export class ColorLightAccessory extends BaseMatterAccessory {
48
48
  }
49
49
  async handleOn() {
50
50
  this.logInfo('turning on.');
51
+ // Example: Check if device is already processing another command
52
+ // if (this.isDeviceBusy) {
53
+ // throw new MatterStatus.Busy('Light is processing another command')
54
+ // }
55
+ // Example: Make API call with timeout
56
+ // try {
57
+ // await this.lightAPI.turnOn({ timeout: 5000 })
58
+ // } catch (error) {
59
+ // // If the API call times out, throw a Timeout error
60
+ // if (error.code === 'ETIMEDOUT') {
61
+ // throw new MatterStatus.Timeout('Light did not respond within 5 seconds')
62
+ // }
63
+ // // For other errors, let Homebridge wrap it as a generic Failure
64
+ // throw error
65
+ // }
51
66
  // TODO: await myLightAPI.turnOn()
52
67
  }
53
68
  async handleOff() {
@@ -59,6 +74,16 @@ export class ColorLightAccessory extends BaseMatterAccessory {
59
74
  const { level } = request;
60
75
  const brightnessPercent = Math.round((level / 254) * 100);
61
76
  this.logInfo(`setting brightness to ${brightnessPercent}%.`);
77
+ // Example: Validate the value meets device constraints
78
+ // if (brightnessPercent < 1 || brightnessPercent > 100) {
79
+ // throw new MatterStatus.ConstraintError(`Brightness ${brightnessPercent}% is out of range (1-100)`)
80
+ // }
81
+ // Example: Check if device supports this brightness level
82
+ // if (brightnessPercent < this.deviceMinBrightness) {
83
+ // throw new MatterStatus.ConstraintError(
84
+ // `Device minimum brightness is ${this.deviceMinBrightness}%`
85
+ // )
86
+ // }
62
87
  // TODO: await myLightAPI.setBrightness(brightnessPercent)
63
88
  }
64
89
  async handleSetColor(request) {
@@ -75,6 +100,16 @@ export class ColorLightAccessory extends BaseMatterAccessory {
75
100
  const hueDegrees = Math.round((hue / 254) * 360);
76
101
  const saturationPercent = Math.round((saturation / 254) * 100);
77
102
  this.logInfo(`setting color to ${hueDegrees}°, ${saturationPercent}%.`);
103
+ // Example: Check if device is in the right mode for color control
104
+ // if (this.currentColorMode !== 'hs') {
105
+ // throw new MatterStatus.InvalidInState(
106
+ // 'Light must be in HS color mode to set hue and saturation'
107
+ // )
108
+ // }
109
+ // Example: Check if light is on before setting color
110
+ // if (!this.isLightOn) {
111
+ // throw new MatterStatus.InvalidInState('Cannot set color while light is off')
112
+ // }
78
113
  // TODO: await myLightAPI.setColor(hueDegrees, saturationPercent, transitionTime)
79
114
  }
80
115
  updateOnOffState(isOn) {
@@ -1 +1 @@
1
- {"version":3,"file":"ColorLightAccessory.js","sourceRoot":"","sources":["../../src/devices/ColorLightAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ColorLightAccessory.js","sourceRoot":"","sources":["../../src/devices/ColorLightAccessory.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,19 @@ export class ColorTemperatureLightAccessory extends BaseMatterAccessory {
66
66
  const { colorTemperatureMireds, transitionTime } = request;
67
67
  const kelvin = Math.round(1000000 / colorTemperatureMireds);
68
68
  this.logInfo(`setting color temp to ${kelvin}k (${colorTemperatureMireds} mireds).`);
69
+ // Example: Validate against physical limits defined in cluster
70
+ // const minMireds = 147 // ~6800K (cool daylight)
71
+ // const maxMireds = 454 // ~2200K (warm candlelight)
72
+ // if (colorTemperatureMireds < minMireds) {
73
+ // throw new MatterStatus.ConstraintError(`Color temp ${kelvin}K exceeds maximum 6800K`)
74
+ // }
75
+ // if (colorTemperatureMireds > maxMireds) {
76
+ // throw new MatterStatus.ConstraintError(`Color temp ${kelvin}K below minimum 2200K`)
77
+ // }
78
+ // Example: Check if adjustment requires recalibration
79
+ // if (this.needsRecalibration && Math.abs(colorTemperatureMireds - this.lastMireds) > 100) {
80
+ // throw new MatterStatus.InvalidInState('Large color temp change requires recalibration')
81
+ // }
69
82
  // TODO: await myLightAPI.setColorTemperature(kelvin, transitionTime)
70
83
  }
71
84
  updateOnOffState(isOn) {
@@ -1 +1 @@
1
- {"version":3,"file":"ColorTemperatureLightAccessory.js","sourceRoot":"","sources":["../../src/devices/ColorTemperatureLightAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ColorTemperatureLightAccessory.js","sourceRoot":"","sources":["../../src/devices/ColorTemperatureLightAccessory.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,18 @@ export class DimmableLightAccessory extends BaseMatterAccessory {
95
95
  const brightnessPercent = Math.round((level / 254) * 100);
96
96
  this.currentLevel = level;
97
97
  this.logInfo(`setting brightness to ${brightnessPercent}% (level: ${level}).`);
98
+ // Example: Validate the brightness level meets device constraints
99
+ // if (level < 10) {
100
+ // throw new MatterStatus.ConstraintError('Minimum brightness is 10 (4%) for this bulb')
101
+ // }
102
+ // Example: Check if device supports the transition time requested
103
+ // if (transitionTime !== null && transitionTime > 300) {
104
+ // throw new MatterStatus.ConstraintError('Maximum transition time is 300 (30 seconds)')
105
+ // }
106
+ // Example: Check if dimming is supported
107
+ // if (!this.supportsDimming) {
108
+ // throw new MatterStatus.InvalidAction('This bulb does not support dimming')
109
+ // }
98
110
  try {
99
111
  // TODO: Control your physical device
100
112
  // await myLightAPI.setBrightness(brightnessPercent, transitionTime)
@@ -102,6 +114,10 @@ export class DimmableLightAccessory extends BaseMatterAccessory {
102
114
  }
103
115
  catch (error) {
104
116
  this.logError('Failed to set brightness:', error);
117
+ // Example: Handle dimming hardware failures
118
+ // if (error.code === 'DIMMER_FAULT') {
119
+ // throw new MatterStatus.Failure('Dimmer circuit malfunction - bulb may need replacement')
120
+ // }
105
121
  throw error;
106
122
  }
107
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DimmableLightAccessory.js","sourceRoot":"","sources":["../../src/devices/DimmableLightAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DimmableLightAccessory.js","sourceRoot":"","sources":["../../src/devices/DimmableLightAccessory.ts"],"names":[],"mappings":"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"}
@@ -32,9 +32,44 @@ export class DoorLockAccessory extends BaseMatterAccessory {
32
32
  this.logInfo('initialized.');
33
33
  }
34
34
  async handleLock() {
35
+ this.logInfo('locking door.');
36
+ // Example: Check if door is closed before locking
37
+ // if (this.isDoorOpen) {
38
+ // throw new MatterStatus.InvalidInState('Cannot lock door while it is open')
39
+ // }
40
+ // Example: Check if lock mechanism is already in use
41
+ // if (this.isLockMotorActive) {
42
+ // throw new MatterStatus.Busy('Lock mechanism is currently in use')
43
+ // }
44
+ // Example: Lock with timeout and error handling
45
+ // try {
46
+ // await this.lockAPI.lock({ timeout: 10000 })
47
+ // } catch (error) {
48
+ // if (error.code === 'LOCK_JAMMED') {
49
+ // throw new MatterStatus.Failure('Lock is jammed - check door alignment')
50
+ // }
51
+ // if (error.code === 'ETIMEDOUT') {
52
+ // throw new MatterStatus.Timeout('Lock motor did not respond within 10 seconds')
53
+ // }
54
+ // throw error
55
+ // }
35
56
  this.logInfo('locked.');
36
57
  }
37
58
  async handleUnlock() {
59
+ this.logInfo('unlocking door.');
60
+ // Example: Check if user has permission to unlock
61
+ // if (!this.userHasUnlockPermission) {
62
+ // throw new MatterStatus.PermissionDenied('User does not have permission to unlock')
63
+ // }
64
+ // Example: Check if security system prevents unlocking
65
+ // if (this.isSecuritySystemArmed) {
66
+ // throw new MatterStatus.InvalidInState('Cannot unlock while security system is armed')
67
+ // }
68
+ // Example: Check time-based access restrictions
69
+ // const currentHour = new Date().getHours()
70
+ // if (currentHour < 6 || currentHour > 22) {
71
+ // throw new MatterStatus.PermissionDenied('Remote unlocking disabled during night hours')
72
+ // }
38
73
  this.logInfo('unlocked.');
39
74
  }
40
75
  updateLockState(state) {
@@ -1 +1 @@
1
- {"version":3,"file":"DoorLockAccessory.js","sourceRoot":"","sources":["../../src/devices/DoorLockAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IACxD,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,UAAU,CAAA;QAC/B,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,WAAW;YACxB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ;YAC3C,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,qBAAqB;YAC5B,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,QAAQ,EAAE;oBACR,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ;oBACvD,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ;oBACrD,eAAe,EAAE,IAAI;oBACrB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM;iBAC9D;aACF;YAED,QAAQ,EAAE;gBACR,QAAQ,EAAE;oBACR,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;oBACvC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;iBAC5C;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACzB,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3B,CAAC;IAEM,eAAe,CAAC,KAAgB;QACrC,iDAAiD;QACjD,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;QAClD,MAAM,QAAQ,GAAG,CAAC,kBAAkB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAA;QAClE,IAAI,CAAC,OAAO,CAAC,eAAe,QAAQ,GAAG,CAAC,CAAA;IAC1C,CAAC;CACF"}
1
+ {"version":3,"file":"DoorLockAccessory.js","sourceRoot":"","sources":["../../src/devices/DoorLockAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,iBAAkB,SAAQ,mBAAmB;IACxD,YAAY,GAAQ,EAAE,GAAW;QAC/B,MAAM,YAAY,GAAG,UAAU,CAAA;QAC/B,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;YACd,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,WAAW,EAAE,WAAW;YACxB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ;YAC3C,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,qBAAqB;YAC5B,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,QAAQ,EAAE;oBACR,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ;oBACvD,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ;oBACrD,eAAe,EAAE,IAAI;oBACrB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM;iBAC9D;aACF;YAED,QAAQ,EAAE;gBACR,QAAQ,EAAE;oBACR,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;oBACvC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;iBAC5C;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;QAE7B,kDAAkD;QAClD,yBAAyB;QACzB,+EAA+E;QAC/E,IAAI;QAEJ,qDAAqD;QACrD,gCAAgC;QAChC,sEAAsE;QACtE,IAAI;QAEJ,gDAAgD;QAChD,QAAQ;QACR,gDAAgD;QAChD,oBAAoB;QACpB,wCAAwC;QACxC,8EAA8E;QAC9E,MAAM;QACN,sCAAsC;QACtC,qFAAqF;QACrF,MAAM;QACN,gBAAgB;QAChB,IAAI;QAEJ,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACzB,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;QAE/B,kDAAkD;QAClD,uCAAuC;QACvC,uFAAuF;QACvF,IAAI;QAEJ,uDAAuD;QACvD,oCAAoC;QACpC,0FAA0F;QAC1F,IAAI;QAEJ,gDAAgD;QAChD,4CAA4C;QAC5C,6CAA6C;QAC7C,4FAA4F;QAC5F,IAAI;QAEJ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3B,CAAC;IAEM,eAAe,CAAC,KAAgB;QACrC,iDAAiD;QACjD,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;QAClD,MAAM,QAAQ,GAAG,CAAC,kBAAkB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,CAAA;QAClE,IAAI,CAAC,OAAO,CAAC,eAAe,QAAQ,GAAG,CAAC,CAAA;IAC1C,CAAC;CACF"}
@@ -87,6 +87,24 @@ export class ExtendedColorLightAccessory extends BaseMatterAccessory {
87
87
  const { colorTemperatureMireds, transitionTime } = request;
88
88
  const kelvin = Math.round(1000000 / colorTemperatureMireds);
89
89
  this.logInfo(`setting color temp to ${kelvin}k.`);
90
+ // Example: Validate color temperature is within device physical limits
91
+ // const minMireds = 147 // ~6800K (cool white)
92
+ // const maxMireds = 454 // ~2200K (warm white)
93
+ // if (colorTemperatureMireds < minMireds || colorTemperatureMireds > maxMireds) {
94
+ // throw new MatterStatus.ConstraintError(
95
+ // `Color temperature ${kelvin}K is out of range (2200K-6800K)`
96
+ // )
97
+ // }
98
+ // Example: Check if bulb is in the correct color mode for CCT
99
+ // if (this.currentColorMode === 'xy' || this.currentColorMode === 'hs') {
100
+ // throw new MatterStatus.InvalidInState(
101
+ // 'Cannot set color temperature while in color mode - switch to white mode first'
102
+ // )
103
+ // }
104
+ // Example: Check if bulb supports tunable white
105
+ // if (!this.supportsTunableWhite) {
106
+ // throw new MatterStatus.InvalidAction('This bulb does not support color temperature adjustment')
107
+ // }
90
108
  // TODO: await myLightAPI.setColorTemperature(kelvin, transitionTime)
91
109
  }
92
110
  updateOnOffState(isOn) {
@@ -1 +1 @@
1
- {"version":3,"file":"ExtendedColorLightAccessory.js","sourceRoot":"","sources":["../../src/devices/ExtendedColorLightAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ExtendedColorLightAccessory.js","sourceRoot":"","sources":["../../src/devices/ExtendedColorLightAccessory.ts"],"names":[],"mappings":"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"}
@@ -44,6 +44,19 @@ export class FanAccessory extends BaseMatterAccessory {
44
44
  const modeNames = ['Off', 'Low', 'Medium', 'High', 'On', 'Auto', 'Smart'];
45
45
  const modeName = modeNames[request.fanMode] || `Unknown (${request.fanMode})`;
46
46
  this.logInfo(`fan mode changed to: ${modeName}.`);
47
+ // Example: Check if requested mode is supported by the fan
48
+ // const supportedModes = [0, 1, 2, 3, 4] // Off, Low, Medium, High, On
49
+ // if (!supportedModes.includes(request.fanMode)) {
50
+ // throw new MatterStatus.InvalidAction(
51
+ // `Fan mode ${modeName} is not supported by this device`
52
+ // )
53
+ // }
54
+ // Example: Check if fan can change modes while running
55
+ // if (this.isOscillating && request.fanMode === 5) {
56
+ // throw new MatterStatus.InvalidInState(
57
+ // 'Cannot switch to Auto mode while oscillating'
58
+ // )
59
+ // }
47
60
  // TODO: await myFanAPI.setMode(request.fanMode)
48
61
  }
49
62
  async handlePercentSettingChange(request) {
@@ -51,6 +64,25 @@ export class FanAccessory extends BaseMatterAccessory {
51
64
  const percent = request.percentSetting ?? 0;
52
65
  const isOff = percent === 0;
53
66
  const wasOff = (request.oldPercentSetting ?? 0) === 0;
67
+ // Example: Validate speed percentage is within supported range
68
+ // if (percent < 0 || percent > 100) {
69
+ // throw new MatterStatus.ConstraintError(
70
+ // `Fan speed ${percent}% is out of range (0-100)`
71
+ // )
72
+ // }
73
+ // Example: Check if fan supports variable speed control
74
+ // if (percent > 0 && percent < 100 && !this.supportsVariableSpeed) {
75
+ // throw new MatterStatus.InvalidAction(
76
+ // 'This fan only supports fixed speeds (Low/Medium/High), not variable percentage'
77
+ // )
78
+ // }
79
+ // Example: Enforce minimum speed when fan is on
80
+ // const minSpeed = 20
81
+ // if (percent > 0 && percent < minSpeed) {
82
+ // throw new MatterStatus.ConstraintError(
83
+ // `Fan minimum speed is ${minSpeed}% when on`
84
+ // )
85
+ // }
54
86
  if (isOff !== wasOff) {
55
87
  this.logInfo(`fan turned ${isOff ? 'off' : 'on'}.`);
56
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FanAccessory.js","sourceRoot":"","sources":["../../src/devices/FanAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FanAccessory.js","sourceRoot":"","sources":["../../src/devices/FanAccessory.ts"],"names":[],"mappings":"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"}
@@ -62,6 +62,14 @@ export class OnOffLightAccessory extends BaseMatterAccessory {
62
62
  }
63
63
  catch (error) {
64
64
  this.logError('failed to turn on:', error);
65
+ // Example: Handle specific error types from your device API
66
+ // if (error.code === 'ETIMEDOUT' || error.code === 'ECONNREFUSED') {
67
+ // throw new MatterStatus.Timeout('Device did not respond - check network connection')
68
+ // }
69
+ // if (error.code === 'DEVICE_OFFLINE') {
70
+ // throw new MatterStatus.Failure('Device is offline or unreachable')
71
+ // }
72
+ // Re-throw the error - Homebridge will wrap it as a generic Failure
65
73
  throw error;
66
74
  }
67
75
  }
@@ -78,6 +86,14 @@ export class OnOffLightAccessory extends BaseMatterAccessory {
78
86
  }
79
87
  catch (error) {
80
88
  this.logError('failed to turn off:', error);
89
+ // Example: Map HTTP status codes to appropriate Matter errors
90
+ // if (error.response?.status === 503) {
91
+ // throw new MatterStatus.Busy('Device is busy processing another command')
92
+ // }
93
+ // if (error.response?.status === 504) {
94
+ // throw new MatterStatus.Timeout('Request timed out after 30 seconds')
95
+ // }
96
+ // Re-throw the error - Homebridge will wrap it as a generic Failure
81
97
  throw error;
82
98
  }
83
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OnOffLightAccessory.js","sourceRoot":"","sources":["../../src/devices/OnOffLightAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OnOffLightAccessory.js","sourceRoot":"","sources":["../../src/devices/OnOffLightAccessory.ts"],"names":[],"mappings":"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"}
@@ -30,10 +30,26 @@ export class OnOffOutletAccessory extends BaseMatterAccessory {
30
30
  }
31
31
  async handleOn() {
32
32
  this.logInfo('turning on.');
33
+ // Example: Check for overcurrent protection
34
+ // if (this.hasOvercurrentTripped) {
35
+ // throw new MatterStatus.InvalidInState('Outlet overcurrent protection tripped - reset required')
36
+ // }
37
+ // Example: Check power monitoring threshold
38
+ // if (this.lastPowerDraw > this.maxWattage) {
39
+ // throw new MatterStatus.InvalidInState(`Cannot turn on - last load exceeded ${this.maxWattage}W limit`)
40
+ // }
41
+ // Example: Check if outlet is disabled by physical safety lock
42
+ // if (this.isPhysicallylocked) {
43
+ // throw new MatterStatus.PermissionDenied('Outlet is physically locked for safety')
44
+ // }
33
45
  // TODO: await myOutletAPI.turnOn()
34
46
  }
35
47
  async handleOff() {
36
48
  this.logInfo('turning off.');
49
+ // Example: Check if outlet can be turned off (some outlets with critical loads)
50
+ // if (this.isCriticalLoad) {
51
+ // throw new MatterStatus.InvalidInState('Cannot turn off outlet with critical load connected')
52
+ // }
37
53
  // TODO: await myOutletAPI.turnOff()
38
54
  }
39
55
  updateOnOffState(isOn) {
@@ -1 +1 @@
1
- {"version":3,"file":"OnOffOutletAccessory.js","sourceRoot":"","sources":["../../src/devices/OnOffOutletAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,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,eAAe;YAC5B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW;YAC9C,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,yBAAyB;YAChC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,KAAK,EAAE,KAAK;iBACb;aACF;YAED,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAC/B,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;iBAClC;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC3B,mCAAmC;IACrC,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAC5B,oCAAoC;IACtC,CAAC;IAEM,gBAAgB,CAAC,IAAa;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,CAAC;CACF"}
1
+ {"version":3,"file":"OnOffOutletAccessory.js","sourceRoot":"","sources":["../../src/devices/OnOffOutletAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,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,eAAe;YAC5B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW;YAC9C,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,yBAAyB;YAChC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,KAAK,EAAE,KAAK;iBACb;aACF;YAED,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAC/B,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;iBAClC;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAE3B,4CAA4C;QAC5C,oCAAoC;QACpC,oGAAoG;QACpG,IAAI;QAEJ,4CAA4C;QAC5C,8CAA8C;QAC9C,2GAA2G;QAC3G,IAAI;QAEJ,+DAA+D;QAC/D,iCAAiC;QACjC,sFAAsF;QACtF,IAAI;QAEJ,mCAAmC;IACrC,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAE5B,gFAAgF;QAChF,6BAA6B;QAC7B,iGAAiG;QACjG,IAAI;QAEJ,oCAAoC;IACtC,CAAC;IAEM,gBAAgB,CAAC,IAAa;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,CAAC;CACF"}
@@ -30,10 +30,22 @@ export class OnOffSwitchAccessory extends BaseMatterAccessory {
30
30
  }
31
31
  async handleOn() {
32
32
  this.logInfo('turning on.');
33
+ // Example: Check if switch is in manual mode
34
+ // if (this.isManualModeEnabled) {
35
+ // throw new MatterStatus.InvalidInState('Switch is in manual mode - disable to allow remote control')
36
+ // }
37
+ // Example: Check load type compatibility
38
+ // if (this.loadType === 'inductive' && !this.supportsInductiveLoads) {
39
+ // throw new MatterStatus.InvalidAction('Switch not rated for inductive loads')
40
+ // }
33
41
  // TODO: await mySwitchAPI.turnOn()
34
42
  }
35
43
  async handleOff() {
36
44
  this.logInfo('turning off.');
45
+ // Example: Check if always-on mode is enabled
46
+ // if (this.alwaysOnMode) {
47
+ // throw new MatterStatus.InvalidInState('Switch is configured for always-on operation')
48
+ // }
37
49
  // TODO: await mySwitchAPI.turnOff()
38
50
  }
39
51
  updateOnOffState(isOn) {
@@ -1 +1 @@
1
- {"version":3,"file":"OnOffSwitchAccessory.js","sourceRoot":"","sources":["../../src/devices/OnOffSwitchAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,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,eAAe;YAC5B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW;YAC9C,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,yBAAyB;YAChC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,KAAK,EAAE,KAAK;iBACb;aACF;YAED,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAC/B,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;iBAClC;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAC3B,mCAAmC;IACrC,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAC5B,oCAAoC;IACtC,CAAC;IAEM,gBAAgB,CAAC,IAAa;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,CAAC;CACF"}
1
+ {"version":3,"file":"OnOffSwitchAccessory.js","sourceRoot":"","sources":["../../src/devices/OnOffSwitchAccessory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,mBAAmB;IAC3D,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,eAAe;YAC5B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW;YAC9C,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,yBAAyB;YAChC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,KAAK,EAAE,KAAK;iBACb;aACF;YAED,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAC/B,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;iBAClC;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QAE3B,6CAA6C;QAC7C,kCAAkC;QAClC,wGAAwG;QACxG,IAAI;QAEJ,yCAAyC;QACzC,uEAAuE;QACvE,iFAAiF;QACjF,IAAI;QAEJ,mCAAmC;IACrC,CAAC;IAEO,KAAK,CAAC,SAAS;QACrB,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;QAE5B,8CAA8C;QAC9C,2BAA2B;QAC3B,0FAA0F;QAC1F,IAAI;QAEJ,oCAAoC;IACtC,CAAC;IAEM,gBAAgB,CAAC,IAAa;QACnC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,CAAC;CACF"}
@@ -57,4 +57,9 @@ export declare class RoboticVacuumAccessory extends BaseMatterAccessory {
57
57
  areaId: number;
58
58
  status: number;
59
59
  }>): void;
60
+ /**
61
+ * Update battery percentage
62
+ * @param percentage - Battery percentage (0-100)
63
+ */
64
+ updateBatteryPercentage(percentage: number): Promise<void>;
60
65
  }
@@ -14,6 +14,15 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
14
14
  firmwareRevision: '2.0.0',
15
15
  hardwareRevision: '1.0.0',
16
16
  clusters: {
17
+ // Power Source: Battery status and percentage
18
+ powerSource: {
19
+ status: 0, // 0 = Active
20
+ order: 0, // Primary power source
21
+ description: 'Battery',
22
+ batPercentRemaining: 100, // 0-200, where 200 = 100% (0.5% increments)
23
+ batChargeLevel: 2, // 0 = Ok, 1 = Warning, 2 = Critical
24
+ batReplaceability: 1, // 0 = Unspecified, 1 = Not replaceable, 2 = User replaceable, 3 = Factory replaceable
25
+ },
17
26
  // Run Mode: Controls what the vacuum is doing (Idle, Cleaning, Mapping)
18
27
  rvcRunMode: {
19
28
  supportedModes: [
@@ -200,6 +209,16 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
200
209
  ];
201
210
  const modeStr = modes[newMode] || `Unknown (mode=${newMode})`;
202
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
+ // }
203
222
  // TODO: await myVacuumAPI.setCleanMode(newMode)
204
223
  }
205
224
  async handlePause() {
@@ -217,6 +236,22 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
217
236
  }
218
237
  async handleStart() {
219
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
+ // }
220
255
  // TODO: await myVacuumAPI.start()
221
256
  // Clear any existing timers
222
257
  this.clearTimers();
@@ -263,6 +298,20 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
263
298
  const { newAreas } = request;
264
299
  const areaNames = newAreas.map((id) => ['Living Room', 'Kitchen', 'Bedroom', 'Bathroom'][id] || `Area ${id}`);
265
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
+ // }
266
315
  // TODO: await myVacuumAPI.selectAreas(newAreas)
267
316
  }
268
317
  async handleSkipArea(request) {
@@ -371,5 +420,23 @@ export class RoboticVacuumAccessory extends BaseMatterAccessory {
371
420
  this.updateState('serviceArea', { progress });
372
421
  this.logInfo(`progress updated: ${progress.length} areas`);
373
422
  }
423
+ /**
424
+ * Update battery percentage
425
+ * @param percentage - Battery percentage (0-100)
426
+ */
427
+ async updateBatteryPercentage(percentage) {
428
+ // Convert percentage to Matter format (0-200, where 200 = 100%)
429
+ const batPercentRemaining = Math.max(0, Math.min(200, Math.round(percentage * 2)));
430
+ // Determine charge level based on percentage
431
+ let batChargeLevel = 0; // Ok
432
+ if (percentage < 20) {
433
+ batChargeLevel = 2; // Critical
434
+ }
435
+ else if (percentage < 40) {
436
+ batChargeLevel = 1; // Warning
437
+ }
438
+ await this.updateState('powerSource', { batPercentRemaining, batChargeLevel });
439
+ this.logInfo(`battery updated to: ${percentage}% (${batChargeLevel === 0 ? 'Ok' : batChargeLevel === 1 ? 'Warning' : 'Critical'})`);
440
+ }
374
441
  }
375
442
  //# sourceMappingURL=RoboticVacuumAccessory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RoboticVacuumAccessory.js","sourceRoot":"","sources":["../../src/devices/RoboticVacuumAccessory.ts"],"names":[],"mappings":"AAAA,mBAAmB;AA2BnB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IACrD,YAAY,GAAqB,EAAE,CAAA;IAE3C,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,cAAc;YAC3B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB;YACvD,YAAY;YACZ,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,0BAA0B;YACjC,gBAAgB,EAAE,OAAO;YACzB,gBAAgB,EAAE,OAAO;YAEzB,QAAQ,EAAE;gBACR,wEAAwE;gBACxE,UAAU,EAAE;oBACV,cAAc,EAAE;wBACd,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,0BAA0B;wBACpF,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,8BAA8B;wBAC5F,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,6BAA6B;qBAC3F;oBACD,WAAW,EAAE,CAAC;iBACf;gBACD,6CAA6C;gBAC7C,yEAAyE;gBACzE,mGAAmG;gBACnG,oDAAoD;gBACpD,YAAY,EAAE;oBACZ,cAAc,EAAE;wBACd,yBAAyB;wBACzB,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS;wBACrE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM;wBAC/D,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO;wBAE3F,mBAAmB;wBACnB,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,YAAY;wBAC5E,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,qBAAqB;wBACxG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,kBAAkB;wBAElG,kBAAkB;wBAClB,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,iBAAiB;wBAChG,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,eAAe;wBAC5F,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,eAAe;wBAE5F,cAAc;wBACd,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,iBAAiB;wBACjG,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,cAAc;wBAC5F,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,iBAAiB;wBAEhG,mBAAmB;wBACnB,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,qBAAqB;wBACpG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,kBAAkB;wBAE9F,YAAY;wBACZ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,gBAAgB;qBAC1F;oBACD,WAAW,EAAE,CAAC,EAAE,0BAA0B;iBAC3C;gBACD,2EAA2E;gBAC3E,mBAAmB,EAAE;oBACnB,oBAAoB,EAAE;wBACpB,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE,4CAA4C;wBACvE,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE,UAAU;wBACrC,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE,SAAS;wBACpC,EAAE,kBAAkB,EAAE,CAAC,EAAE,EAAE,QAAQ;wBACnC,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAAE,kBAAkB;wBAC9C,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAAE,WAAW;wBACvC,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAAE,SAAS;qBACtC;oBACD,gBAAgB,EAAE,EAAE,EAAE,eAAe;iBACtC;gBACD,0DAA0D;gBAC1D,WAAW,EAAE;oBACX,aAAa,EAAE,EAAE,EAAE,0CAA0C;oBAC7D,cAAc,EAAE;wBACd;4BACE,MAAM,EAAE,CAAC;4BACT,KAAK,EAAE,IAAI,EAAE,qDAAqD;4BAClE,QAAQ,EAAE;gCACR,YAAY,EAAE;oCACZ,YAAY,EAAE,aAAa;oCAC3B,WAAW,EAAE,CAAC;oCACd,QAAQ,EAAE,CAAC,EAAE,8BAA8B;iCAC5C;gCACD,YAAY,EAAE,IAAI;6BACnB;yBACF;wBACD;4BACE,MAAM,EAAE,CAAC;4BACT,KAAK,EAAE,IAAI;4BACX,QAAQ,EAAE;gCACR,YAAY,EAAE;oCACZ,YAAY,EAAE,SAAS;oCACvB,WAAW,EAAE,CAAC;oCACd,QAAQ,EAAE,EAAE,EAAE,2BAA2B;iCAC1C;gCACD,YAAY,EAAE,IAAI;6BACnB;yBACF;wBACD;4BACE,MAAM,EAAE,CAAC;4BACT,KAAK,EAAE,IAAI;4BACX,QAAQ,EAAE;gCACR,YAAY,EAAE;oCACZ,YAAY,EAAE,SAAS;oCACvB,WAAW,EAAE,CAAC;oCACd,QAAQ,EAAE,CAAC,EAAE,2BAA2B;iCACzC;gCACD,YAAY,EAAE,IAAI;6BACnB;yBACF;wBACD;4BACE,MAAM,EAAE,CAAC;4BACT,KAAK,EAAE,IAAI;4BACX,QAAQ,EAAE;gCACR,YAAY,EAAE;oCACZ,YAAY,EAAE,UAAU;oCACxB,WAAW,EAAE,CAAC;oCACd,QAAQ,EAAE,CAAC,EAAE,4BAA4B;iCAC1C;gCACD,YAAY,EAAE,IAAI;6BACnB;yBACF;qBACF;oBACD,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,gCAAgC;iBAC9D;aACF;YAED,QAAQ,EAAE;gBACR,UAAU,EAAE;oBACV,YAAY,EAAE,KAAK,EAAE,OAAoC,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;iBAChG;gBACD,YAAY,EAAE;oBACZ,YAAY,EAAE,KAAK,EAAE,OAAoC,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;iBAClG;gBACD,mBAAmB,EAAE;oBACnB,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;oBACrC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;oBACnC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;oBACrC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;oBACvC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE;iBACxC;gBACD,WAAW,EAAE;oBACX,WAAW,EAAE,KAAK,EAAE,OAAmC,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;oBAC3F,QAAQ,EAAE,KAAK,EAAE,OAAgC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;iBACnF;aACF;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;IACxC,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,OAAoC;QACpE,IAAI,CAAC,OAAO,CAAC,wCAAwC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC/E,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;QAC3B,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,iBAAiB,OAAO,GAAG,CAAA;QACvF,IAAI,CAAC,OAAO,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAA;QAChD,8CAA8C;QAE9C,4BAA4B;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,gDAAgD;YAChD,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAA,CAAC,UAAU;YAEzC,gDAAgD;YAChD,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtC,IAAI,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAA;gBACtD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA,CAAC,wCAAwC;gBAC9D,IAAI,CAAC,YAAY,EAAE,CAAA;YACrB,CAAC,EAAE,KAAK,CAAC,CAAA;YAET,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACzC,CAAC;aAAM,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YACzB,0CAA0C;YAC1C,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC;aAAM,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YACzB,4CAA4C;YAC5C,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAA,CAAC,UAAU;YAEzC,+CAA+C;YAC/C,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtC,IAAI,CAAC,OAAO,CAAC,uCAAuC,CAAC,CAAA;gBACrD,IAAI,CAAC,YAAY,EAAE,CAAA;YACrB,CAAC,EAAE,KAAK,CAAC,CAAA;YAET,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,OAAoC;QACtE,IAAI,CAAC,OAAO,CAAC,0CAA0C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACjF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;QAC3B,MAAM,KAAK,GAAG;YACZ,QAAQ;YACR,KAAK;YACL,cAAc;YACd,YAAY;YACZ,aAAa;YACb,UAAU;YACV,aAAa;YACb,WAAW;YACX,WAAW;YACX,cAAc;YACd,WAAW;YACX,YAAY;YACZ,YAAY;YACZ,SAAS;YACT,MAAM;SACP,CAAA;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,iBAAiB,OAAO,GAAG,CAAA;QAC7D,IAAI,CAAC,OAAO,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAA;QAClD,gDAAgD;IAClD,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACxB,kCAAkC;QAClC,IAAI,CAAC,WAAW,EAAE,CAAA,CAAC,kCAAkC;QACrD,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAA,CAAC,SAAS;IAC1C,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACzB,iCAAiC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAA;QAClB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA,CAAC,gBAAgB;QACtC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAA,CAAC,UAAU;IAC3C,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAA;QAC7C,kCAAkC;QAElC,4BAA4B;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA,CAAC,sEAAsE;QAC5F,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAA,CAAC,UAAU;QAEzC,gDAAgD;QAChD,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAA;YACtD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA,CAAC,wCAAwC;YAC9D,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC,EAAE,KAAK,CAAC,CAAA;QAET,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACzC,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACzB,mCAAmC;QAEnC,4BAA4B;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA,CAAC,uBAAuB;QAC7C,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAA,CAAC,UAAU;QAEzC,yEAAyE;QACzE,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAA;YACtD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA,CAAC,wCAAwC;YAC9D,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC,EAAE,KAAK,CAAC,CAAA;QAET,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACzC,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAA;QACxC,mCAAmC;QAEnC,4BAA4B;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAA;QAElB,wDAAwD;QACxD,YAAY,CAAC,GAAG,EAAE;YAChB,2DAA2D;YAC3D,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;YAErB,mCAAmC;YACnC,IAAI,CAAC,YAAY,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,OAAmC;QACjE,IAAI,CAAC,OAAO,CAAC,iCAAiC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACxE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE,CAC5C,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,EAAE,CACtE,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,oBAAoB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACxD,gDAAgD;IAClD,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAAgC;QAC3D,IAAI,CAAC,OAAO,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACrE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAA;QAC/B,MAAM,QAAQ,GAAG,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,WAAW,CAAC,IAAI,QAAQ,WAAW,EAAE,CAAA;QACxG,IAAI,CAAC,OAAO,CAAC,kBAAkB,QAAQ,EAAE,CAAC,CAAA;QAC1C,gDAAgD;IAClD,CAAC;IAED;;OAEG;IACK,WAAW;QACjB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;QACvD,IAAI,CAAC,YAAY,GAAG,EAAE,CAAA;IACxB,CAAC;IAED;;;OAGG;IACK,YAAY;QAClB,IAAI,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAA;QAEnD,4DAA4D;QAC5D,YAAY,CAAC,GAAG,EAAE;YAChB,mEAAmE;YACnE,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAA,CAAC,kBAAkB;YAElD,kCAAkC;YAClC,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpC,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAA;gBAC3C,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAA,CAAC,WAAW;gBAE3C,qCAAqC;gBACrC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;oBAClC,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAA;oBACzC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAA,CAAC,SAAS;gBAC3C,CAAC,EAAE,IAAI,CAAC,CAAA;gBAER,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACrC,CAAC,EAAE,IAAI,CAAC,CAAA;YAER,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IAEI,sBAAsB,CAAC,KAAa;QACzC,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAA;QACpE,MAAM,MAAM,GAAG;YACb,SAAS;YACT,SAAS;YACT,QAAQ;YACR,OAAO;YACP,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACxC,iBAAiB;YACjB,UAAU;YACV,QAAQ;SACT,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,iCAAiC,MAAM,CAAC,KAAK,CAAC,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC,CAAA;IACxF,CAAC;IAEM,aAAa,CAAC,IAAY;QAC/B,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;QACrD,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;QAC7C,IAAI,CAAC,OAAO,CAAC,wBAAwB,KAAK,CAAC,IAAI,CAAC,IAAI,YAAY,IAAI,GAAG,EAAE,CAAC,CAAA;IAC5E,CAAC;IAEM,eAAe,CAAC,IAAY;QACjC,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;QACvD,MAAM,KAAK,GAAG;YACZ,QAAQ;YACR,KAAK;YACL,cAAc;YACd,YAAY;YACZ,aAAa;YACb,UAAU;YACV,aAAa;YACb,WAAW;YACX,WAAW;YACX,cAAc;YACd,WAAW;YACX,YAAY;YACZ,YAAY;YACZ,SAAS;YACT,MAAM;SACP,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,0BAA0B,KAAK,CAAC,IAAI,CAAC,IAAI,YAAY,IAAI,GAAG,EAAE,CAAC,CAAA;IAC9E,CAAC;IAEM,mBAAmB,CAAC,OAAiB;QAC1C,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAA;QAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CACjC,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,EAAE,CACtE,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,8BAA8B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,EAAE,CAAC,CAAA;IACnF,CAAC;IAEM,iBAAiB,CAAC,MAAqB;QAC5C,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;QACxD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,QAAQ,GAAG,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,QAAQ,MAAM,EAAE,CAAA;YAC9F,IAAI,CAAC,OAAO,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAA;QACtD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAEM,cAAc,CAAC,QAAmD;QACvE,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC7C,IAAI,CAAC,OAAO,CAAC,qBAAqB,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAAA;IAC5D,CAAC;CACF"}
1
+ {"version":3,"file":"RoboticVacuumAccessory.js","sourceRoot":"","sources":["../../src/devices/RoboticVacuumAccessory.ts"],"names":[],"mappings":"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"}
@@ -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) {
@@ -1 +1 @@
1
- {"version":3,"file":"ThermostatAccessory.js","sourceRoot":"","sources":["../../src/devices/ThermostatAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ThermostatAccessory.js","sourceRoot":"","sources":["../../src/devices/ThermostatAccessory.ts"],"names":[],"mappings":"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"}
@@ -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(`tilted to ${degrees}°.`);
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() {
@@ -1 +1 @@
1
- {"version":3,"file":"VenetianBlindAccessory.js","sourceRoot":"","sources":["../../src/devices/VenetianBlindAccessory.ts"],"names":[],"mappings":"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"}
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(`moved to ${openPercent}% open.`);
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,8 +76,17 @@ export class WindowBlindAccessory extends BaseMatterAccessory {
64
76
  // TODO: await myBlindAPI.close()
65
77
  }
66
78
  async handleStop() {
67
- this.logInfo('stopped blind.');
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
91
  updateLiftPosition(openPercent) {
71
92
  // Convert open percentage to Matter's closed percentage (0=open, 10000=closed)
@@ -1 +1 @@
1
- {"version":3,"file":"WindowBlindAccessory.js","sourceRoot":"","sources":["../../src/devices/WindowBlindAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WindowBlindAccessory.js","sourceRoot":"","sources":["../../src/devices/WindowBlindAccessory.ts"],"names":[],"mappings":"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"}
@@ -103,6 +103,21 @@ export class PowerStripAccessory extends BaseMatterAccessory {
103
103
  async handleOutletOn(partId) {
104
104
  const outletNumber = this.getOutletNumber(partId);
105
105
  this.logInfo(`Outlet ${outletNumber} turned ON`);
106
+ // Example: Check per-outlet overcurrent protection
107
+ // if (this.outletHasTrippedBreaker(outletNumber)) {
108
+ // throw new MatterStatus.InvalidInState(`Outlet ${outletNumber} overcurrent protection tripped`)
109
+ // }
110
+ // Example: Check if outlet is disabled via child lock
111
+ // if (this.isChildLockEnabled(outletNumber)) {
112
+ // throw new MatterStatus.PermissionDenied(`Outlet ${outletNumber} is child-locked`)
113
+ // }
114
+ // Example: Check total power strip load capacity
115
+ // const currentLoad = await this.getTotalPowerDraw()
116
+ // if (currentLoad + this.estimatedOutletLoad > this.maxWattage) {
117
+ // throw new MatterStatus.ResourceExhausted(
118
+ // `Cannot turn on - would exceed power strip capacity (${this.maxWattage}W)`
119
+ // )
120
+ // }
106
121
  // TODO: Send command to actual power strip hardware
107
122
  // await myPowerStripAPI.turnOnOutlet(outletNumber)
108
123
  }
@@ -121,6 +136,24 @@ export class PowerStripAccessory extends BaseMatterAccessory {
121
136
  */
122
137
  async handleMasterOn() {
123
138
  this.logInfo('Master ON - turning on all outlets.');
139
+ // Example: Check if any outlet has a tripped breaker
140
+ // const trippedOutlets = this.getTrippedOutlets()
141
+ // if (trippedOutlets.length > 0) {
142
+ // throw new MatterStatus.InvalidInState(
143
+ // `Cannot turn on all - outlets ${trippedOutlets.join(', ')} have tripped breakers`
144
+ // )
145
+ // }
146
+ // Example: Check if turning on all outlets would exceed capacity
147
+ // const totalEstimatedLoad = this.estimatedOutletLoad * 4
148
+ // if (totalEstimatedLoad > this.maxWattage) {
149
+ // throw new MatterStatus.ResourceExhausted(
150
+ // `Cannot turn on all outlets - would exceed ${this.maxWattage}W capacity`
151
+ // )
152
+ // }
153
+ // Example: Check if master control is disabled
154
+ // if (this.isMasterControlDisabled) {
155
+ // throw new MatterStatus.PermissionDenied('Master control is disabled - control outlets individually')
156
+ // }
124
157
  // Update each outlet's state
125
158
  for (let i = 1; i <= 4; i++) {
126
159
  const partId = `outlet-${i}`;
@@ -1 +1 @@
1
- {"version":3,"file":"PowerStripAccessory.js","sourceRoot":"","sources":["../../../src/devices/custom/PowerStripAccessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PowerStripAccessory.js","sourceRoot":"","sources":["../../../src/devices/custom/PowerStripAccessory.ts"],"names":[],"mappings":"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"}
@@ -165,6 +165,7 @@
165
165
  <li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Getting-Started" target="_blank">Getting Started</a></li>
166
166
  <li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/State-Management" target="_blank">State Management</a></li>
167
167
  <li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Monitoring-External-Changes" target="_blank">Monitoring External Changes</a></li>
168
+ <li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Error-Handling" target="_blank">Error Handling</a></li>
168
169
  <li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Best-Practices" target="_blank">Best Practices</a></li>
169
170
  <li><a href="https://github.com/homebridge-plugins/homebridge-matter/wiki/Advanced-Patterns" target="_blank">Advanced Patterns</a></li>
170
171
  </ul>
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "displayName": "Homebridge Matter",
4
4
  "alias": "Matter",
5
5
  "type": "module",
6
- "version": "0.4.0",
6
+ "version": "0.5.0",
7
7
  "description": "Homebridge plugin to showcase examples of Matter devices in Homebridge.",
8
8
  "author": {
9
9
  "name": "bwp91",
@@ -49,7 +49,7 @@
49
49
  "main": "dist/index.js",
50
50
  "engines": {
51
51
  "node": "^20.18.0 || ^22.10.0 || ^24.0.0",
52
- "homebridge": ">=2.0.0-beta.36"
52
+ "homebridge": ">=2.0.0-beta.40"
53
53
  },
54
54
  "scripts": {
55
55
  "build": "rimraf ./dist && tsc && npm run plugin-ui",
@@ -62,10 +62,10 @@
62
62
  "@homebridge/plugin-ui-utils": "^2.1.1-beta.0"
63
63
  },
64
64
  "devDependencies": {
65
- "@antfu/eslint-config": "^6.1.0",
66
- "@types/node": "^24.9.1",
67
- "homebridge": "^2.0.0-beta.36",
68
- "rimraf": "^6.0.1",
65
+ "@antfu/eslint-config": "^6.2.0",
66
+ "@types/node": "^24.9.2",
67
+ "homebridge": "^2.0.0-beta.40",
68
+ "rimraf": "^6.1.0",
69
69
  "ts-node": "^10.9.2",
70
70
  "typescript": "^5.9.3"
71
71
  }