homebridge 2.0.0-beta.6 → 2.0.0-beta.61

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 (286) hide show
  1. package/README.md +16 -17
  2. package/bin/homebridge.js +22 -0
  3. package/config-sample.json +3 -3
  4. package/dist/api.d.ts +136 -0
  5. package/dist/api.d.ts.map +1 -0
  6. package/dist/api.js +151 -0
  7. package/dist/api.js.map +1 -0
  8. package/{lib → dist}/bridgeService.d.ts +16 -32
  9. package/dist/bridgeService.d.ts.map +1 -0
  10. package/dist/bridgeService.js +341 -0
  11. package/dist/bridgeService.js.map +1 -0
  12. package/dist/childBridgeFork.d.ts +40 -0
  13. package/dist/childBridgeFork.d.ts.map +1 -0
  14. package/dist/childBridgeFork.js +361 -0
  15. package/dist/childBridgeFork.js.map +1 -0
  16. package/dist/childBridgeService.d.ts +146 -0
  17. package/dist/childBridgeService.d.ts.map +1 -0
  18. package/dist/childBridgeService.js +416 -0
  19. package/dist/childBridgeService.js.map +1 -0
  20. package/dist/cli.d.ts +3 -0
  21. package/dist/cli.d.ts.map +1 -0
  22. package/dist/cli.js +88 -0
  23. package/dist/cli.js.map +1 -0
  24. package/dist/externalPortService.d.ts +26 -0
  25. package/dist/externalPortService.d.ts.map +1 -0
  26. package/dist/externalPortService.js +77 -0
  27. package/dist/externalPortService.js.map +1 -0
  28. package/dist/index.d.ts +29 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +9 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/ipcService.d.ts +58 -0
  33. package/dist/ipcService.d.ts.map +1 -0
  34. package/dist/ipcService.js +43 -0
  35. package/dist/ipcService.js.map +1 -0
  36. package/dist/logger.d.ts +38 -0
  37. package/dist/logger.d.ts.map +1 -0
  38. package/dist/logger.js +102 -0
  39. package/dist/logger.js.map +1 -0
  40. package/dist/matter/BaseMatterManager.d.ts +21 -0
  41. package/dist/matter/BaseMatterManager.d.ts.map +1 -0
  42. package/dist/matter/BaseMatterManager.js +197 -0
  43. package/dist/matter/BaseMatterManager.js.map +1 -0
  44. package/dist/matter/ChildBridgeMatterManager.d.ts +35 -0
  45. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -0
  46. package/dist/matter/ChildBridgeMatterManager.js +222 -0
  47. package/dist/matter/ChildBridgeMatterManager.js.map +1 -0
  48. package/dist/matter/ClusterCommandMapper.d.ts +5 -0
  49. package/dist/matter/ClusterCommandMapper.d.ts.map +1 -0
  50. package/dist/matter/ClusterCommandMapper.js +222 -0
  51. package/dist/matter/ClusterCommandMapper.js.map +1 -0
  52. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +22 -0
  53. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -0
  54. package/dist/matter/ExternalMatterAccessoryPublisher.js +49 -0
  55. package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -0
  56. package/dist/matter/MatterAPIImpl.d.ts +473 -0
  57. package/dist/matter/MatterAPIImpl.d.ts.map +1 -0
  58. package/dist/matter/MatterAPIImpl.js +210 -0
  59. package/dist/matter/MatterAPIImpl.js.map +1 -0
  60. package/dist/matter/MatterBridgeManager.d.ts +39 -0
  61. package/dist/matter/MatterBridgeManager.d.ts.map +1 -0
  62. package/dist/matter/MatterBridgeManager.js +323 -0
  63. package/dist/matter/MatterBridgeManager.js.map +1 -0
  64. package/dist/matter/accessoryCache.d.ts +57 -0
  65. package/dist/matter/accessoryCache.d.ts.map +1 -0
  66. package/dist/matter/accessoryCache.js +155 -0
  67. package/dist/matter/accessoryCache.js.map +1 -0
  68. package/dist/matter/behaviors/AirQualityBehavior.d.ts +8 -0
  69. package/dist/matter/behaviors/AirQualityBehavior.d.ts.map +1 -0
  70. package/dist/matter/behaviors/AirQualityBehavior.js +11 -0
  71. package/dist/matter/behaviors/AirQualityBehavior.js.map +1 -0
  72. package/dist/matter/behaviors/BehaviorRegistry.d.ts +27 -0
  73. package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -0
  74. package/dist/matter/behaviors/BehaviorRegistry.js +110 -0
  75. package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -0
  76. package/dist/matter/behaviors/ColorControlBehavior.d.ts +12 -0
  77. package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -0
  78. package/dist/matter/behaviors/ColorControlBehavior.js +139 -0
  79. package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -0
  80. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts +32 -0
  81. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts.map +1 -0
  82. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js +51 -0
  83. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js.map +1 -0
  84. package/dist/matter/behaviors/DoorLockBehavior.d.ts +7 -0
  85. package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -0
  86. package/dist/matter/behaviors/DoorLockBehavior.js +48 -0
  87. package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -0
  88. package/dist/matter/behaviors/FanControlBehavior.d.ts +7 -0
  89. package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -0
  90. package/dist/matter/behaviors/FanControlBehavior.js +57 -0
  91. package/dist/matter/behaviors/FanControlBehavior.js.map +1 -0
  92. package/dist/matter/behaviors/IdentifyBehavior.d.ts +7 -0
  93. package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -0
  94. package/dist/matter/behaviors/IdentifyBehavior.js +25 -0
  95. package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -0
  96. package/dist/matter/behaviors/LevelControlBehavior.d.ts +11 -0
  97. package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -0
  98. package/dist/matter/behaviors/LevelControlBehavior.js +100 -0
  99. package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -0
  100. package/dist/matter/behaviors/OnOffBehavior.d.ts +8 -0
  101. package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -0
  102. package/dist/matter/behaviors/OnOffBehavior.js +60 -0
  103. package/dist/matter/behaviors/OnOffBehavior.js.map +1 -0
  104. package/dist/matter/behaviors/RegistryManager.d.ts +15 -0
  105. package/dist/matter/behaviors/RegistryManager.d.ts.map +1 -0
  106. package/dist/matter/behaviors/RegistryManager.js +31 -0
  107. package/dist/matter/behaviors/RegistryManager.js.map +1 -0
  108. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +14 -0
  109. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -0
  110. package/dist/matter/behaviors/RvcCleanModeBehavior.js +29 -0
  111. package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -0
  112. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +10 -0
  113. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -0
  114. package/dist/matter/behaviors/RvcOperationalStateBehavior.js +81 -0
  115. package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -0
  116. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +14 -0
  117. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -0
  118. package/dist/matter/behaviors/RvcRunModeBehavior.js +29 -0
  119. package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -0
  120. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +9 -0
  121. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -0
  122. package/dist/matter/behaviors/ServiceAreaBehavior.js +62 -0
  123. package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -0
  124. package/dist/matter/behaviors/ThermostatBehavior.d.ts +9 -0
  125. package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -0
  126. package/dist/matter/behaviors/ThermostatBehavior.js +92 -0
  127. package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -0
  128. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +12 -0
  129. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -0
  130. package/dist/matter/behaviors/WindowCoveringBehavior.js +108 -0
  131. package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -0
  132. package/dist/matter/behaviors/index.d.ts +18 -0
  133. package/dist/matter/behaviors/index.d.ts.map +1 -0
  134. package/dist/matter/behaviors/index.js +17 -0
  135. package/dist/matter/behaviors/index.js.map +1 -0
  136. package/dist/matter/clusterTypes.d.ts +182 -0
  137. package/dist/matter/clusterTypes.d.ts.map +1 -0
  138. package/dist/matter/clusterTypes.js +2 -0
  139. package/dist/matter/clusterTypes.js.map +1 -0
  140. package/dist/matter/config.d.ts +9 -0
  141. package/dist/matter/config.d.ts.map +1 -0
  142. package/dist/matter/config.js +84 -0
  143. package/dist/matter/config.js.map +1 -0
  144. package/dist/matter/configValidator.d.ts +26 -0
  145. package/dist/matter/configValidator.d.ts.map +1 -0
  146. package/dist/matter/configValidator.js +173 -0
  147. package/dist/matter/configValidator.js.map +1 -0
  148. package/dist/matter/errorHandler.d.ts +11 -0
  149. package/dist/matter/errorHandler.d.ts.map +1 -0
  150. package/dist/matter/errorHandler.js +81 -0
  151. package/dist/matter/errorHandler.js.map +1 -0
  152. package/dist/matter/errors.d.ts +46 -0
  153. package/dist/matter/errors.d.ts.map +1 -0
  154. package/dist/matter/errors.js +68 -0
  155. package/dist/matter/errors.js.map +1 -0
  156. package/dist/matter/index.d.ts +97 -0
  157. package/dist/matter/index.d.ts.map +1 -0
  158. package/dist/matter/index.js +10 -0
  159. package/dist/matter/index.js.map +1 -0
  160. package/dist/matter/logFormatter.d.ts +2 -0
  161. package/dist/matter/logFormatter.d.ts.map +1 -0
  162. package/dist/matter/logFormatter.js +100 -0
  163. package/dist/matter/logFormatter.js.map +1 -0
  164. package/dist/matter/managerTypes.d.ts +57 -0
  165. package/dist/matter/managerTypes.d.ts.map +1 -0
  166. package/dist/matter/managerTypes.js +2 -0
  167. package/dist/matter/managerTypes.js.map +1 -0
  168. package/dist/matter/server.d.ts +112 -0
  169. package/dist/matter/server.d.ts.map +1 -0
  170. package/dist/matter/server.js +1508 -0
  171. package/dist/matter/server.js.map +1 -0
  172. package/dist/matter/serverHelpers.d.ts +31 -0
  173. package/dist/matter/serverHelpers.d.ts.map +1 -0
  174. package/dist/matter/serverHelpers.js +273 -0
  175. package/dist/matter/serverHelpers.js.map +1 -0
  176. package/dist/matter/sharedTypes.d.ts +93 -0
  177. package/dist/matter/sharedTypes.d.ts.map +1 -0
  178. package/dist/matter/sharedTypes.js +20 -0
  179. package/dist/matter/sharedTypes.js.map +1 -0
  180. package/dist/matter/storage.d.ts +45 -0
  181. package/dist/matter/storage.d.ts.map +1 -0
  182. package/dist/matter/storage.js +325 -0
  183. package/dist/matter/storage.js.map +1 -0
  184. package/dist/matter/typeHelpers.d.ts +15 -0
  185. package/dist/matter/typeHelpers.d.ts.map +1 -0
  186. package/dist/matter/typeHelpers.js +33 -0
  187. package/dist/matter/typeHelpers.js.map +1 -0
  188. package/dist/matter/types.d.ts +642 -0
  189. package/dist/matter/types.d.ts.map +1 -0
  190. package/dist/matter/types.js +208 -0
  191. package/dist/matter/types.js.map +1 -0
  192. package/dist/matter/utils.d.ts +13 -0
  193. package/dist/matter/utils.d.ts.map +1 -0
  194. package/dist/matter/utils.js +21 -0
  195. package/dist/matter/utils.js.map +1 -0
  196. package/{lib → dist}/platformAccessory.d.ts +8 -21
  197. package/dist/platformAccessory.d.ts.map +1 -0
  198. package/dist/platformAccessory.js +79 -0
  199. package/dist/platformAccessory.js.map +1 -0
  200. package/{lib → dist}/plugin.d.ts +2 -6
  201. package/dist/plugin.d.ts.map +1 -0
  202. package/dist/plugin.js +159 -0
  203. package/dist/plugin.js.map +1 -0
  204. package/{lib → dist}/pluginManager.d.ts +3 -25
  205. package/dist/pluginManager.d.ts.map +1 -0
  206. package/{lib → dist}/pluginManager.js +87 -115
  207. package/dist/pluginManager.js.map +1 -0
  208. package/{lib → dist}/server.d.ts +15 -20
  209. package/dist/server.d.ts.map +1 -0
  210. package/dist/server.js +727 -0
  211. package/dist/server.js.map +1 -0
  212. package/{lib → dist}/storageService.d.ts.map +1 -1
  213. package/dist/storageService.js +41 -0
  214. package/dist/storageService.js.map +1 -0
  215. package/{lib → dist}/user.d.ts +1 -3
  216. package/dist/user.d.ts.map +1 -0
  217. package/dist/user.js +29 -0
  218. package/dist/user.js.map +1 -0
  219. package/{lib → dist}/util/mac.d.ts +1 -0
  220. package/dist/util/mac.d.ts.map +1 -0
  221. package/dist/util/mac.js +13 -0
  222. package/dist/util/mac.js.map +1 -0
  223. package/dist/version.d.ts.map +1 -0
  224. package/dist/version.js +16 -0
  225. package/dist/version.js.map +1 -0
  226. package/package.json +49 -50
  227. package/bin/homebridge +0 -17
  228. package/lib/api.d.ts +0 -210
  229. package/lib/api.d.ts.map +0 -1
  230. package/lib/api.js +0 -155
  231. package/lib/api.js.map +0 -1
  232. package/lib/bridgeService.d.ts.map +0 -1
  233. package/lib/bridgeService.js +0 -426
  234. package/lib/bridgeService.js.map +0 -1
  235. package/lib/childBridgeFork.d.ts +0 -37
  236. package/lib/childBridgeFork.d.ts.map +0 -1
  237. package/lib/childBridgeFork.js +0 -244
  238. package/lib/childBridgeFork.js.map +0 -1
  239. package/lib/childBridgeService.d.ts +0 -199
  240. package/lib/childBridgeService.d.ts.map +0 -1
  241. package/lib/childBridgeService.js +0 -428
  242. package/lib/childBridgeService.js.map +0 -1
  243. package/lib/cli.d.ts +0 -4
  244. package/lib/cli.d.ts.map +0 -1
  245. package/lib/cli.js +0 -111
  246. package/lib/cli.js.map +0 -1
  247. package/lib/externalPortService.d.ts +0 -33
  248. package/lib/externalPortService.d.ts.map +0 -1
  249. package/lib/externalPortService.js +0 -64
  250. package/lib/externalPortService.js.map +0 -1
  251. package/lib/index.d.ts +0 -76
  252. package/lib/index.d.ts.map +0 -1
  253. package/lib/index.js +0 -72
  254. package/lib/index.js.map +0 -1
  255. package/lib/ipcService.d.ts +0 -33
  256. package/lib/ipcService.d.ts.map +0 -1
  257. package/lib/ipcService.js +0 -49
  258. package/lib/ipcService.js.map +0 -1
  259. package/lib/logger.d.ts +0 -78
  260. package/lib/logger.d.ts.map +0 -1
  261. package/lib/logger.js +0 -147
  262. package/lib/logger.js.map +0 -1
  263. package/lib/platformAccessory.d.ts.map +0 -1
  264. package/lib/platformAccessory.js +0 -102
  265. package/lib/platformAccessory.js.map +0 -1
  266. package/lib/plugin.d.ts.map +0 -1
  267. package/lib/plugin.js +0 -194
  268. package/lib/plugin.js.map +0 -1
  269. package/lib/pluginManager.d.ts.map +0 -1
  270. package/lib/pluginManager.js.map +0 -1
  271. package/lib/server.d.ts.map +0 -1
  272. package/lib/server.js +0 -457
  273. package/lib/server.js.map +0 -1
  274. package/lib/storageService.js +0 -70
  275. package/lib/storageService.js.map +0 -1
  276. package/lib/user.d.ts.map +0 -1
  277. package/lib/user.js +0 -36
  278. package/lib/user.js.map +0 -1
  279. package/lib/util/mac.d.ts.map +0 -1
  280. package/lib/util/mac.js +0 -20
  281. package/lib/util/mac.js.map +0 -1
  282. package/lib/version.d.ts.map +0 -1
  283. package/lib/version.js +0 -21
  284. package/lib/version.js.map +0 -1
  285. /package/{lib → dist}/storageService.d.ts +0 -0
  286. /package/{lib → dist}/version.d.ts +0 -0
