@switchbot/homebridge-switchbot 4.3.2-beta.8 → 5.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (410) hide show
  1. package/.github/copilot-instructions.md +328 -0
  2. package/.github/workflows/beta-release.yml +8 -12
  3. package/.github/workflows/release.yml +57 -21
  4. package/README.md +13 -10
  5. package/config.schema.json +1 -12
  6. package/coverage/base.css +224 -0
  7. package/coverage/block-navigation.js +87 -0
  8. package/coverage/clover.xml +15847 -0
  9. package/coverage/coverage-final.json +42 -0
  10. package/coverage/docs/assets/dmt/dmt-component-data.js.html +85 -0
  11. package/coverage/docs/assets/dmt/dmt-components.js.html +286 -0
  12. package/coverage/docs/assets/dmt/index.html +131 -0
  13. package/coverage/docs/assets/hierarchy.js.html +85 -0
  14. package/coverage/docs/assets/icons.js.html +136 -0
  15. package/coverage/docs/assets/index.html +146 -0
  16. package/coverage/docs/assets/main.js.html +265 -0
  17. package/coverage/favicon.png +0 -0
  18. package/coverage/index.html +191 -0
  19. package/coverage/prettify.css +1 -0
  20. package/coverage/prettify.js +2 -0
  21. package/coverage/sort-arrow-sprite.png +0 -0
  22. package/coverage/sorter.js +196 -0
  23. package/coverage/src/device/blindtilt.ts.html +3238 -0
  24. package/coverage/src/device/bot.ts.html +2803 -0
  25. package/coverage/src/device/ceilinglight.ts.html +2338 -0
  26. package/coverage/src/device/colorbulb.ts.html +2824 -0
  27. package/coverage/src/device/contact.ts.html +1465 -0
  28. package/coverage/src/device/curtain.ts.html +2869 -0
  29. package/coverage/src/device/device.ts.html +2500 -0
  30. package/coverage/src/device/fan.ts.html +2242 -0
  31. package/coverage/src/device/hub.ts.html +1408 -0
  32. package/coverage/src/device/humidifier.ts.html +2116 -0
  33. package/coverage/src/device/index.html +416 -0
  34. package/coverage/src/device/iosensor.ts.html +1375 -0
  35. package/coverage/src/device/lightstrip.ts.html +2617 -0
  36. package/coverage/src/device/lock.ts.html +1963 -0
  37. package/coverage/src/device/meter.ts.html +1372 -0
  38. package/coverage/src/device/meterplus.ts.html +1384 -0
  39. package/coverage/src/device/meterpro.ts.html +1618 -0
  40. package/coverage/src/device/motion.ts.html +1264 -0
  41. package/coverage/src/device/plug.ts.html +1372 -0
  42. package/coverage/src/device/relayswitch.ts.html +2284 -0
  43. package/coverage/src/device/robotvacuumcleaner.ts.html +1810 -0
  44. package/coverage/src/device/waterdetector.ts.html +1294 -0
  45. package/coverage/src/homebridge-ui/index.html +116 -0
  46. package/coverage/src/homebridge-ui/server.ts.html +229 -0
  47. package/coverage/src/index.html +161 -0
  48. package/coverage/src/index.ts.html +124 -0
  49. package/coverage/src/irdevice/airconditioner.ts.html +1687 -0
  50. package/coverage/src/irdevice/airpurifier.ts.html +844 -0
  51. package/coverage/src/irdevice/camera.ts.html +475 -0
  52. package/coverage/src/irdevice/fan.ts.html +766 -0
  53. package/coverage/src/irdevice/index.html +251 -0
  54. package/coverage/src/irdevice/irdevice.ts.html +1117 -0
  55. package/coverage/src/irdevice/light.ts.html +826 -0
  56. package/coverage/src/irdevice/other.ts.html +2458 -0
  57. package/coverage/src/irdevice/tv.ts.html +1222 -0
  58. package/coverage/src/irdevice/vacuumcleaner.ts.html +466 -0
  59. package/coverage/src/irdevice/waterheater.ts.html +469 -0
  60. package/coverage/src/platform.ts.html +8776 -0
  61. package/coverage/src/settings.ts.html +934 -0
  62. package/coverage/src/utils.ts.html +2092 -0
  63. package/dist/{device → devices-hap}/airpurifier.d.ts +3 -3
  64. package/dist/devices-hap/airpurifier.d.ts.map +1 -0
  65. package/dist/devices-hap/airpurifier.js.map +1 -0
  66. package/dist/{device → devices-hap}/blindtilt.d.ts +3 -3
  67. package/dist/devices-hap/blindtilt.d.ts.map +1 -0
  68. package/dist/{device → devices-hap}/blindtilt.js +6 -1
  69. package/dist/devices-hap/blindtilt.js.map +1 -0
  70. package/dist/{device → devices-hap}/bot.d.ts +3 -3
  71. package/dist/devices-hap/bot.d.ts.map +1 -0
  72. package/dist/devices-hap/bot.js.map +1 -0
  73. package/dist/{device → devices-hap}/ceilinglight.d.ts +3 -3
  74. package/dist/devices-hap/ceilinglight.d.ts.map +1 -0
  75. package/dist/devices-hap/ceilinglight.js.map +1 -0
  76. package/dist/{device → devices-hap}/colorbulb.d.ts +3 -3
  77. package/dist/devices-hap/colorbulb.d.ts.map +1 -0
  78. package/dist/devices-hap/colorbulb.js.map +1 -0
  79. package/dist/{device → devices-hap}/contact.d.ts +3 -3
  80. package/dist/devices-hap/contact.d.ts.map +1 -0
  81. package/dist/devices-hap/contact.js.map +1 -0
  82. package/dist/{device → devices-hap}/curtain.d.ts +3 -3
  83. package/dist/devices-hap/curtain.d.ts.map +1 -0
  84. package/dist/{device → devices-hap}/curtain.js +32 -8
  85. package/dist/devices-hap/curtain.js.map +1 -0
  86. package/dist/{device → devices-hap}/device.d.ts +3 -3
  87. package/dist/devices-hap/device.d.ts.map +1 -0
  88. package/dist/{device → devices-hap}/device.js +10 -4
  89. package/dist/devices-hap/device.js.map +1 -0
  90. package/dist/{device → devices-hap}/fan.d.ts +3 -3
  91. package/dist/devices-hap/fan.d.ts.map +1 -0
  92. package/dist/devices-hap/fan.js.map +1 -0
  93. package/dist/{device → devices-hap}/hub.d.ts +5 -5
  94. package/dist/devices-hap/hub.d.ts.map +1 -0
  95. package/dist/{device → devices-hap}/hub.js +2 -1
  96. package/dist/devices-hap/hub.js.map +1 -0
  97. package/dist/{device → devices-hap}/humidifier.d.ts +3 -3
  98. package/dist/devices-hap/humidifier.d.ts.map +1 -0
  99. package/dist/devices-hap/humidifier.js.map +1 -0
  100. package/dist/{device → devices-hap}/iosensor.d.ts +3 -3
  101. package/dist/devices-hap/iosensor.d.ts.map +1 -0
  102. package/dist/devices-hap/iosensor.js.map +1 -0
  103. package/dist/{device → devices-hap}/lightstrip.d.ts +3 -3
  104. package/dist/devices-hap/lightstrip.d.ts.map +1 -0
  105. package/dist/devices-hap/lightstrip.js.map +1 -0
  106. package/dist/{device → devices-hap}/lock.d.ts +3 -3
  107. package/dist/devices-hap/lock.d.ts.map +1 -0
  108. package/dist/devices-hap/lock.js.map +1 -0
  109. package/dist/{device → devices-hap}/meter.d.ts +3 -3
  110. package/dist/devices-hap/meter.d.ts.map +1 -0
  111. package/dist/devices-hap/meter.js.map +1 -0
  112. package/dist/{device → devices-hap}/meterplus.d.ts +3 -3
  113. package/dist/devices-hap/meterplus.d.ts.map +1 -0
  114. package/dist/devices-hap/meterplus.js.map +1 -0
  115. package/dist/{device → devices-hap}/meterpro.d.ts +3 -3
  116. package/dist/devices-hap/meterpro.d.ts.map +1 -0
  117. package/dist/{device → devices-hap}/meterpro.js +16 -3
  118. package/dist/devices-hap/meterpro.js.map +1 -0
  119. package/dist/{device → devices-hap}/motion.d.ts +3 -3
  120. package/dist/devices-hap/motion.d.ts.map +1 -0
  121. package/dist/devices-hap/motion.js.map +1 -0
  122. package/dist/{device → devices-hap}/plug.d.ts +3 -3
  123. package/dist/devices-hap/plug.d.ts.map +1 -0
  124. package/dist/devices-hap/plug.js.map +1 -0
  125. package/dist/{device → devices-hap}/relayswitch.d.ts +3 -3
  126. package/dist/devices-hap/relayswitch.d.ts.map +1 -0
  127. package/dist/devices-hap/relayswitch.js.map +1 -0
  128. package/dist/{device → devices-hap}/robotvacuumcleaner.d.ts +3 -3
  129. package/dist/devices-hap/robotvacuumcleaner.d.ts.map +1 -0
  130. package/dist/devices-hap/robotvacuumcleaner.js.map +1 -0
  131. package/dist/{device → devices-hap}/waterdetector.d.ts +3 -3
  132. package/dist/devices-hap/waterdetector.d.ts.map +1 -0
  133. package/dist/devices-hap/waterdetector.js.map +1 -0
  134. package/dist/devices-matter/BaseMatterAccessory.d.ts +63 -0
  135. package/dist/devices-matter/BaseMatterAccessory.d.ts.map +1 -0
  136. package/dist/devices-matter/BaseMatterAccessory.js +100 -0
  137. package/dist/devices-matter/BaseMatterAccessory.js.map +1 -0
  138. package/dist/devices-matter/ColorLightAccessory.d.ts +18 -0
  139. package/dist/devices-matter/ColorLightAccessory.d.ts.map +1 -0
  140. package/dist/devices-matter/ColorLightAccessory.js +96 -0
  141. package/dist/devices-matter/ColorLightAccessory.js.map +1 -0
  142. package/dist/devices-matter/ColorTemperatureLightAccessory.d.ts +16 -0
  143. package/dist/devices-matter/ColorTemperatureLightAccessory.d.ts.map +1 -0
  144. package/dist/devices-matter/ColorTemperatureLightAccessory.js +83 -0
  145. package/dist/devices-matter/ColorTemperatureLightAccessory.js.map +1 -0
  146. package/dist/devices-matter/ContactSensorAccessory.d.ts +10 -0
  147. package/dist/devices-matter/ContactSensorAccessory.d.ts.map +1 -0
  148. package/dist/devices-matter/ContactSensorAccessory.js +31 -0
  149. package/dist/devices-matter/ContactSensorAccessory.js.map +1 -0
  150. package/dist/devices-matter/DimmableLightAccessory.d.ts +56 -0
  151. package/dist/devices-matter/DimmableLightAccessory.d.ts.map +1 -0
  152. package/dist/devices-matter/DimmableLightAccessory.js +170 -0
  153. package/dist/devices-matter/DimmableLightAccessory.js.map +1 -0
  154. package/dist/devices-matter/DoorLockAccessory.d.ts +12 -0
  155. package/dist/devices-matter/DoorLockAccessory.d.ts.map +1 -0
  156. package/dist/devices-matter/DoorLockAccessory.js +47 -0
  157. package/dist/devices-matter/DoorLockAccessory.js.map +1 -0
  158. package/dist/devices-matter/ExtendedColorLightAccessory.d.ts +19 -0
  159. package/dist/devices-matter/ExtendedColorLightAccessory.d.ts.map +1 -0
  160. package/dist/devices-matter/ExtendedColorLightAccessory.js +108 -0
  161. package/dist/devices-matter/ExtendedColorLightAccessory.js.map +1 -0
  162. package/dist/devices-matter/FanAccessory.d.ts +14 -0
  163. package/dist/devices-matter/FanAccessory.d.ts.map +1 -0
  164. package/dist/devices-matter/FanAccessory.js +73 -0
  165. package/dist/devices-matter/FanAccessory.js.map +1 -0
  166. package/dist/devices-matter/HumiditySensorAccessory.d.ts +10 -0
  167. package/dist/devices-matter/HumiditySensorAccessory.d.ts.map +1 -0
  168. package/dist/devices-matter/HumiditySensorAccessory.js +33 -0
  169. package/dist/devices-matter/HumiditySensorAccessory.js.map +1 -0
  170. package/dist/devices-matter/LeakSensorAccessory.d.ts +10 -0
  171. package/dist/devices-matter/LeakSensorAccessory.d.ts.map +1 -0
  172. package/dist/devices-matter/LeakSensorAccessory.js +30 -0
  173. package/dist/devices-matter/LeakSensorAccessory.js.map +1 -0
  174. package/dist/devices-matter/LightSensorAccessory.d.ts +10 -0
  175. package/dist/devices-matter/LightSensorAccessory.d.ts.map +1 -0
  176. package/dist/devices-matter/LightSensorAccessory.js +33 -0
  177. package/dist/devices-matter/LightSensorAccessory.js.map +1 -0
  178. package/dist/devices-matter/OccupancySensorAccessory.d.ts +10 -0
  179. package/dist/devices-matter/OccupancySensorAccessory.d.ts.map +1 -0
  180. package/dist/devices-matter/OccupancySensorAccessory.js +43 -0
  181. package/dist/devices-matter/OccupancySensorAccessory.js.map +1 -0
  182. package/dist/devices-matter/OnOffLightAccessory.d.ts +36 -0
  183. package/dist/devices-matter/OnOffLightAccessory.d.ts.map +1 -0
  184. package/dist/devices-matter/OnOffLightAccessory.js +117 -0
  185. package/dist/devices-matter/OnOffLightAccessory.js.map +1 -0
  186. package/dist/devices-matter/OnOffOutletAccessory.d.ts +12 -0
  187. package/dist/devices-matter/OnOffOutletAccessory.d.ts.map +1 -0
  188. package/dist/devices-matter/OnOffOutletAccessory.js +43 -0
  189. package/dist/devices-matter/OnOffOutletAccessory.js.map +1 -0
  190. package/dist/devices-matter/OnOffSwitchAccessory.d.ts +12 -0
  191. package/dist/devices-matter/OnOffSwitchAccessory.d.ts.map +1 -0
  192. package/dist/devices-matter/OnOffSwitchAccessory.js +43 -0
  193. package/dist/devices-matter/OnOffSwitchAccessory.js.map +1 -0
  194. package/dist/devices-matter/RoboticVacuumAccessory.d.ts +66 -0
  195. package/dist/devices-matter/RoboticVacuumAccessory.d.ts.map +1 -0
  196. package/dist/devices-matter/RoboticVacuumAccessory.js +402 -0
  197. package/dist/devices-matter/RoboticVacuumAccessory.js.map +1 -0
  198. package/dist/devices-matter/SmokeCOAlarmAccessory.d.ts +11 -0
  199. package/dist/devices-matter/SmokeCOAlarmAccessory.d.ts.map +1 -0
  200. package/dist/devices-matter/SmokeCOAlarmAccessory.js +49 -0
  201. package/dist/devices-matter/SmokeCOAlarmAccessory.js.map +1 -0
  202. package/dist/devices-matter/TemperatureSensorAccessory.d.ts +10 -0
  203. package/dist/devices-matter/TemperatureSensorAccessory.d.ts.map +1 -0
  204. package/dist/devices-matter/TemperatureSensorAccessory.js +33 -0
  205. package/dist/devices-matter/TemperatureSensorAccessory.js.map +1 -0
  206. package/dist/devices-matter/ThermostatAccessory.d.ts +17 -0
  207. package/dist/devices-matter/ThermostatAccessory.d.ts.map +1 -0
  208. package/dist/devices-matter/ThermostatAccessory.js +87 -0
  209. package/dist/devices-matter/ThermostatAccessory.js.map +1 -0
  210. package/dist/devices-matter/VenetianBlindAccessory.d.ts +17 -0
  211. package/dist/devices-matter/VenetianBlindAccessory.d.ts.map +1 -0
  212. package/dist/devices-matter/VenetianBlindAccessory.js +100 -0
  213. package/dist/devices-matter/VenetianBlindAccessory.js.map +1 -0
  214. package/dist/devices-matter/WindowBlindAccessory.d.ts +15 -0
  215. package/dist/devices-matter/WindowBlindAccessory.d.ts.map +1 -0
  216. package/dist/devices-matter/WindowBlindAccessory.js +81 -0
  217. package/dist/devices-matter/WindowBlindAccessory.js.map +1 -0
  218. package/dist/devices-matter/custom/PowerStripAccessory.d.ts +97 -0
  219. package/dist/devices-matter/custom/PowerStripAccessory.d.ts.map +1 -0
  220. package/dist/devices-matter/custom/PowerStripAccessory.js +265 -0
  221. package/dist/devices-matter/custom/PowerStripAccessory.js.map +1 -0
  222. package/dist/devices-matter/custom/index.d.ts +8 -0
  223. package/dist/devices-matter/custom/index.d.ts.map +1 -0
  224. package/dist/devices-matter/custom/index.js +8 -0
  225. package/dist/devices-matter/custom/index.js.map +1 -0
  226. package/dist/devices-matter/index.d.ts +29 -0
  227. package/dist/devices-matter/index.d.ts.map +1 -0
  228. package/dist/devices-matter/index.js +28 -0
  229. package/dist/devices-matter/index.js.map +1 -0
  230. package/dist/homebridge-ui/public/index.html +1 -1
  231. package/dist/index.d.ts.map +1 -1
  232. package/dist/index.js +7 -2
  233. package/dist/index.js.map +1 -1
  234. package/dist/index.test.js +2 -2
  235. package/dist/index.test.js.map +1 -1
  236. package/dist/irdevice/airconditioner.d.ts +3 -3
  237. package/dist/irdevice/airconditioner.d.ts.map +1 -1
  238. package/dist/irdevice/airconditioner.js.map +1 -1
  239. package/dist/irdevice/airpurifier.d.ts +3 -3
  240. package/dist/irdevice/airpurifier.d.ts.map +1 -1
  241. package/dist/irdevice/airpurifier.js.map +1 -1
  242. package/dist/irdevice/camera.d.ts +3 -3
  243. package/dist/irdevice/camera.d.ts.map +1 -1
  244. package/dist/irdevice/camera.js.map +1 -1
  245. package/dist/irdevice/fan.d.ts +3 -3
  246. package/dist/irdevice/fan.d.ts.map +1 -1
  247. package/dist/irdevice/fan.js.map +1 -1
  248. package/dist/irdevice/irdevice.d.ts +3 -3
  249. package/dist/irdevice/irdevice.d.ts.map +1 -1
  250. package/dist/irdevice/irdevice.js.map +1 -1
  251. package/dist/irdevice/light.d.ts +3 -3
  252. package/dist/irdevice/light.d.ts.map +1 -1
  253. package/dist/irdevice/light.js.map +1 -1
  254. package/dist/irdevice/other.d.ts +3 -3
  255. package/dist/irdevice/other.d.ts.map +1 -1
  256. package/dist/irdevice/other.js.map +1 -1
  257. package/dist/irdevice/tv.d.ts +3 -3
  258. package/dist/irdevice/tv.d.ts.map +1 -1
  259. package/dist/irdevice/tv.js.map +1 -1
  260. package/dist/irdevice/vacuumcleaner.d.ts +3 -3
  261. package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
  262. package/dist/irdevice/vacuumcleaner.js.map +1 -1
  263. package/dist/irdevice/waterheater.d.ts +3 -3
  264. package/dist/irdevice/waterheater.d.ts.map +1 -1
  265. package/dist/irdevice/waterheater.js.map +1 -1
  266. package/dist/{platform.d.ts → platform-hap.d.ts} +2 -2
  267. package/dist/platform-hap.d.ts.map +1 -0
  268. package/dist/{platform.js → platform-hap.js} +32 -31
  269. package/dist/{platform.js.map → platform-hap.js.map} +1 -1
  270. package/dist/platform-matter.d.ts +75 -0
  271. package/dist/platform-matter.d.ts.map +1 -0
  272. package/dist/platform-matter.js +362 -0
  273. package/dist/platform-matter.js.map +1 -0
  274. package/dist/verifyconfig.test.d.ts +2 -0
  275. package/dist/verifyconfig.test.d.ts.map +1 -0
  276. package/dist/verifyconfig.test.js +167 -0
  277. package/dist/verifyconfig.test.js.map +1 -0
  278. package/docs/index.html +20 -11
  279. package/docs/variables/default.html +1 -1
  280. package/package.json +10 -10
  281. package/src/{device → devices-hap}/airpurifier.ts +2 -2
  282. package/src/{device → devices-hap}/blindtilt.ts +7 -3
  283. package/src/{device → devices-hap}/bot.ts +2 -2
  284. package/src/{device → devices-hap}/ceilinglight.ts +2 -2
  285. package/src/{device → devices-hap}/colorbulb.ts +2 -2
  286. package/src/{device → devices-hap}/contact.ts +2 -2
  287. package/src/{device → devices-hap}/curtain.ts +32 -10
  288. package/src/{device → devices-hap}/device.ts +12 -6
  289. package/src/{device → devices-hap}/fan.ts +2 -2
  290. package/src/{device → devices-hap}/hub.ts +7 -6
  291. package/src/{device → devices-hap}/humidifier.ts +2 -2
  292. package/src/{device → devices-hap}/iosensor.ts +2 -2
  293. package/src/{device → devices-hap}/lightstrip.ts +2 -2
  294. package/src/{device → devices-hap}/lock.ts +2 -2
  295. package/src/{device → devices-hap}/meter.ts +2 -2
  296. package/src/{device → devices-hap}/meterplus.ts +2 -2
  297. package/src/{device → devices-hap}/meterpro.ts +18 -5
  298. package/src/{device → devices-hap}/motion.ts +2 -2
  299. package/src/{device → devices-hap}/plug.ts +2 -2
  300. package/src/{device → devices-hap}/relayswitch.ts +2 -2
  301. package/src/{device → devices-hap}/robotvacuumcleaner.ts +2 -2
  302. package/src/{device → devices-hap}/waterdetector.ts +2 -2
  303. package/src/devices-matter/BaseMatterAccessory.ts +131 -0
  304. package/src/devices-matter/ColorLightAccessory.ts +113 -0
  305. package/src/devices-matter/ColorTemperatureLightAccessory.ts +98 -0
  306. package/src/devices-matter/ContactSensorAccessory.ts +37 -0
  307. package/src/devices-matter/DimmableLightAccessory.ts +196 -0
  308. package/src/devices-matter/DoorLockAccessory.ts +56 -0
  309. package/src/devices-matter/ExtendedColorLightAccessory.ts +127 -0
  310. package/src/devices-matter/FanAccessory.ts +87 -0
  311. package/src/devices-matter/HumiditySensorAccessory.ts +39 -0
  312. package/src/devices-matter/LeakSensorAccessory.ts +36 -0
  313. package/src/devices-matter/LightSensorAccessory.ts +39 -0
  314. package/src/devices-matter/OccupancySensorAccessory.ts +52 -0
  315. package/src/devices-matter/OnOffLightAccessory.ts +133 -0
  316. package/src/devices-matter/OnOffOutletAccessory.ts +52 -0
  317. package/src/devices-matter/OnOffSwitchAccessory.ts +52 -0
  318. package/src/devices-matter/RoboticVacuumAccessory.ts +484 -0
  319. package/src/devices-matter/SmokeCOAlarmAccessory.ts +59 -0
  320. package/src/devices-matter/TemperatureSensorAccessory.ts +39 -0
  321. package/src/devices-matter/ThermostatAccessory.ts +105 -0
  322. package/src/devices-matter/VenetianBlindAccessory.ts +118 -0
  323. package/src/devices-matter/WindowBlindAccessory.ts +94 -0
  324. package/src/devices-matter/custom/PowerStripAccessory.ts +309 -0
  325. package/src/devices-matter/custom/index.ts +8 -0
  326. package/src/devices-matter/index.ts +29 -0
  327. package/src/homebridge-ui/public/index.html +1 -1
  328. package/src/index.test.ts +2 -2
  329. package/src/index.ts +7 -2
  330. package/src/irdevice/airconditioner.ts +2 -2
  331. package/src/irdevice/airpurifier.ts +2 -2
  332. package/src/irdevice/camera.ts +2 -2
  333. package/src/irdevice/fan.ts +2 -2
  334. package/src/irdevice/irdevice.ts +2 -2
  335. package/src/irdevice/light.ts +2 -2
  336. package/src/irdevice/other.ts +2 -2
  337. package/src/irdevice/tv.ts +2 -2
  338. package/src/irdevice/vacuumcleaner.ts +2 -2
  339. package/src/irdevice/waterheater.ts +2 -2
  340. package/src/{platform.ts → platform-hap.ts} +31 -30
  341. package/src/platform-matter.ts +450 -0
  342. package/src/verifyconfig.test.ts +197 -0
  343. package/tsconfig.json +2 -1
  344. package/typedoc.json +1 -0
  345. package/.github/workflows/build.yml +0 -18
  346. package/.github/workflows/changerelease.yml +0 -11
  347. package/.github/workflows/labeler.yml +0 -16
  348. package/.github/workflows/release-drafter.yml +0 -14
  349. package/dist/device/airpurifier.d.ts.map +0 -1
  350. package/dist/device/airpurifier.js.map +0 -1
  351. package/dist/device/blindtilt.d.ts.map +0 -1
  352. package/dist/device/blindtilt.js.map +0 -1
  353. package/dist/device/bot.d.ts.map +0 -1
  354. package/dist/device/bot.js.map +0 -1
  355. package/dist/device/ceilinglight.d.ts.map +0 -1
  356. package/dist/device/ceilinglight.js.map +0 -1
  357. package/dist/device/colorbulb.d.ts.map +0 -1
  358. package/dist/device/colorbulb.js.map +0 -1
  359. package/dist/device/contact.d.ts.map +0 -1
  360. package/dist/device/contact.js.map +0 -1
  361. package/dist/device/curtain.d.ts.map +0 -1
  362. package/dist/device/curtain.js.map +0 -1
  363. package/dist/device/device.d.ts.map +0 -1
  364. package/dist/device/device.js.map +0 -1
  365. package/dist/device/fan.d.ts.map +0 -1
  366. package/dist/device/fan.js.map +0 -1
  367. package/dist/device/hub.d.ts.map +0 -1
  368. package/dist/device/hub.js.map +0 -1
  369. package/dist/device/humidifier.d.ts.map +0 -1
  370. package/dist/device/humidifier.js.map +0 -1
  371. package/dist/device/iosensor.d.ts.map +0 -1
  372. package/dist/device/iosensor.js.map +0 -1
  373. package/dist/device/lightstrip.d.ts.map +0 -1
  374. package/dist/device/lightstrip.js.map +0 -1
  375. package/dist/device/lock.d.ts.map +0 -1
  376. package/dist/device/lock.js.map +0 -1
  377. package/dist/device/meter.d.ts.map +0 -1
  378. package/dist/device/meter.js.map +0 -1
  379. package/dist/device/meterplus.d.ts.map +0 -1
  380. package/dist/device/meterplus.js.map +0 -1
  381. package/dist/device/meterpro.d.ts.map +0 -1
  382. package/dist/device/meterpro.js.map +0 -1
  383. package/dist/device/motion.d.ts.map +0 -1
  384. package/dist/device/motion.js.map +0 -1
  385. package/dist/device/plug.d.ts.map +0 -1
  386. package/dist/device/plug.js.map +0 -1
  387. package/dist/device/relayswitch.d.ts.map +0 -1
  388. package/dist/device/relayswitch.js.map +0 -1
  389. package/dist/device/robotvacuumcleaner.d.ts.map +0 -1
  390. package/dist/device/robotvacuumcleaner.js.map +0 -1
  391. package/dist/device/waterdetector.d.ts.map +0 -1
  392. package/dist/device/waterdetector.js.map +0 -1
  393. package/dist/platform.d.ts.map +0 -1
  394. /package/dist/{device → devices-hap}/airpurifier.js +0 -0
  395. /package/dist/{device → devices-hap}/bot.js +0 -0
  396. /package/dist/{device → devices-hap}/ceilinglight.js +0 -0
  397. /package/dist/{device → devices-hap}/colorbulb.js +0 -0
  398. /package/dist/{device → devices-hap}/contact.js +0 -0
  399. /package/dist/{device → devices-hap}/fan.js +0 -0
  400. /package/dist/{device → devices-hap}/humidifier.js +0 -0
  401. /package/dist/{device → devices-hap}/iosensor.js +0 -0
  402. /package/dist/{device → devices-hap}/lightstrip.js +0 -0
  403. /package/dist/{device → devices-hap}/lock.js +0 -0
  404. /package/dist/{device → devices-hap}/meter.js +0 -0
  405. /package/dist/{device → devices-hap}/meterplus.js +0 -0
  406. /package/dist/{device → devices-hap}/motion.js +0 -0
  407. /package/dist/{device → devices-hap}/plug.js +0 -0
  408. /package/dist/{device → devices-hap}/relayswitch.js +0 -0
  409. /package/dist/{device → devices-hap}/robotvacuumcleaner.js +0 -0
  410. /package/dist/{device → devices-hap}/waterdetector.js +0 -0
