homebridge 2.0.0-beta.11 → 2.0.0-beta.111

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 (341) hide show
  1. package/README.md +50 -24
  2. package/bin/homebridge.js +22 -0
  3. package/config-sample.json +3 -3
  4. package/dist/api.d.ts +578 -0
  5. package/dist/api.d.ts.map +1 -0
  6. package/dist/api.js +236 -0
  7. package/dist/api.js.map +1 -0
  8. package/{lib → dist}/bridgeService.d.ts +40 -12
  9. package/dist/bridgeService.d.ts.map +1 -0
  10. package/{lib → dist}/bridgeService.js +118 -126
  11. package/dist/bridgeService.js.map +1 -0
  12. package/dist/childBridgeFork.d.ts +71 -0
  13. package/dist/childBridgeFork.d.ts.map +1 -0
  14. package/dist/childBridgeFork.js +411 -0
  15. package/dist/childBridgeFork.js.map +1 -0
  16. package/{lib → dist}/childBridgeService.d.ts +99 -9
  17. package/dist/childBridgeService.d.ts.map +1 -0
  18. package/dist/childBridgeService.js +604 -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 +90 -0
  23. package/dist/cli.js.map +1 -0
  24. package/dist/externalPortService.d.ts +43 -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 +157 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +53 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/ipcService.d.ts +51 -0
  33. package/dist/ipcService.d.ts.map +1 -0
  34. package/dist/ipcService.js +66 -0
  35. package/dist/ipcService.js.map +1 -0
  36. package/{lib → dist}/logger.d.ts +12 -6
  37. package/dist/logger.d.ts.map +1 -0
  38. package/{lib → dist}/logger.js +27 -28
  39. package/dist/logger.js.map +1 -0
  40. package/dist/matter/BaseMatterManager.d.ts +78 -0
  41. package/dist/matter/BaseMatterManager.d.ts.map +1 -0
  42. package/dist/matter/BaseMatterManager.js +297 -0
  43. package/dist/matter/BaseMatterManager.js.map +1 -0
  44. package/dist/matter/ChildBridgeMatterManager.d.ts +97 -0
  45. package/dist/matter/ChildBridgeMatterManager.d.ts.map +1 -0
  46. package/dist/matter/ChildBridgeMatterManager.js +344 -0
  47. package/dist/matter/ChildBridgeMatterManager.js.map +1 -0
  48. package/dist/matter/ChildBridgeMatterMessageHandler.d.ts +49 -0
  49. package/dist/matter/ChildBridgeMatterMessageHandler.d.ts.map +1 -0
  50. package/dist/matter/ChildBridgeMatterMessageHandler.js +165 -0
  51. package/dist/matter/ChildBridgeMatterMessageHandler.js.map +1 -0
  52. package/dist/matter/ClusterCommandMapper.d.ts +28 -0
  53. package/dist/matter/ClusterCommandMapper.d.ts.map +1 -0
  54. package/dist/matter/ClusterCommandMapper.js +308 -0
  55. package/dist/matter/ClusterCommandMapper.js.map +1 -0
  56. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts +50 -0
  57. package/dist/matter/ExternalMatterAccessoryPublisher.d.ts.map +1 -0
  58. package/dist/matter/ExternalMatterAccessoryPublisher.js +76 -0
  59. package/dist/matter/ExternalMatterAccessoryPublisher.js.map +1 -0
  60. package/dist/matter/MatterAPIImpl.d.ts +231 -0
  61. package/dist/matter/MatterAPIImpl.d.ts.map +1 -0
  62. package/dist/matter/MatterAPIImpl.js +336 -0
  63. package/dist/matter/MatterAPIImpl.js.map +1 -0
  64. package/dist/matter/MatterBridgeManager.d.ts +110 -0
  65. package/dist/matter/MatterBridgeManager.d.ts.map +1 -0
  66. package/dist/matter/MatterBridgeManager.js +472 -0
  67. package/dist/matter/MatterBridgeManager.js.map +1 -0
  68. package/dist/matter/MatterPortAllocator.d.ts +36 -0
  69. package/dist/matter/MatterPortAllocator.d.ts.map +1 -0
  70. package/dist/matter/MatterPortAllocator.js +81 -0
  71. package/dist/matter/MatterPortAllocator.js.map +1 -0
  72. package/dist/matter/SwitchAPI.d.ts +123 -0
  73. package/dist/matter/SwitchAPI.d.ts.map +1 -0
  74. package/dist/matter/SwitchAPI.js +80 -0
  75. package/dist/matter/SwitchAPI.js.map +1 -0
  76. package/dist/matter/accessoryCache.d.ts +110 -0
  77. package/dist/matter/accessoryCache.d.ts.map +1 -0
  78. package/dist/matter/accessoryCache.js +212 -0
  79. package/dist/matter/accessoryCache.js.map +1 -0
  80. package/dist/matter/behaviors/AirQualityBehavior.d.ts +44 -0
  81. package/dist/matter/behaviors/AirQualityBehavior.d.ts.map +1 -0
  82. package/dist/matter/behaviors/AirQualityBehavior.js +48 -0
  83. package/dist/matter/behaviors/AirQualityBehavior.js.map +1 -0
  84. package/dist/matter/behaviors/BehaviorRegistry.d.ts +79 -0
  85. package/dist/matter/behaviors/BehaviorRegistry.d.ts.map +1 -0
  86. package/dist/matter/behaviors/BehaviorRegistry.js +163 -0
  87. package/dist/matter/behaviors/BehaviorRegistry.js.map +1 -0
  88. package/dist/matter/behaviors/ColorControlBehavior.d.ts +61 -0
  89. package/dist/matter/behaviors/ColorControlBehavior.d.ts.map +1 -0
  90. package/dist/matter/behaviors/ColorControlBehavior.js +230 -0
  91. package/dist/matter/behaviors/ColorControlBehavior.js.map +1 -0
  92. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts +112 -0
  93. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.d.ts.map +1 -0
  94. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js +127 -0
  95. package/dist/matter/behaviors/ConcentrationMeasurementBehavior.js.map +1 -0
  96. package/dist/matter/behaviors/DoorLockBehavior.d.ts +25 -0
  97. package/dist/matter/behaviors/DoorLockBehavior.d.ts.map +1 -0
  98. package/dist/matter/behaviors/DoorLockBehavior.js +74 -0
  99. package/dist/matter/behaviors/DoorLockBehavior.js.map +1 -0
  100. package/dist/matter/behaviors/EndpointContext.d.ts +31 -0
  101. package/dist/matter/behaviors/EndpointContext.d.ts.map +1 -0
  102. package/dist/matter/behaviors/EndpointContext.js +30 -0
  103. package/dist/matter/behaviors/EndpointContext.js.map +1 -0
  104. package/dist/matter/behaviors/FanControlBehavior.d.ts +18 -0
  105. package/dist/matter/behaviors/FanControlBehavior.d.ts.map +1 -0
  106. package/dist/matter/behaviors/FanControlBehavior.js +85 -0
  107. package/dist/matter/behaviors/FanControlBehavior.js.map +1 -0
  108. package/dist/matter/behaviors/IdentifyBehavior.d.ts +18 -0
  109. package/dist/matter/behaviors/IdentifyBehavior.d.ts.map +1 -0
  110. package/dist/matter/behaviors/IdentifyBehavior.js +42 -0
  111. package/dist/matter/behaviors/IdentifyBehavior.js.map +1 -0
  112. package/dist/matter/behaviors/LevelControlBehavior.d.ts +34 -0
  113. package/dist/matter/behaviors/LevelControlBehavior.d.ts.map +1 -0
  114. package/dist/matter/behaviors/LevelControlBehavior.js +159 -0
  115. package/dist/matter/behaviors/LevelControlBehavior.js.map +1 -0
  116. package/dist/matter/behaviors/OnOffBehavior.d.ts +25 -0
  117. package/dist/matter/behaviors/OnOffBehavior.d.ts.map +1 -0
  118. package/dist/matter/behaviors/OnOffBehavior.js +96 -0
  119. package/dist/matter/behaviors/OnOffBehavior.js.map +1 -0
  120. package/dist/matter/behaviors/RegistryManager.d.ts +41 -0
  121. package/dist/matter/behaviors/RegistryManager.d.ts.map +1 -0
  122. package/dist/matter/behaviors/RegistryManager.js +58 -0
  123. package/dist/matter/behaviors/RegistryManager.js.map +1 -0
  124. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts +25 -0
  125. package/dist/matter/behaviors/RvcCleanModeBehavior.d.ts.map +1 -0
  126. package/dist/matter/behaviors/RvcCleanModeBehavior.js +54 -0
  127. package/dist/matter/behaviors/RvcCleanModeBehavior.js.map +1 -0
  128. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts +43 -0
  129. package/dist/matter/behaviors/RvcOperationalStateBehavior.d.ts.map +1 -0
  130. package/dist/matter/behaviors/RvcOperationalStateBehavior.js +137 -0
  131. package/dist/matter/behaviors/RvcOperationalStateBehavior.js.map +1 -0
  132. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts +25 -0
  133. package/dist/matter/behaviors/RvcRunModeBehavior.d.ts.map +1 -0
  134. package/dist/matter/behaviors/RvcRunModeBehavior.js +54 -0
  135. package/dist/matter/behaviors/RvcRunModeBehavior.js.map +1 -0
  136. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts +40 -0
  137. package/dist/matter/behaviors/ServiceAreaBehavior.d.ts.map +1 -0
  138. package/dist/matter/behaviors/ServiceAreaBehavior.js +107 -0
  139. package/dist/matter/behaviors/ServiceAreaBehavior.js.map +1 -0
  140. package/dist/matter/behaviors/ThermostatBehavior.d.ts +20 -0
  141. package/dist/matter/behaviors/ThermostatBehavior.d.ts.map +1 -0
  142. package/dist/matter/behaviors/ThermostatBehavior.js +137 -0
  143. package/dist/matter/behaviors/ThermostatBehavior.js.map +1 -0
  144. package/dist/matter/behaviors/ValveConfigurationAndControlBehavior.d.ts +25 -0
  145. package/dist/matter/behaviors/ValveConfigurationAndControlBehavior.d.ts.map +1 -0
  146. package/dist/matter/behaviors/ValveConfigurationAndControlBehavior.js +80 -0
  147. package/dist/matter/behaviors/ValveConfigurationAndControlBehavior.js.map +1 -0
  148. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts +49 -0
  149. package/dist/matter/behaviors/WindowCoveringBehavior.d.ts.map +1 -0
  150. package/dist/matter/behaviors/WindowCoveringBehavior.js +177 -0
  151. package/dist/matter/behaviors/WindowCoveringBehavior.js.map +1 -0
  152. package/dist/matter/behaviors/index.d.ts +24 -0
  153. package/dist/matter/behaviors/index.d.ts.map +1 -0
  154. package/dist/matter/behaviors/index.js +23 -0
  155. package/dist/matter/behaviors/index.js.map +1 -0
  156. package/dist/matter/clusterHandlerMap.d.ts +194 -0
  157. package/dist/matter/clusterHandlerMap.d.ts.map +1 -0
  158. package/dist/matter/clusterHandlerMap.js +12 -0
  159. package/dist/matter/clusterHandlerMap.js.map +1 -0
  160. package/dist/matter/clusterStateMap.d.ts +119 -0
  161. package/dist/matter/clusterStateMap.d.ts.map +1 -0
  162. package/dist/matter/clusterStateMap.js +13 -0
  163. package/dist/matter/clusterStateMap.js.map +1 -0
  164. package/dist/matter/clusterTypes.d.ts +304 -0
  165. package/dist/matter/clusterTypes.d.ts.map +1 -0
  166. package/dist/matter/clusterTypes.js +10 -0
  167. package/dist/matter/clusterTypes.js.map +1 -0
  168. package/dist/matter/config.d.ts +41 -0
  169. package/dist/matter/config.d.ts.map +1 -0
  170. package/dist/matter/config.js +124 -0
  171. package/dist/matter/config.js.map +1 -0
  172. package/dist/matter/configValidator.d.ts +81 -0
  173. package/dist/matter/configValidator.d.ts.map +1 -0
  174. package/dist/matter/configValidator.js +241 -0
  175. package/dist/matter/configValidator.js.map +1 -0
  176. package/dist/matter/errorHandler.d.ts +24 -0
  177. package/dist/matter/errorHandler.d.ts.map +1 -0
  178. package/dist/matter/errorHandler.js +118 -0
  179. package/dist/matter/errorHandler.js.map +1 -0
  180. package/dist/matter/errors.d.ts +178 -0
  181. package/dist/matter/errors.d.ts.map +1 -0
  182. package/dist/matter/errors.js +200 -0
  183. package/dist/matter/errors.js.map +1 -0
  184. package/dist/matter/index.d.ts +129 -0
  185. package/dist/matter/index.d.ts.map +1 -0
  186. package/dist/matter/index.js +22 -0
  187. package/dist/matter/index.js.map +1 -0
  188. package/dist/matter/ipc-types.d.ts +43 -0
  189. package/dist/matter/ipc-types.d.ts.map +1 -0
  190. package/dist/matter/ipc-types.js +8 -0
  191. package/dist/matter/ipc-types.js.map +1 -0
  192. package/dist/matter/logFormatter.d.ts +19 -0
  193. package/dist/matter/logFormatter.d.ts.map +1 -0
  194. package/dist/matter/logFormatter.js +158 -0
  195. package/dist/matter/logFormatter.js.map +1 -0
  196. package/dist/matter/managerTypes.d.ts +102 -0
  197. package/dist/matter/managerTypes.d.ts.map +1 -0
  198. package/dist/matter/managerTypes.js +8 -0
  199. package/dist/matter/managerTypes.js.map +1 -0
  200. package/dist/matter/server/AccessoryManager.d.ts +74 -0
  201. package/dist/matter/server/AccessoryManager.d.ts.map +1 -0
  202. package/dist/matter/server/AccessoryManager.js +504 -0
  203. package/dist/matter/server/AccessoryManager.js.map +1 -0
  204. package/dist/matter/server/AccessoryQuery.d.ts +48 -0
  205. package/dist/matter/server/AccessoryQuery.d.ts.map +1 -0
  206. package/dist/matter/server/AccessoryQuery.js +128 -0
  207. package/dist/matter/server/AccessoryQuery.js.map +1 -0
  208. package/dist/matter/server/BehaviorMap.d.ts +25 -0
  209. package/dist/matter/server/BehaviorMap.d.ts.map +1 -0
  210. package/dist/matter/server/BehaviorMap.js +52 -0
  211. package/dist/matter/server/BehaviorMap.js.map +1 -0
  212. package/dist/matter/server/CommissioningManager.d.ts +85 -0
  213. package/dist/matter/server/CommissioningManager.d.ts.map +1 -0
  214. package/dist/matter/server/CommissioningManager.js +350 -0
  215. package/dist/matter/server/CommissioningManager.js.map +1 -0
  216. package/dist/matter/server/FabricManager.d.ts +58 -0
  217. package/dist/matter/server/FabricManager.d.ts.map +1 -0
  218. package/dist/matter/server/FabricManager.js +192 -0
  219. package/dist/matter/server/FabricManager.js.map +1 -0
  220. package/dist/matter/server/ServerConfig.d.ts +20 -0
  221. package/dist/matter/server/ServerConfig.d.ts.map +1 -0
  222. package/dist/matter/server/ServerConfig.js +86 -0
  223. package/dist/matter/server/ServerConfig.js.map +1 -0
  224. package/dist/matter/server/ServerLifecycle.d.ts +68 -0
  225. package/dist/matter/server/ServerLifecycle.d.ts.map +1 -0
  226. package/dist/matter/server/ServerLifecycle.js +397 -0
  227. package/dist/matter/server/ServerLifecycle.js.map +1 -0
  228. package/dist/matter/server/StateManager.d.ts +31 -0
  229. package/dist/matter/server/StateManager.d.ts.map +1 -0
  230. package/dist/matter/server/StateManager.js +210 -0
  231. package/dist/matter/server/StateManager.js.map +1 -0
  232. package/dist/matter/server/index.d.ts +9 -0
  233. package/dist/matter/server/index.d.ts.map +1 -0
  234. package/dist/matter/server/index.js +9 -0
  235. package/dist/matter/server/index.js.map +1 -0
  236. package/dist/matter/server.d.ts +90 -0
  237. package/dist/matter/server.d.ts.map +1 -0
  238. package/dist/matter/server.js +288 -0
  239. package/dist/matter/server.js.map +1 -0
  240. package/dist/matter/serverHelpers.d.ts +99 -0
  241. package/dist/matter/serverHelpers.d.ts.map +1 -0
  242. package/dist/matter/serverHelpers.js +338 -0
  243. package/dist/matter/serverHelpers.js.map +1 -0
  244. package/dist/matter/sharedTypes.d.ts +187 -0
  245. package/dist/matter/sharedTypes.d.ts.map +1 -0
  246. package/dist/matter/sharedTypes.js +46 -0
  247. package/dist/matter/sharedTypes.js.map +1 -0
  248. package/dist/matter/types.d.ts +685 -0
  249. package/dist/matter/types.d.ts.map +1 -0
  250. package/dist/matter/types.js +354 -0
  251. package/dist/matter/types.js.map +1 -0
  252. package/dist/matter/utils.d.ts +67 -0
  253. package/dist/matter/utils.d.ts.map +1 -0
  254. package/dist/matter/utils.js +80 -0
  255. package/dist/matter/utils.js.map +1 -0
  256. package/{lib → dist}/platformAccessory.d.ts +8 -6
  257. package/dist/platformAccessory.d.ts.map +1 -0
  258. package/{lib → dist}/platformAccessory.js +25 -16
  259. package/dist/platformAccessory.js.map +1 -0
  260. package/{lib → dist}/plugin.d.ts +2 -3
  261. package/dist/plugin.d.ts.map +1 -0
  262. package/{lib → dist}/plugin.js +39 -52
  263. package/dist/plugin.js.map +1 -0
  264. package/{lib → dist}/pluginManager.d.ts +3 -3
  265. package/dist/pluginManager.d.ts.map +1 -0
  266. package/{lib → dist}/pluginManager.js +90 -89
  267. package/dist/pluginManager.js.map +1 -0
  268. package/dist/server.d.ts +109 -0
  269. package/dist/server.d.ts.map +1 -0
  270. package/dist/server.js +901 -0
  271. package/dist/server.js.map +1 -0
  272. package/{lib → dist}/storageService.d.ts.map +1 -1
  273. package/dist/storageService.js +41 -0
  274. package/dist/storageService.js.map +1 -0
  275. package/{lib → dist}/user.d.ts +1 -0
  276. package/dist/user.d.ts.map +1 -0
  277. package/dist/user.js +32 -0
  278. package/dist/user.js.map +1 -0
  279. package/{lib → dist}/util/mac.d.ts +1 -0
  280. package/dist/util/mac.d.ts.map +1 -0
  281. package/dist/util/mac.js +15 -0
  282. package/dist/util/mac.js.map +1 -0
  283. package/dist/version.d.ts.map +1 -0
  284. package/dist/version.js +16 -0
  285. package/dist/version.js.map +1 -0
  286. package/package.json +50 -51
  287. package/bin/homebridge +0 -17
  288. package/lib/api.d.ts +0 -210
  289. package/lib/api.d.ts.map +0 -1
  290. package/lib/api.js +0 -155
  291. package/lib/api.js.map +0 -1
  292. package/lib/bridgeService.d.ts.map +0 -1
  293. package/lib/bridgeService.js.map +0 -1
  294. package/lib/childBridgeFork.d.ts +0 -37
  295. package/lib/childBridgeFork.d.ts.map +0 -1
  296. package/lib/childBridgeFork.js +0 -244
  297. package/lib/childBridgeFork.js.map +0 -1
  298. package/lib/childBridgeService.d.ts.map +0 -1
  299. package/lib/childBridgeService.js +0 -428
  300. package/lib/childBridgeService.js.map +0 -1
  301. package/lib/cli.d.ts +0 -4
  302. package/lib/cli.d.ts.map +0 -1
  303. package/lib/cli.js +0 -111
  304. package/lib/cli.js.map +0 -1
  305. package/lib/externalPortService.d.ts +0 -33
  306. package/lib/externalPortService.d.ts.map +0 -1
  307. package/lib/externalPortService.js +0 -64
  308. package/lib/externalPortService.js.map +0 -1
  309. package/lib/index.d.ts +0 -76
  310. package/lib/index.d.ts.map +0 -1
  311. package/lib/index.js +0 -72
  312. package/lib/index.js.map +0 -1
  313. package/lib/ipcService.d.ts +0 -33
  314. package/lib/ipcService.d.ts.map +0 -1
  315. package/lib/ipcService.js +0 -49
  316. package/lib/ipcService.js.map +0 -1
  317. package/lib/logger.d.ts.map +0 -1
  318. package/lib/logger.js.map +0 -1
  319. package/lib/platformAccessory.d.ts.map +0 -1
  320. package/lib/platformAccessory.js.map +0 -1
  321. package/lib/plugin.d.ts.map +0 -1
  322. package/lib/plugin.js.map +0 -1
  323. package/lib/pluginManager.d.ts.map +0 -1
  324. package/lib/pluginManager.js.map +0 -1
  325. package/lib/server.d.ts +0 -58
  326. package/lib/server.d.ts.map +0 -1
  327. package/lib/server.js +0 -457
  328. package/lib/server.js.map +0 -1
  329. package/lib/storageService.js +0 -70
  330. package/lib/storageService.js.map +0 -1
  331. package/lib/user.d.ts.map +0 -1
  332. package/lib/user.js +0 -36
  333. package/lib/user.js.map +0 -1
  334. package/lib/util/mac.d.ts.map +0 -1
  335. package/lib/util/mac.js +0 -20
  336. package/lib/util/mac.js.map +0 -1
  337. package/lib/version.d.ts.map +0 -1
  338. package/lib/version.js +0 -21
  339. package/lib/version.js.map +0 -1
  340. /package/{lib → dist}/storageService.d.ts +0 -0
  341. /package/{lib → dist}/version.d.ts +0 -0