@@ -0,0 +1,51 @@
1
+ import { CarbonMonoxideConcentrationMeasurementServer } from '@matter/node/behaviors/carbon-monoxide-concentration-measurement';
2
+ import { NitrogenDioxideConcentrationMeasurementServer } from '@matter/node/behaviors/nitrogen-dioxide-concentration-measurement';
3
+ import { OzoneConcentrationMeasurementServer } from '@matter/node/behaviors/ozone-concentration-measurement';
4
+ import { Pm10ConcentrationMeasurementServer } from '@matter/node/behaviors/pm10-concentration-measurement';
5
+ import { Pm25ConcentrationMeasurementServer } from '@matter/node/behaviors/pm25-concentration-measurement';
6
+ export class HomebridgePm25ConcentrationMeasurementServer extends Pm25ConcentrationMeasurementServer {
7
+ static registry;
8
+ static setRegistry(registry) {
9
+ this.registry = registry;
10
+ }
11
+ initialize() {
12
+ super.initialize();
13
+ }
14
+ }
15
+ export class HomebridgePm10ConcentrationMeasurementServer extends Pm10ConcentrationMeasurementServer {
16
+ static registry;
17
+ static setRegistry(registry) {
18
+ this.registry = registry;
19
+ }
20
+ initialize() {
21
+ super.initialize();
22
+ }
23
+ }
24
+ export class HomebridgeOzoneConcentrationMeasurementServer extends OzoneConcentrationMeasurementServer {
25
+ static registry;
26
+ static setRegistry(registry) {
27
+ this.registry = registry;
28
+ }
29
+ initialize() {
30
+ super.initialize();
31
+ }
32
+ }
33
+ export class HomebridgeNitrogenDioxideConcentrationMeasurementServer extends NitrogenDioxideConcentrationMeasurementServer {
34
+ static registry;
35
+ static setRegistry(registry) {
36
+ this.registry = registry;
37
+ }
38
+ initialize() {
39
+ super.initialize();
40
+ }
41
+ }
42
+ export class HomebridgeCarbonMonoxideConcentrationMeasurementServer extends CarbonMonoxideConcentrationMeasurementServer {
43
+ static registry;
44
+ static setRegistry(registry) {
45
+ this.registry = registry;
46
+ }
47
+ initialize() {
48
+ super.initialize();
49
+ }
50
+ }
51
+ //# sourceMappingURL=ConcentrationMeasurementBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcentrationMeasurementBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/ConcentrationMeasurementBehavior.ts"],"names":[],"mappings":"AAgEA,OAAO,EAAE,4CAA4C,EAAE,MAAM,kEAAkE,CAAA;AAC/H,OAAO,EAAE,6CAA6C,EAAE,MAAM,mEAAmE,CAAA;AACjI,OAAO,EAAE,mCAAmC,EAAE,MAAM,wDAAwD,CAAA;AAC5G,OAAO,EAAE,kCAAkC,EAAE,MAAM,uDAAuD,CAAA;AAC1G,OAAO,EAAE,kCAAkC,EAAE,MAAM,uDAAuD,CAAA;AAQ1G,MAAM,OAAO,4CAA6C,SAAQ,kCAAkC;IAC1F,MAAM,CAAC,QAAQ,CAAkB;IAEzC,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,UAAU;QACjB,KAAK,CAAC,UAAU,EAAE,CAAA;IAEpB,CAAC;CACF;AAQD,MAAM,OAAO,4CAA6C,SAAQ,kCAAkC;IAC1F,MAAM,CAAC,QAAQ,CAAkB;IAEzC,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,UAAU;QACjB,KAAK,CAAC,UAAU,EAAE,CAAA;IAEpB,CAAC;CACF;AAQD,MAAM,OAAO,6CAA8C,SAAQ,mCAAmC;IAC5F,MAAM,CAAC,QAAQ,CAAkB;IAEzC,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,UAAU;QACjB,KAAK,CAAC,UAAU,EAAE,CAAA;IAEpB,CAAC;CACF;AAQD,MAAM,OAAO,uDAAwD,SAAQ,6CAA6C;IAChH,MAAM,CAAC,QAAQ,CAAkB;IAEzC,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,UAAU;QACjB,KAAK,CAAC,UAAU,EAAE,CAAA;IAEpB,CAAC;CACF;AAQD,MAAM,OAAO,sDAAuD,SAAQ,4CAA4C;IAC9G,MAAM,CAAC,QAAQ,CAAkB;IAEzC,MAAM,CAAC,WAAW,CAAC,QAA0B;QAC3C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAEQ,UAAU;QACjB,KAAK,CAAC,UAAU,EAAE,CAAA;IAEpB,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import { DoorLockServer } from '@matter/main/behaviors/door-lock';
2
+ export declare class HomebridgeDoorLockServer extends DoorLockServer {
3
+ private getRegistry;
4
+ lockDoor(): Promise<void>;
5
+ unlockDoor(): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=DoorLockBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DoorLockBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/DoorLockBehavior.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AASjE,qBAAa,wBAAyB,SAAQ,cAAc;IAI1D,OAAO,CAAC,WAAW;IAIJ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BzB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CA6B3C"}
@@ -0,0 +1,48 @@
1
+ import { DoorLockServer } from '@matter/main/behaviors/door-lock';
2
+ import { Status, StatusResponseError } from '@matter/main/types';
3
+ import { MatterStatus } from '../errors.js';
4
+ import { RegistryManager } from './RegistryManager.js';
5
+ export class HomebridgeDoorLockServer extends DoorLockServer {
6
+ getRegistry() {
7
+ return RegistryManager.getRegistry(this.endpoint.id);
8
+ }
9
+ async lockDoor() {
10
+ const endpointId = this.endpoint.id;
11
+ const registry = this.getRegistry();
12
+ try {
13
+ await registry.executeHandler(endpointId, 'doorLock', 'lockDoor');
14
+ await super.lockDoor();
15
+ const currentState = this.state;
16
+ if (currentState.lockState !== undefined) {
17
+ registry.syncStateToCache(endpointId, 'doorLock', { lockState: currentState.lockState });
18
+ }
19
+ }
20
+ catch (error) {
21
+ if (MatterStatus.isMatterProtocolError(error)) {
22
+ throw error;
23
+ }
24
+ const message = error instanceof Error ? error.message : String(error);
25
+ throw new StatusResponseError(`Failed to lock door: ${message}`, Status.Failure);
26
+ }
27
+ }
28
+ async unlockDoor() {
29
+ const endpointId = this.endpoint.id;
30
+ const registry = this.getRegistry();
31
+ try {
32
+ await registry.executeHandler(endpointId, 'doorLock', 'unlockDoor');
33
+ await super.unlockDoor();
34
+ const currentState = this.state;
35
+ if (currentState.lockState !== undefined) {
36
+ registry.syncStateToCache(endpointId, 'doorLock', { lockState: currentState.lockState });
37
+ }
38
+ }
39
+ catch (error) {
40
+ if (MatterStatus.isMatterProtocolError(error)) {
41
+ throw error;
42
+ }
43
+ const message = error instanceof Error ? error.message : String(error);
44
+ throw new StatusResponseError(`Failed to unlock door: ${message}`, Status.Failure);
45
+ }
46
+ }
47
+ }
48
+ //# sourceMappingURL=DoorLockBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DoorLockBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/DoorLockBehavior.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AACjE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAKtD,MAAM,OAAO,wBAAyB,SAAQ,cAAc;IAIlD,WAAW;QACjB,OAAO,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtD,CAAC;IAEQ,KAAK,CAAC,QAAQ;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAEnC,IAAI,CAAC;YAEH,MAAM,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;YAGjE,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;YAGtB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAA;YAC/B,IAAI,YAAY,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAA;YAC1F,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAGf,IAAI,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,CAAA;YACb,CAAC;YAID,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,MAAM,IAAI,mBAAmB,CAAC,wBAAwB,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,UAAU;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAEnC,IAAI,CAAC;YAEH,MAAM,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,CAAC,CAAA;YAGnE,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;YAGxB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAA;YAC/B,IAAI,YAAY,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAA;YAC1F,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAGf,IAAI,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,CAAA;YACb,CAAC;YAID,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,MAAM,IAAI,mBAAmB,CAAC,0BAA0B,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACpF,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ import { FanControlServer } from '@matter/main/behaviors/fan-control';
2
+ export declare class HomebridgeFanControlServer extends FanControlServer {
3
+ #private;
4
+ private getRegistry;
5
+ initialize(): void;
6
+ }
7
+ //# sourceMappingURL=FanControlBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FanControlBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/FanControlBehavior.ts"],"names":[],"mappings":"AAMA,OAAO,EAAsB,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AASzF,qBAAa,0BAA2B,SAAQ,gBAAgB;;IAI9D,OAAO,CAAC,WAAW;IAIV,UAAU,IAAI,IAAI;CAkF5B"}
@@ -0,0 +1,57 @@
1
+ import { FanControlServer } from '@matter/main/behaviors/fan-control';
2
+ import { Status, StatusResponseError } from '@matter/main/types';
3
+ import { MatterStatus } from '../errors.js';
4
+ import { RegistryManager } from './RegistryManager.js';
5
+ export class HomebridgeFanControlServer extends FanControlServer {
6
+ getRegistry() {
7
+ return RegistryManager.getRegistry(this.endpoint.id);
8
+ }
9
+ initialize() {
10
+ super.initialize();
11
+ this.reactTo(this.events.fanMode$Changed, this.#handleFanModeChange, { offline: true });
12
+ this.reactTo(this.events.percentSetting$Changed, this.#handlePercentSettingChange, { offline: true });
13
+ }
14
+ async #handleFanModeChange(value, oldValue) {
15
+ const endpointId = this.endpoint.id;
16
+ const registry = this.getRegistry();
17
+ try {
18
+ await registry.executeHandler(endpointId, 'fanControl', 'fanModeChange', { fanMode: value, oldFanMode: oldValue });
19
+ const stateUpdate = { fanMode: value };
20
+ if (value === 0) {
21
+ stateUpdate.percentSetting = 0;
22
+ stateUpdate.percentCurrent = 0;
23
+ }
24
+ registry.syncStateToCache(endpointId, 'fanControl', stateUpdate);
25
+ }
26
+ catch (error) {
27
+ if (MatterStatus.isMatterProtocolError(error)) {
28
+ throw error;
29
+ }
30
+ const message = error instanceof Error ? error.message : String(error);
31
+ throw new StatusResponseError(`Failed to change fan mode: ${message}`, Status.Failure);
32
+ }
33
+ }
34
+ async #handlePercentSettingChange(value, oldValue) {
35
+ const endpointId = this.endpoint.id;
36
+ const registry = this.getRegistry();
37
+ try {
38
+ await registry.executeHandler(endpointId, 'fanControl', 'percentSettingChange', { percentSetting: value, oldPercentSetting: oldValue });
39
+ const stateUpdate = {
40
+ percentSetting: value ?? undefined,
41
+ percentCurrent: value ?? undefined,
42
+ };
43
+ if (value === 0) {
44
+ stateUpdate.fanMode = 0;
45
+ }
46
+ registry.syncStateToCache(endpointId, 'fanControl', stateUpdate);
47
+ }
48
+ catch (error) {
49
+ if (MatterStatus.isMatterProtocolError(error)) {
50
+ throw error;
51
+ }
52
+ const message = error instanceof Error ? error.message : String(error);
53
+ throw new StatusResponseError(`Failed to change fan speed: ${message}`, Status.Failure);
54
+ }
55
+ }
56
+ }
57
+ //# sourceMappingURL=FanControlBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FanControlBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/FanControlBehavior.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Identify } from '@matter/main/clusters';
2
+ import { IdentifyServer } from '@matter/main/behaviors/identify';
3
+ export declare class HomebridgeIdentifyServer extends IdentifyServer {
4
+ private getRegistry;
5
+ identify(request: Identify.IdentifyRequest): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=IdentifyBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentifyBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/IdentifyBehavior.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAShE,qBAAa,wBAAyB,SAAQ,cAAc;IAI1D,OAAO,CAAC,WAAW;IAIJ,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAuB1E"}
@@ -0,0 +1,25 @@
1
+ import { IdentifyServer } from '@matter/main/behaviors/identify';
2
+ import { Status, StatusResponseError } from '@matter/main/types';
3
+ import { MatterStatus } from '../errors.js';
4
+ import { RegistryManager } from './RegistryManager.js';
5
+ export class HomebridgeIdentifyServer extends IdentifyServer {
6
+ getRegistry() {
7
+ return RegistryManager.getRegistry(this.endpoint.id);
8
+ }
9
+ async identify(request) {
10
+ const endpointId = this.endpoint.id;
11
+ const registry = this.getRegistry();
12
+ try {
13
+ await registry.executeHandler(endpointId, 'identify', 'identify', request);
14
+ return await super.identify(request);
15
+ }
16
+ catch (error) {
17
+ if (MatterStatus.isMatterProtocolError(error)) {
18
+ throw error;
19
+ }
20
+ const message = error instanceof Error ? error.message : String(error);
21
+ throw new StatusResponseError(`Failed to identify: ${message}`, Status.Failure);
22
+ }
23
+ }
24
+ }
25
+ //# sourceMappingURL=IdentifyBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentifyBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/IdentifyBehavior.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAKtD,MAAM,OAAO,wBAAyB,SAAQ,cAAc;IAIlD,WAAW;QACjB,OAAO,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtD,CAAC;IAEQ,KAAK,CAAC,QAAQ,CAAC,OAAiC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAEnC,IAAI,CAAC;YAEH,MAAM,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;YAG1E,OAAO,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAGf,IAAI,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,CAAA;YACb,CAAC;YAID,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,MAAM,IAAI,mBAAmB,CAAC,uBAAuB,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QACjF,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import type { LevelControl } from '@matter/main/clusters/level-control';
2
+ import { LevelControlServer } from '@matter/main/behaviors/level-control';
3
+ export declare class HomebridgeLevelControlServer extends LevelControlServer {
4
+ private getRegistry;
5
+ moveToLevel(request: LevelControl.MoveToLevelRequest): Promise<void>;
6
+ move(request: LevelControl.MoveRequest): Promise<void>;
7
+ step(request: LevelControl.StepRequest): Promise<void>;
8
+ stop(request: LevelControl.StopRequest): Promise<void>;
9
+ moveToLevelWithOnOff(request: LevelControl.MoveToLevelRequest): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=LevelControlBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LevelControlBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/LevelControlBehavior.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAA;AAEvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AAMzE,qBAAa,4BAA6B,SAAQ,kBAAkB;IAIlE,OAAO,CAAC,WAAW;IAOJ,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCpE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCtD,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCtD,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCtD,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;CAgD7F"}
@@ -0,0 +1,100 @@
1
+ import { LevelControlServer } from '@matter/main/behaviors/level-control';
2
+ import { Status, StatusResponseError } from '@matter/main/types';
3
+ import { MatterStatus } from '../errors.js';
4
+ import { RegistryManager } from './RegistryManager.js';
5
+ export class HomebridgeLevelControlServer extends LevelControlServer {
6
+ getRegistry() {
7
+ return RegistryManager.getRegistry(this.endpoint.id);
8
+ }
9
+ async moveToLevel(request) {
10
+ const endpointId = this.endpoint.id;
11
+ const registry = this.getRegistry();
12
+ try {
13
+ await registry.executeHandler(endpointId, 'levelControl', 'moveToLevel', request);
14
+ await super.moveToLevel(request);
15
+ registry.syncStateToCache(endpointId, 'levelControl', {
16
+ currentLevel: request.level,
17
+ });
18
+ }
19
+ catch (error) {
20
+ if (MatterStatus.isMatterProtocolError(error)) {
21
+ throw error;
22
+ }
23
+ const message = error instanceof Error ? error.message : String(error);
24
+ throw new StatusResponseError(`Failed to set level: ${message}`, Status.Failure);
25
+ }
26
+ }
27
+ async move(request) {
28
+ const endpointId = this.endpoint.id;
29
+ const registry = this.getRegistry();
30
+ try {
31
+ await registry.executeHandler(endpointId, 'levelControl', 'move', request);
32
+ await super.move(request);
33
+ }
34
+ catch (error) {
35
+ if (MatterStatus.isMatterProtocolError(error)) {
36
+ throw error;
37
+ }
38
+ const message = error instanceof Error ? error.message : String(error);
39
+ throw new StatusResponseError(`Failed to move level: ${message}`, Status.Failure);
40
+ }
41
+ }
42
+ async step(request) {
43
+ const endpointId = this.endpoint.id;
44
+ const registry = this.getRegistry();
45
+ try {
46
+ await registry.executeHandler(endpointId, 'levelControl', 'step', request);
47
+ await super.step(request);
48
+ }
49
+ catch (error) {
50
+ if (MatterStatus.isMatterProtocolError(error)) {
51
+ throw error;
52
+ }
53
+ const message = error instanceof Error ? error.message : String(error);
54
+ throw new StatusResponseError(`Failed to step level: ${message}`, Status.Failure);
55
+ }
56
+ }
57
+ async stop(request) {
58
+ const endpointId = this.endpoint.id;
59
+ const registry = this.getRegistry();
60
+ try {
61
+ await registry.executeHandler(endpointId, 'levelControl', 'stop', request);
62
+ await super.stop(request);
63
+ }
64
+ catch (error) {
65
+ if (MatterStatus.isMatterProtocolError(error)) {
66
+ throw error;
67
+ }
68
+ const message = error instanceof Error ? error.message : String(error);
69
+ throw new StatusResponseError(`Failed to stop level change: ${message}`, Status.Failure);
70
+ }
71
+ }
72
+ async moveToLevelWithOnOff(request) {
73
+ const endpointId = this.endpoint.id;
74
+ const registry = this.getRegistry();
75
+ try {
76
+ await registry.executeHandler(endpointId, 'levelControl', 'moveToLevelWithOnOff', request);
77
+ await super.moveToLevelWithOnOff(request);
78
+ registry.syncStateToCache(endpointId, 'levelControl', {
79
+ currentLevel: request.level,
80
+ });
81
+ const targetOnOff = request.level > 0;
82
+ await this.endpoint.set({
83
+ onOff: {
84
+ onOff: targetOnOff,
85
+ },
86
+ });
87
+ registry.syncStateToCache(endpointId, 'onOff', {
88
+ onOff: targetOnOff,
89
+ });
90
+ }
91
+ catch (error) {
92
+ if (MatterStatus.isMatterProtocolError(error)) {
93
+ throw error;
94
+ }
95
+ const message = error instanceof Error ? error.message : String(error);
96
+ throw new StatusResponseError(`Failed to set level with on/off: ${message}`, Status.Failure);
97
+ }
98
+ }
99
+ }
100
+ //# sourceMappingURL=LevelControlBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LevelControlBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/LevelControlBehavior.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { OnOffServer } from '@matter/main/behaviors/on-off';
2
+ export declare class HomebridgeOnOffServer extends OnOffServer {
3
+ private getRegistry;
4
+ on(): Promise<void>;
5
+ off(): Promise<void>;
6
+ toggle(): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=OnOffBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnOffBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/OnOffBehavior.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAM3D,qBAAa,qBAAsB,SAAQ,WAAW;IAIpD,OAAO,CAAC,WAAW;IAOJ,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BnB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BpB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CA4BvC"}
@@ -0,0 +1,60 @@
1
+ import { OnOffServer } from '@matter/main/behaviors/on-off';
2
+ import { Status, StatusResponseError } from '@matter/main/types';
3
+ import { MatterStatus } from '../errors.js';
4
+ import { RegistryManager } from './RegistryManager.js';
5
+ export class HomebridgeOnOffServer extends OnOffServer {
6
+ getRegistry() {
7
+ return RegistryManager.getRegistry(this.endpoint.id);
8
+ }
9
+ async on() {
10
+ const endpointId = this.endpoint.id;
11
+ const registry = this.getRegistry();
12
+ try {
13
+ await registry.executeHandler(endpointId, 'onOff', 'on');
14
+ await super.on();
15
+ registry.syncStateToCache(endpointId, 'onOff', { onOff: true });
16
+ }
17
+ catch (error) {
18
+ if (MatterStatus.isMatterProtocolError(error)) {
19
+ throw error;
20
+ }
21
+ const message = error instanceof Error ? error.message : String(error);
22
+ throw new StatusResponseError(`Failed to turn on: ${message}`, Status.Failure);
23
+ }
24
+ }
25
+ async off() {
26
+ const endpointId = this.endpoint.id;
27
+ const registry = this.getRegistry();
28
+ try {
29
+ await registry.executeHandler(endpointId, 'onOff', 'off');
30
+ await super.off();
31
+ registry.syncStateToCache(endpointId, 'onOff', { onOff: false });
32
+ }
33
+ catch (error) {
34
+ if (MatterStatus.isMatterProtocolError(error)) {
35
+ throw error;
36
+ }
37
+ const message = error instanceof Error ? error.message : String(error);
38
+ throw new StatusResponseError(`Failed to turn off: ${message}`, Status.Failure);
39
+ }
40
+ }
41
+ async toggle() {
42
+ const endpointId = this.endpoint.id;
43
+ const registry = this.getRegistry();
44
+ try {
45
+ await registry.executeHandler(endpointId, 'onOff', 'toggle');
46
+ await super.toggle();
47
+ const currentState = this.state;
48
+ const newState = !currentState.onOff;
49
+ registry.syncStateToCache(endpointId, 'onOff', { onOff: newState });
50
+ }
51
+ catch (error) {
52
+ if (MatterStatus.isMatterProtocolError(error)) {
53
+ throw error;
54
+ }
55
+ const message = error instanceof Error ? error.message : String(error);
56
+ throw new StatusResponseError(`Failed to toggle: ${message}`, Status.Failure);
57
+ }
58
+ }
59
+ }
60
+ //# sourceMappingURL=OnOffBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnOffBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/OnOffBehavior.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { BehaviorRegistry } from './BehaviorRegistry.js';
2
+ declare class RegistryManagerImpl {
3
+ private endpointToRegistry;
4
+ registerEndpoint(endpointId: string, registry: BehaviorRegistry): void;
5
+ getRegistry(endpointId: string): BehaviorRegistry;
6
+ unregisterEndpoint(endpointId: string): void;
7
+ clear(): void;
8
+ getStats(): {
9
+ endpointCount: number;
10
+ endpoints: string[];
11
+ };
12
+ }
13
+ export declare const RegistryManager: RegistryManagerImpl;
14
+ export {};
15
+ //# sourceMappingURL=RegistryManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegistryManager.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/RegistryManager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAS7D,cAAM,mBAAmB;IACvB,OAAO,CAAC,kBAAkB,CAAsC;IAKhE,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAQtE,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB;IAWjD,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAQ5C,KAAK,IAAI,IAAI;IAOb,QAAQ,IAAI;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE;CAM3D;AAKD,eAAO,MAAM,eAAe,qBAA4B,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { Logger } from '../../logger.js';
2
+ const log = Logger.withPrefix('Matter/RegistryManager');
3
+ class RegistryManagerImpl {
4
+ endpointToRegistry = new Map();
5
+ registerEndpoint(endpointId, registry) {
6
+ this.endpointToRegistry.set(endpointId, registry);
7
+ log.debug(`Registered registry for endpoint: ${endpointId}`);
8
+ }
9
+ getRegistry(endpointId) {
10
+ const registry = this.endpointToRegistry.get(endpointId);
11
+ if (!registry) {
12
+ throw new Error(`No registry found for endpoint ${endpointId}. Available endpoints: ${Array.from(this.endpointToRegistry.keys()).join(', ')}`);
13
+ }
14
+ return registry;
15
+ }
16
+ unregisterEndpoint(endpointId) {
17
+ this.endpointToRegistry.delete(endpointId);
18
+ log.debug(`Unregistered endpoint: ${endpointId}`);
19
+ }
20
+ clear() {
21
+ this.endpointToRegistry.clear();
22
+ }
23
+ getStats() {
24
+ return {
25
+ endpointCount: this.endpointToRegistry.size,
26
+ endpoints: Array.from(this.endpointToRegistry.keys()),
27
+ };
28
+ }
29
+ }
30
+ export const RegistryManager = new RegistryManagerImpl();
31
+ //# sourceMappingURL=RegistryManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegistryManager.js","sourceRoot":"","sources":["../../../src/matter/behaviors/RegistryManager.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAA;AAKvD,MAAM,mBAAmB;IACf,kBAAkB,GAAG,IAAI,GAAG,EAA4B,CAAA;IAKhE,gBAAgB,CAAC,UAAkB,EAAE,QAA0B;QAC7D,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACjD,GAAG,CAAC,KAAK,CAAC,qCAAqC,UAAU,EAAE,CAAC,CAAA;IAC9D,CAAC;IAKD,WAAW,CAAC,UAAkB;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,0BAA0B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAChJ,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAKD,kBAAkB,CAAC,UAAkB;QACnC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAC1C,GAAG,CAAC,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAA;IACnD,CAAC;IAKD,KAAK;QACH,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAA;IACjC,CAAC;IAKD,QAAQ;QACN,OAAO;YACL,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI;YAC3C,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;SACtD,CAAA;IACH,CAAC;CACF;AAKD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,mBAAmB,EAAE,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { RvcCleanModeServer } from '@matter/main/behaviors/rvc-clean-mode';
2
+ interface ChangeToModeRequest {
3
+ newMode: number;
4
+ }
5
+ interface ChangeToModeResponse {
6
+ status: number;
7
+ statusText: string;
8
+ }
9
+ export declare class HomebridgeRvcCleanModeServer extends RvcCleanModeServer {
10
+ private getRegistry;
11
+ changeToMode(request: ChangeToModeRequest): Promise<ChangeToModeResponse>;
12
+ }
13
+ export {};
14
+ //# sourceMappingURL=RvcCleanModeBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RvcCleanModeBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcCleanModeBehavior.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAS1E,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAA;CAChB;AAKD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;CACnB;AAKD,qBAAa,4BAA6B,SAAQ,kBAAkB;IAIlE,OAAO,CAAC,WAAW;IAWJ,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA8BzF"}
@@ -0,0 +1,29 @@
1
+ import { RvcCleanModeServer } from '@matter/main/behaviors/rvc-clean-mode';
2
+ import { Status, StatusResponseError } from '@matter/main/types';
3
+ import { MatterStatus } from '../errors.js';
4
+ import { RegistryManager } from './RegistryManager.js';
5
+ export class HomebridgeRvcCleanModeServer extends RvcCleanModeServer {
6
+ getRegistry() {
7
+ return RegistryManager.getRegistry(this.endpoint.id);
8
+ }
9
+ async changeToMode(request) {
10
+ const endpointId = this.endpoint.id;
11
+ const registry = this.getRegistry();
12
+ try {
13
+ await registry.executeHandler(endpointId, 'rvcCleanMode', 'changeToMode', request);
14
+ const result = await super.changeToMode(request);
15
+ if (request?.newMode !== undefined) {
16
+ registry.syncStateToCache(endpointId, 'rvcCleanMode', { currentMode: request.newMode });
17
+ }
18
+ return result;
19
+ }
20
+ catch (error) {
21
+ if (MatterStatus.isMatterProtocolError(error)) {
22
+ throw error;
23
+ }
24
+ const message = error instanceof Error ? error.message : String(error);
25
+ throw new StatusResponseError(`Failed to change clean mode: ${message}`, Status.Failure);
26
+ }
27
+ }
28
+ }
29
+ //# sourceMappingURL=RvcCleanModeBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RvcCleanModeBehavior.js","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcCleanModeBehavior.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAoBtD,MAAM,OAAO,4BAA6B,SAAQ,kBAAkB;IAI1D,WAAW;QACjB,OAAO,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtD,CAAC;IASQ,KAAK,CAAC,YAAY,CAAC,OAA4B;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAEnC,IAAI,CAAC;YAEH,MAAM,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;YAGlF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;YAGhD,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;gBACnC,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;YACzF,CAAC;YAED,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAGf,IAAI,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,KAAK,CAAA;YACb,CAAC;YAID,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACtE,MAAM,IAAI,mBAAmB,CAAC,gCAAgC,OAAO,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;QAC1F,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import { RvcOperationalStateServer } from '@matter/main/behaviors/rvc-operational-state';
2
+ import { RvcOperationalState } from '@matter/main/clusters';
3
+ export declare class HomebridgeRvcOperationalStateServer extends RvcOperationalStateServer {
4
+ private getRegistry;
5
+ private syncOperationalStateToCache;
6
+ pause(): Promise<RvcOperationalState.OperationalCommandResponse>;
7
+ resume(): Promise<RvcOperationalState.OperationalCommandResponse>;
8
+ goHome(): Promise<RvcOperationalState.OperationalCommandResponse>;
9
+ }
10
+ //# sourceMappingURL=RvcOperationalStateBehavior.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RvcOperationalStateBehavior.d.ts","sourceRoot":"","sources":["../../../src/matter/behaviors/RvcOperationalStateBehavior.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAsB3D,qBAAa,mCAAoC,SAAQ,yBAAyB;IAIhF,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,2BAA2B;IAkBpB,KAAK,IAAI,OAAO,CAAC,mBAAmB,CAAC,0BAA0B,CAAC;IAuChE,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC,0BAA0B,CAAC;IAuCjE,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC,0BAA0B,CAAC;CA+BjF"}