homebridge 2.0.0-beta.44 → 2.0.0-beta.46

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 (321) hide show
  1. package/dist/api.d.ts +3 -365
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js +13 -85
  4. package/dist/api.js.map +1 -1
  5. package/dist/bridgeService.d.ts +0 -25
  6. package/dist/bridgeService.d.ts.map +1 -1
  7. package/dist/bridgeService.js +32 -85
  8. package/dist/bridgeService.js.map +1 -1
  9. package/dist/childBridgeFork.d.ts +12 -15
  10. package/dist/childBridgeFork.d.ts.map +1 -1
  11. package/dist/childBridgeFork.js +152 -83
  12. package/dist/childBridgeFork.js.map +1 -1
  13. package/dist/childBridgeService.d.ts +21 -105
  14. package/dist/childBridgeService.d.ts.map +1 -1
  15. package/dist/childBridgeService.js +57 -134
  16. package/dist/childBridgeService.js.map +1 -1
  17. package/dist/cli.js +0 -2
  18. package/dist/cli.js.map +1 -1
  19. package/dist/externalPortService.d.ts +0 -21
  20. package/dist/externalPortService.d.ts.map +1 -1
  21. package/dist/externalPortService.js +0 -28
  22. package/dist/externalPortService.js.map +1 -1
  23. package/dist/index.d.ts +0 -112
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +0 -44
  26. package/dist/index.js.map +1 -1
  27. package/dist/ipcService.d.ts +23 -15
  28. package/dist/ipcService.d.ts.map +1 -1
  29. package/dist/ipcService.js +6 -12
  30. package/dist/ipcService.js.map +1 -1
  31. package/dist/logger.d.ts +0 -46
  32. package/dist/logger.d.ts.map +1 -1
  33. package/dist/logger.js +13 -57
  34. package/dist/logger.js.map +1 -1
  35. package/dist/matter/BaseMatterManager.d.ts +19 -0
  36. package/dist/matter/BaseMatterManager.d.ts.map +1 -0
  37. package/dist/matter/BaseMatterManager.js +170 -0
  38. package/dist/matter/BaseMatterManager.js.map +1 -0
  39. package/dist/matter/ChildBridgeMatterManager.d.ts +7 -69
  40. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -1
  41. package/dist/matter/ChildBridgeMatterManager.js +51 -234
  42. package/dist/matter/ChildBridgeMatterManager.js.map +1 -1
  43. package/dist/matter/ClusterCommandMapper.d.ts +5 -0
  44. package/dist/matter/ClusterCommandMapper.d.ts.map +1 -0
  45. package/dist/matter/ClusterCommandMapper.js +203 -0
  46. package/dist/matter/ClusterCommandMapper.js.map +1 -0
  47. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +0 -27
  48. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -1
  49. package/dist/matter/ExternalMatterAccessoryPublisher.js +3 -28
  50. package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -1
  51. package/dist/matter/MatterAPIImpl.d.ts +0 -68
  52. package/dist/matter/MatterAPIImpl.d.ts.map +1 -1
  53. package/dist/matter/MatterAPIImpl.js +7 -107
  54. package/dist/matter/MatterAPIImpl.js.map +1 -1
  55. package/dist/matter/MatterBridgeManager.d.ts +9 -60
  56. package/dist/matter/MatterBridgeManager.d.ts.map +1 -1
  57. package/dist/matter/MatterBridgeManager.js +140 -216
  58. package/dist/matter/MatterBridgeManager.js.map +1 -1
  59. package/dist/matter/MatterConfigCollector.d.ts +1 -20
  60. package/dist/matter/MatterConfigCollector.d.ts.map +1 -1
  61. package/dist/matter/MatterConfigCollector.js +15 -28
  62. package/dist/matter/MatterConfigCollector.js.map +1 -1
  63. package/dist/matter/accessoryCache.d.ts +0 -48
  64. package/dist/matter/accessoryCache.d.ts.map +1 -1
  65. package/dist/matter/accessoryCache.js +1 -60
  66. package/dist/matter/accessoryCache.js.map +1 -1
  67. package/dist/matter/behaviors/AirQualityBehavior.d.ts +0 -42
  68. package/dist/matter/behaviors/AirQualityBehavior.d.ts.map +1 -1
  69. package/dist/matter/behaviors/AirQualityBehavior.js +0 -44
  70. package/dist/matter/behaviors/AirQualityBehavior.js.map +1 -1
  71. package/dist/matter/behaviors/BehaviorRegistry.d.ts +4 -42
  72. package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -1
  73. package/dist/matter/behaviors/BehaviorRegistry.js +12 -42
  74. package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -1
  75. package/dist/matter/behaviors/ColorControlBehavior.d.ts +0 -49
  76. package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -1
  77. package/dist/matter/behaviors/ColorControlBehavior.js +0 -90
  78. package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -1
  79. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts +0 -91
  80. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts.map +1 -1
  81. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js +0 -96
  82. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js.map +1 -1
  83. package/dist/matter/behaviors/DoorLockBehavior.d.ts +0 -11
  84. package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -1
  85. package/dist/matter/behaviors/DoorLockBehavior.js +0 -25
  86. package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -1
  87. package/dist/matter/behaviors/FanControlBehavior.d.ts +0 -11
  88. package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -1
  89. package/dist/matter/behaviors/FanControlBehavior.js +0 -25
  90. package/dist/matter/behaviors/FanControlBehavior.js.map +1 -1
  91. package/dist/matter/behaviors/IdentifyBehavior.d.ts +0 -11
  92. package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -1
  93. package/dist/matter/behaviors/IdentifyBehavior.js +0 -17
  94. package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -1
  95. package/dist/matter/behaviors/LevelControlBehavior.d.ts +0 -20
  96. package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -1
  97. package/dist/matter/behaviors/LevelControlBehavior.js +0 -52
  98. package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -1
  99. package/dist/matter/behaviors/OnOffBehavior.d.ts +0 -17
  100. package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -1
  101. package/dist/matter/behaviors/OnOffBehavior.js +0 -38
  102. package/dist/matter/behaviors/OnOffBehavior.js.map +1 -1
  103. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +0 -11
  104. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -1
  105. package/dist/matter/behaviors/RvcCleanModeBehavior.js +0 -17
  106. package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -1
  107. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +0 -11
  108. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -1
  109. package/dist/matter/behaviors/RvcOperationalStateBehavior.js +0 -29
  110. package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -1
  111. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +0 -11
  112. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -1
  113. package/dist/matter/behaviors/RvcRunModeBehavior.js +0 -17
  114. package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -1
  115. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +0 -11
  116. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -1
  117. package/dist/matter/behaviors/ServiceAreaBehavior.js +0 -23
  118. package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -1
  119. package/dist/matter/behaviors/ThermostatBehavior.d.ts +0 -11
  120. package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -1
  121. package/dist/matter/behaviors/ThermostatBehavior.js +0 -39
  122. package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -1
  123. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +0 -17
  124. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -1
  125. package/dist/matter/behaviors/WindowCoveringBehavior.js +0 -56
  126. package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -1
  127. package/dist/matter/behaviors/index.d.ts +0 -5
  128. package/dist/matter/behaviors/index.d.ts.map +1 -1
  129. package/dist/matter/behaviors/index.js +0 -5
  130. package/dist/matter/behaviors/index.js.map +1 -1
  131. package/dist/matter/configValidator.d.ts +0 -55
  132. package/dist/matter/configValidator.d.ts.map +1 -1
  133. package/dist/matter/configValidator.js +1 -68
  134. package/dist/matter/configValidator.js.map +1 -1
  135. package/dist/matter/errorHandler.d.ts +0 -22
  136. package/dist/matter/errorHandler.d.ts.map +1 -1
  137. package/dist/matter/errorHandler.js +0 -32
  138. package/dist/matter/errorHandler.js.map +1 -1
  139. package/dist/matter/errors.d.ts +0 -132
  140. package/dist/matter/errors.d.ts.map +1 -1
  141. package/dist/matter/errors.js +0 -132
  142. package/dist/matter/errors.js.map +1 -1
  143. package/dist/matter/index.d.ts +0 -30
  144. package/dist/matter/index.d.ts.map +1 -1
  145. package/dist/matter/index.js +0 -13
  146. package/dist/matter/index.js.map +1 -1
  147. package/dist/matter/logFormatter.d.ts +0 -17
  148. package/dist/matter/logFormatter.d.ts.map +1 -1
  149. package/dist/matter/logFormatter.js +5 -63
  150. package/dist/matter/logFormatter.js.map +1 -1
  151. package/dist/matter/server.d.ts +12 -236
  152. package/dist/matter/server.d.ts.map +1 -1
  153. package/dist/matter/server.js +177 -488
  154. package/dist/matter/server.js.map +1 -1
  155. package/dist/matter/serverHelpers.d.ts +0 -56
  156. package/dist/matter/serverHelpers.d.ts.map +1 -1
  157. package/dist/matter/serverHelpers.js +1 -66
  158. package/dist/matter/serverHelpers.js.map +1 -1
  159. package/dist/matter/sharedTypes.d.ts +0 -83
  160. package/dist/matter/sharedTypes.d.ts.map +1 -1
  161. package/dist/matter/sharedTypes.js +0 -26
  162. package/dist/matter/sharedTypes.js.map +1 -1
  163. package/dist/matter/storage.d.ts +0 -90
  164. package/dist/matter/storage.d.ts.map +1 -1
  165. package/dist/matter/storage.js +2 -130
  166. package/dist/matter/storage.js.map +1 -1
  167. package/dist/matter/typeHelpers.d.ts +0 -30
  168. package/dist/matter/typeHelpers.d.ts.map +1 -1
  169. package/dist/matter/typeHelpers.js +0 -24
  170. package/dist/matter/typeHelpers.js.map +1 -1
  171. package/dist/matter/types.d.ts +0 -273
  172. package/dist/matter/types.d.ts.map +1 -1
  173. package/dist/matter/types.js +0 -83
  174. package/dist/matter/types.js.map +1 -1
  175. package/dist/platformAccessory.d.ts +0 -15
  176. package/dist/platformAccessory.d.ts.map +1 -1
  177. package/dist/platformAccessory.js +6 -32
  178. package/dist/platformAccessory.js.map +1 -1
  179. package/dist/plugin.d.ts +0 -3
  180. package/dist/plugin.d.ts.map +1 -1
  181. package/dist/plugin.js +6 -29
  182. package/dist/plugin.js.map +1 -1
  183. package/dist/pluginManager.d.ts +0 -22
  184. package/dist/pluginManager.d.ts.map +1 -1
  185. package/dist/pluginManager.js +18 -41
  186. package/dist/pluginManager.js.map +1 -1
  187. package/dist/server.d.ts +9 -29
  188. package/dist/server.d.ts.map +1 -1
  189. package/dist/server.js +308 -157
  190. package/dist/server.js.map +1 -1
  191. package/dist/user.d.ts +0 -3
  192. package/dist/user.d.ts.map +1 -1
  193. package/dist/user.js +2 -5
  194. package/dist/user.js.map +1 -1
  195. package/dist/util/mac.js +0 -1
  196. package/dist/util/mac.js.map +1 -1
  197. package/package.json +4 -4
  198. package/dist/api.spec.d.ts +0 -2
  199. package/dist/api.spec.d.ts.map +0 -1
  200. package/dist/api.spec.js +0 -413
  201. package/dist/api.spec.js.map +0 -1
  202. package/dist/logger.spec.d.ts +0 -2
  203. package/dist/logger.spec.d.ts.map +0 -1
  204. package/dist/logger.spec.js +0 -95
  205. package/dist/logger.spec.js.map +0 -1
  206. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts +0 -2
  207. package/dist/matter/ExternalMatterAccessoryPublisher.spec.d.ts.map +0 -1
  208. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js +0 -293
  209. package/dist/matter/ExternalMatterAccessoryPublisher.spec.js.map +0 -1
  210. package/dist/matter/accessoryCache.spec.d.ts +0 -2
  211. package/dist/matter/accessoryCache.spec.d.ts.map +0 -1
  212. package/dist/matter/accessoryCache.spec.js +0 -452
  213. package/dist/matter/accessoryCache.spec.js.map +0 -1
  214. package/dist/matter/behaviors/AirQualityBehavior.spec.d.ts +0 -5
  215. package/dist/matter/behaviors/AirQualityBehavior.spec.d.ts.map +0 -1
  216. package/dist/matter/behaviors/AirQualityBehavior.spec.js +0 -46
  217. package/dist/matter/behaviors/AirQualityBehavior.spec.js.map +0 -1
  218. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts +0 -2
  219. package/dist/matter/behaviors/BehaviorRegistry.spec.d.ts.map +0 -1
  220. package/dist/matter/behaviors/BehaviorRegistry.spec.js +0 -307
  221. package/dist/matter/behaviors/BehaviorRegistry.spec.js.map +0 -1
  222. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts +0 -2
  223. package/dist/matter/behaviors/ColorControlBehavior.spec.d.ts.map +0 -1
  224. package/dist/matter/behaviors/ColorControlBehavior.spec.js +0 -29
  225. package/dist/matter/behaviors/ColorControlBehavior.spec.js.map +0 -1
  226. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.d.ts +0 -5
  227. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.d.ts.map +0 -1
  228. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.js +0 -95
  229. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.spec.js.map +0 -1
  230. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts +0 -2
  231. package/dist/matter/behaviors/DoorLockBehavior.spec.d.ts.map +0 -1
  232. package/dist/matter/behaviors/DoorLockBehavior.spec.js +0 -120
  233. package/dist/matter/behaviors/DoorLockBehavior.spec.js.map +0 -1
  234. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts +0 -2
  235. package/dist/matter/behaviors/FanControlBehavior.spec.d.ts.map +0 -1
  236. package/dist/matter/behaviors/FanControlBehavior.spec.js +0 -23
  237. package/dist/matter/behaviors/FanControlBehavior.spec.js.map +0 -1
  238. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts +0 -2
  239. package/dist/matter/behaviors/IdentifyBehavior.spec.d.ts.map +0 -1
  240. package/dist/matter/behaviors/IdentifyBehavior.spec.js +0 -64
  241. package/dist/matter/behaviors/IdentifyBehavior.spec.js.map +0 -1
  242. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts +0 -2
  243. package/dist/matter/behaviors/LevelControlBehavior.spec.d.ts.map +0 -1
  244. package/dist/matter/behaviors/LevelControlBehavior.spec.js +0 -145
  245. package/dist/matter/behaviors/LevelControlBehavior.spec.js.map +0 -1
  246. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts +0 -2
  247. package/dist/matter/behaviors/OnOffBehavior.spec.d.ts.map +0 -1
  248. package/dist/matter/behaviors/OnOffBehavior.spec.js +0 -128
  249. package/dist/matter/behaviors/OnOffBehavior.spec.js.map +0 -1
  250. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts +0 -2
  251. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.d.ts.map +0 -1
  252. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js +0 -57
  253. package/dist/matter/behaviors/RvcCleanModeBehavior.spec.js.map +0 -1
  254. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts +0 -2
  255. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.d.ts.map +0 -1
  256. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js +0 -55
  257. package/dist/matter/behaviors/RvcOperationalStateBehavior.spec.js.map +0 -1
  258. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts +0 -2
  259. package/dist/matter/behaviors/RvcRunModeBehavior.spec.d.ts.map +0 -1
  260. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js +0 -57
  261. package/dist/matter/behaviors/RvcRunModeBehavior.spec.js.map +0 -1
  262. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts +0 -2
  263. package/dist/matter/behaviors/ServiceAreaBehavior.spec.d.ts.map +0 -1
  264. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js +0 -53
  265. package/dist/matter/behaviors/ServiceAreaBehavior.spec.js.map +0 -1
  266. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts +0 -2
  267. package/dist/matter/behaviors/ThermostatBehavior.spec.d.ts.map +0 -1
  268. package/dist/matter/behaviors/ThermostatBehavior.spec.js +0 -23
  269. package/dist/matter/behaviors/ThermostatBehavior.spec.js.map +0 -1
  270. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts +0 -2
  271. package/dist/matter/behaviors/WindowCoveringBehavior.spec.d.ts.map +0 -1
  272. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js +0 -27
  273. package/dist/matter/behaviors/WindowCoveringBehavior.spec.js.map +0 -1
  274. package/dist/matter/configValidator.spec.d.ts +0 -2
  275. package/dist/matter/configValidator.spec.d.ts.map +0 -1
  276. package/dist/matter/configValidator.spec.js +0 -390
  277. package/dist/matter/configValidator.spec.js.map +0 -1
  278. package/dist/matter/errorHandler.spec.d.ts +0 -2
  279. package/dist/matter/errorHandler.spec.d.ts.map +0 -1
  280. package/dist/matter/errorHandler.spec.js +0 -159
  281. package/dist/matter/errorHandler.spec.js.map +0 -1
  282. package/dist/matter/logFormatter.spec.d.ts +0 -2
  283. package/dist/matter/logFormatter.spec.d.ts.map +0 -1
  284. package/dist/matter/logFormatter.spec.js +0 -252
  285. package/dist/matter/logFormatter.spec.js.map +0 -1
  286. package/dist/matter/serverHelpers.spec.d.ts +0 -2
  287. package/dist/matter/serverHelpers.spec.d.ts.map +0 -1
  288. package/dist/matter/serverHelpers.spec.js +0 -527
  289. package/dist/matter/serverHelpers.spec.js.map +0 -1
  290. package/dist/matter/storage.spec.d.ts +0 -2
  291. package/dist/matter/storage.spec.d.ts.map +0 -1
  292. package/dist/matter/storage.spec.js +0 -570
  293. package/dist/matter/storage.spec.js.map +0 -1
  294. package/dist/matter/typeHelpers.spec.d.ts +0 -2
  295. package/dist/matter/typeHelpers.spec.d.ts.map +0 -1
  296. package/dist/matter/typeHelpers.spec.js +0 -127
  297. package/dist/matter/typeHelpers.spec.js.map +0 -1
  298. package/dist/platformAccessory.spec.d.ts +0 -2
  299. package/dist/platformAccessory.spec.d.ts.map +0 -1
  300. package/dist/platformAccessory.spec.js +0 -126
  301. package/dist/platformAccessory.spec.js.map +0 -1
  302. package/dist/pluginManager.spec.d.ts +0 -2
  303. package/dist/pluginManager.spec.d.ts.map +0 -1
  304. package/dist/pluginManager.spec.js +0 -43
  305. package/dist/pluginManager.spec.js.map +0 -1
  306. package/dist/server.spec.d.ts +0 -2
  307. package/dist/server.spec.d.ts.map +0 -1
  308. package/dist/server.spec.js +0 -57
  309. package/dist/server.spec.js.map +0 -1
  310. package/dist/user.spec.d.ts +0 -2
  311. package/dist/user.spec.d.ts.map +0 -1
  312. package/dist/user.spec.js +0 -31
  313. package/dist/user.spec.js.map +0 -1
  314. package/dist/util/mac.spec.d.ts +0 -2
  315. package/dist/util/mac.spec.d.ts.map +0 -1
  316. package/dist/util/mac.spec.js +0 -36
  317. package/dist/util/mac.spec.js.map +0 -1
  318. package/dist/version.spec.d.ts +0 -2
  319. package/dist/version.spec.d.ts.map +0 -1
  320. package/dist/version.spec.js +0 -20
  321. package/dist/version.spec.js.map +0 -1