package/README.md CHANGED
@@ -6,29 +6,31 @@
6
6
 
7
7
  # Homebridge
8
8
 
9
- <a href="https://www.npmjs.com/package/homebridge"><img title="npm version" src="https://badgen.net/npm/v/homebridge?label=stable"></a>
10
- <a href="https://github.com/homebridge/homebridge/wiki/How-To-Change-Homebridge-Version#manage-beta-version"><img title="npm version" src="https://badgen.net/npm/v/homebridge/beta?label=beta"></a>
11
- <a href="https://github.com/homebridge/homebridge/wiki/How-To-Change-Homebridge-Version#manage-beta-version"><img title="npm version" src="https://badgen.net/npm/v/homebridge/alpha?label=alpha"></a><br>
12
- <a href="https://www.npmjs.com/package/homebridge"><img title="npm downloads" src="https://badgen.net/npm/dt/homebridge"></a>
9
+ <a href="https://www.npmjs.com/package/homebridge"><img title="npm version" src="https://img.shields.io/npm/v/homebridge?label=stable"></a>
10
+ <a href="https://github.com/homebridge/homebridge/wiki/How-To-Change-Homebridge-Version#manage-beta-version"><img title="npm version" src="https://img.shields.io/npm/v/homebridge/beta?label=beta"></a>
11
+ <a href="https://github.com/homebridge/homebridge/wiki/How-To-Change-Homebridge-Version#manage-beta-version"><img title="npm version" src="https://img.shields.io/npm/v/homebridge/alpha?label=alpha"></a><br>
12
+ <a href="https://www.npmjs.com/package/homebridge"><img title="npm downloads" src="https://img.shields.io/npm/dt/homebridge"></a>
13
13
  <a href="https://github.com/homebridge/homebridge/actions/workflows/build.yml"><img title="Node Build" src="https://github.com/homebridge/homebridge/actions/workflows/build.yml/badge.svg"></a>