@@ -5,7 +5,7 @@
5
5
  import type { API, CharacteristicValue, HAP, Logging, PlatformAccessory, Service } from 'homebridge'
6
6
  import type { bodyChange, irdevice } from 'node-switchbot'
7
7
 
8
- import type { SwitchBotPlatform } from '../platform.js'
8
+ import type { SwitchBotHAPPlatform } from '../platform-hap.js'
9
9
  import type { irAirConfig, irDevicesConfig, irFanConfig, irLightConfig, irOtherConfig, SwitchBotPlatformConfig } from '../settings.js'
10
10
 
11
11
  export abstract class irdeviceBase {
@@ -26,7 +26,7 @@ export abstract class irdeviceBase {
26
26
  protected deviceDisablePushDetail?: boolean
27
27
 
28
28
  constructor(
29
- protected readonly platform: SwitchBotPlatform,
29
+ protected readonly platform: SwitchBotHAPPlatform,
30
30
  protected accessory: PlatformAccessory,
31
31
  protected device: irdevice & irDevicesConfig,
32
32
  ) {
@@ -5,7 +5,7 @@
5
5
  import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
6
6
  import type { bodyChange, irdevice } from 'node-switchbot'
7
7
 
8
- import type { SwitchBotPlatform } from '../platform.js'
8
+ import type { SwitchBotHAPPlatform } from '../platform-hap.js'
9
9
  import type { irDevicesConfig, irLightConfig } from '../settings.js'
10
10
 
11
11
  import { irdeviceBase } from './irdevice.js'
@@ -38,7 +38,7 @@ export class Light extends irdeviceBase {
38
38
  }
39
39
 
40
40
  constructor(
41
- readonly platform: SwitchBotPlatform,
41
+ readonly platform: SwitchBotHAPPlatform,
42
42
  accessory: PlatformAccessory,
43
43
  device: irdevice & irDevicesConfig,
44
44
  ) {
@@ -5,7 +5,7 @@
5
5
  import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
6
6
  import type { bodyChange, irdevice } from 'node-switchbot'
7
7
 
8
- import type { SwitchBotPlatform } from '../platform.js'
8
+ import type { SwitchBotHAPPlatform } from '../platform-hap.js'
9
9
  import type { irDevicesConfig, irOtherConfig } from '../settings.js'
10
10
 
11
11
  import { irdeviceBase } from './irdevice.js'
@@ -73,7 +73,7 @@ export class Others extends irdeviceBase {
73
73
  otherDeviceType?: string
74
74
 
75
75
  constructor(
76
- readonly platform: SwitchBotPlatform,
76
+ readonly platform: SwitchBotHAPPlatform,
77
77
  accessory: PlatformAccessory,
78
78
  device: irdevice & irDevicesConfig,
79
79
  ) {
@@ -5,7 +5,7 @@
5
5
  import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
6
6
  import type { bodyChange, irdevice } from 'node-switchbot'
7
7
 
8
- import type { SwitchBotPlatform } from '../platform.js'
8
+ import type { SwitchBotHAPPlatform } from '../platform-hap.js'
9
9
  import type { irDevicesConfig } from '../settings.js'
10
10
 
11
11
  import { irdeviceBase } from './irdevice.js'
@@ -38,7 +38,7 @@ export class TV extends irdeviceBase {
38
38
  // Characteristic Values
39
39
 
40
40
  constructor(
41
- readonly platform: SwitchBotPlatform,
41
+ readonly platform: SwitchBotHAPPlatform,
42
42
  accessory: PlatformAccessory,
43
43
  device: irdevice & irDevicesConfig,
44
44
  ) {
@@ -5,7 +5,7 @@
5
5
  import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
6
6
  import type { bodyChange, irdevice } from 'node-switchbot'
7
7
 
8
- import type { SwitchBotPlatform } from '../platform.js'
8
+ import type { SwitchBotHAPPlatform } from '../platform-hap.js'
9
9
  import type { irDevicesConfig } from '../settings.js'
10
10
 
11
11
  import { irdeviceBase } from './irdevice.js'
@@ -24,7 +24,7 @@ export class VacuumCleaner extends irdeviceBase {
24
24
  }
25
25
 
26
26
  constructor(
27
- readonly platform: SwitchBotPlatform,
27
+ readonly platform: SwitchBotHAPPlatform,
28
28
  accessory: PlatformAccessory,
29
29
  device: irdevice & irDevicesConfig,
30
30
  ) {
@@ -5,7 +5,7 @@
5
5
  import type { CharacteristicValue, PlatformAccessory, Service } from 'homebridge'
6
6
  import type { bodyChange, irdevice } from 'node-switchbot'
7
7
 
8
- import type { SwitchBotPlatform } from '../platform.js'
8
+ import type { SwitchBotHAPPlatform } from '../platform-hap.js'
9
9
  import type { irDevicesConfig } from '../settings.js'
10
10
 
11
11
  import { irdeviceBase } from './irdevice.js'
@@ -24,7 +24,7 @@ export class WaterHeater extends irdeviceBase {
24
24
  }
25
25
 
26
26
  constructor(
27
- readonly platform: SwitchBotPlatform,
27
+ readonly platform: SwitchBotHAPPlatform,
28
28
  accessory: PlatformAccessory,
29
29
  device: irdevice & irDevicesConfig,
30
30
  ) {
@@ -24,27 +24,27 @@ import { EveHomeKitTypes } from 'homebridge-lib/EveHomeKitTypes'
24
24
  import { LogLevel, SwitchBotBLE, SwitchBotModel, SwitchBotOpenAPI } from 'node-switchbot'
25
25
  import { queueScheduler } from 'rxjs'
26
26
 
27
- import { AirPurifier } from './device/airpurifier.js'
28
- import { BlindTilt } from './device/blindtilt.js'
29
- import { Bot } from './device/bot.js'
30
- import { CeilingLight } from './device/ceilinglight.js'
31
- import { ColorBulb } from './device/colorbulb.js'
32
- import { Contact } from './device/contact.js'
33
- import { Curtain } from './device/curtain.js'
34
- import { Fan } from './device/fan.js'
35
- import { Hub } from './device/hub.js'
36
- import { Humidifier } from './device/humidifier.js'
37
- import { IOSensor } from './device/iosensor.js'
38
- import { StripLight } from './device/lightstrip.js'
39
- import { Lock } from './device/lock.js'
40
- import { Meter } from './device/meter.js'
41
- import { MeterPlus } from './device/meterplus.js'
42
- import { MeterPro } from './device/meterpro.js'
43
- import { Motion } from './device/motion.js'
44
- import { Plug } from './device/plug.js'
45
- import { RelaySwitch } from './device/relayswitch.js'
46
- import { RobotVacuumCleaner } from './device/robotvacuumcleaner.js'
47
- import { WaterDetector } from './device/waterdetector.js'
27
+ import { AirPurifier } from './devices-hap/airpurifier.js'
28
+ import { BlindTilt } from './devices-hap/blindtilt.js'
29
+ import { Bot } from './devices-hap/bot.js'
30
+ import { CeilingLight } from './devices-hap/ceilinglight.js'
31
+ import { ColorBulb } from './devices-hap/colorbulb.js'
32
+ import { Contact } from './devices-hap/contact.js'
33
+ import { Curtain } from './devices-hap/curtain.js'
34
+ import { Fan } from './devices-hap/fan.js'
35
+ import { Hub } from './devices-hap/hub.js'
36
+ import { Humidifier } from './devices-hap/humidifier.js'
37
+ import { IOSensor } from './devices-hap/iosensor.js'
38
+ import { StripLight } from './devices-hap/lightstrip.js'
39
+ import { Lock } from './devices-hap/lock.js'
40
+ import { Meter } from './devices-hap/meter.js'
41
+ import { MeterPlus } from './devices-hap/meterplus.js'
42
+ import { MeterPro } from './devices-hap/meterpro.js'
43
+ import { Motion } from './devices-hap/motion.js'
44
+ import { Plug } from './devices-hap/plug.js'
45
+ import { RelaySwitch } from './devices-hap/relayswitch.js'
46
+ import { RobotVacuumCleaner } from './devices-hap/robotvacuumcleaner.js'
47
+ import { WaterDetector } from './devices-hap/waterdetector.js'
48
48
  import { AirConditioner } from './irdevice/airconditioner.js'
49
49
  import { AirPurifierIR } from './irdevice/airpurifier.js'
50
50
  import { Camera } from './irdevice/camera.js'
@@ -62,7 +62,7 @@ import { formatDeviceIdAsMac, isBlindTiltDevice, isCurtainDevice, safeStringify,
62
62
  * This class is the main constructor for your plugin, this is where you should
63
63
  * parse the user config and discover/register accessories with Homebridge.
64
64
  */
65
- export class SwitchBotPlatform implements DynamicPlatformPlugin {
65
+ export class SwitchBotHAPPlatform implements DynamicPlatformPlugin {
66
66
  // Platform properties
67
67
  public accessories: PlatformAccessory[] = []
68
68
  public readonly api: API
@@ -233,7 +233,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
233
233
  const context = JSON.parse(message.toString())
234
234
  this.webhookEventHandler[context.deviceMac]?.(context)
235
235
  } catch (e: any) {
236
- this.errorLog(`Failed to handle webhook event. Error:${e.message ?? e}`)
236
+ this.errorLog(`Failed to handle webhook event. Error: ${e.message ?? e}`)
237
237
  }
238
238
  })
239
239
  }
@@ -260,14 +260,14 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
260
260
  this.webhookEventHandler[body.context.deviceMac]?.(body.context)
261
261
  })
262
262
  } catch (e: any) {
263
- this.errorLog(`Failed to setup webhook. Error:${e.message ?? e}`)
263
+ this.errorLog(`Failed to setup webhook. Error: ${e.message ?? e}`)
264
264
  }
265
265
 
266
266
  this.api.on('shutdown', async () => {
267
267
  try {
268
268
  this.switchBotAPI.deleteWebhook(url)
269
269
  } catch (e: any) {
270
- this.errorLog(`Failed to delete webhook. Error:${e.message ?? e}`)
270
+ this.errorLog(`Failed to delete webhook. Error: ${e.message ?? e}`)
271
271
  }
272
272
  })
273
273
  }
@@ -318,14 +318,14 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
318
318
  try {
319
319
  await this.switchBotBLE.startScan()
320
320
  } catch (e: any) {
321
- this.errorLog(`Failed to start BLE scanning. Error:${e.message ?? e}`)
321
+ this.errorLog(`Failed to start BLE scanning. Error: ${e.message ?? e}`)
322
322
  }
323
323
  // Set an event handler to monitor advertisement packets
324
324
  this.switchBotBLE.onadvertisement = async (ad: any) => {
325
325
  try {
326
326
  this.bleEventHandler[ad.address]?.(ad.serviceData)
327
327
  } catch (e: any) {
328
- this.errorLog(`Failed to handle BLE event. Error:${e.message ?? e}`)
328
+ this.errorLog(`Failed to handle BLE event. Error: ${e.message ?? e}`)
329
329
  }
330
330
  }
331
331
  })()
@@ -335,7 +335,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
335
335
  // this.switchBotBLE.stopScan()
336
336
  this.infoLog('Stopped BLE scanning to close listening.')
337
337
  } catch (e: any) {
338
- this.errorLog(`Failed to stop Platform BLE scanning. Error:${e.message ?? e}`)
338
+ this.errorLog(`Failed to stop Platform BLE scanning. Error: ${e.message ?? e}`)
339
339
  }
340
340
  })
