@switchbot/homebridge-switchbot 5.0.0-beta.13 → 5.0.0-beta.130

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 (593) hide show
  1. package/.github/ISSUE_TEMPLATE/e2e-verification.md +36 -0
  2. package/.github/copilot-instructions.md +39 -0
  3. package/.github/workflows/ci.yml +32 -0
  4. package/.github/workflows/manual-e2e.yml +115 -0
  5. package/.github/workflows/release.yml +0 -4
  6. package/CHANGELOG.md +35 -0
  7. package/E2E-VERIFICATION.md +121 -0
  8. package/MIGRATION.md +54 -0
  9. package/README.md +99 -3
  10. package/TODO.md +263 -0
  11. package/config.schema.json +198 -14787
  12. package/dist/device-types.d.ts +31 -0
  13. package/dist/device-types.d.ts.map +1 -0
  14. package/dist/device-types.js +246 -0
  15. package/dist/device-types.js.map +1 -0
  16. package/dist/deviceFactory.d.ts +13 -0
  17. package/dist/deviceFactory.d.ts.map +1 -0
  18. package/dist/deviceFactory.js +146 -0
  19. package/dist/deviceFactory.js.map +1 -0
  20. package/dist/devices/deviceBase.d.ts +50 -0
  21. package/dist/devices/deviceBase.d.ts.map +1 -0
  22. package/dist/devices/deviceBase.js +119 -0
  23. package/dist/devices/deviceBase.js.map +1 -0
  24. package/dist/devices/genericDevice.d.ts +277 -0
  25. package/dist/devices/genericDevice.d.ts.map +1 -0
  26. package/dist/devices/genericDevice.js +1383 -0
  27. package/dist/devices/genericDevice.js.map +1 -0
  28. package/dist/errors.d.ts +5 -0
  29. package/dist/errors.d.ts.map +1 -0
  30. package/dist/errors.js +51 -0
  31. package/dist/errors.js.map +1 -0
  32. package/dist/homebridge-ui/endpoints/config.d.ts +3 -0
  33. package/dist/homebridge-ui/endpoints/config.d.ts.map +1 -0
  34. package/dist/homebridge-ui/endpoints/config.js +107 -0
  35. package/dist/homebridge-ui/endpoints/config.js.map +1 -0
  36. package/dist/homebridge-ui/endpoints/credentials.d.ts +6 -0
  37. package/dist/homebridge-ui/endpoints/credentials.d.ts.map +1 -0
  38. package/dist/homebridge-ui/endpoints/credentials.js +65 -0
  39. package/dist/homebridge-ui/endpoints/credentials.js.map +1 -0
  40. package/dist/homebridge-ui/endpoints/devices.d.ts +6 -0
  41. package/dist/homebridge-ui/endpoints/devices.d.ts.map +1 -0
  42. package/dist/homebridge-ui/endpoints/devices.js +430 -0
  43. package/dist/homebridge-ui/endpoints/devices.js.map +1 -0
  44. package/dist/homebridge-ui/endpoints/discovery.d.ts +7 -0
  45. package/dist/homebridge-ui/endpoints/discovery.d.ts.map +1 -0
  46. package/dist/homebridge-ui/endpoints/discovery.js +212 -0
  47. package/dist/homebridge-ui/endpoints/discovery.js.map +1 -0
  48. package/dist/homebridge-ui/public/css/styles.css +447 -0
  49. package/dist/homebridge-ui/public/index.html +144 -248
  50. package/dist/homebridge-ui/public/js/api.d.ts +62 -0
  51. package/dist/homebridge-ui/public/js/api.d.ts.map +1 -0
  52. package/dist/homebridge-ui/public/js/api.js +225 -0
  53. package/dist/homebridge-ui/public/js/api.js.map +1 -0
  54. package/dist/homebridge-ui/public/js/api.ts +279 -0
  55. package/dist/homebridge-ui/public/js/app.d.ts +2 -0
  56. package/dist/homebridge-ui/public/js/app.d.ts.map +1 -0
  57. package/dist/homebridge-ui/public/js/app.js +3600 -0
  58. package/dist/homebridge-ui/public/js/app.js.map +7 -0
  59. package/dist/homebridge-ui/public/js/app.ts +23 -0
  60. package/dist/homebridge-ui/public/js/constants.d.ts +2 -0
  61. package/dist/homebridge-ui/public/js/constants.d.ts.map +1 -0
  62. package/dist/homebridge-ui/public/js/constants.js +2 -0
  63. package/dist/homebridge-ui/public/js/constants.js.map +1 -0
  64. package/dist/homebridge-ui/public/js/constants.ts +1 -0
  65. package/dist/homebridge-ui/public/js/credentials.d.ts +3 -0
  66. package/dist/homebridge-ui/public/js/credentials.d.ts.map +1 -0
  67. package/dist/homebridge-ui/public/js/credentials.js +96 -0
  68. package/dist/homebridge-ui/public/js/credentials.js.map +1 -0
  69. package/dist/homebridge-ui/public/js/credentials.ts +100 -0
  70. package/dist/homebridge-ui/public/js/devices-delete.d.ts +3 -0
  71. package/dist/homebridge-ui/public/js/devices-delete.d.ts.map +1 -0
  72. package/dist/homebridge-ui/public/js/devices-delete.js +206 -0
  73. package/dist/homebridge-ui/public/js/devices-delete.js.map +1 -0
  74. package/dist/homebridge-ui/public/js/devices-delete.ts +236 -0
  75. package/dist/homebridge-ui/public/js/devices.d.ts +9 -0
  76. package/dist/homebridge-ui/public/js/devices.d.ts.map +1 -0
  77. package/dist/homebridge-ui/public/js/devices.js +94 -0
  78. package/dist/homebridge-ui/public/js/devices.js.map +1 -0
  79. package/dist/homebridge-ui/public/js/devices.ts +114 -0
  80. package/dist/homebridge-ui/public/js/discovery.d.ts +4 -0
  81. package/dist/homebridge-ui/public/js/discovery.d.ts.map +1 -0
  82. package/dist/homebridge-ui/public/js/discovery.js +1364 -0
  83. package/dist/homebridge-ui/public/js/discovery.js.map +1 -0
  84. package/dist/homebridge-ui/public/js/discovery.ts +1492 -0
  85. package/dist/homebridge-ui/public/js/logger.d.ts +6 -0
  86. package/dist/homebridge-ui/public/js/logger.d.ts.map +1 -0
  87. package/dist/homebridge-ui/public/js/logger.js +12 -0
  88. package/dist/homebridge-ui/public/js/logger.js.map +1 -0
  89. package/dist/homebridge-ui/public/js/logger.ts +11 -0
  90. package/dist/homebridge-ui/public/js/modal.d.ts +5 -0
  91. package/dist/homebridge-ui/public/js/modal.d.ts.map +1 -0
  92. package/dist/homebridge-ui/public/js/modal.js +26 -0
  93. package/dist/homebridge-ui/public/js/modal.js.map +1 -0
  94. package/dist/homebridge-ui/public/js/modal.ts +28 -0
  95. package/dist/homebridge-ui/public/js/modals.d.ts +7 -0
  96. package/dist/homebridge-ui/public/js/modals.d.ts.map +1 -0
  97. package/dist/homebridge-ui/public/js/modals.js +494 -0
  98. package/dist/homebridge-ui/public/js/modals.js.map +1 -0
  99. package/dist/homebridge-ui/public/js/modals.ts +546 -0
  100. package/dist/homebridge-ui/public/js/render.d.ts +68 -0
  101. package/dist/homebridge-ui/public/js/render.d.ts.map +1 -0
  102. package/dist/homebridge-ui/public/js/render.js +914 -0
  103. package/dist/homebridge-ui/public/js/render.js.map +1 -0
  104. package/dist/homebridge-ui/public/js/render.ts +1026 -0
  105. package/dist/homebridge-ui/public/js/toast.d.ts +6 -0
  106. package/dist/homebridge-ui/public/js/toast.d.ts.map +1 -0
  107. package/dist/homebridge-ui/public/js/toast.js +29 -0
  108. package/dist/homebridge-ui/public/js/toast.js.map +1 -0
  109. package/dist/homebridge-ui/public/js/toast.ts +37 -0
  110. package/dist/homebridge-ui/public/js/types.d.ts +23 -0
  111. package/dist/homebridge-ui/public/js/types.d.ts.map +1 -0
  112. package/dist/homebridge-ui/public/js/types.js +2 -0
  113. package/dist/homebridge-ui/public/js/types.js.map +1 -0
  114. package/dist/homebridge-ui/public/js/types.ts +26 -0
  115. package/dist/homebridge-ui/server.js +11 -41
  116. package/dist/homebridge-ui/server.js.map +1 -1
  117. package/dist/homebridge-ui/utils/config-parser.d.ts +35 -0
  118. package/dist/homebridge-ui/utils/config-parser.d.ts.map +1 -0
  119. package/dist/homebridge-ui/utils/config-parser.js +87 -0
  120. package/dist/homebridge-ui/utils/config-parser.js.map +1 -0
  121. package/dist/homebridge-ui/utils/device-migration.d.ts +35 -0
  122. package/dist/homebridge-ui/utils/device-migration.d.ts.map +1 -0
  123. package/dist/homebridge-ui/utils/device-migration.js +111 -0
  124. package/dist/homebridge-ui/utils/device-migration.js.map +1 -0
  125. package/dist/homebridge-ui/utils/logger.d.ts +7 -0
  126. package/dist/homebridge-ui/utils/logger.d.ts.map +1 -0
  127. package/dist/homebridge-ui/utils/logger.js +17 -0
  128. package/dist/homebridge-ui/utils/logger.js.map +1 -0
  129. package/dist/index.d.ts.map +1 -1
  130. package/dist/index.js +1 -3
  131. package/dist/index.js.map +1 -1
  132. package/dist/platform.d.ts +39 -0
  133. package/dist/platform.d.ts.map +1 -0
  134. package/dist/platform.js +1570 -0
  135. package/dist/platform.js.map +1 -0
  136. package/dist/settings.d.ts +10 -249
  137. package/dist/settings.d.ts.map +1 -1
  138. package/dist/settings.js +5 -30
  139. package/dist/settings.js.map +1 -1
  140. package/dist/switchbotClient.d.ts +32 -0
  141. package/dist/switchbotClient.d.ts.map +1 -0
  142. package/dist/switchbotClient.js +253 -0
  143. package/dist/switchbotClient.js.map +1 -0
  144. package/dist/utils.d.ts +36 -82
  145. package/dist/utils.d.ts.map +1 -1
  146. package/dist/utils.js +40 -786
  147. package/dist/utils.js.map +1 -1
  148. package/docs/assets/highlight.css +21 -0
  149. package/docs/assets/icons.js +1 -1
  150. package/docs/assets/icons.svg +1 -1
  151. package/docs/assets/main.js +2 -2
  152. package/docs/assets/style.css +3 -3
  153. package/docs/index.html +103 -13
  154. package/docs/variables/default.html +1 -1
  155. package/eslint.config.js +7 -8
  156. package/nodemon.json +2 -2
  157. package/package.json +36 -32
  158. package/scripts/build-ui.js +36 -0
  159. package/scripts/e2e/README.md +25 -0
  160. package/scripts/e2e/curtain-e2e.sh +70 -0
  161. package/scripts/e2e/fan-e2e.sh +75 -0
  162. package/scripts/e2e/light-advanced-e2e.sh +97 -0
  163. package/scripts/e2e/light-e2e.sh +75 -0
  164. package/scripts/e2e/list-accessories.sh +19 -0
  165. package/scripts/e2e/lock-e2e.sh +65 -0
  166. package/scripts/free-dev-ports.mjs +105 -0
  167. package/scripts/generate-matter-maps.js +60 -0
  168. package/scripts/run-e2e-local.sh +14 -0
  169. package/scripts/sync-device-types.mjs +28 -0
  170. package/src/device-types.ts +261 -0
  171. package/src/deviceFactory.ts +190 -0
  172. package/src/devices/deviceBase.ts +141 -0
  173. package/src/devices/genericDevice.ts +1333 -0
  174. package/src/errors.ts +43 -0
  175. package/src/homebridge-ui/endpoints/config.ts +126 -0
  176. package/src/homebridge-ui/endpoints/credentials.ts +74 -0
  177. package/src/homebridge-ui/endpoints/devices.ts +464 -0
  178. package/src/homebridge-ui/endpoints/discovery.ts +233 -0
  179. package/src/homebridge-ui/public/css/styles.css +447 -0
  180. package/src/homebridge-ui/public/index.html +144 -248
  181. package/src/homebridge-ui/public/js/api.ts +279 -0
  182. package/src/homebridge-ui/public/js/app.ts +23 -0
  183. package/src/homebridge-ui/public/js/constants.ts +1 -0
  184. package/src/homebridge-ui/public/js/credentials.ts +100 -0
  185. package/src/homebridge-ui/public/js/devices-delete.ts +236 -0
  186. package/src/homebridge-ui/public/js/devices.ts +114 -0
  187. package/src/homebridge-ui/public/js/discovery.ts +1492 -0
  188. package/src/homebridge-ui/public/js/logger.ts +11 -0
  189. package/src/homebridge-ui/public/js/modal.ts +28 -0
  190. package/src/homebridge-ui/public/js/modals.ts +546 -0
  191. package/src/homebridge-ui/public/js/render.ts +1026 -0
  192. package/src/homebridge-ui/public/js/toast.ts +37 -0
  193. package/src/homebridge-ui/public/js/types.ts +26 -0
  194. package/src/homebridge-ui/server.ts +11 -43
  195. package/src/homebridge-ui/utils/config-parser.ts +108 -0
  196. package/src/homebridge-ui/utils/device-migration.ts +144 -0
  197. package/src/homebridge-ui/utils/logger.ts +17 -0
  198. package/src/index.ts +1 -3
  199. package/src/platform.ts +1585 -0
  200. package/src/settings.ts +12 -277
  201. package/src/switchbotClient.ts +251 -0
  202. package/src/utils.ts +48 -812
  203. package/test/accessory-restore.spec.ts +73 -0
  204. package/test/device-mapping.spec.ts +37 -0
  205. package/test/deviceFactory.spec.ts +18 -0
  206. package/test/e2e/run-e2e.spec.ts +52 -0
  207. package/test/fan-swing.spec.ts +29 -0
  208. package/test/helpers/matter-harness.ts +53 -0
  209. package/test/lock-users.spec.ts +44 -0
  210. package/test/matter-childbridge.spec.ts +59 -0
  211. package/test/matter-descriptors.spec.ts +97 -0
  212. package/test/matter-device-state.spec.ts +101 -0
  213. package/test/matter-integration.spec.ts +136 -0
  214. package/test/platform.integration.spec.ts +55 -0
  215. package/test/switchbot-client-debounce.spec.ts +131 -0
  216. package/test/switchbot-client-openapi.spec.ts +56 -0
  217. package/test/switchbotClient.spec.ts +10 -0
  218. package/test/utils.spec.ts +36 -0
  219. package/todo/COMPLETED.md +542 -0
  220. package/todo/README.md +59 -0
  221. package/todo/TODO.md +190 -0
  222. package/todo/mockups/filtering-sorting.svg +112 -0
  223. package/todo/mockups/modal-switchbot-theme.svg +66 -0
  224. package/todo/mockups/signal-strength-visualization.svg +94 -0
  225. package/vitest.config.ts +7 -0
  226. package/coverage/base.css +0 -224
  227. package/coverage/block-navigation.js +0 -87
  228. package/coverage/clover.xml +0 -15847
  229. package/coverage/coverage-final.json +0 -42
  230. package/coverage/docs/assets/dmt/dmt-component-data.js.html +0 -85
  231. package/coverage/docs/assets/dmt/dmt-components.js.html +0 -286
  232. package/coverage/docs/assets/dmt/index.html +0 -131
  233. package/coverage/docs/assets/hierarchy.js.html +0 -85
  234. package/coverage/docs/assets/icons.js.html +0 -136
  235. package/coverage/docs/assets/index.html +0 -146
  236. package/coverage/docs/assets/main.js.html +0 -265
  237. package/coverage/favicon.png +0 -0
  238. package/coverage/index.html +0 -191
  239. package/coverage/prettify.css +0 -1
  240. package/coverage/prettify.js +0 -2
  241. package/coverage/sort-arrow-sprite.png +0 -0
  242. package/coverage/sorter.js +0 -196
  243. package/coverage/src/device/blindtilt.ts.html +0 -3238
  244. package/coverage/src/device/bot.ts.html +0 -2803
  245. package/coverage/src/device/ceilinglight.ts.html +0 -2338
  246. package/coverage/src/device/colorbulb.ts.html +0 -2824
  247. package/coverage/src/device/contact.ts.html +0 -1465
  248. package/coverage/src/device/curtain.ts.html +0 -2869
  249. package/coverage/src/device/device.ts.html +0 -2500
  250. package/coverage/src/device/fan.ts.html +0 -2242
  251. package/coverage/src/device/hub.ts.html +0 -1408
  252. package/coverage/src/device/humidifier.ts.html +0 -2116
  253. package/coverage/src/device/index.html +0 -416
  254. package/coverage/src/device/iosensor.ts.html +0 -1375
  255. package/coverage/src/device/lightstrip.ts.html +0 -2617
  256. package/coverage/src/device/lock.ts.html +0 -1963
  257. package/coverage/src/device/meter.ts.html +0 -1372
  258. package/coverage/src/device/meterplus.ts.html +0 -1384
  259. package/coverage/src/device/meterpro.ts.html +0 -1618
  260. package/coverage/src/device/motion.ts.html +0 -1264
  261. package/coverage/src/device/plug.ts.html +0 -1372
  262. package/coverage/src/device/relayswitch.ts.html +0 -2284
  263. package/coverage/src/device/robotvacuumcleaner.ts.html +0 -1810
  264. package/coverage/src/device/waterdetector.ts.html +0 -1294
  265. package/coverage/src/homebridge-ui/index.html +0 -116
  266. package/coverage/src/homebridge-ui/server.ts.html +0 -229
  267. package/coverage/src/index.html +0 -161
  268. package/coverage/src/index.ts.html +0 -124
  269. package/coverage/src/irdevice/airconditioner.ts.html +0 -1687
  270. package/coverage/src/irdevice/airpurifier.ts.html +0 -844
  271. package/coverage/src/irdevice/camera.ts.html +0 -475
  272. package/coverage/src/irdevice/fan.ts.html +0 -766
  273. package/coverage/src/irdevice/index.html +0 -251
  274. package/coverage/src/irdevice/irdevice.ts.html +0 -1117
  275. package/coverage/src/irdevice/light.ts.html +0 -826
  276. package/coverage/src/irdevice/other.ts.html +0 -2458
  277. package/coverage/src/irdevice/tv.ts.html +0 -1222
  278. package/coverage/src/irdevice/vacuumcleaner.ts.html +0 -466
  279. package/coverage/src/irdevice/waterheater.ts.html +0 -469
  280. package/coverage/src/platform.ts.html +0 -8776
  281. package/coverage/src/settings.ts.html +0 -934
  282. package/coverage/src/utils.ts.html +0 -2092
  283. package/dist/baseMatterAccessory.test.d.ts +0 -2
  284. package/dist/baseMatterAccessory.test.d.ts.map +0 -1
  285. package/dist/baseMatterAccessory.test.js +0 -71
  286. package/dist/baseMatterAccessory.test.js.map +0 -1
  287. package/dist/devices-hap/airpurifier.d.ts +0 -54
  288. package/dist/devices-hap/airpurifier.d.ts.map +0 -1
  289. package/dist/devices-hap/airpurifier.js +0 -527
  290. package/dist/devices-hap/airpurifier.js.map +0 -1
  291. package/dist/devices-hap/blindtilt.d.ts +0 -90
  292. package/dist/devices-hap/blindtilt.d.ts.map +0 -1
  293. package/dist/devices-hap/blindtilt.js +0 -974
  294. package/dist/devices-hap/blindtilt.js.map +0 -1
  295. package/dist/devices-hap/bot.d.ts +0 -102
  296. package/dist/devices-hap/bot.d.ts.map +0 -1
  297. package/dist/devices-hap/bot.js +0 -811
  298. package/dist/devices-hap/bot.js.map +0 -1
  299. package/dist/devices-hap/ceilinglight.d.ts +0 -85
  300. package/dist/devices-hap/ceilinglight.d.ts.map +0 -1
  301. package/dist/devices-hap/ceilinglight.js +0 -701
  302. package/dist/devices-hap/ceilinglight.js.map +0 -1
  303. package/dist/devices-hap/colorbulb.d.ts +0 -88
  304. package/dist/devices-hap/colorbulb.d.ts.map +0 -1
  305. package/dist/devices-hap/colorbulb.js +0 -881
  306. package/dist/devices-hap/colorbulb.js.map +0 -1
  307. package/dist/devices-hap/contact.d.ts +0 -44
  308. package/dist/devices-hap/contact.d.ts.map +0 -1
  309. package/dist/devices-hap/contact.js +0 -409
  310. package/dist/devices-hap/contact.js.map +0 -1
  311. package/dist/devices-hap/curtain.d.ts +0 -73
  312. package/dist/devices-hap/curtain.d.ts.map +0 -1
  313. package/dist/devices-hap/curtain.js +0 -869
  314. package/dist/devices-hap/curtain.js.map +0 -1
  315. package/dist/devices-hap/device.d.ts +0 -98
  316. package/dist/devices-hap/device.d.ts.map +0 -1
  317. package/dist/devices-hap/device.js +0 -749
  318. package/dist/devices-hap/device.js.map +0 -1
  319. package/dist/devices-hap/fan.d.ts +0 -69
  320. package/dist/devices-hap/fan.d.ts.map +0 -1
  321. package/dist/devices-hap/fan.js +0 -649
  322. package/dist/devices-hap/fan.js.map +0 -1
  323. package/dist/devices-hap/hub.d.ts +0 -37
  324. package/dist/devices-hap/hub.d.ts.map +0 -1
  325. package/dist/devices-hap/hub.js +0 -392
  326. package/dist/devices-hap/hub.js.map +0 -1
  327. package/dist/devices-hap/humidifier.d.ts +0 -68
  328. package/dist/devices-hap/humidifier.d.ts.map +0 -1
  329. package/dist/devices-hap/humidifier.js +0 -628
  330. package/dist/devices-hap/humidifier.js.map +0 -1
  331. package/dist/devices-hap/iosensor.d.ts +0 -42
  332. package/dist/devices-hap/iosensor.d.ts.map +0 -1
  333. package/dist/devices-hap/iosensor.js +0 -382
  334. package/dist/devices-hap/iosensor.js.map +0 -1
  335. package/dist/devices-hap/lightstrip.d.ts +0 -79
  336. package/dist/devices-hap/lightstrip.d.ts.map +0 -1
  337. package/dist/devices-hap/lightstrip.js +0 -797
  338. package/dist/devices-hap/lightstrip.js.map +0 -1
  339. package/dist/devices-hap/lock.d.ts +0 -53
  340. package/dist/devices-hap/lock.d.ts.map +0 -1
  341. package/dist/devices-hap/lock.js +0 -561
  342. package/dist/devices-hap/lock.js.map +0 -1
  343. package/dist/devices-hap/meter.d.ts +0 -37
  344. package/dist/devices-hap/meter.d.ts.map +0 -1
  345. package/dist/devices-hap/meter.js +0 -379
  346. package/dist/devices-hap/meter.js.map +0 -1
  347. package/dist/devices-hap/meterplus.d.ts +0 -42
  348. package/dist/devices-hap/meterplus.d.ts.map +0 -1
  349. package/dist/devices-hap/meterplus.js +0 -384
  350. package/dist/devices-hap/meterplus.js.map +0 -1
  351. package/dist/devices-hap/meterpro.d.ts +0 -43
  352. package/dist/devices-hap/meterpro.d.ts.map +0 -1
  353. package/dist/devices-hap/meterpro.js +0 -468
  354. package/dist/devices-hap/meterpro.js.map +0 -1
  355. package/dist/devices-hap/motion.d.ts +0 -42
  356. package/dist/devices-hap/motion.d.ts.map +0 -1
  357. package/dist/devices-hap/motion.js +0 -345
  358. package/dist/devices-hap/motion.js.map +0 -1
  359. package/dist/devices-hap/plug.d.ts +0 -49
  360. package/dist/devices-hap/plug.d.ts.map +0 -1
  361. package/dist/devices-hap/plug.js +0 -395
  362. package/dist/devices-hap/plug.js.map +0 -1
  363. package/dist/devices-hap/relayswitch.d.ts +0 -96
  364. package/dist/devices-hap/relayswitch.d.ts.map +0 -1
  365. package/dist/devices-hap/relayswitch.js +0 -642
  366. package/dist/devices-hap/relayswitch.js.map +0 -1
  367. package/dist/devices-hap/robotvacuumcleaner.d.ts +0 -54
  368. package/dist/devices-hap/robotvacuumcleaner.d.ts.map +0 -1
  369. package/dist/devices-hap/robotvacuumcleaner.js +0 -523
  370. package/dist/devices-hap/robotvacuumcleaner.js.map +0 -1
  371. package/dist/devices-hap/waterdetector.d.ts +0 -41
  372. package/dist/devices-hap/waterdetector.d.ts.map +0 -1
  373. package/dist/devices-hap/waterdetector.js +0 -356
  374. package/dist/devices-hap/waterdetector.js.map +0 -1
  375. package/dist/devices-matter/BaseMatterAccessory.d.ts +0 -78
  376. package/dist/devices-matter/BaseMatterAccessory.d.ts.map +0 -1
  377. package/dist/devices-matter/BaseMatterAccessory.js +0 -220
  378. package/dist/devices-matter/BaseMatterAccessory.js.map +0 -1
  379. package/dist/devices-matter/ColorLightAccessory.d.ts +0 -20
  380. package/dist/devices-matter/ColorLightAccessory.d.ts.map +0 -1
  381. package/dist/devices-matter/ColorLightAccessory.js +0 -95
  382. package/dist/devices-matter/ColorLightAccessory.js.map +0 -1
  383. package/dist/devices-matter/ColorTemperatureLightAccessory.d.ts +0 -18
  384. package/dist/devices-matter/ColorTemperatureLightAccessory.d.ts.map +0 -1
  385. package/dist/devices-matter/ColorTemperatureLightAccessory.js +0 -76
  386. package/dist/devices-matter/ColorTemperatureLightAccessory.js.map +0 -1
  387. package/dist/devices-matter/ContactSensorAccessory.d.ts +0 -12
  388. package/dist/devices-matter/ContactSensorAccessory.d.ts.map +0 -1
  389. package/dist/devices-matter/ContactSensorAccessory.js +0 -34
  390. package/dist/devices-matter/ContactSensorAccessory.js.map +0 -1
  391. package/dist/devices-matter/DimmableLightAccessory.d.ts +0 -58
  392. package/dist/devices-matter/DimmableLightAccessory.d.ts.map +0 -1
  393. package/dist/devices-matter/DimmableLightAccessory.js +0 -167
  394. package/dist/devices-matter/DimmableLightAccessory.js.map +0 -1
  395. package/dist/devices-matter/DoorLockAccessory.d.ts +0 -14
  396. package/dist/devices-matter/DoorLockAccessory.d.ts.map +0 -1
  397. package/dist/devices-matter/DoorLockAccessory.js +0 -50
  398. package/dist/devices-matter/DoorLockAccessory.js.map +0 -1
  399. package/dist/devices-matter/ExtendedColorLightAccessory.d.ts +0 -21
  400. package/dist/devices-matter/ExtendedColorLightAccessory.d.ts.map +0 -1
  401. package/dist/devices-matter/ExtendedColorLightAccessory.js +0 -106
  402. package/dist/devices-matter/ExtendedColorLightAccessory.js.map +0 -1
  403. package/dist/devices-matter/FanAccessory.d.ts +0 -16
  404. package/dist/devices-matter/FanAccessory.d.ts.map +0 -1
  405. package/dist/devices-matter/FanAccessory.js +0 -81
  406. package/dist/devices-matter/FanAccessory.js.map +0 -1
  407. package/dist/devices-matter/HumiditySensorAccessory.d.ts +0 -12
  408. package/dist/devices-matter/HumiditySensorAccessory.d.ts.map +0 -1
  409. package/dist/devices-matter/HumiditySensorAccessory.js +0 -34
  410. package/dist/devices-matter/HumiditySensorAccessory.js.map +0 -1
  411. package/dist/devices-matter/LeakSensorAccessory.d.ts +0 -12
  412. package/dist/devices-matter/LeakSensorAccessory.d.ts.map +0 -1
  413. package/dist/devices-matter/LeakSensorAccessory.js +0 -33
  414. package/dist/devices-matter/LeakSensorAccessory.js.map +0 -1
  415. package/dist/devices-matter/LightSensorAccessory.d.ts +0 -12
  416. package/dist/devices-matter/LightSensorAccessory.d.ts.map +0 -1
  417. package/dist/devices-matter/LightSensorAccessory.js +0 -34
  418. package/dist/devices-matter/LightSensorAccessory.js.map +0 -1
  419. package/dist/devices-matter/OccupancySensorAccessory.d.ts +0 -12
  420. package/dist/devices-matter/OccupancySensorAccessory.d.ts.map +0 -1
  421. package/dist/devices-matter/OccupancySensorAccessory.js +0 -39
  422. package/dist/devices-matter/OccupancySensorAccessory.js.map +0 -1
  423. package/dist/devices-matter/OnOffLightAccessory.d.ts +0 -38
  424. package/dist/devices-matter/OnOffLightAccessory.d.ts.map +0 -1
  425. package/dist/devices-matter/OnOffLightAccessory.js +0 -110
  426. package/dist/devices-matter/OnOffLightAccessory.js.map +0 -1
  427. package/dist/devices-matter/OnOffOutletAccessory.d.ts +0 -14
  428. package/dist/devices-matter/OnOffOutletAccessory.d.ts.map +0 -1
  429. package/dist/devices-matter/OnOffOutletAccessory.js +0 -43
  430. package/dist/devices-matter/OnOffOutletAccessory.js.map +0 -1
  431. package/dist/devices-matter/OnOffSwitchAccessory.d.ts +0 -14
  432. package/dist/devices-matter/OnOffSwitchAccessory.d.ts.map +0 -1
  433. package/dist/devices-matter/OnOffSwitchAccessory.js +0 -42
  434. package/dist/devices-matter/OnOffSwitchAccessory.js.map +0 -1
  435. package/dist/devices-matter/RoboticVacuumAccessory.d.ts +0 -68
  436. package/dist/devices-matter/RoboticVacuumAccessory.d.ts.map +0 -1
  437. package/dist/devices-matter/RoboticVacuumAccessory.js +0 -334
  438. package/dist/devices-matter/RoboticVacuumAccessory.js.map +0 -1
  439. package/dist/devices-matter/SmokeCOAlarmAccessory.d.ts +0 -11
  440. package/dist/devices-matter/SmokeCOAlarmAccessory.d.ts.map +0 -1
  441. package/dist/devices-matter/SmokeCOAlarmAccessory.js +0 -49
  442. package/dist/devices-matter/SmokeCOAlarmAccessory.js.map +0 -1
  443. package/dist/devices-matter/TemperatureSensorAccessory.d.ts +0 -12
  444. package/dist/devices-matter/TemperatureSensorAccessory.d.ts.map +0 -1
  445. package/dist/devices-matter/TemperatureSensorAccessory.js +0 -36
  446. package/dist/devices-matter/TemperatureSensorAccessory.js.map +0 -1
  447. package/dist/devices-matter/ThermostatAccessory.d.ts +0 -19
  448. package/dist/devices-matter/ThermostatAccessory.d.ts.map +0 -1
  449. package/dist/devices-matter/ThermostatAccessory.js +0 -95
  450. package/dist/devices-matter/ThermostatAccessory.js.map +0 -1
  451. package/dist/devices-matter/VenetianBlindAccessory.d.ts +0 -19
  452. package/dist/devices-matter/VenetianBlindAccessory.d.ts.map +0 -1
  453. package/dist/devices-matter/VenetianBlindAccessory.js +0 -99
  454. package/dist/devices-matter/VenetianBlindAccessory.js.map +0 -1
  455. package/dist/devices-matter/WindowBlindAccessory.d.ts +0 -17
  456. package/dist/devices-matter/WindowBlindAccessory.d.ts.map +0 -1
  457. package/dist/devices-matter/WindowBlindAccessory.js +0 -80
  458. package/dist/devices-matter/WindowBlindAccessory.js.map +0 -1
  459. package/dist/devices-matter/custom/PowerStripAccessory.d.ts +0 -97
  460. package/dist/devices-matter/custom/PowerStripAccessory.d.ts.map +0 -1
  461. package/dist/devices-matter/custom/PowerStripAccessory.js +0 -265
  462. package/dist/devices-matter/custom/PowerStripAccessory.js.map +0 -1
  463. package/dist/devices-matter/custom/index.d.ts +0 -8
  464. package/dist/devices-matter/custom/index.d.ts.map +0 -1
  465. package/dist/devices-matter/custom/index.js +0 -8
  466. package/dist/devices-matter/custom/index.js.map +0 -1
  467. package/dist/devices-matter/index.d.ts +0 -29
  468. package/dist/devices-matter/index.d.ts.map +0 -1
  469. package/dist/devices-matter/index.js +0 -28
  470. package/dist/devices-matter/index.js.map +0 -1
  471. package/dist/index.test.d.ts +0 -2
  472. package/dist/index.test.d.ts.map +0 -1
  473. package/dist/index.test.js +0 -19
  474. package/dist/index.test.js.map +0 -1
  475. package/dist/irdevice/airconditioner.d.ts +0 -61
  476. package/dist/irdevice/airconditioner.d.ts.map +0 -1
  477. package/dist/irdevice/airconditioner.js +0 -472
  478. package/dist/irdevice/airconditioner.js.map +0 -1
  479. package/dist/irdevice/airpurifier.d.ts +0 -50
  480. package/dist/irdevice/airpurifier.d.ts.map +0 -1
  481. package/dist/irdevice/airpurifier.js +0 -213
  482. package/dist/irdevice/airpurifier.js.map +0 -1
  483. package/dist/irdevice/camera.d.ts +0 -32
  484. package/dist/irdevice/camera.d.ts.map +0 -1
  485. package/dist/irdevice/camera.js +0 -107
  486. package/dist/irdevice/camera.js.map +0 -1
  487. package/dist/irdevice/fan.d.ts +0 -36
  488. package/dist/irdevice/fan.d.ts.map +0 -1
  489. package/dist/irdevice/fan.js +0 -200
  490. package/dist/irdevice/fan.js.map +0 -1
  491. package/dist/irdevice/irdevice.d.ts +0 -68
  492. package/dist/irdevice/irdevice.d.ts.map +0 -1
  493. package/dist/irdevice/irdevice.js +0 -298
  494. package/dist/irdevice/irdevice.js.map +0 -1
  495. package/dist/irdevice/light.d.ts +0 -36
  496. package/dist/irdevice/light.d.ts.map +0 -1
  497. package/dist/irdevice/light.js +0 -206
  498. package/dist/irdevice/light.js.map +0 -1
  499. package/dist/irdevice/other.d.ts +0 -57
  500. package/dist/irdevice/other.d.ts.map +0 -1
  501. package/dist/irdevice/other.js +0 -778
  502. package/dist/irdevice/other.js.map +0 -1
  503. package/dist/irdevice/tv.d.ts +0 -45
  504. package/dist/irdevice/tv.d.ts.map +0 -1
  505. package/dist/irdevice/tv.js +0 -327
  506. package/dist/irdevice/tv.js.map +0 -1
  507. package/dist/irdevice/vacuumcleaner.d.ts +0 -28
  508. package/dist/irdevice/vacuumcleaner.d.ts.map +0 -1
  509. package/dist/irdevice/vacuumcleaner.js +0 -104
  510. package/dist/irdevice/vacuumcleaner.js.map +0 -1
  511. package/dist/irdevice/waterheater.d.ts +0 -30
  512. package/dist/irdevice/waterheater.d.ts.map +0 -1
  513. package/dist/irdevice/waterheater.js +0 -105
  514. package/dist/irdevice/waterheater.js.map +0 -1
  515. package/dist/platform-hap.d.ts +0 -149
  516. package/dist/platform-hap.d.ts.map +0 -1
  517. package/dist/platform-hap.js +0 -2861
  518. package/dist/platform-hap.js.map +0 -1
  519. package/dist/platform-matter.d.ts +0 -120
  520. package/dist/platform-matter.d.ts.map +0 -1
  521. package/dist/platform-matter.js +0 -999
  522. package/dist/platform-matter.js.map +0 -1
  523. package/dist/utils.test.d.ts +0 -2
  524. package/dist/utils.test.d.ts.map +0 -1
  525. package/dist/utils.test.js +0 -95
  526. package/dist/utils.test.js.map +0 -1
  527. package/dist/verifyconfig.test.d.ts +0 -2
  528. package/dist/verifyconfig.test.d.ts.map +0 -1
  529. package/dist/verifyconfig.test.js +0 -167
  530. package/dist/verifyconfig.test.js.map +0 -1
  531. package/src/baseMatterAccessory.test.ts +0 -88
  532. package/src/custom.d.ts +0 -7
  533. package/src/devices-hap/airpurifier.ts +0 -563
  534. package/src/devices-hap/blindtilt.ts +0 -1049
  535. package/src/devices-hap/bot.ts +0 -900
  536. package/src/devices-hap/ceilinglight.ts +0 -742
  537. package/src/devices-hap/colorbulb.ts +0 -904
  538. package/src/devices-hap/contact.ts +0 -457
  539. package/src/devices-hap/curtain.ts +0 -944
  540. package/src/devices-hap/device.ts +0 -811
  541. package/src/devices-hap/fan.ts +0 -711
  542. package/src/devices-hap/hub.ts +0 -439
  543. package/src/devices-hap/humidifier.ts +0 -669
  544. package/src/devices-hap/iosensor.ts +0 -427
  545. package/src/devices-hap/lightstrip.ts +0 -836
  546. package/src/devices-hap/lock.ts +0 -620
  547. package/src/devices-hap/meter.ts +0 -426
  548. package/src/devices-hap/meterplus.ts +0 -430
  549. package/src/devices-hap/meterpro.ts +0 -522
  550. package/src/devices-hap/motion.ts +0 -390
  551. package/src/devices-hap/plug.ts +0 -423
  552. package/src/devices-hap/relayswitch.ts +0 -727
  553. package/src/devices-hap/robotvacuumcleaner.ts +0 -568
  554. package/src/devices-hap/waterdetector.ts +0 -400
  555. package/src/devices-matter/BaseMatterAccessory.ts +0 -249
  556. package/src/devices-matter/ColorLightAccessory.ts +0 -110
  557. package/src/devices-matter/ColorTemperatureLightAccessory.ts +0 -90
  558. package/src/devices-matter/ContactSensorAccessory.ts +0 -41
  559. package/src/devices-matter/DimmableLightAccessory.ts +0 -192
  560. package/src/devices-matter/DoorLockAccessory.ts +0 -60
  561. package/src/devices-matter/ExtendedColorLightAccessory.ts +0 -122
  562. package/src/devices-matter/FanAccessory.ts +0 -95
  563. package/src/devices-matter/HumiditySensorAccessory.ts +0 -41
  564. package/src/devices-matter/LeakSensorAccessory.ts +0 -40
  565. package/src/devices-matter/LightSensorAccessory.ts +0 -41
  566. package/src/devices-matter/OccupancySensorAccessory.ts +0 -48
  567. package/src/devices-matter/OnOffLightAccessory.ts +0 -125
  568. package/src/devices-matter/OnOffOutletAccessory.ts +0 -51
  569. package/src/devices-matter/OnOffSwitchAccessory.ts +0 -51
  570. package/src/devices-matter/RoboticVacuumAccessory.ts +0 -407
  571. package/src/devices-matter/SmokeCOAlarmAccessory.ts +0 -59
  572. package/src/devices-matter/TemperatureSensorAccessory.ts +0 -43
  573. package/src/devices-matter/ThermostatAccessory.ts +0 -110
  574. package/src/devices-matter/VenetianBlindAccessory.ts +0 -115
  575. package/src/devices-matter/WindowBlindAccessory.ts +0 -92
  576. package/src/devices-matter/custom/PowerStripAccessory.ts +0 -309
  577. package/src/devices-matter/custom/index.ts +0 -8
  578. package/src/devices-matter/index.ts +0 -29
  579. package/src/index.test.ts +0 -24
  580. package/src/irdevice/airconditioner.ts +0 -533
  581. package/src/irdevice/airpurifier.ts +0 -252
  582. package/src/irdevice/camera.ts +0 -129
  583. package/src/irdevice/fan.ts +0 -226
  584. package/src/irdevice/irdevice.ts +0 -344
  585. package/src/irdevice/light.ts +0 -246
  586. package/src/irdevice/other.ts +0 -790
  587. package/src/irdevice/tv.ts +0 -378
  588. package/src/irdevice/vacuumcleaner.ts +0 -126
  589. package/src/irdevice/waterheater.ts +0 -127
  590. package/src/platform-hap.ts +0 -2997
  591. package/src/platform-matter.ts +0 -1124
  592. package/src/utils.test.ts +0 -96
  593. package/src/verifyconfig.test.ts +0 -197