@@ -1,41 +1,55 @@
1
- /**
2
- * Matter Bridge Manager
3
- *
4
- * Manages Matter server lifecycle and accessories for the main Homebridge bridge.
5
- * This class extracts Matter-specific logic from server.ts to minimize changes to core files.
6
- */
7
- import { rmSync } from 'node:fs';
8
- import path from 'node:path';
9
1
  import { Logger } from '../logger.js';
10
2
  import { User } from '../user.js';
11
- import { generate } from '../util/mac.js';
3
+ import { BaseMatterManager } from './BaseMatterManager.js';
12
4
  import { publishExternalMatterAccessory } from './ExternalMatterAccessoryPublisher.js';
13
5
  import { MatterServer } from './server.js';
14
- const log = Logger.internal;
15
- /**
16
- * Manages Matter server and accessories for the main bridge
17
- */
18
- export class MatterBridgeManager {
6
+ const log = Logger.withPrefix('Matter/MainManager');
7
+ export class MatterBridgeManager extends BaseMatterManager {
19
8
  config;
20
9
  api;
21
10
  externalPortService;
22
- pluginManager;
23
11
  options;
24
- // Matter server instance for main bridge (if enabled)
25
- matterServer;
26
- // External Matter servers for accessories that need their own bridge
27
- // Key is accessory UUID, value is MatterServer instance
28
- externalMatterServers = new Map();
29
12
  constructor(config, api, externalPortService, pluginManager, options) {
13
+ super(pluginManager);
30
14
  this.config = config;
31
15
  this.api = api;
32
16
  this.externalPortService = externalPortService;
33
- this.pluginManager = pluginManager;
34
17
  this.options = options;
18
+ this.setupEventListeners();
19
+ }
20
+ setupEventListeners() {
21
+ this.api.on("publishExternalMatterAccessories", (accessories, registrationId) => {
22
+ this.handlePublishExternalAccessories(accessories, registrationId).catch((error) => {
23
+ log.error('Failed to publish external Matter accessories:', error);
24
+ this.api._resolveExternalRegistration(registrationId);
25
+ });
26
+ });
27
+ this.api.on("registerMatterPlatformAccessories", (pluginIdentifier, platformName, accessories) => {
28
+ this.handleRegisterPlatformAccessories(pluginIdentifier, platformName, accessories).catch((error) => {
29
+ log.error(`Failed to register Matter accessories for ${pluginIdentifier}:`, error);
30
+ });
31
+ });
32
+ this.api.on("updateMatterPlatformAccessories", (accessories) => {
33
+ this.handleUpdatePlatformAccessories(accessories).catch((error) => {
34
+ log.error('Failed to update Matter platform accessories:', error);
35
+ });
36
+ });
37
+ this.api.on("unregisterMatterPlatformAccessories", (pluginIdentifier, platformName, accessories) => {
38
+ this.handleUnregisterPlatformAccessories(pluginIdentifier, platformName, accessories).catch((error) => {
39
+ log.error(`Failed to unregister Matter accessories for ${pluginIdentifier}:`, error);
40
+ });
41
+ });
42
+ this.api.on("unregisterExternalMatterAccessories", (accessories) => {
43
+ this.handleUnregisterExternalAccessories(accessories).catch((error) => {
44
+ log.error('Failed to unregister external Matter accessories:', error);
45
+ });
46
+ });
47
+ this.api.on("updateMatterAccessoryState", (uuid, cluster, attributes, partId) => {
48
+ this.handleUpdateAccessoryState(uuid, cluster, attributes, partId).catch((error) => {
49
+ log.error('Failed to update Matter accessory state:', error);
50
+ });
51
+ });
35
52
  }
36
- /**
37
- * Collect all configured Matter ports from config to avoid conflicts
38
- */
39
53
  static collectConfiguredMatterPorts(config) {
40
54
  const configuredMatterPorts = [];
41
55
  if (config.bridge.matter?.port) {
@@ -53,33 +67,25 @@ export class MatterBridgeManager {
53
67
  }
54
68
  return configuredMatterPorts;
55
69
  }
56
- /**
57
- * Initialize Matter server for main bridge if enabled
58
- */
59
70
  async initialize() {
60
- // Check if main bridge has matter configuration
61
71
  if (!this.config.bridge.matter) {
62
72
  return;
63
73
  }
64
- // Declare matterPort outside try block so it's accessible in catch
65
74
  let matterPort;
66
75
  try {
67
76
  log.info('Initializing Matter server for main bridge...');
68
- // Allocate port from pool if not explicitly configured
69
77
  matterPort = this.config.bridge.matter.port;
70
78
  if (!matterPort) {
71
79
  matterPort = await this.externalPortService.requestPort(`${this.config.bridge.username}:MATTER`);
72
80
  if (!matterPort) {
73
- matterPort = 5540; // Default Matter port
81
+ matterPort = 5540;
74
82
  log.warn('No port available from pool for main Matter bridge, using default port 5540');
75
83
  }
76
84
  else {
77
85
  log.info(`Allocated port ${matterPort} from pool for main Matter bridge`);
78
86
  }
79
87
  }
80
- // Create Matter server instance with config inheritance from main bridge
81
88
  const serialNumber = this.config.bridge.username.replace(/:/g, '');
82
- // Normalize bind config to array format
83
89
  const networkInterfaces = this.config.bridge.bind
84
90
  ? Array.isArray(this.config.bridge.bind)
85
91
  ? this.config.bridge.bind
@@ -96,17 +102,13 @@ export class MatterBridgeManager {
96
102
  debugModeEnabled: this.options.debugModeEnabled,
97
103
  networkInterfaces,
98
104
  });
99
- // Start the Matter server
100
105
  await this.matterServer.start();
101
106
  log.info('Matter server initialized for main bridge');
102
- // Inform the API that Matter is enabled
103
107
  this.api._setMatterEnabled(true);
104
- // Set the Matter server reference for API methods like getAccessoryState
105
108
  this.api._setMatterServer(this.matterServer);
106
109
  }
107
110
  catch (error) {
108
111
  log.error('Failed to initialize Matter server for main bridge:', error);
109
- // Provide user-friendly guidance for common errors
110
112
  const errorMessage = error instanceof Error ? error.message : String(error);
111
113
  const errorCode = error instanceof Error && 'code' in error ? error.code : undefined;
112
114
  if (errorMessage.includes('corrupted')) {
@@ -146,14 +148,8 @@ export class MatterBridgeManager {
146
148
  }
147
149
  }
148
150
  }
149
- /**
150
- * Handle external Matter accessories - each gets its own dedicated Matter server
151
- * This is required for devices like Robotic Vacuum Cleaners that Apple Home
152
- * requires to be on their own bridge.
153
- */
154
151
  async handlePublishExternalAccessories(accessories, registrationId) {
155
152
  log.info(`Publishing ${accessories.length} external Matter accessor${accessories.length === 1 ? 'y' : 'ies'}`);
156
- // Normalize bind config to array format (inherit from main bridge)
157
153
  const networkInterfaces = this.config.bridge.bind
158
154
  ? Array.isArray(this.config.bridge.bind)
159
155
  ? this.config.bridge.bind
@@ -162,30 +158,22 @@ export class MatterBridgeManager {
162
158
  try {
163
159
  for (const accessory of accessories) {
164
160
  try {
165
- // Check if already published
166
161
  if (this.externalMatterServers.has(accessory.uuid)) {
167
162
  log.warn(`External Matter accessory ${accessory.displayName} (${accessory.uuid}) is already published`);
168
163
  continue;
169
164
  }
170
- // Publish the accessory using shared helper
171
165
  const result = await publishExternalMatterAccessory(accessory, {
172
166
  portService: this.externalPortService,
173
167
  networkInterfaces,
174
168
  debugModeEnabled: this.options.debugModeEnabled,
175
169
  });
176
170
  if (!result) {
177
- // Validation or publishing failed (errors already logged by helper)
178
171
  continue;
179
172
  }
180
- // Store the server instance
181
173
  this.externalMatterServers.set(accessory.uuid, result.server);
182
- // Emit the 'ready' event to notify plugins that the accessory is now available on the network
183
- // This is similar to HAP's 'advertised' event and signals that the Matter server is running
184
- // and the accessory can be commissioned by Matter controllers
185
174
  if (accessory._eventEmitter) {
186
175
  accessory._eventEmitter.emit('ready', result.port);
187
176
  }
188
- // Log commissioning info
189
177
  if (result.commissioningInfo.qrCode && result.commissioningInfo.manualPairingCode) {
190
178
  log.info(`📱 Commissioning codes for ${accessory.displayName}:`);
191
179
  log.info(` QR Code: ${result.commissioningInfo.qrCode}`);
@@ -198,168 +186,10 @@ export class MatterBridgeManager {
198
186
  }
199
187
  }
200
188
  finally {
201
- // Notify that registration is complete (whether successful or not)
202
189
  this.api._resolveExternalRegistration(registrationId);
203
190
  }
204
191
  }
205
- /**
206
- * Handle registration of Matter platform accessories
207
- */
208
- async handleRegisterPlatformAccessories(pluginIdentifier, platformName, accessories) {
209
- if (!this.matterServer) {
210
- log.warn('Cannot register Matter accessories - Matter server is not running');
211
- return;
212
- }
213
- await this.matterServer.registerPlatformAccessories(pluginIdentifier, platformName, accessories);
214
- }
215
- /**
216
- * Handle unregistration of Matter platform accessories
217
- */
218
- async handleUnregisterPlatformAccessories(pluginIdentifier, platformName, accessories) {
219
- if (!this.matterServer) {
220
- log.warn('Cannot unregister Matter accessories - Matter server is not running');
221
- return;
222
- }
223
- await this.matterServer.unregisterPlatformAccessories(pluginIdentifier, platformName, accessories);
224
- }
225
- /**
226
- * Handle unregistration of external Matter accessories
227
- * Stops dedicated servers and cleans up storage
228
- */
229
- async handleUnregisterExternalAccessories(accessories) {
230
- log.info(`Unregistering ${accessories.length} external Matter accessor${accessories.length === 1 ? 'y' : 'ies'}`);
231
- for (const accessory of accessories) {
232
- try {
233
- // Check if this external server exists
234
- const matterServer = this.externalMatterServers.get(accessory.uuid);
235
- if (!matterServer) {
236
- log.warn(`External Matter accessory ${accessory.displayName} (${accessory.uuid}) is not registered`);
237
- continue;
238
- }
239
- log.info(`Stopping external Matter server for ${accessory.displayName}`);
240
- // Stop the Matter server
241
- await matterServer.stop();
242
- // Remove from the map
243
- this.externalMatterServers.delete(accessory.uuid);
244
- // Clean up storage folder
245
- // Generate the same uniqueId that was used when creating the server
246
- const advertiseAddress = generate(accessory.uuid);
247
- const uniqueId = advertiseAddress.replace(/:/g, '');
248
- const storagePath = path.join(User.matterPath(), uniqueId);
249
- try {
250
- log.debug(`Removing Matter storage for external accessory at: ${storagePath}`);
251
- rmSync(storagePath, { recursive: true, force: true });
252
- log.info(`✓ Cleaned up storage for external Matter accessory: ${accessory.displayName}`);
253
- }
254
- catch (error) {
255
- log.error(`Failed to clean up storage for external Matter accessory ${accessory.displayName}:`, error);
256
- }
257
- log.info(`✓ External Matter accessory unregistered: ${accessory.displayName}`);
258
- }
259
- catch (error) {
260
- log.error(`Failed to unregister external Matter accessory ${accessory.displayName}:`, error);
261
- }
262
- }
263
- }
264
- /**
265
- * Handle updating Matter platform accessories in the cache
266
- * Checks both external servers and main bridge server
267
- */
268
- async handleUpdatePlatformAccessories(accessories) {
269
- const bridgeAccessories = [];
270
- // Route each accessory to the appropriate server
271
- for (const accessory of accessories) {
272
- const externalServer = this.externalMatterServers.get(accessory.uuid);
273
- if (externalServer) {
274
- // Update external accessory
275
- await externalServer.updatePlatformAccessories([accessory]);
276
- }
277
- else {
278
- // Collect accessories for main bridge
279
- bridgeAccessories.push(accessory);
280
- }
281
- }
282
- // Update accessories on main bridge server if any
283
- if (bridgeAccessories.length > 0) {
284
- if (!this.matterServer) {
285
- log.warn('Cannot update Matter platform accessories - Matter server is not running');
286
- return;
287
- }
288
- await this.matterServer.updatePlatformAccessories(bridgeAccessories);
289
- }
290
- }
291
- /**
292
- * Handle Matter accessory state updates
293
- * Checks both external servers and main bridge server
294
- */
295
- async handleUpdateAccessoryState(uuid, cluster, attributes, partId) {
296
- // Check if this is an external accessory first
297
- const externalServer = this.externalMatterServers.get(uuid);
298
- if (externalServer) {
299
- await externalServer.updateAccessoryState(uuid, cluster, attributes, partId);
300
- return;
301
- }
302
- // Otherwise, try the main bridge server
303
- if (!this.matterServer) {
304
- log.warn(`Cannot update Matter accessory state for ${uuid} - accessory not found in external servers and main Matter server is not running`);
305
- return;
306
- }
307
- await this.matterServer.updateAccessoryState(uuid, cluster, attributes, partId);
308
- }
309
- /**
310
- * Restore cached Matter accessories (matching HAP pattern)
311
- */
312
- restoreCachedAccessories(keepOrphaned) {
313
- if (!this.matterServer) {
314
- log.debug('Matter server not available for restoring cached accessories');
315
- return;
316
- }
317
- const cachedAccessories = this.matterServer.getAllCachedAccessories();
318
- log.debug(`Restoring ${cachedAccessories.length} cached Matter accessories`);
319
- for (const cachedAccessory of cachedAccessories) {
320
- let plugin = this.pluginManager.getPlugin(cachedAccessory.plugin);
321
- if (!plugin) {
322
- try {
323
- // Try to find plugin by platform name (handles plugin renames)
324
- plugin = this.pluginManager.getPluginByActiveDynamicPlatform(cachedAccessory.platform);
325
- if (plugin) {
326
- log.info(`When searching for the associated plugin of the Matter accessory '${cachedAccessory.displayName}' `
327
- + `it seems like the plugin name changed from '${cachedAccessory.plugin}' to '${plugin.getPluginIdentifier()}'. Plugin association is now being transformed!`);
328
- }
329
- }
330
- catch (error) {
331
- const errorMessage = error instanceof Error ? error.message : String(error);
332
- log.warn(`Could not find the associated plugin for the Matter accessory '${cachedAccessory.displayName}'. `
333
- + `Tried to find the plugin by the platform name but ${errorMessage}`);
334
- }
335
- }
336
- const platformPlugin = plugin && plugin.getActiveDynamicPlatform(cachedAccessory.platform);
337
- if (!platformPlugin) {
338
- log.warn(`Failed to find plugin to handle Matter accessory ${cachedAccessory.displayName} (plugin: ${cachedAccessory.plugin}, platform: ${cachedAccessory.platform})`);
339
- if (!keepOrphaned) {
340
- log.info(`Removing orphaned Matter accessory ${cachedAccessory.displayName}`);
341
- this.matterServer.unregisterAccessory(cachedAccessory.uuid).catch((error) => {
342
- log.warn(`Failed to unregister orphaned Matter accessory ${cachedAccessory.displayName}:`, error);
343
- });
344
- }
345
- }
346
- else {
347
- // Call configureMatterAccessory if the plugin implements it
348
- if (platformPlugin.configureMatterAccessory) {
349
- log.debug(`Calling configureMatterAccessory for ${cachedAccessory.displayName}`);
350
- platformPlugin.configureMatterAccessory(cachedAccessory);
351
- }
352
- else {
353
- log.debug(`Platform ${cachedAccessory.platform} does not implement configureMatterAccessory`);
354
- }
355
- }
356
- }
357
- }
358
- /**
359
- * Get Matter server status information for IPC communication
360
- */
361
192
  getMatterStatus() {
362
- // Include Matter commissioning info if Matter is enabled
363
193
  if (this.matterServer) {
364
194
  const commissioningInfo = this.matterServer.getCommissioningInfo();
365
195
  return {
@@ -373,7 +203,6 @@ export class MatterBridgeManager {
373
203
  };
374
204
  }
375
205
  else if (this.config.bridge.matter) {
376
- // Matter is configured but not yet started (or failed to start)
377
206
  return {
378
207
  enabled: false,
379
208
  port: this.config.bridge.matter?.port,
@@ -383,11 +212,108 @@ export class MatterBridgeManager {
383
212
  enabled: false,
384
213
  };
385
214
  }
386
- /**
387
- * Teardown Matter servers
388
- */
215
+ collectAllAccessories(bridgeUsername) {
216
+ const accessories = [];
217
+ if (!bridgeUsername || bridgeUsername === this.config.bridge.username) {
218
+ if (this.matterServer) {
219
+ const mainAccessories = this.collectAccessoriesFromServer(this.matterServer, this.config.bridge.username, 'main', this.config.bridge.name || 'Homebridge');
220
+ accessories.push(...mainAccessories);
221
+ for (const server of this.externalMatterServers.values()) {
222
+ const externalAccessories = this.collectAccessoriesFromServer(server, server.username, 'external', server.bridgeName);
223
+ accessories.push(...externalAccessories);
224
+ }
225
+ }
226
+ }
227
+ return accessories;
228
+ }
229
+ getAccessoryInfo(uuid) {
230
+ if (this.matterServer) {
231
+ const accessory = this.getAccessoryDetailFromServer(this.matterServer, uuid, this.config.bridge.username, 'main');
232
+ if (accessory) {
233
+ return accessory;
234
+ }
235
+ }
236
+ for (const server of this.externalMatterServers.values()) {
237
+ const accessory = this.getAccessoryDetailFromServer(server, uuid, server.username, 'external');
238
+ if (accessory) {
239
+ return accessory;
240
+ }
241
+ }
242
+ return undefined;
243
+ }
244
+ collectAccessoriesFromServer(server, bridgeUsername, bridgeType, bridgeName) {
245
+ const cached = server.getAllCachedAccessories();
246
+ const accessories = [];
247
+ for (const acc of cached) {
248
+ const accessory = this.transformAccessoryData(acc, server, bridgeUsername, bridgeType, bridgeName);
249
+ accessories.push(accessory);
250
+ }
251
+ return accessories;
252
+ }
253
+ transformAccessoryData(acc, server, bridgeUsername, bridgeType, bridgeName) {
254
+ const currentState = this.getCurrentStateFromServer(server, acc.uuid);
255
+ return {
256
+ uuid: acc.uuid,
257
+ displayName: acc.displayName,
258
+ serialNumber: acc.serialNumber,
259
+ manufacturer: acc.manufacturer,
260
+ model: acc.model,
261
+ firmwareRevision: acc.firmwareRevision,
262
+ deviceType: acc.deviceType,
263
+ clusters: currentState,
264
+ parts: acc.parts?.map((part) => ({
265
+ id: part.id,
266
+ displayName: part.displayName,
267
+ deviceType: part.deviceType,
268
+ clusters: this.getCurrentStateFromServer(server, acc.uuid, part.id),
269
+ })),
270
+ bridge: {
271
+ username: bridgeUsername,
272
+ type: bridgeType,
273
+ name: bridgeName,
274
+ },
275
+ plugin: acc.plugin,
276
+ platform: acc.platform,
277
+ context: acc.context,
278
+ commissioned: server.isCommissioned(),
279
+ fabricCount: server.getCommissionedFabricCount(),
280
+ fabrics: server.getFabricInfo(),
281
+ };
282
+ }
283
+ getAccessoryDetailFromServer(server, uuid, bridgeUsername, bridgeType) {
284
+ const accessory = server.getAccessory(uuid);
285
+ if (!accessory) {
286
+ return undefined;
287
+ }
288
+ const cached = server.getAllCachedAccessories().find((a) => a.uuid === uuid);
289
+ if (!cached) {
290
+ return undefined;
291
+ }
292
+ return this.transformAccessoryData(cached, server, bridgeUsername, bridgeType, server.bridgeName || 'Matter Bridge');
293
+ }
294
+ getCurrentStateFromServer(server, uuid, partId) {
295
+ const accessory = server.getAccessory(uuid);
296
+ if (!accessory) {
297
+ return {};
298
+ }
299
+ const endpoint = partId
300
+ ? accessory._parts?.find((p) => p.id === partId)?.endpoint
301
+ : accessory.endpoint;
302
+ if (!endpoint) {
303
+ return {};
304
+ }
305
+ const state = {};
306
+ for (const [clusterName, clusterState] of Object.entries(endpoint.state)) {
307
+ state[clusterName] = {};
308
+ for (const [key, value] of Object.entries(clusterState)) {
309
+ if (!key.startsWith('_') && !key.startsWith('$')) {
310
+ state[clusterName][key] = value;
311
+ }
312
+ }
313
+ }
314
+ return state;
315
+ }
389
316
  async teardown() {
390
- // Stop main Matter server if running
391
317
  if (this.matterServer) {
392
318
  try {
393
319
  await this.matterServer.stop();
@@ -396,7 +322,6 @@ export class MatterBridgeManager {
396
322
  log.error('Failed to stop Matter server:', error);
397
323
  }
398
324
  }
399
- // Stop all external Matter servers
400
325
  for (const [uuid, matterServer] of this.externalMatterServers) {
401
326
  try {
402
327
  await matterServer.stop();
@@ -407,7 +332,6 @@ export class MatterBridgeManager {
407
332
  }
408
333
  }
409
334
  this.externalMatterServers.clear();
410
- // Child bridge Matter servers are stopped by their own forked processes
411
335
  }
412
336
  }
413
337
  //# sourceMappingURL=MatterBridgeManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MatterBridgeManager.js","sourceRoot":"","sources":["../../src/matter/MatterBridgeManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MatterBridgeManager.js","sourceRoot":"","sources":["../../src/matter/MatterBridgeManager.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,7 @@
1
- /**
2
- * Matter Config Collector
3
- *
4
- * Collects and validates Matter configuration from Homebridge config.
5
- * This class extracts Matter config validation logic from server.ts to minimize changes to core files.
6
- */
7
1
  import type { HomebridgeConfig } from '../bridgeService.js';
8
- /**
9
- * Validates and processes Matter configuration from Homebridge config
10
- */
11
2
  export declare class MatterConfigCollector {
12
- /**
13
- * Validate all Matter configuration in the config
14
- * Validates main bridge and child bridge Matter configs, checks for port conflicts
15
- *
16
- * @param config - The Homebridge configuration
17
- */
3
+ static validateMatterPortsPool(config: HomebridgeConfig): void;
18
4
  static validateMatterConfig(config: HomebridgeConfig): void;
19
- /**
20
- * Check for port conflicts between main bridge and child bridges
21
- *
22
- * @param config - The Homebridge configuration
23
- */
24
5
  private static checkPortConflicts;
25
6
  }
26
7
  //# sourceMappingURL=MatterConfigCollector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MatterConfigCollector.d.ts","sourceRoot":"","sources":["../../src/matter/MatterConfigCollector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAO3D;;GAEG;AACH,qBAAa,qBAAqB;IAChC;;;;;OAKG;IACH,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAmC3D;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;CA+BlC"}
1
+ {"version":3,"file":"MatterConfigCollector.d.ts","sourceRoot":"","sources":["../../src/matter/MatterConfigCollector.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAU3D,qBAAa,qBAAqB;IAOhC,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAoB9D,MAAM,CAAC,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAwC3D,OAAO,CAAC,MAAM,CAAC,kBAAkB;CA+BlC"}
@@ -1,31 +1,28 @@
1
- /**
2
- * Matter Config Collector
3
- *
4
- * Collects and validates Matter configuration from Homebridge config.
5
- * This class extracts Matter config validation logic from server.ts to minimize changes to core files.
6
- */
7
1
  import { Logger } from '../logger.js';
8
2
  import { MatterConfigValidator } from './configValidator.js';
9
- const log = Logger.internal;
10
- /**
11
- * Validates and processes Matter configuration from Homebridge config
12
- */
3
+ const log = Logger.withPrefix('Matter/Config');
13
4
  export class MatterConfigCollector {
14
- /**
15
- * Validate all Matter configuration in the config
16
- * Validates main bridge and child bridge Matter configs, checks for port conflicts
17
- *
18
- * @param config - The Homebridge configuration
19
- */
5
+ static validateMatterPortsPool(config) {
6
+ if (config.matterPorts !== undefined) {
7
+ if (config.matterPorts.start && config.matterPorts.end) {
8
+ if (config.matterPorts.start > config.matterPorts.end) {
9
+ log.error('Invalid Matter port pool configuration. End should be greater than or equal to start.');
10
+ config.matterPorts = undefined;
11
+ }
12
+ }
13
+ else {
14
+ log.error('Invalid configuration for \'matterPorts\'. Missing \'start\' and \'end\' properties! Ignoring it!');
15
+ config.matterPorts = undefined;
16
+ }
17
+ }
18
+ }
20
19
  static validateMatterConfig(config) {
21
- // Check if any Matter config exists
22
20
  const hasMatterConfig = config.bridge.matter
23
21
  || config.platforms.some((p) => p._bridge?.matter)
24
22
  || config.accessories.some((a) => a._bridge?.matter);
25
23
  if (!hasMatterConfig) {
26
24
  return;
27
25
  }
28
- // Validate main bridge Matter config
29
26
  if (config.bridge.matter) {
30
27
  const validation = MatterConfigValidator.validate(config.bridge.matter);
31
28
  if (!validation.isValid) {
@@ -33,27 +30,19 @@ export class MatterConfigCollector {
33
30
  delete config.bridge.matter;
34
31
  }
35
32
  }
36
- // Validate all child bridge Matter configs and check for port conflicts
37
33
  const childMatterValidation = MatterConfigValidator.validateAllChildMatterConfigs(config.platforms, config.accessories);
38
34
  if (!childMatterValidation.isValid) {
39
35
  log.error('Some child bridge Matter configurations are invalid. Check the errors above.');
40
36
  }
41
- // Check for conflicts between main bridge Matter port and child bridge ports
42
37
  if (config.bridge.matter?.port) {
43
38
  this.checkPortConflicts(config);
44
39
  }
45
40
  }
46
- /**
47
- * Check for port conflicts between main bridge and child bridges
48
- *
49
- * @param config - The Homebridge configuration
50
- */
51
41
  static checkPortConflicts(config) {
52
42
  const mainMatterPort = config.bridge.matter?.port;
53
43
  if (!mainMatterPort) {
54
44
  return;
55
45
  }
56
- // Collect all child bridge Matter ports
57
46
  const childMatterPorts = [];
58
47
  for (const platform of config.platforms) {
59
48
  if (platform._bridge?.matter?.port) {
@@ -65,11 +54,9 @@ export class MatterConfigCollector {
65
54
  childMatterPorts.push(accessory._bridge.matter.port);
66
55
  }
67
56
  }
68
- // Check for conflicts with child bridge Matter ports
69
57
  if (childMatterPorts.includes(mainMatterPort)) {
70
58
  log.error(`Main bridge Matter port ${mainMatterPort} conflicts with a child bridge Matter port. Please use unique ports.`);
71
59
  }
72
- // Check for conflict with main bridge HAP port
73
60
  if (config.bridge.port && Math.abs(config.bridge.port - mainMatterPort) < 10) {
74
61
  log.warn(`Main bridge HAP port ${config.bridge.port} and Matter port ${mainMatterPort} are very close. Consider spacing them further apart.`);
75
62
  }