341
341
  }
@@ -370,10 +370,10 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
370
370
  for (const deviceConfig of this.config.options.devices) {
371
371
  if (!deviceConfig.hide_device) {
372
372
  if (!deviceConfig.deviceId) {
373
- throw new Error('The devices config section is missing the *Device ID* in the config. Please check your config.')
373
+ this.errorLog('The devices config section is missing the *Device ID* in the config. Please check your config.')
374
374
  }
375
375
  if (!deviceConfig.configDeviceType && (deviceConfig as devicesConfig).connectionType) {
376
- throw new Error('The devices config section is missing the *Device Type* in the config. Please check your config.')
376
+ this.errorLog('The devices config section is missing the *Device Type* in the config. Please check your config.')
377
377
  }
378
378
  }
379
379
  }
@@ -583,6 +583,7 @@ export class SwitchBotPlatform implements DynamicPlatformPlugin {
583
583
  'Humidifier': this.createHumidifier.bind(this),
584
584
  'Humidifier2': this.createHumidifier.bind(this),
585
585
  'Hub 2': this.createHub2.bind(this),
586
+ 'Hub 3': this.createHub2.bind(this),
586
587
  'Bot': this.createBot.bind(this),
587
588
  'Relay Switch 1': this.createRelaySwitch.bind(this),
588
589
  'Relay Switch 1PM': this.createRelaySwitch.bind(this),