14
14
 
15
15
  </span>
16
16
 
17
17
  <img src="https://media.giphy.com/media/10l79ICohTu4iQ/giphy.gif" align="right" alt="Unlocking Door">
18
18
 
19
- **Homebridge** is a lightweight Node.js server you can run on your home network that emulates the iOS HomeKit API. It supports Plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of "smart home" devices.
19
+ **Homebridge** is a lightweight Node.js server you can run on your home network to emulate the HomeKit Accessory Protocol (HAP). It supports plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of "smart home" devices. From v2, plugins can also expose accessories over [Matter](#matter-support) for use with Apple Home, Google Home, Amazon Alexa, SmartThings and other Matter-capable controllers.
20
+
21
+ Homebridge is a free, non-commercial, community-driven open-source project. It is not affiliated with Apple, Google, Amazon, or the Connectivity Standards Alliance, and no part of it is offered as a paid or certified product.
20
22
 
21
23
  Since Siri supports devices added through HomeKit, this means that with Homebridge you can ask Siri to control devices that don't have any support for HomeKit at all. For instance, using just some of the available plugins, you can say:
22
24
 
23
- * _Siri, unlock the back door._ [pictured to the right]
24
- * _Siri, open the garage door._
25
- * _Siri, turn on the coffee maker._
26
- * _Siri, turn on the living room lights._
27
- * _Siri, good morning!_
25
+ - _Siri, unlock the back door._ [pictured to the right]
26
+ - _Siri, open the garage door._
27
+ - _Siri, turn on the coffee maker._
28
+ - _Siri, turn on the living room lights._
29
+ - _Siri, good morning!_
28
30
 
29
31
  You can explore all available plugins at the NPM website by [searching for the keyword `homebridge-plugin`](https://www.npmjs.com/search?q=homebridge-plugin).
30
32
 
31
- ## Community
33
+ ## Community
32
34
 
33
35
  The official Homebridge Discord server and Reddit community are where users can discuss Homebridge and ask for help.
34
36
 
@@ -79,7 +81,7 @@ HomeKit communities can also be found on both [Discord](https://discord.gg/RcV7f
79
81
 
80
82
  ### Docker
81
83
 
82
- [Install Homebridge on Docker](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker) <br> [Synology](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-Synology) | [Unraid](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-Unraid) | [QNAP](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-QNAP) | [TrueNAS Scale](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-TrueNAS-Scale)
84
+ [Install Homebridge on Docker](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker) <br> [Synology](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-Synology) | [Unraid](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-Unraid) | [QNAP](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-QNAP) | [TrueNAS Scale](https://github.com/homebridge/docker-homebridge/wiki/Homebridge-on-TrueNAS-Scale)
83
85
 
84
86
  ---
85
87
 
@@ -97,9 +99,9 @@ HomeKit communities can also be found on both [Discord](https://discord.gg/RcV7f
97
99
 
98
100
  1. Open the Home <img src="https://user-images.githubusercontent.com/3979615/78010622-4ea1d380-738e-11ea-8a17-e6a465eeec35.png" height="16.42px"> app on your device.
99
101
  2. Tap the Home tab, then tap <img src="https://user-images.githubusercontent.com/3979615/78010869-9aed1380-738e-11ea-9644-9f46b3633026.png" height="16.42px">.
100
- 3. Tap *Add Accessory*, then scan the QR code shown in the Homebridge UI or your Homebridge logs.
102
+ 3. Tap _Add Accessory_, then scan the QR code shown in the Homebridge UI or your Homebridge logs.
101
103
 
102
- If the bridge does not have any accessories yet, you may receive a message saying *Additional Set-up Required*, this is ok, as you add plugins they will show up in the Home app without the need to pair again (except for Cameras and TVs).
104
+ If the bridge does not have any accessories yet, you may receive a message saying _Additional Set-up Required_, this is ok, as you add plugins they will show up in the Home app without the need to pair again (except for Cameras and TVs).
103
105
 
104
106
  Cameras and most TV devices are exposed as separate accessories and each needs to be paired separately. See [this wiki article](https://github.com/homebridge/homebridge/wiki/Connecting-Homebridge-To-HomeKit#how-to-add-homebridge-cameras--tvs) for instructions.
105
107
 
@@ -109,22 +111,44 @@ Once your device has been added to HomeKit, you should be able to tell Siri to c
109
111
 
110
112
  One final thing to remember is that Siri will almost always prefer its default phrase handling over HomeKit devices. For instance, if you name your Sonos device "Radio" and try saying "Siri, turn on the Radio" then Siri will probably start playing an iTunes Radio station on your phone. Even if you name it "Sonos" and say "Siri, turn on the Sonos", Siri will probably just launch the Sonos app instead. This is why, for instance, the suggested `name` for the Sonos accessory is "Speakers".
111
113
 
114
+ ## Matter Support
115
+
116
+ Homebridge v2 introduces optional support for the [Matter](https://csa-iot.org/all-solutions/matter/) smart home standard, allowing plugins to expose their devices to any Matter-capable controller — Apple Home, Google Home, Amazon Alexa, Samsung SmartThings and others — alongside (or instead of) HomeKit.
117
+
118
+ > [!IMPORTANT]
119
+ > Homebridge's Matter support is **not certified by the Connectivity Standards Alliance (CSA)** and Homebridge is **not a "Matter product"** in any commercial sense. It is a community, non-profit implementation that re-uses the open-source [matter.js](https://github.com/project-chip/matter.js) library to speak the protocol. Matter-certified controllers may treat uncertified bridges as "uncertified accessories" and display a warning during pairing — this is expected.
120
+
121
+ ### How it works
122
+
123
+ - The Matter stack runs in-process inside Homebridge using the open-source [matter.js](https://github.com/project-chip/matter.js) library (the [`@matter/main`](https://www.npmjs.com/package/@matter/main) npm package) as its protocol engine.
124
+ - Matter is **opt-in per bridge**. Add a `matter` block to `bridge` (the main bridge) and/or to a plugin's `_bridge` (a child bridge) in your config, and Homebridge will start a separate Matter server on its own port and advertise it on your LAN. Bridges without a `matter` block keep working exactly as before.
125
+ - Each Matter-enabled bridge appears as its own pairing — you scan a Matter QR code in the controller of your choice (Apple Home, Google Home, etc.). Multiple controllers can commission the same bridge ("multi-admin"), so it can sit alongside HomeKit rather than replacing it.
126
+ - Plugins decide whether to publish accessories to Matter by calling the `api.matter` API — analogous to the existing `api.hap` API. Plugins that don't opt in are unaffected.
127
+ - Currently supported device types include lights (on/off, dimmable, colour-temperature, full-colour), switches and outlets, a wide range of sensors (motion, contact, temperature, humidity, light, leak, smoke/CO, air quality), door locks, thermostats, fans, window coverings, robotic vacuum cleaners, water valves and generic switches. See the [developer docs](https://github.com/homebridge-plugins/homebridge-matter/wiki) for the full list.
128
+
129
+ ### Limitations
130
+
131
+ - Matter pairing requires the controller and Homebridge to be on the same IP subnet with mDNS/IPv6 working — the same network constraints as HomeKit.
132
+ - A Matter-enabled bridge cannot be moved between controllers without re-commissioning.
133
+ - Because the implementation is uncertified, some controllers may surface warnings during pairing or restrict access to features that require certification.
134
+
135
+ For setup instructions and the latest list of supported device types, see the developer docs at https://github.com/homebridge-plugins/homebridge-matter/wiki.
136
+
112
137
  ## Plugin Development
113
138
 
114
139
  The https://developers.homebridge.io website contains the Homebridge API reference, available service and characteristic types, and plugin examples.
115
140
 
116
- The [Homebridge Plugin Template](https://github.com/homebridge/homebridge-plugin-template) project provides a base you can use to create your own *platform* plugin.
141
+ The [Homebridge Plugin Template](https://github.com/homebridge/homebridge-plugin-template) project provides a base you can use to create your own _platform_ plugin.
117
142
 
118
143
  There are many existing plugins you can study; you might start with the [Homebridge Example Plugins](https://github.com/homebridge/homebridge-examples) or a plugin that already implements the device type you need.
119
144
 
120
145
  When writing your plugin, you'll want Homebridge to load it from your development directory instead of publishing it to `npm` each time. Run this command inside your plugin project folder so your global installation of Homebridge can discover it:
121
146
 
122
-
123
147
  ```shell
124
148
  npm link
125
149
  ```
126
150
 
127
- *You can undo this using the `npm unlink` command.*
151
+ _You can undo this using the `npm unlink` command._
128
152
 
129
153
  Then start Homebridge in debug mode:
130
154
 
@@ -150,20 +174,22 @@ To fix this, [Reset Homebridge](https://github.com/homebridge/homebridge/wiki/Co
150
174
 
151
175
  Try the following:
152
176
 
153
- 1. Swap between the `Bonjour HAP` and `Ciao` mDNS Advertiser options. See [the wiki](https://github.com/homebridge/homebridge/wiki/mDNS-Options) for more details.
154
- 2. iOS DNS cache has gone stale or gotten misconfigured. To fix this, turn airplane mode on and back off to flush the DNS cache.
177
+ 1. Swap between the `Bonjour HAP` and `Ciao` mDNS Advertiser options. See [the wiki](https://github.com/homebridge/homebridge/wiki/mDNS-Options) for more details.
178
+ 2. iOS DNS cache has gone stale or gotten misconfigured. To fix this, turn airplane mode on and back off to flush the DNS cache.
155
179
 
156
180
  ### Limitations
157
181
 
158
- * One bridge can only expose 150 accessories due to a HomeKit limit. You can however run your plugins as a [Child Bridge](https://github.com/homebridge/homebridge/wiki/Child-Bridges) or run [Multiple Homebridge Instances](https://github.com/homebridge/homebridge-config-ui-x/wiki/Homebridge-Service-Command#multiple-instances) to get around this limitation.
159
- * Once an accessory has been added to the Home app, changing its name via Homebridge won't be automatically reflected in iOS. You must change it via the Home app as well.
182
+ - One bridge can only expose 150 accessories due to a HomeKit limit. You can however run your plugins as a [Child Bridge](https://github.com/homebridge/homebridge/wiki/Child-Bridges) or run [Multiple Homebridge Instances](https://github.com/homebridge/homebridge-config-ui-x/wiki/Homebridge-Service-Command#multiple-instances) to get around this limitation.
183
+ - Once an accessory has been added to the Home app, changing its name via Homebridge won't be automatically reflected in iOS. You must change it via the Home app as well.
160
184
 
161
185
  ## Why Homebridge?
162
186
 
163
187
  Technically, the device manufacturers should be the ones implementing the HomeKit API. And I'm sure they will - eventually. When they do, this project will be obsolete, and I hope that happens soon. In the meantime, Homebridge is a fun way to get a taste of the future, for those who just can't bear to wait until "real" HomeKit devices are on the market.
164
188
 
165
- ## Credit
189
+ Homebridge is maintained on a volunteer basis by a community of contributors. There is no company behind it, nothing is sold, and no part of the project is certified or endorsed by Apple, Google, Amazon, the Connectivity Standards Alliance, or any device manufacturer. If a plugin or page asks you to pay for "Homebridge" itself, it isn't us.
166
190
 
167
- Homebridge was originally created by [Nick Farina](https://twitter.com/nfarina).
191
+ ## Credit
168
192
 
169
- The original HomeKit API work was done by [Khaos Tian](https://twitter.com/khaost) in his [HAP-NodeJS](https://github.com/homebridge/HAP-NodeJS) project.
193
+ - Homebridge was originally created by [Nick Farina](https://twitter.com/nfarina).
194
+ - The original HomeKit API work was done by [Khaos Tian](https://twitter.com/khaost) in his [HAP-NodeJS](https://github.com/homebridge/HAP-NodeJS) project.
195
+ - Matter support is built on top of [matter.js](https://github.com/project-chip/matter.js), the open-source TypeScript implementation of Matter — without it, Homebridge's Matter bridge would not exist. Thanks to the matter.js maintainers and contributors.
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+
3
+ //
4
+ // This executable sets up the environment and runs the Homebridge CLI.
5
+ //
6
+
7
+ import { realpathSync } from 'node:fs'
8
+ import { dirname, join } from 'node:path'
9
+ import process from 'node:process'
10
+ import { fileURLToPath, pathToFileURL } from 'node:url'
11
+
12
+ process.title = 'homebridge'
13
+
14
+ // Find the Homebridge lib
15
+ const __filename = fileURLToPath(import.meta.url)
16
+ const lib = join(dirname(realpathSync(__filename)), '../dist')
17
+
18
+ // Convert the path to a file URL
19
+ const libUrl = pathToFileURL(join(lib, 'cli.js')).href
20
+
21
+ // Run Homebridge
22
+ import(libUrl).then(({ default: run }) => run())
@@ -7,7 +7,7 @@
7
7
  "port": 51826,
8
8
  "pin": "031-45-154"
9
9
  },
10
-
10
+
11
11
  "description": "This is an example configuration file with one fake accessory and one fake platform. You can use this as a template for creating your own configuration file containing devices you actually own.",
12
12
  "ports": {
13
13
  "start": 52100,
@@ -23,8 +23,8 @@
23
23
 
24
24
  "platforms": [
25
25
  {
26
- "platform" : "PhilipsHue",
27
- "name" : "Hue"
26
+ "platform": "PhilipsHue",
27
+ "name": "Hue"
28
28
  }
29
29
  ]
30
30
  }