@@ -1,200 +0,0 @@
1
- import { irdeviceBase } from './irdevice.js';
2
- /**
3
- * Platform Accessory
4
- * An instance of this class is created for each accessory your platform registers
5
- * Each accessory may expose multiple services of different service types.
6
- */
7
- export class IRFan extends irdeviceBase {
8
- platform;
9
- // Services
10
- Fan;
11
- constructor(platform, accessory, device) {
12
- super(platform, accessory, device);
13
- this.platform = platform;
14
- // Set category
15
- accessory.category = 3 /* this.hap.Categories.FAN */;
16
- // Initialize Switch Service
17
- accessory.context.Fan = accessory.context.Fan ?? {};
18
- this.Fan = {
19
- Name: accessory.displayName,
20
- Service: accessory.getService(this.hap.Service.Fanv2) ?? accessory.addService(this.hap.Service.Fanv2),
21
- Active: accessory.context.Active ?? this.hap.Characteristic.Active.INACTIVE,
22
- SwingMode: accessory.context.SwingMode ?? this.hap.Characteristic.SwingMode.SWING_DISABLED,
23
- RotationSpeed: accessory.context.RotationSpeed ?? 0,
24
- RotationDirection: accessory.context.RotationDirection ?? this.hap.Characteristic.RotationDirection.CLOCKWISE,
25
- };
26
- accessory.context.Fan = this.Fan;
27
- this.Fan.Service.setCharacteristic(this.hap.Characteristic.Name, this.Fan.Name).getCharacteristic(this.hap.Characteristic.Active).onGet(() => {
28
- return this.Fan.Active;
29
- }).onSet(this.ActiveSet.bind(this));
30
- if (device.rotation_speed) {
31
- // handle Rotation Speed events using the RotationSpeed characteristic
32
- this.Fan.Service.getCharacteristic(this.hap.Characteristic.RotationSpeed).setProps({
33
- minStep: device.set_minStep ?? 1,
34
- minValue: device.set_min ?? 1,
35
- maxValue: device.set_max ?? 100,
36
- }).onGet(() => {
37
- return this.Fan.RotationSpeed;
38
- }).onSet(this.RotationSpeedSet.bind(this));
39
- }
40
- else if (this.Fan.Service.testCharacteristic(this.hap.Characteristic.RotationSpeed) && !device.swing_mode) {
41
- const characteristic = this.Fan.Service.getCharacteristic(this.hap.Characteristic.RotationSpeed);
42
- this.Fan.Service.removeCharacteristic(characteristic);
43
- this.debugLog('Rotation Speed Characteristic was removed.');
44
- }
45
- else {
46
- this.debugLog(`RotationSpeed Characteristic was not removed/added, Clear Cache on ${this.accessory.displayName} to remove Chracteristic`);
47
- }
48
- if (device.swing_mode) {
49
- // handle Osolcation events using the SwingMode characteristic
50
- this.Fan.Service.getCharacteristic(this.hap.Characteristic.SwingMode).onGet(() => {
51
- return this.Fan.SwingMode;
52
- }).onSet(this.SwingModeSet.bind(this));
53
- }
54
- else if (this.Fan.Service.testCharacteristic(this.hap.Characteristic.SwingMode) && !device.swing_mode) {
55
- const characteristic = this.Fan.Service.getCharacteristic(this.hap.Characteristic.SwingMode);
56
- this.Fan.Service.removeCharacteristic(characteristic);
57
- this.debugLog('Swing Mode Characteristic was removed.');
58
- }
59
- else {
60
- this.debugLog(`Swing Mode Characteristic was not removed/added, Clear Cache on ${this.accessory.displayName} To Remove Chracteristic`);
61
- }
62
- }
63
- async SwingModeSet(value) {
64
- this.debugLog(`SwingMode: ${value}`);
65
- if (value > this.Fan.SwingMode) {
66
- this.Fan.SwingMode = 1;
67
- await this.pushFanOnChanges();
68
- await this.pushFanSwingChanges();
69
- }
70
- else {
71
- this.Fan.SwingMode = 0;
72
- await this.pushFanOnChanges();
73
- await this.pushFanSwingChanges();
74
- }
75
- this.Fan.SwingMode = value;
76
- this.accessory.context.SwingMode = this.Fan.SwingMode;
77
- }
78
- async RotationSpeedSet(value) {
79
- this.debugLog(`RotationSpeed: ${value}`);
80
- if (value > this.Fan.RotationSpeed) {
81
- this.Fan.RotationSpeed = 1;
82
- this.pushFanSpeedUpChanges();
83
- this.pushFanOnChanges();
84
- }
85
- else {
86
- this.Fan.RotationSpeed = 0;
87
- this.pushFanSpeedDownChanges();
88
- }
89
- this.Fan.RotationSpeed = value;
90
- this.accessory.context.RotationSpeed = this.Fan.RotationSpeed;
91
- }
92
- async ActiveSet(value) {
93
- this.debugLog(`Active: ${value}`);
94
- this.Fan.Active = value;
95
- if (this.Fan.Active === this.hap.Characteristic.Active.ACTIVE) {
96
- this.pushFanOnChanges();
97
- }
98
- else {
99
- this.pushFanOffChanges();
100
- }
101
- }
102
- /**
103
- * Pushes the requested changes to the SwitchBot API
104
- * deviceType commandType Command command parameter Description
105
- * Fan - "command" "swing" "default" = swing
106
- * Fan - "command" "timer" "default" = timer
107
- * Fan - "command" "lowSpeed" "default" = fan speed to low
108
- * Fan - "command" "middleSpeed" "default" = fan speed to medium
109
- * Fan - "command" "highSpeed" "default" = fan speed to high
110
- */
111
- async pushFanOnChanges() {
112
- this.debugLog(`pushFanOnChanges Active: ${this.Fan.Active}, disablePushOn: ${this.deviceDisablePushOn}`);
113
- if (this.Fan.Active === this.hap.Characteristic.Active.ACTIVE && !this.deviceDisablePushOn) {
114
- const commandType = await this.commandType();
115
- const command = await this.commandOn();
116
- const bodyChange = {
117
- command,
118
- parameter: 'default',
119
- commandType,
120
- };
121
- await this.pushChanges(bodyChange);
122
- }
123
- }
124
- async pushFanOffChanges() {
125
- this.debugLog(`pushLightOffChanges Active: ${this.Fan.Active}, disablePushOff: ${this.deviceDisablePushOff}`);
126
- if (this.Fan.Active === this.hap.Characteristic.Active.INACTIVE && !this.deviceDisablePushOff) {
127
- const commandType = await this.commandType();
128
- const command = await this.commandOff();
129
- const bodyChange = {
130
- command,
131
- parameter: 'default',
132
- commandType,
133
- };
134
- await this.pushChanges(bodyChange);
135
- }
136
- }
137
- async pushFanSpeedUpChanges() {
138
- const bodyChange = {
139
- command: 'highSpeed',
140
- parameter: 'default',
141
- commandType: 'command',
142
- };
143
- await this.pushChanges(bodyChange);
144
- }
145
- async pushFanSpeedDownChanges() {
146
- const bodyChange = {
147
- command: 'lowSpeed',
148
- parameter: 'default',
149
- commandType: 'command',
150
- };
151
- await this.pushChanges(bodyChange);
152
- }
153
- async pushFanSwingChanges() {
154
- const bodyChange = {
155
- command: 'swing',
156
- parameter: 'default',
157
- commandType: 'command',
158
- };
159
- await this.pushChanges(bodyChange);
160
- }
161
- async pushChanges(bodyChange) {
162
- this.debugLog('pushChanges');
163
- if (this.device.connectionType === 'OpenAPI') {
164
- this.infoLog(`Sending request to SwitchBot API, body: ${JSON.stringify(bodyChange)}`);
165
- try {
166
- const deviceStatus = await this.pushChangeRequest(bodyChange);
167
- await this.pushStatusCodes(deviceStatus);
168
- if (await this.successfulStatusCodes(deviceStatus)) {
169
- await this.successfulPushChange(deviceStatus, bodyChange);
170
- await this.updateHomeKitCharacteristics();
171
- }
172
- else {
173
- await this.statusCode(deviceStatus.statusCode);
174
- }
175
- }
176
- catch (e) {
177
- await this.apiError(e);
178
- await this.pushChangeError(e);
179
- }
180
- }
181
- else {
182
- this.warnLog(`Connection Type: ${this.device.connectionType}, commands will not be sent to OpenAPI`);
183
- }
184
- }
185
- async updateHomeKitCharacteristics() {
186
- this.debugLog('updateHomeKitCharacteristics');
187
- // Active
188
- await this.updateCharacteristic(this.Fan.Service, this.hap.Characteristic.Active, this.Fan.Active, 'Active');
189
- // SwingMode
190
- await this.updateCharacteristic(this.Fan.Service, this.hap.Characteristic.SwingMode, this.Fan.SwingMode, 'SwingMode');
191
- // RotationSpeed
192
- await this.updateCharacteristic(this.Fan.Service, this.hap.Characteristic.RotationSpeed, this.Fan.RotationSpeed, 'RotationSpeed');
193
- }
194
- async apiError(e) {
195
- this.Fan.Service.updateCharacteristic(this.hap.Characteristic.Active, e);
196
- this.Fan.Service.updateCharacteristic(this.hap.Characteristic.RotationSpeed, e);
197
- this.Fan.Service.updateCharacteristic(this.hap.Characteristic.SwingMode, e);
198
- }
199
- }
200
- //# sourceMappingURL=fan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fan.js","sourceRoot":"","sources":["../../src/irdevice/fan.ts"],"names":[],"mappings":"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"}
@@ -1,68 +0,0 @@
1
- import type { API, CharacteristicValue, HAP, Logging, PlatformAccessory, Service } from 'homebridge';
2
- import type { bodyChange, irdevice } from 'node-switchbot';
3
- import type { SwitchBotHAPPlatform } from '../platform-hap.js';
4
- import type { irDevicesConfig, SwitchBotPlatformConfig } from '../settings.js';
5
- export declare abstract class irdeviceBase {
6
- protected readonly platform: SwitchBotHAPPlatform;
7
- protected accessory: PlatformAccessory;
8
- protected device: irdevice & irDevicesConfig;
9
- readonly api: API;
10
- readonly log: Logging;
11
- readonly config: SwitchBotPlatformConfig;
12
- protected readonly hap: HAP;
13
- protected deviceLogging: string;
14
- protected deviceRefreshRate: number;
15
- protected deviceUpdateRate: number;
16
- protected devicePushRate: number;
17
- protected deviceMaxRetries: number;
18
- protected deviceDelayBetweenRetries: number;
19
- protected deviceDisablePushOn: boolean;
20
- protected deviceDisablePushOff: boolean;
21
- protected deviceDisablePushDetail?: boolean;
22
- constructor(platform: SwitchBotHAPPlatform, accessory: PlatformAccessory, device: irdevice & irDevicesConfig);
23
- getDeviceLogSettings(accessory: PlatformAccessory, device: irdevice & irDevicesConfig): Promise<void>;
24
- getDeviceRateSettings(device: irdevice & irDevicesConfig): Promise<void>;
25
- getDeviceConfigSettings(device: irdevice & irDevicesConfig): Promise<void>;
26
- getDeviceContext(accessory: PlatformAccessory, device: irdevice & irDevicesConfig): Promise<void>;
27
- pushChangeRequest(bodyChange: bodyChange): Promise<{
28
- body: any;
29
- statusCode: number;
30
- }>;
31
- successfulStatusCodes(deviceStatus: any): Promise<boolean>;
32
- /**
33
- * Update the characteristic value and log the change.
34
- *
35
- * @param Service Service
36
- * @param Characteristic Characteristic
37
- * @param CharacteristicValue CharacteristicValue | undefined
38
- * @param CharacteristicName string
39
- * @return: void
40
- *
41
- */
42
- updateCharacteristic(Service: Service, Characteristic: any, CharacteristicValue: CharacteristicValue | undefined, CharacteristicName: string): Promise<void>;
43
- pushStatusCodes<T extends {
44
- statusCode: number;
45
- }>(deviceStatus: T): Promise<void>;
46
- successfulPushChange<T extends {
47
- statusCode: number;
48
- }>(deviceStatus: T, bodyChange: any): Promise<void>;
49
- pushChangeError(e: Error): Promise<void>;
50
- commandType(): Promise<string>;
51
- commandOn(): Promise<string>;
52
- commandOff(): Promise<string>;
53
- statusCode(statusCode: number): Promise<void>;
54
- /**
55
- * Logging for Device
56
- */
57
- infoLog(...log: any[]): Promise<void>;
58
- successLog(...log: any[]): Promise<void>;
59
- debugSuccessLog(...log: any[]): Promise<void>;
60
- warnLog(...log: any[]): Promise<void>;
61
- debugWarnLog(...log: any[]): Promise<void>;
62
- errorLog(...log: any[]): Promise<void>;
63
- debugErrorLog(...log: any[]): Promise<void>;
64
- debugLog(...log: any[]): Promise<void>;
65
- loggingIsDebug(): Promise<boolean>;
66
- enablingDeviceLogging(): Promise<boolean>;
67
- }
68
- //# sourceMappingURL=irdevice.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"irdevice.d.ts","sourceRoot":"","sources":["../../src/irdevice/irdevice.ts"],"names":[],"mappings":"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"}
@@ -1,298 +0,0 @@
1
- export class irdeviceBase {
2
- platform;
3
- accessory;
4
- device;
5
- api;
6
- log;
7
- config;
8
- hap;
9
- // Config
10
- deviceLogging;
11
- deviceRefreshRate;
12
- deviceUpdateRate;
13
- devicePushRate;
14
- deviceMaxRetries;
15
- deviceDelayBetweenRetries;
16
- deviceDisablePushOn;
17
- deviceDisablePushOff;
18
- deviceDisablePushDetail;
19
- constructor(platform, accessory, device) {
20
- this.platform = platform;
21
- this.accessory = accessory;
22
- this.device = device;
23
- this.api = this.platform.api;
24
- this.log = this.platform.log;
25
- this.config = this.platform.config;
26
- this.hap = this.api.hap;
27
- this.getDeviceLogSettings(accessory, device);
28
- this.getDeviceRateSettings(device);
29
- this.getDeviceConfigSettings(device);
30
- this.getDeviceContext(accessory, device);
31
- // Set accessory information
32
- accessory
33
- .getService(this.hap.Service.AccessoryInformation)
34
- .setCharacteristic(this.hap.Characteristic.Manufacturer, 'SwitchBot')
35
- .setCharacteristic(this.hap.Characteristic.AppMatchingIdentifier, 'id1087374760')
36
- .setCharacteristic(this.hap.Characteristic.Name, accessory.displayName)
37
- .setCharacteristic(this.hap.Characteristic.ConfiguredName, accessory.displayName)
38
- .setCharacteristic(this.hap.Characteristic.Model, accessory.context.model ?? 'Unknown')
39
- .setCharacteristic(this.hap.Characteristic.ProductData, device.deviceId)
40
- .setCharacteristic(this.hap.Characteristic.SerialNumber, device.deviceId);
41
- }
42
- async getDeviceLogSettings(accessory, device) {
43
- this.deviceLogging = this.platform.debugMode ? 'debugMode' : device.logging ?? this.platform.platformLogging ?? 'standard';
44
- const logging = this.platform.debugMode ? 'Debug Mode' : device.logging ? 'Device Config' : this.platform.platformLogging ? 'Platform Config' : 'Default';
45
- accessory.context.deviceLogging = this.deviceLogging;
46
- this.debugLog(`Using ${logging} Logging: ${this.deviceLogging}`);
47
- }
48
- async getDeviceRateSettings(device) {
49
- // refreshRate
50
- this.deviceRefreshRate = device.refreshRate ?? this.platform.platformRefreshRate ?? 300;
51
- const refreshRate = device.refreshRate ? 'Device Config' : this.platform.platformRefreshRate ? 'Platform Config' : 'Default';
52
- this.accessory.context.refreshRate = this.deviceRefreshRate;
53
- // updateRate
54
- this.deviceUpdateRate = device.updateRate ?? this.platform.platformUpdateRate ?? 5;
55
- const updateRate = device.updateRate ? 'Device Config' : this.platform.platformUpdateRate ? 'Platform Config' : 'Default';
56
- this.accessory.context.updateRate = this.deviceUpdateRate;
57
- // pushRate
58
- this.devicePushRate = device.pushRate ?? this.platform.platformPushRate ?? 0.1;
59
- const pushRate = device.pushRate ? 'Device Config' : this.platform.platformPushRate ? 'Platform Config' : 'Default';
60
- this.accessory.context.pushRate = this.devicePushRate;
61
- this.debugLog(`Using ${refreshRate} refreshRate: ${this.deviceRefreshRate}, ${updateRate} updateRate: ${this.deviceUpdateRate}, ${pushRate} pushRate: ${this.devicePushRate}`);
62
- // maxRetries
63
- this.deviceMaxRetries = device.maxRetries ?? this.platform.platformMaxRetries ?? 2;
64
- const maxRetries = device.maxRetries ? 'Device' : this.platform.platformMaxRetries ? 'Platform' : 'Default';
65
- this.debugLog(`Using ${maxRetries} Max Retries: ${this.deviceMaxRetries}`);
66
- // delayBetweenRetries
67
- this.deviceDelayBetweenRetries = device.delayBetweenRetries ? (device.delayBetweenRetries * 1000) : this.platform.platformDelayBetweenRetries ?? 3000;
68
- const delayBetweenRetries = device.delayBetweenRetries ? 'Device' : this.platform.platformDelayBetweenRetries ? 'Platform' : 'Default';
69
- this.debugLog(`Using ${delayBetweenRetries} Delay Between Retries: ${this.deviceDelayBetweenRetries}`);
70
- // disablePushOn
71
- this.deviceDisablePushOn = device.disablePushOn ?? false;
72
- const disablePushOn = device.disablePushOn ? 'Device Config' : 'Default';
73
- // disablePushOff
74
- this.deviceDisablePushOff = device.disablePushOff ?? false;
75
- const disablePushOff = device.disablePushOff ? 'Device Config' : 'Default';
76
- // disablePushDetail
77
- this.deviceDisablePushDetail = device.disablePushDetail ?? false;
78
- const disablePushDetail = device.disablePushDetail ? 'Device Config' : 'Default';
79
- this.debugLog(`Using ${disablePushOn} Disable Push On: ${this.deviceDisablePushOn}, ${disablePushOff} Disable Push Off: ${this.deviceDisablePushOff}, ${disablePushDetail} Disable Push Detail: ${this.deviceDisablePushDetail}`);
80
- }
81
- async getDeviceConfigSettings(device) {
82
- const deviceConfig = Object.assign({}, device.logging !== 'standard' && { logging: device.logging }, device.connectionType !== '' && { connectionType: device.connectionType }, device.external === true && { external: device.external }, device.customize === true && { customize: device.customize }, device.commandType !== '' && { commandType: device.commandType }, device.customOn !== '' && { customOn: device.customOn }, device.customOff !== '' && { customOff: device.customOff }, device.disablePushOn === true && { disablePushOn: device.disablePushOn }, device.disablePushOff === true && { disablePushOff: device.disablePushOff }, device.disablePushDetail === true && { disablePushDetail: device.disablePushDetail });
83
- let deviceSpecificConfig = {};
84
- switch (device.configRemoteType) {
85
- case 'Fan':
86
- case 'DIY Fan':
87
- deviceSpecificConfig = device;
88
- break;
89
- case 'Light':
90
- case 'DIY Light':
91
- deviceSpecificConfig = device;
92
- break;
93
- case 'Air Conditioner':
94
- case 'DIY Air Conditioner':
95
- deviceSpecificConfig = device;
96
- break;
97
- case 'Others':
98
- deviceSpecificConfig = device;
99
- break;
100
- default:
101
- break;
102
- }
103
- const config = Object.assign({}, deviceConfig, deviceSpecificConfig);
104
- if (Object.keys(config).length !== 0) {
105
- this.debugSuccessLog(`Config: ${JSON.stringify(config)}`);
106
- }
107
- }
108
- async getDeviceContext(accessory, device) {
109
- accessory.context.name = device.deviceName;
110
- accessory.context.model = device.remoteType;
111
- accessory.context.deviceId = device.deviceId;
112
- accessory.context.remoteType = device.remoteType;
113
- const deviceFirmwareVersion = device.firmware ?? accessory.context.version ?? this.platform.version ?? '0.0.0';
114
- const version = deviceFirmwareVersion.toString();
115
- this.debugLog(`version: ${version?.replace(/^V|-.*$/g, '')}`);
116
- let deviceVersion;
117
- if (version?.includes('.') === false) {
118
- const replace = version?.replace(/^V|-.*$/g, '');
119
- const match = replace?.match(/./g);
120
- const validVersion = match?.join('.');
121
- deviceVersion = validVersion ?? '0.0.0';
122
- }
123
- else {
124
- deviceVersion = version.replace(/^V|-.*$/g, '') ?? '0.0.0';
125
- }
126
- accessory
127
- .getService(this.hap.Service.AccessoryInformation)
128
- .setCharacteristic(this.hap.Characteristic.HardwareRevision, deviceVersion)
129
- .setCharacteristic(this.hap.Characteristic.SoftwareRevision, deviceVersion)
130
- .setCharacteristic(this.hap.Characteristic.FirmwareRevision, deviceVersion)
131
- .getCharacteristic(this.hap.Characteristic.FirmwareRevision)
132
- .updateValue(deviceVersion);
133
- accessory.context.version = deviceVersion;
134
- this.debugSuccessLog(`version: ${accessory.context.version}`);
135
- }
136
- async pushChangeRequest(bodyChange) {
137
- const { response, statusCode } = await this.platform.retryCommand(this.device, bodyChange, this.deviceMaxRetries, this.deviceDelayBetweenRetries);
138
- return { body: response, statusCode };
139
- }
140
- async successfulStatusCodes(deviceStatus) {
141
- return (deviceStatus.statusCode === 200 || deviceStatus.statusCode === 100);
142
- }
143
- /**
144
- * Update the characteristic value and log the change.
145
- *
146
- * @param Service Service
147
- * @param Characteristic Characteristic
148
- * @param CharacteristicValue CharacteristicValue | undefined
149
- * @param CharacteristicName string
150
- * @return: void
151
- *
152
- */
153
- async updateCharacteristic(Service, Characteristic, CharacteristicValue, CharacteristicName) {
154
- if (CharacteristicValue === undefined) {
155
- this.debugLog(`${CharacteristicName}: ${CharacteristicValue}`);
156
- }
157
- else {
158
- Service.updateCharacteristic(Characteristic, CharacteristicValue);
159
- this.debugLog(`updateCharacteristic ${CharacteristicName}: ${CharacteristicValue}`);
160
- this.debugWarnLog(`${CharacteristicName} context before: ${this.accessory.context[CharacteristicName]}`);
161
- this.accessory.context[CharacteristicName] = CharacteristicValue;
162
- this.debugWarnLog(`${CharacteristicName} context after: ${this.accessory.context[CharacteristicName]}`);
163
- }
164
- }
165
- async pushStatusCodes(deviceStatus) {
166
- this.debugWarnLog(`deviceStatus: ${JSON.stringify(deviceStatus)}`);
167
- this.debugWarnLog(`deviceStatus statusCode: ${deviceStatus.statusCode}`);
168
- }
169
- async successfulPushChange(deviceStatus, bodyChange) {
170
- this.debugSuccessLog(`deviceStatus StatusCode: ${deviceStatus.statusCode}`);
171
- this.successLog(`request to SwitchBot API, body: ${JSON.stringify(bodyChange)} sent successfully`);
172
- }
173
- async pushChangeError(e) {
174
- this.errorLog(`failed pushChanges with ${this.device.connectionType} Connection, Error Message: ${JSON.stringify(e.message)}`);
175
- }
176
- async commandType() {
177
- let commandType;
178
- if (this.device.commandType && this.device.customize) {
179
- commandType = this.device.commandType;
180
- }
181
- else if (this.device.customize) {
182
- commandType = 'customize';
183
- }
184
- else {
185
- commandType = 'command';
186
- }
187
- return commandType;
188
- }
189
- async commandOn() {
190
- let command;
191
- if (this.device.customize && this.device.customOn) {
192
- command = this.device.customOn;
193
- }
194
- else {
195
- command = 'turnOn';
196
- }
197
- return command;
198
- }
199
- async commandOff() {
200
- let command;
201
- if (this.device.customize && this.device.customOff) {
202
- command = this.device.customOff;
203
- }
204
- else {
205
- command = 'turnOff';
206
- }
207
- return command;
208
- }
209
- async statusCode(statusCode) {
210
- const statusMessages = {
211
- 151: 'Command not supported by this deviceType',
212
- 152: 'Device not found',
213
- 160: 'Command is not supported',
214
- 161: 'Device is offline',
215
- 171: `Hub Device is offline. Hub: ${this.device.hubDeviceId}`,
216
- 190: 'Device internal error due to device states not synchronized with server, or command format is invalid',
217
- 100: 'Command successfully sent',
218
- 200: 'Request successful',
219
- 400: 'Bad Request, an invalid payload request',
220
- 401: 'Unauthorized, Authorization for the API is required, but the request has not been authenticated',
221
- 403: 'Forbidden, The request has been authenticated but does not have appropriate permissions, or a requested resource is not found',
222
- 404: 'Not Found, Specifies the requested path does not exist',
223
- 406: 'Not Acceptable, a MIME type has been requested via the Accept header for a value not supported by the server',
224
- 415: 'Unsupported Media Type, a contentType header has been defined that is not supported by the server',
225
- 422: 'Unprocessable Entity: The server cannot process the request, often due to exceeded API limits.',
226
- 429: 'Too Many Requests, exceeded the number of requests allowed for a given time window',
227
- 500: 'Internal Server Error, An unexpected error occurred. These errors should be rare',
228
- };
229
- if (statusCode === 171 && (this.device.hubDeviceId === this.device.deviceId || this.device.hubDeviceId === '000000000000')) {
230
- this.debugErrorLog(`statusCode 171 changed to 161: hubDeviceId ${this.device.hubDeviceId} matches deviceId ${this.device.deviceId}, device is its own hub.`);
231
- statusCode = 161;
232
- }
233
- const logMessage = statusMessages[statusCode] || `Unknown statusCode: ${statusCode}, Submit Bugs Here: https://tinyurl.com/SwitchBotBug`;
234
- const logMethod = [100, 200].includes(statusCode) ? 'debugLog' : statusMessages[statusCode] ? 'errorLog' : 'infoLog';
235
- this[logMethod](`${logMessage}, statusCode: ${statusCode}`);
236
- }
237
- /**
238
- * Logging for Device
239
- */
240
- async infoLog(...log) {
241
- if (await this.enablingDeviceLogging()) {
242
- this.log.info(`${this.device.remoteType}: ${this.accessory.displayName}`, String(...log));
243
- }
244
- }
245
- async successLog(...log) {
246
- if (await this.enablingDeviceLogging()) {
247
- this.log.success(`${this.device.remoteType}: ${this.accessory.displayName}`, String(...log));
248
- }
249
- }
250
- async debugSuccessLog(...log) {
251
- if (await this.enablingDeviceLogging()) {
252
- if (await this.loggingIsDebug()) {
253
- this.log.success(`[DEBUG] ${this.device.remoteType}: ${this.accessory.displayName}`, String(...log));
254
- }
255
- }
256
- }
257
- async warnLog(...log) {
258
- if (await this.enablingDeviceLogging()) {
259
- this.log.warn(`${this.device.remoteType}: ${this.accessory.displayName}`, String(...log));
260
- }
261
- }
262
- async debugWarnLog(...log) {
263
- if (await this.enablingDeviceLogging()) {
264
- if (await this.loggingIsDebug()) {
265
- this.log.warn(`[DEBUG] ${this.device.remoteType}: ${this.accessory.displayName}`, String(...log));
266
- }
267
- }
268
- }
269
- async errorLog(...log) {
270
- if (await this.enablingDeviceLogging()) {
271
- this.log.error(`${this.device.remoteType}: ${this.accessory.displayName}`, String(...log));
272
- }
273
- }
274
- async debugErrorLog(...log) {
275
- if (await this.enablingDeviceLogging()) {
276
- if (await this.loggingIsDebug()) {
277
- this.log.error(`[DEBUG] ${this.device.remoteType}: ${this.accessory.displayName}`, String(...log));
278
- }
279
- }
280
- }
281
- async debugLog(...log) {
282
- if (await this.enablingDeviceLogging()) {
283
- if (this.deviceLogging === 'debug') {
284
- this.log.info(`[DEBUG] ${this.device.remoteType}: ${this.accessory.displayName}`, String(...log));
285
- }
286
- else if (this.deviceLogging === 'debugMode') {
287
- this.log.debug(`${this.device.remoteType}: ${this.accessory.displayName}`, String(...log));
288
- }
289
- }
290
- }
291
- async loggingIsDebug() {
292
- return this.deviceLogging === 'debugMode' || this.deviceLogging === 'debug';
293
- }
294
- async enablingDeviceLogging() {
295
- return this.deviceLogging === 'debugMode' || this.deviceLogging === 'debug' || this.deviceLogging === 'standard';
296
- }
297
- }
298
- //# sourceMappingURL=irdevice.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"irdevice.js","sourceRoot":"","sources":["../../src/irdevice/irdevice.ts"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- import type { CharacteristicValue, PlatformAccessory } from 'homebridge';
2
- import type { irdevice } from 'node-switchbot';
3
- import type { SwitchBotHAPPlatform } from '../platform-hap.js';
4
- import type { irDevicesConfig } from '../settings.js';
5
- import { irdeviceBase } from './irdevice.js';
6
- /**
7
- * Platform Accessory
8
- * An instance of this class is created for each accessory your platform registers
9
- * Each accessory may expose multiple services of different service types.
10
- */
11
- export declare class Light extends irdeviceBase {
12
- readonly platform: SwitchBotHAPPlatform;
13
- private LightBulb?;
14
- private ProgrammableSwitchOn?;
15
- private ProgrammableSwitchOff?;
16
- constructor(platform: SwitchBotHAPPlatform, accessory: PlatformAccessory, device: irdevice & irDevicesConfig);
17
- OnSet(value: CharacteristicValue): Promise<void>;
18
- ProgrammableSwitchOutputStateSetOn(value: CharacteristicValue): Promise<void>;
19
- ProgrammableSwitchOutputStateSetOff(value: CharacteristicValue): Promise<void>;
20
- /**
21
- * Pushes the requested changes to the SwitchBot API
22
- * deviceType commandType Command command parameter Description
23
- * Light - "command" "turnOff" "default" = set to OFF state
24
- * Light - "command" "turnOn" "default" = set to ON state
25
- * Light - "command" "volumeAdd" "default" = volume up
26
- * Light - "command" "volumeSub" "default" = volume down
27
- * Light - "command" "channelAdd" "default" = next channel
28
- * Light - "command" "channelSub" "default" = previous channel
29
- */
30
- pushLightOnChanges(On: boolean): Promise<void>;
31
- pushLightOffChanges(On: boolean): Promise<void>;
32
- pushChanges(bodyChange: any, On: boolean): Promise<void>;
33
- updateHomeKitCharacteristics(): Promise<void>;
34
- apiError(e: any): Promise<void>;
35
- }
36
- //# sourceMappingURL=light.d.ts.map