node-switchbot 2.5.0-beta.3 → 2.5.0-beta.31

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 (405) hide show
  1. package/.github/workflows/beta-release.yml +25 -2
  2. package/.github/workflows/release.yml +13 -0
  3. package/BLE.md +1109 -0
  4. package/CHANGELOG.md +14 -0
  5. package/OpenAPI.md +172 -0
  6. package/README.md +20 -1189
  7. package/branding/Node_x_SwitchBot.svg +9 -0
  8. package/branding/icon.png +0 -0
  9. package/branding/switchbot.png +0 -0
  10. package/dist/advertising.d.ts +32 -21
  11. package/dist/advertising.d.ts.map +1 -1
  12. package/dist/advertising.js +72 -76
  13. package/dist/advertising.js.map +1 -1
  14. package/dist/device/woblindtilt.d.ts +21 -51
  15. package/dist/device/woblindtilt.d.ts.map +1 -1
  16. package/dist/device/woblindtilt.js +40 -103
  17. package/dist/device/woblindtilt.js.map +1 -1
  18. package/dist/device/wobulb.d.ts +42 -15
  19. package/dist/device/wobulb.d.ts.map +1 -1
  20. package/dist/device/wobulb.js +71 -131
  21. package/dist/device/wobulb.js.map +1 -1
  22. package/dist/device/woceilinglight.d.ts +47 -21
  23. package/dist/device/woceilinglight.d.ts.map +1 -1
  24. package/dist/device/woceilinglight.js +94 -174
  25. package/dist/device/woceilinglight.js.map +1 -1
  26. package/dist/device/wocontact.d.ts +12 -1
  27. package/dist/device/wocontact.d.ts.map +1 -1
  28. package/dist/device/wocontact.js +23 -22
  29. package/dist/device/wocontact.js.map +1 -1
  30. package/dist/device/wocurtain.d.ts +40 -1
  31. package/dist/device/wocurtain.d.ts.map +1 -1
  32. package/dist/device/wocurtain.js +68 -106
  33. package/dist/device/wocurtain.js.map +1 -1
  34. package/dist/device/wohand.d.ts +38 -2
  35. package/dist/device/wohand.d.ts.map +1 -1
  36. package/dist/device/wohand.js +54 -92
  37. package/dist/device/wohand.js.map +1 -1
  38. package/dist/device/wohub2.d.ts +12 -1
  39. package/dist/device/wohub2.d.ts.map +1 -1
  40. package/dist/device/wohub2.js +21 -29
  41. package/dist/device/wohub2.js.map +1 -1
  42. package/dist/device/wohumi.d.ts +38 -2
  43. package/dist/device/wohumi.d.ts.map +1 -1
  44. package/dist/device/wohumi.js +51 -86
  45. package/dist/device/wohumi.js.map +1 -1
  46. package/dist/device/woiosensorth.d.ts +13 -1
  47. package/dist/device/woiosensorth.d.ts.map +1 -1
  48. package/dist/device/woiosensorth.js +25 -29
  49. package/dist/device/woiosensorth.js.map +1 -1
  50. package/dist/device/woplugmini.d.ts +44 -12
  51. package/dist/device/woplugmini.d.ts.map +1 -1
  52. package/dist/device/woplugmini.js +68 -80
  53. package/dist/device/woplugmini.js.map +1 -1
  54. package/dist/device/wopresence.d.ts +12 -1
  55. package/dist/device/wopresence.d.ts.map +1 -1
  56. package/dist/device/wopresence.js +21 -27
  57. package/dist/device/wopresence.js.map +1 -1
  58. package/dist/device/wosensorth.d.ts +18 -2
  59. package/dist/device/wosensorth.d.ts.map +1 -1
  60. package/dist/device/wosensorth.js +33 -50
  61. package/dist/device/wosensorth.js.map +1 -1
  62. package/dist/device/wosmartlock.d.ts +58 -13
  63. package/dist/device/wosmartlock.d.ts.map +1 -1
  64. package/dist/device/wosmartlock.js +108 -195
  65. package/dist/device/wosmartlock.js.map +1 -1
  66. package/dist/device/wosmartlockpro.d.ts +63 -18
  67. package/dist/device/wosmartlockpro.d.ts.map +1 -1
  68. package/dist/device/wosmartlockpro.js +116 -204
  69. package/dist/device/wosmartlockpro.js.map +1 -1
  70. package/dist/device/wostrip.d.ts +38 -18
  71. package/dist/device/wostrip.d.ts.map +1 -1
  72. package/dist/device/wostrip.js +79 -125
  73. package/dist/device/wostrip.js.map +1 -1
  74. package/dist/device.d.ts +85 -222
  75. package/dist/device.d.ts.map +1 -1
  76. package/dist/device.js +123 -407
  77. package/dist/device.js.map +1 -1
  78. package/dist/index.d.ts +9 -1
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +9 -1
  81. package/dist/index.js.map +1 -1
  82. package/dist/parameter-checker.d.ts +79 -19
  83. package/dist/parameter-checker.d.ts.map +1 -1
  84. package/dist/parameter-checker.js +140 -335
  85. package/dist/parameter-checker.js.map +1 -1
  86. package/dist/settings.d.ts +46 -0
  87. package/dist/settings.d.ts.map +1 -1
  88. package/dist/settings.js +46 -2
  89. package/dist/settings.js.map +1 -1
  90. package/dist/{switchbot.d.ts → switchbot-ble.d.ts} +14 -8
  91. package/dist/switchbot-ble.d.ts.map +1 -0
  92. package/dist/switchbot-ble.js +428 -0
  93. package/dist/switchbot-ble.js.map +1 -0
  94. package/dist/switchbot-openapi.d.ts +131 -0
  95. package/dist/switchbot-openapi.d.ts.map +1 -0
  96. package/dist/switchbot-openapi.js +311 -0
  97. package/dist/switchbot-openapi.js.map +1 -0
  98. package/dist/test/advertising.test.d.ts +2 -0
  99. package/dist/test/advertising.test.d.ts.map +1 -0
  100. package/dist/test/advertising.test.js +96 -0
  101. package/dist/test/advertising.test.js.map +1 -0
  102. package/dist/test/device.test.d.ts +2 -0
  103. package/dist/test/device.test.d.ts.map +1 -0
  104. package/dist/test/device.test.js +38 -0
  105. package/dist/test/device.test.js.map +1 -0
  106. package/dist/test/index.test.d.ts +2 -0
  107. package/dist/test/index.test.d.ts.map +1 -0
  108. package/dist/test/index.test.js +35 -0
  109. package/dist/test/index.test.js.map +1 -0
  110. package/dist/test/parameter-checker.test.d.ts +2 -0
  111. package/dist/test/parameter-checker.test.d.ts.map +1 -0
  112. package/dist/test/parameter-checker.test.js +108 -0
  113. package/dist/test/parameter-checker.test.js.map +1 -0
  114. package/dist/test/settings.test.d.ts +2 -0
  115. package/dist/test/settings.test.d.ts.map +1 -0
  116. package/dist/test/settings.test.js +49 -0
  117. package/dist/test/settings.test.js.map +1 -0
  118. package/dist/test/switchbot-openapi.test.d.ts +2 -0
  119. package/dist/test/switchbot-openapi.test.d.ts.map +1 -0
  120. package/dist/test/switchbot-openapi.test.js +96 -0
  121. package/dist/test/switchbot-openapi.test.js.map +1 -0
  122. package/dist/test/switchbot.test.d.ts +2 -0
  123. package/dist/test/switchbot.test.d.ts.map +1 -0
  124. package/dist/test/switchbot.test.js +106 -0
  125. package/dist/test/switchbot.test.js.map +1 -0
  126. package/dist/test/woblindtilt.test.d.ts.map +1 -0
  127. package/dist/test/woblindtilt.test.js +2 -0
  128. package/dist/test/woblindtilt.test.js.map +1 -0
  129. package/dist/{device → test}/wobulb.test.d.ts.map +1 -1
  130. package/dist/test/wobulb.test.js +2 -0
  131. package/dist/test/wobulb.test.js.map +1 -0
  132. package/dist/test/woceilinglight.test.d.ts.map +1 -0
  133. package/dist/test/woceilinglight.test.js +2 -0
  134. package/dist/test/woceilinglight.test.js.map +1 -0
  135. package/dist/test/wocontact.test.d.ts.map +1 -0
  136. package/dist/test/wocontact.test.js +2 -0
  137. package/dist/test/wocontact.test.js.map +1 -0
  138. package/dist/test/wocurtain.test.d.ts.map +1 -0
  139. package/dist/test/wocurtain.test.js +2 -0
  140. package/dist/test/wocurtain.test.js.map +1 -0
  141. package/dist/{device → test}/wohand.test.d.ts.map +1 -1
  142. package/dist/test/wohand.test.js +2 -0
  143. package/dist/test/wohand.test.js.map +1 -0
  144. package/dist/test/wohub2.test.d.ts +2 -0
  145. package/dist/test/wohub2.test.d.ts.map +1 -0
  146. package/dist/test/wohub2.test.js +2 -0
  147. package/dist/test/wohub2.test.js.map +1 -0
  148. package/dist/{device → test}/wohumi.test.d.ts.map +1 -1
  149. package/dist/test/wohumi.test.js +2 -0
  150. package/dist/test/wohumi.test.js.map +1 -0
  151. package/dist/test/woiosensorth.test.d.ts.map +1 -0
  152. package/dist/test/woiosensorth.test.js +2 -0
  153. package/dist/test/woiosensorth.test.js.map +1 -0
  154. package/dist/test/woplugmini.test.d.ts.map +1 -0
  155. package/dist/test/woplugmini.test.js +2 -0
  156. package/dist/test/woplugmini.test.js.map +1 -0
  157. package/dist/test/wopresence.test.d.ts.map +1 -0
  158. package/dist/test/wopresence.test.js +2 -0
  159. package/dist/test/wopresence.test.js.map +1 -0
  160. package/dist/test/wosensorth.test.d.ts.map +1 -0
  161. package/dist/test/wosensorth.test.js +2 -0
  162. package/dist/test/wosensorth.test.js.map +1 -0
  163. package/dist/test/wosmartlock.test.d.ts.map +1 -0
  164. package/dist/test/wosmartlock.test.js +2 -0
  165. package/dist/test/wosmartlock.test.js.map +1 -0
  166. package/dist/test/wosmartlockpro.test.d.ts.map +1 -0
  167. package/dist/test/wosmartlockpro.test.js +2 -0
  168. package/dist/test/wosmartlockpro.test.js.map +1 -0
  169. package/dist/{device → test}/wostrip.test.d.ts.map +1 -1
  170. package/dist/test/wostrip.test.js +2 -0
  171. package/dist/test/wostrip.test.js.map +1 -0
  172. package/dist/types/bledevicestatus.d.ts +4 -12
  173. package/dist/types/bledevicestatus.d.ts.map +1 -1
  174. package/dist/types/devicelist.d.ts.map +1 -1
  175. package/dist/types/devicelist.js +0 -4
  176. package/dist/types/devicelist.js.map +1 -1
  177. package/dist/types/devicepush.d.ts +13 -0
  178. package/dist/types/devicepush.d.ts.map +1 -0
  179. package/dist/types/devicepush.js +2 -0
  180. package/dist/types/devicepush.js.map +1 -0
  181. package/dist/types/deviceresponse.d.ts +2 -3
  182. package/dist/types/deviceresponse.d.ts.map +1 -1
  183. package/dist/types/devicestatus.d.ts.map +1 -1
  184. package/dist/types/devicewebhookstatus.d.ts +32 -0
  185. package/dist/types/devicewebhookstatus.d.ts.map +1 -1
  186. package/dist/types/irdevicelist.d.ts.map +1 -1
  187. package/dist/types/types.d.ts +61 -120
  188. package/dist/types/types.d.ts.map +1 -1
  189. package/dist/types/types.js +10 -0
  190. package/dist/types/types.js.map +1 -1
  191. package/docs/assets/highlight.css +12 -47
  192. package/docs/assets/main.js +1 -1
  193. package/docs/assets/navigation.js +1 -1
  194. package/docs/assets/search.js +1 -1
  195. package/docs/classes/SwitchBotBLE.html +61 -0
  196. package/docs/classes/SwitchBotOpenAPI.html +47 -0
  197. package/docs/classes/SwitchbotDevice.html +28 -33
  198. package/docs/enums/LogLevel.html +6 -0
  199. package/docs/enums/SwitchBotBLEModel.html +2 -2
  200. package/docs/enums/SwitchBotBLEModelFriendlyName.html +2 -2
  201. package/docs/enums/SwitchBotBLEModelName.html +2 -2
  202. package/docs/enums/SwitchBotModel.html +2 -2
  203. package/docs/hierarchy.html +1 -0
  204. package/docs/index.html +16 -993
  205. package/docs/interfaces/Ad-1.html +5 -0
  206. package/docs/interfaces/AdvertisementData.html +3 -0
  207. package/docs/interfaces/Chars.html +4 -0
  208. package/docs/interfaces/ErrorObject.html +3 -0
  209. package/docs/interfaces/Params.html +6 -0
  210. package/docs/interfaces/ServiceData.html +2 -0
  211. package/docs/interfaces/SwitchBotBLEDevice.html +21 -0
  212. package/docs/interfaces/WebhookDetail.html +6 -0
  213. package/docs/interfaces/ad.html +5 -0
  214. package/docs/interfaces/body.html +3 -0
  215. package/docs/interfaces/bodyChange.html +4 -0
  216. package/docs/interfaces/deleteWebhookResponse.html +4 -0
  217. package/docs/interfaces/device.html +7 -0
  218. package/docs/interfaces/deviceList.html +2 -0
  219. package/docs/interfaces/deviceStatus.html +7 -0
  220. package/docs/interfaces/deviceStatusRequest.html +4 -0
  221. package/docs/interfaces/deviceWebhook.html +4 -0
  222. package/docs/interfaces/deviceWebhookContext.html +4 -0
  223. package/docs/interfaces/devices.html +4 -0
  224. package/docs/interfaces/infraredRemoteList.html +2 -0
  225. package/docs/interfaces/irdevice.html +5 -0
  226. package/docs/interfaces/pushResponse.html +4 -0
  227. package/docs/interfaces/queryWebhookResponse.html +4 -0
  228. package/docs/interfaces/setupWebhookResponse.html +4 -0
  229. package/docs/interfaces/switchbot.html +3 -0
  230. package/docs/interfaces/updateWebhookResponse.html +4 -0
  231. package/docs/interfaces/webhookRequest.html +4 -0
  232. package/docs/media/BLE.md +1109 -0
  233. package/docs/media/OpenAPI.md +172 -0
  234. package/docs/modules.html +136 -3
  235. package/docs/types/MacAddress.html +1 -0
  236. package/docs/types/batteryCirculatorFan.html +1 -0
  237. package/docs/types/batteryCirculatorFanServiceData.html +1 -0
  238. package/docs/types/batteryCirculatorFanStatus.html +1 -0
  239. package/docs/types/batteryCirculatorFanWebhookContext.html +1 -0
  240. package/docs/types/blindTilt.html +1 -0
  241. package/docs/types/blindTiltServiceData.html +1 -0
  242. package/docs/types/blindTiltStatus.html +1 -0
  243. package/docs/types/blindTiltWebhookContext.html +1 -0
  244. package/docs/types/bot.html +1 -0
  245. package/docs/types/botServiceData.html +1 -0
  246. package/docs/types/botStatus.html +1 -0
  247. package/docs/types/botWebhookContext.html +1 -0
  248. package/docs/types/ceilingLight.html +1 -0
  249. package/docs/types/ceilingLightPro.html +1 -0
  250. package/docs/types/ceilingLightProServiceData.html +1 -0
  251. package/docs/types/ceilingLightProStatus.html +1 -0
  252. package/docs/types/ceilingLightProWebhookContext.html +1 -0
  253. package/docs/types/ceilingLightServiceData.html +1 -0
  254. package/docs/types/ceilingLightStatus.html +1 -0
  255. package/docs/types/ceilingLightWebhookContext.html +1 -0
  256. package/docs/types/colorBulb.html +1 -0
  257. package/docs/types/colorBulbServiceData.html +1 -0
  258. package/docs/types/colorBulbStatus.html +1 -0
  259. package/docs/types/colorBulbWebhookContext.html +1 -0
  260. package/docs/types/contactSensor.html +1 -0
  261. package/docs/types/contactSensorServiceData.html +1 -0
  262. package/docs/types/contactSensorStatus.html +1 -0
  263. package/docs/types/contactSensorWebhookContext.html +1 -0
  264. package/docs/types/curtain.html +1 -0
  265. package/docs/types/curtain3.html +1 -0
  266. package/docs/types/curtain3ServiceData.html +1 -0
  267. package/docs/types/curtain3WebhookContext.html +1 -0
  268. package/docs/types/curtainServiceData.html +1 -0
  269. package/docs/types/curtainStatus.html +1 -0
  270. package/docs/types/curtainWebhookContext.html +1 -0
  271. package/docs/types/floorCleaningRobotS10.html +1 -0
  272. package/docs/types/floorCleaningRobotS10Status.html +1 -0
  273. package/docs/types/floorCleaningRobotS10WebhookContext.html +1 -0
  274. package/docs/types/hub2.html +1 -0
  275. package/docs/types/hub2ServiceData.html +1 -0
  276. package/docs/types/hub2Status.html +1 -0
  277. package/docs/types/hub2WebhookContext.html +1 -0
  278. package/docs/types/humidifier.html +1 -0
  279. package/docs/types/humidifierServiceData.html +1 -0
  280. package/docs/types/humidifierStatus.html +1 -0
  281. package/docs/types/humidifierWebhookContext.html +1 -0
  282. package/docs/types/indoorCam.html +1 -0
  283. package/docs/types/indoorCameraWebhookContext.html +1 -0
  284. package/docs/types/keypad.html +1 -0
  285. package/docs/types/keypadTouch.html +1 -0
  286. package/docs/types/keypadTouchWebhookContext.html +1 -0
  287. package/docs/types/keypadWebhookContext.html +1 -0
  288. package/docs/types/lock.html +1 -0
  289. package/docs/types/lockPro.html +1 -0
  290. package/docs/types/lockProServiceData.html +1 -0
  291. package/docs/types/lockProStatus.html +1 -0
  292. package/docs/types/lockProWebhookContext.html +1 -0
  293. package/docs/types/lockServiceData.html +1 -0
  294. package/docs/types/lockStatus.html +1 -0
  295. package/docs/types/lockWebhookContext.html +1 -0
  296. package/docs/types/meter.html +1 -0
  297. package/docs/types/meterPlus.html +1 -0
  298. package/docs/types/meterPlusServiceData.html +1 -0
  299. package/docs/types/meterPlusStatus.html +1 -0
  300. package/docs/types/meterPlusWebhookContext.html +1 -0
  301. package/docs/types/meterServiceData.html +1 -0
  302. package/docs/types/meterStatus.html +1 -0
  303. package/docs/types/meterWebhookContext.html +1 -0
  304. package/docs/types/motionSensor.html +1 -0
  305. package/docs/types/motionSensorServiceData.html +1 -0
  306. package/docs/types/motionSensorStatus.html +1 -0
  307. package/docs/types/motionSensorWebhookContext.html +1 -0
  308. package/docs/types/outdoorMeter.html +1 -0
  309. package/docs/types/outdoorMeterServiceData.html +1 -0
  310. package/docs/types/outdoorMeterStatus.html +1 -0
  311. package/docs/types/outdoorMeterWebhookContext.html +1 -0
  312. package/docs/types/panTiltCamWebhookContext.html +1 -0
  313. package/docs/types/pantiltCam.html +1 -0
  314. package/docs/types/pantiltCam2k.html +1 -0
  315. package/docs/types/plug.html +1 -0
  316. package/docs/types/plugMini.html +1 -0
  317. package/docs/types/plugMiniJPServiceData.html +1 -0
  318. package/docs/types/plugMiniJPWebhookContext.html +1 -0
  319. package/docs/types/plugMiniStatus.html +1 -0
  320. package/docs/types/plugMiniUSServiceData.html +1 -0
  321. package/docs/types/plugMiniUSWebhookContext.html +1 -0
  322. package/docs/types/plugStatus.html +1 -0
  323. package/docs/types/plugWebhookContext.html +1 -0
  324. package/docs/types/remote.html +1 -0
  325. package/docs/types/robotVacuumCleanerS1.html +1 -0
  326. package/docs/types/robotVacuumCleanerS1Plus.html +1 -0
  327. package/docs/types/robotVacuumCleanerS1PlusStatus.html +1 -0
  328. package/docs/types/robotVacuumCleanerS1PlusWebhookContext.html +1 -0
  329. package/docs/types/robotVacuumCleanerS1Status.html +1 -0
  330. package/docs/types/robotVacuumCleanerS1WebhookContext.html +1 -0
  331. package/docs/types/robotVacuumCleanerServiceData.html +1 -0
  332. package/docs/types/stripLight.html +1 -0
  333. package/docs/types/stripLightServiceData.html +1 -0
  334. package/docs/types/stripLightStatus.html +1 -0
  335. package/docs/types/stripLightWebhookContext.html +1 -0
  336. package/docs/types/waterLeakDetector.html +1 -0
  337. package/docs/types/waterLeakDetectorServiceData.html +1 -0
  338. package/docs/types/waterLeakDetectorStatus.html +1 -0
  339. package/docs/types/waterLeakDetectorWebhookContext.html +1 -0
  340. package/package.json +12 -10
  341. package/dist/device/woblindtilt.test.d.ts.map +0 -1
  342. package/dist/device/woblindtilt.test.js +0 -26
  343. package/dist/device/woblindtilt.test.js.map +0 -1
  344. package/dist/device/wobulb.test.js +0 -52
  345. package/dist/device/wobulb.test.js.map +0 -1
  346. package/dist/device/woceilinglight.test.d.ts.map +0 -1
  347. package/dist/device/woceilinglight.test.js +0 -63
  348. package/dist/device/woceilinglight.test.js.map +0 -1
  349. package/dist/device/wocontact.test.d.ts.map +0 -1
  350. package/dist/device/wocontact.test.js +0 -34
  351. package/dist/device/wocontact.test.js.map +0 -1
  352. package/dist/device/wocurtain.test.d.ts.map +0 -1
  353. package/dist/device/wocurtain.test.js +0 -33
  354. package/dist/device/wocurtain.test.js.map +0 -1
  355. package/dist/device/wohand.test.js +0 -62
  356. package/dist/device/wohand.test.js.map +0 -1
  357. package/dist/device/wohand2.test.d.ts +0 -2
  358. package/dist/device/wohand2.test.d.ts.map +0 -1
  359. package/dist/device/wohand2.test.js +0 -50
  360. package/dist/device/wohand2.test.js.map +0 -1
  361. package/dist/device/wohumi.test.js +0 -61
  362. package/dist/device/wohumi.test.js.map +0 -1
  363. package/dist/device/woiosensorth.test.d.ts.map +0 -1
  364. package/dist/device/woiosensorth.test.js +0 -39
  365. package/dist/device/woiosensorth.test.js.map +0 -1
  366. package/dist/device/woplugmini.test.d.ts.map +0 -1
  367. package/dist/device/woplugmini.test.js +0 -91
  368. package/dist/device/woplugmini.test.js.map +0 -1
  369. package/dist/device/wopresence.test.d.ts.map +0 -1
  370. package/dist/device/wopresence.test.js +0 -42
  371. package/dist/device/wopresence.test.js.map +0 -1
  372. package/dist/device/wosensorth.test.d.ts.map +0 -1
  373. package/dist/device/wosensorth.test.js +0 -59
  374. package/dist/device/wosensorth.test.js.map +0 -1
  375. package/dist/device/wosmartlock.test.d.ts.map +0 -1
  376. package/dist/device/wosmartlock.test.js +0 -84
  377. package/dist/device/wosmartlock.test.js.map +0 -1
  378. package/dist/device/wosmartlockpro.test.d.ts.map +0 -1
  379. package/dist/device/wosmartlockpro.test.js +0 -124
  380. package/dist/device/wosmartlockpro.test.js.map +0 -1
  381. package/dist/device/wostrip.test.js +0 -115
  382. package/dist/device/wostrip.test.js.map +0 -1
  383. package/dist/switchbot.d.ts.map +0 -1
  384. package/dist/switchbot.js +0 -259
  385. package/dist/switchbot.js.map +0 -1
  386. package/dist/types/pushbody.d.ts +0 -6
  387. package/dist/types/pushbody.d.ts.map +0 -1
  388. package/dist/types/pushbody.js +0 -2
  389. package/dist/types/pushbody.js.map +0 -1
  390. package/docs/classes/SwitchBot.html +0 -16
  391. package/docs/types/SwitchBotBLEDevice.html +0 -1
  392. /package/dist/{device → test}/woblindtilt.test.d.ts +0 -0
  393. /package/dist/{device → test}/wobulb.test.d.ts +0 -0
  394. /package/dist/{device → test}/woceilinglight.test.d.ts +0 -0
  395. /package/dist/{device → test}/wocontact.test.d.ts +0 -0
  396. /package/dist/{device → test}/wocurtain.test.d.ts +0 -0
  397. /package/dist/{device → test}/wohand.test.d.ts +0 -0
  398. /package/dist/{device → test}/wohumi.test.d.ts +0 -0
  399. /package/dist/{device → test}/woiosensorth.test.d.ts +0 -0
  400. /package/dist/{device → test}/woplugmini.test.d.ts +0 -0
  401. /package/dist/{device → test}/wopresence.test.d.ts +0 -0
  402. /package/dist/{device → test}/wosensorth.test.d.ts +0 -0
  403. /package/dist/{device → test}/wosmartlock.test.d.ts +0 -0
  404. /package/dist/{device → test}/wosmartlockpro.test.d.ts +0 -0
  405. /package/dist/{device → test}/wostrip.test.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"wobulb.js","sourceRoot":"","sources":["../../src/device/wobulb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wobulb.js","sourceRoot":"","sources":["../../src/device/wobulb.ts"],"names":[],"mappings":"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"}
@@ -1,45 +1,71 @@
1
+ import type { SwitchBotBLE } from '../switchbot-ble.js';
1
2
  import { Buffer } from 'node:buffer';
2
3
  import { SwitchbotDevice } from '../device.js';
3
4
  /**
5
+ * Class representing a WoCeilingLight device.
4
6
  * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/colorbulb.md
5
7
  */
6
8
  export declare class WoCeilingLight extends SwitchbotDevice {
7
- static parseServiceData(manufacturerData: Buffer, onlog: ((message: string) => void) | undefined): Promise<object | null>;
8
- static parseServiceData_Pro(manufacturerData: Buffer, onlog: ((message: string) => void) | undefined): Promise<object | null>;
9
+ static switchBotBLE: SwitchBotBLE;
9
10
  /**
10
- * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
11
+ * Parses the service data for WoCeilingLight.
12
+ * @param {Buffer} manufacturerData - The manufacturer data buffer.
13
+ * @returns {Promise<object | null>} - Parsed service data or null if invalid.
11
14
  */
12
- readState(): Promise<void>;
15
+ static parseServiceData(manufacturerData: Buffer): Promise<object | null>;
13
16
  /**
14
- *
17
+ * Parses the service data for WoCeilingLight Pro.
18
+ * @param {Buffer} manufacturerData - The manufacturer data buffer.
19
+ * @returns {Promise<object | null>} - Parsed service data or null if invalid.
15
20
  */
16
- setState(reqByteArray: number[]): Promise<void>;
21
+ static parseServiceData_Pro(manufacturerData: Buffer): Promise<object | null>;
17
22
  /**
18
- * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
23
+ * Reads the state of the ceiling light.
24
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the light is ON (true) or OFF (false).
19
25
  */
20
- turnOn(): Promise<void>;
26
+ readState(): Promise<boolean>;
21
27
  /**
22
- * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
28
+ * Sets the state of the ceiling light.
29
+ * @param {number[]} reqByteArray - The request byte array.
30
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the operation was successful.
23
31
  */
24
- turnOff(): Promise<void>;
32
+ setState(reqByteArray: number[]): Promise<boolean>;
25
33
  /**
26
- * @param brightness
34
+ * Turns on the ceiling light.
35
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the light is ON (true).
27
36
  */
28
- setBrightness(brightness: number): Promise<void>;
37
+ turnOn(): Promise<boolean>;
29
38
  /**
30
- * @returns resolves with color_temperature percent
39
+ * Turns off the ceiling light.
40
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the light is OFF (false).
31
41
  */
32
- setColorTemperature(color_temperature: number): Promise<void>;
42
+ turnOff(): Promise<boolean>;
33
43
  /**
34
- * @param brightness
35
- * @param red
36
- * @param green
37
- * @param blue
44
+ * Sets the brightness of the ceiling light.
45
+ * @param {number} brightness - The brightness percentage (0-100).
46
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the operation was successful.
38
47
  */
39
- setRGB(brightness: number, red: number, green: number, blue: number): Promise<void>;
48
+ setBrightness(brightness: number): Promise<boolean>;
40
49
  /**
41
- * @param bytes
50
+ * Sets the color temperature of the ceiling light.
51
+ * @param {number} color_temperature - The color temperature percentage (0-100).
52
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the operation was successful.
42
53
  */
43
- operateBot(bytes: number[]): Promise<void>;
54
+ setColorTemperature(color_temperature: number): Promise<boolean>;
55
+ /**
56
+ * Sets the RGB color of the ceiling light.
57
+ * @param {number} brightness - The brightness percentage (0-100).
58
+ * @param {number} red - The red color value (0-255).
59
+ * @param {number} green - The green color value (0-255).
60
+ * @param {number} blue - The blue color value (0-255).
61
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the operation was successful.
62
+ */
63
+ setRGB(brightness: number, red: number, green: number, blue: number): Promise<boolean>;
64
+ /**
65
+ * Sends a command to the ceiling light.
66
+ * @param {number[]} bytes - The command bytes.
67
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the operation was successful.
68
+ */
69
+ operateCeilingLight(bytes: number[]): Promise<boolean>;
44
70
  }
45
71
  //# sourceMappingURL=woceilinglight.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"woceilinglight.d.ts","sourceRoot":"","sources":["../../src/device/woceilinglight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAMpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C;;GAEG;AACH,qBAAa,cAAe,SAAQ,eAAe;WACpC,gBAAgB,CAC3B,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAC7C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;WAoDZ,oBAAoB,CAC/B,gBAAgB,EAAE,MAAM,EACxB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAC7C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsDzB;;OAEG;IACG,SAAS;IAIf;;OAEG;IACG,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE;IAKrC;;OAEG;IACG,MAAM;IAIZ;;OAEG;IACG,OAAO;IAIb;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM;IAYtC;;OAEG;IACG,mBAAmB,CAAC,iBAAiB,EAAE,MAAM;IAYnD;;;;;OAKG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAoCzE;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBjD"}
1
+ {"version":3,"file":"woceilinglight.d.ts","sourceRoot":"","sources":["../../src/device/woceilinglight.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C;;;GAGG;AACH,qBAAa,cAAe,SAAQ,eAAe;IACjD,MAAM,CAAC,YAAY,EAAE,YAAY,CAAA;IACjC;;;;OAIG;WACU,gBAAgB,CAC3B,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAqCzB;;;;OAIG;WACU,oBAAoB,CAC/B,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAqCzB;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC;;;;OAIG;IACG,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxD;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC;;;;OAIG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOzD;;;;OAIG;IACG,mBAAmB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOtE;;;;;;;OAOG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAY5F;;;;OAIG;IACU,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAYpE"}
@@ -1,235 +1,155 @@
1
1
  import { Buffer } from 'node:buffer';
2
- /* Copyright(C) 2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
3
- *
4
- * woceilinglight.ts: Switchbot BLE API registration.
5
- */
6
2
  import { SwitchbotDevice } from '../device.js';
7
3
  import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
8
4
  /**
5
+ * Class representing a WoCeilingLight device.
9
6
  * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/colorbulb.md
10
7
  */
11
8
  export class WoCeilingLight extends SwitchbotDevice {
12
- static async parseServiceData(manufacturerData, onlog) {
9
+ static switchBotBLE;
10
+ /**
11
+ * Parses the service data for WoCeilingLight.
12
+ * @param {Buffer} manufacturerData - The manufacturer data buffer.
13
+ * @returns {Promise<object | null>} - Parsed service data or null if invalid.
14
+ */
15
+ static async parseServiceData(manufacturerData) {
13
16
  if (manufacturerData.length !== 13) {
14
- if (onlog && typeof onlog === 'function') {
15
- onlog(`[parseServiceDataForWoCeilingLight] Buffer length ${manufacturerData.length} !== 13!`);
16
- }
17
+ this.switchBotBLE.emitLog('error', `[parseServiceDataForWoCeilingLight] Buffer length ${manufacturerData.length} !== 13!`);
17
18
  return null;
18
19
  }
19
- const byte1 = manufacturerData.readUInt8(1); // power and light status
20
- // const byte2 = manufacturerData.readUInt8(2);//bulb brightness
21
- const byte3 = manufacturerData.readUInt8(3); // bulb R
22
- const byte4 = manufacturerData.readUInt8(4); // bulb G
23
- const byte5 = manufacturerData.readUInt8(5); // bulb B
24
- const byte6 = manufacturerData.readUInt8(6); // bulb temperature
25
- const byte7 = manufacturerData.readUInt8(7);
26
- const byte8 = manufacturerData.readUInt8(8);
27
- const byte9 = manufacturerData.readUInt8(9);
28
- const byte10 = manufacturerData.readUInt8(10); // bulb mode
29
- const power = byte1;
30
- const red = byte3;
31
- const green = byte4;
32
- const blue = byte5;
33
- const color_temperature = byte6;
34
- const state = !!(byte7 & 0b01111111);
35
- const brightness = byte7 & 0b01111111;
36
- const delay = byte8 & 0b10000000;
37
- const preset = byte8 & 0b00001000;
38
- const color_mode = byte8 & 0b00000111;
39
- const speed = byte9 & 0b01111111;
40
- const loop_index = byte10 & 0b11111110;
41
- const data = {
20
+ const [, byte1, , byte3, byte4, byte5, byte6, byte7, byte8, byte9, byte10,] = manufacturerData;
21
+ return {
42
22
  model: SwitchBotBLEModel.CeilingLight,
43
23
  modelName: SwitchBotBLEModelName.CeilingLight,
44
24
  modelFriendlyName: SwitchBotBLEModelFriendlyName.CeilingLight,
45
- color_temperature,
46
- power,
47
- state,
48
- red,
49
- green,
50
- blue,
51
- brightness,
52
- delay,
53
- preset,
54
- color_mode,
55
- speed,
56
- loop_index,
25
+ power: byte1,
26
+ red: byte3,
27
+ green: byte4,
28
+ blue: byte5,
29
+ color_temperature: byte6,
30
+ state: !!(byte7 & 0b01111111),
31
+ brightness: byte7 & 0b01111111,
32
+ delay: !!(byte8 & 0b10000000),
33
+ preset: !!(byte8 & 0b00001000),
34
+ color_mode: byte8 & 0b00000111,
35
+ speed: byte9 & 0b01111111,
36
+ loop_index: byte10 & 0b11111110,
57
37
  };
58
- return data;
59
38
  }
60
- static async parseServiceData_Pro(manufacturerData, onlog) {
39
+ /**
40
+ * Parses the service data for WoCeilingLight Pro.
41
+ * @param {Buffer} manufacturerData - The manufacturer data buffer.
42
+ * @returns {Promise<object | null>} - Parsed service data or null if invalid.
43
+ */
44
+ static async parseServiceData_Pro(manufacturerData) {
61
45
  if (manufacturerData.length !== 13) {
62
- if (onlog && typeof onlog === 'function') {
63
- onlog(`[parseServiceDataForWoCeilingLightPro] Buffer length ${manufacturerData.length} !== 13!`);
64
- }
46
+ this.switchBotBLE.emitLog('error', `[parseServiceDataForWoCeilingLightPro] Buffer length ${manufacturerData.length} !== 13!`);
65
47
  return null;
66
48
  }
67
- const byte1 = manufacturerData.readUInt8(1); // power and light status
68
- // const byte2 = manufacturerData.readUInt8(2);//bulb brightness
69
- const byte3 = manufacturerData.readUInt8(3); // bulb R
70
- const byte4 = manufacturerData.readUInt8(4); // bulb G
71
- const byte5 = manufacturerData.readUInt8(5); // bulb B
72
- const byte6 = manufacturerData.readUInt8(6); // bulb temperature
73
- const byte7 = manufacturerData.readUInt8(7);
74
- const byte8 = manufacturerData.readUInt8(8);
75
- const byte9 = manufacturerData.readUInt8(9);
76
- const byte10 = manufacturerData.readUInt8(10); // bulb mode
77
- const power = byte1;
78
- const red = byte3;
79
- const green = byte4;
80
- const blue = byte5;
81
- const color_temperature = byte6;
82
- const state = !!(byte7 & 0b01111111);
83
- const brightness = byte7 & 0b01111111;
84
- const delay = byte8 & 0b10000000;
85
- const preset = byte8 & 0b00001000;
86
- const color_mode = byte8 & 0b00000111;
87
- const speed = byte9 & 0b01111111;
88
- const loop_index = byte10 & 0b11111110;
89
- const data = {
49
+ const [, byte1, , byte3, byte4, byte5, byte6, byte7, byte8, byte9, byte10,] = manufacturerData;
50
+ return {
90
51
  model: SwitchBotBLEModel.CeilingLightPro,
91
52
  modelName: SwitchBotBLEModelName.CeilingLightPro,
92
53
  modelFriendlyName: SwitchBotBLEModelFriendlyName.CeilingLightPro,
93
- color_temperature,
94
- power,
95
- state,
96
- red,
97
- green,
98
- blue,
99
- brightness,
100
- delay,
101
- preset,
102
- color_mode,
103
- speed,
104
- loop_index,
54
+ power: byte1,
55
+ red: byte3,
56
+ green: byte4,
57
+ blue: byte5,
58
+ color_temperature: byte6,
59
+ state: !!(byte7 & 0b01111111),
60
+ brightness: byte7 & 0b01111111,
61
+ delay: !!(byte8 & 0b10000000),
62
+ preset: !!(byte8 & 0b00001000),
63
+ color_mode: byte8 & 0b00000111,
64
+ speed: byte9 & 0b01111111,
65
+ loop_index: byte10 & 0b11111110,
105
66
  };
106
- return data;
107
67
  }
108
68
  /**
109
- * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
69
+ * Reads the state of the ceiling light.
70
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the light is ON (true) or OFF (false).
110
71
  */
111
72
  async readState() {
112
- return await this.operateBot([0x57, 0x0F, 0x48, 0x01]);
73
+ return this.operateCeilingLight([0x57, 0x0F, 0x48, 0x01]);
113
74
  }
114
75
  /**
115
- *
76
+ * Sets the state of the ceiling light.
77
+ * @param {number[]} reqByteArray - The request byte array.
78
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the operation was successful.
116
79
  */
117
80
  async setState(reqByteArray) {
118
81
  const base = [0x57, 0x0F, 0x47, 0x01];
119
- return await this.operateBot(base.concat(reqByteArray));
82
+ return this.operateCeilingLight(base.concat(reqByteArray));
120
83
  }
121
84
  /**
122
- * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
85
+ * Turns on the ceiling light.
86
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the light is ON (true).
123
87
  */
124
88
  async turnOn() {
125
- return await this.setState([0x01, 0x01]);
89
+ return this.setState([0x01, 0x01]);
126
90
  }
127
91
  /**
128
- * @returns resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
92
+ * Turns off the ceiling light.
93
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the light is OFF (false).
129
94
  */
130
95
  async turnOff() {
131
- return await this.setState([0x01, 0x02]);
96
+ return this.setState([0x01, 0x02]);
132
97
  }
133
98
  /**
134
- * @param brightness
99
+ * Sets the brightness of the ceiling light.
100
+ * @param {number} brightness - The brightness percentage (0-100).
101
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the operation was successful.
135
102
  */
136
103
  async setBrightness(brightness) {
137
- if (typeof brightness !== 'number') {
138
- throw new TypeError(`The type of target brightness percentage is incorrect: ${typeof brightness}`);
139
- }
140
- if (brightness > 100) {
141
- brightness = 100;
142
- }
143
- else if (brightness < 0) {
144
- brightness = 0;
104
+ if (typeof brightness !== 'number' || brightness < 0 || brightness > 100) {
105
+ throw new TypeError(`Invalid brightness value: ${brightness}`);
145
106
  }
146
- return await this.setState([0x02, 0x14]);
107
+ return this.setState([0x02, 0x14, brightness]);
147
108
  }
148
109
  /**
149
- * @returns resolves with color_temperature percent
110
+ * Sets the color temperature of the ceiling light.
111
+ * @param {number} color_temperature - The color temperature percentage (0-100).
112
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the operation was successful.
150
113
  */
151
114
  async setColorTemperature(color_temperature) {
152
- if (typeof color_temperature !== 'number') {
153
- throw new TypeError(`The type of target color_temperature percentage is incorrect: ${typeof color_temperature}`);
115
+ if (typeof color_temperature !== 'number' || color_temperature < 0 || color_temperature > 100) {
116
+ throw new TypeError(`Invalid color temperature value: ${color_temperature}`);
154
117
  }
155
- if (color_temperature > 100) {
156
- color_temperature = 100;
157
- }
158
- else if (color_temperature < 0) {
159
- color_temperature = 0;
160
- }
161
- return await this.setState([0x02, 0x17, color_temperature]);
118
+ return this.setState([0x02, 0x17, color_temperature]);
162
119
  }
163
120
  /**
164
- * @param brightness
165
- * @param red
166
- * @param green
167
- * @param blue
121
+ * Sets the RGB color of the ceiling light.
122
+ * @param {number} brightness - The brightness percentage (0-100).
123
+ * @param {number} red - The red color value (0-255).
124
+ * @param {number} green - The green color value (0-255).
125
+ * @param {number} blue - The blue color value (0-255).
126
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the operation was successful.
168
127
  */
169
128
  async setRGB(brightness, red, green, blue) {
170
- if (typeof brightness !== 'number') {
171
- throw new TypeError(`The type of target brightness percentage is incorrect: ${typeof brightness}`);
172
- }
173
- if (typeof red !== 'number') {
174
- throw new TypeError(`The type of target red is incorrect: ${typeof red}`);
129
+ if (typeof brightness !== 'number' || brightness < 0 || brightness > 100
130
+ || typeof red !== 'number' || red < 0 || red > 255
131
+ || typeof green !== 'number' || green < 0 || green > 255
132
+ || typeof blue !== 'number' || blue < 0 || blue > 255) {
133
+ throw new TypeError('Invalid RGB or brightness values');
175
134
  }
176
- if (typeof green !== 'number') {
177
- throw new TypeError(`The type of target green is incorrect: ${typeof green}`);
178
- }
179
- if (typeof blue !== 'number') {
180
- throw new TypeError(`The type of target blue is incorrect: ${typeof blue}`);
181
- }
182
- if (brightness > 100) {
183
- brightness = 100;
184
- }
185
- else if (brightness < 0) {
186
- brightness = 0;
187
- }
188
- if (red > 255) {
189
- red = 255;
190
- }
191
- else if (red < 0) {
192
- red = 0;
193
- }
194
- if (green > 255) {
195
- green = 255;
196
- }
197
- else if (green < 0) {
198
- green = 0;
199
- }
200
- if (blue > 255) {
201
- blue = 255;
202
- }
203
- else if (blue < 0) {
204
- blue = 0;
205
- }
206
- return await this.setState([0x02, 0x12, brightness, red, green, blue]);
135
+ return this.setState([0x02, 0x12, brightness, red, green, blue]);
207
136
  }
208
137
  /**
209
- * @param bytes
138
+ * Sends a command to the ceiling light.
139
+ * @param {number[]} bytes - The command bytes.
140
+ * @returns {Promise<boolean>} - Resolves with a boolean indicating whether the operation was successful.
210
141
  */
211
- async operateBot(bytes) {
212
- const req_buf = Buffer.from(bytes);
213
- await this.command(req_buf)
214
- .then((res_bytes) => {
215
- const res_buf = Buffer.from(res_bytes);
216
- if (res_buf.length === 2) {
217
- const code = res_buf.readUInt8(1);
218
- if (code === 0x00 || code === 0x80) {
219
- const is_on = code === 0x80;
220
- return is_on;
221
- }
222
- else {
223
- throw new Error(`The device returned an error: 0x${res_buf.toString('hex')}`);
224
- }
225
- }
226
- else {
227
- throw new Error(`Expecting a 2-byte response, got instead: 0x${res_buf.toString('hex')}`);
142
+ async operateCeilingLight(bytes) {
143
+ const reqBuf = Buffer.from(bytes);
144
+ const resBuf = await this.command(reqBuf);
145
+ if (resBuf.length === 2) {
146
+ const code = resBuf.readUInt8(1);
147
+ if (code === 0x00 || code === 0x80) {
148
+ return code === 0x80;
228
149
  }
229
- })
230
- .catch((error) => {
231
- throw error;
232
- });
150
+ throw new Error(`The device returned an error: 0x${resBuf.toString('hex')}`);
151
+ }
152
+ throw new Error(`Expecting a 2-byte response, got instead: 0x${resBuf.toString('hex')}`);
233
153
  }
234
154
  }
235
155
  //# sourceMappingURL=woceilinglight.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"woceilinglight.js","sourceRoot":"","sources":["../../src/device/woceilinglight.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"woceilinglight.js","sourceRoot":"","sources":["../../src/device/woceilinglight.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,17 @@
1
1
  import type { Buffer } from 'node:buffer';
2
+ import type { SwitchBotBLE } from '../switchbot-ble.js';
2
3
  import { SwitchbotDevice } from '../device.js';
4
+ /**
5
+ * Class representing a WoContact device.
6
+ * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/contactsensor.md
7
+ */
3
8
  export declare class WoContact extends SwitchbotDevice {
4
- static parseServiceData(serviceData: Buffer, onlog: ((message: string) => void) | undefined): Promise<object | null>;
9
+ static switchBotBLE: SwitchBotBLE;
10
+ /**
11
+ * Parses the service data for WoContact.
12
+ * @param {Buffer} serviceData - The service data buffer.
13
+ * @returns {Promise<object | null>} - Parsed service data or null if invalid.
14
+ */
15
+ static parseServiceData(serviceData: Buffer): Promise<object | null>;
5
16
  }
6
17
  //# sourceMappingURL=wocontact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wocontact.d.ts","sourceRoot":"","sources":["../../src/device/wocontact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAMzC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C,qBAAa,SAAU,SAAQ,eAAe;WAC/B,gBAAgB,CAC3B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,GAC7C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAsC1B"}
1
+ {"version":3,"file":"wocontact.d.ts","sourceRoot":"","sources":["../../src/device/wocontact.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C;;;GAGG;AACH,qBAAa,SAAU,SAAQ,eAAe;IAC5C,MAAM,CAAC,YAAY,EAAE,YAAY,CAAA;IACjC;;;;OAIG;WACU,gBAAgB,CAC3B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAgC1B"}
@@ -1,30 +1,32 @@
1
- /* Copyright(C) 2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
- *
3
- * wocontact.ts: Switchbot BLE API registration.
4
- */
5
1
  import { SwitchbotDevice } from '../device.js';
6
2
  import { SwitchBotBLEModel, SwitchBotBLEModelFriendlyName, SwitchBotBLEModelName } from '../types/types.js';
3
+ /**
4
+ * Class representing a WoContact device.
5
+ * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/contactsensor.md
6
+ */
7
7
  export class WoContact extends SwitchbotDevice {
8
- static async parseServiceData(serviceData, onlog) {
8
+ static switchBotBLE;
9
+ /**
10
+ * Parses the service data for WoContact.
11
+ * @param {Buffer} serviceData - The service data buffer.
12
+ * @returns {Promise<object | null>} - Parsed service data or null if invalid.
13
+ */
14
+ static async parseServiceData(serviceData) {
9
15
  if (serviceData.length !== 9) {
10
- if (onlog && typeof onlog === 'function') {
11
- onlog(`[parseServiceDataForWoContact] Buffer length ${serviceData.length} !== 9!`);
12
- }
16
+ this.switchBotBLE.emitLog('error', `[parseServiceDataForWoContact] Buffer length ${serviceData.length} !== 9!`);
13
17
  return null;
14
18
  }
15
- const byte1 = serviceData.readUInt8(1);
16
- const byte2 = serviceData.readUInt8(2);
17
- const byte3 = serviceData.readUInt8(3);
18
- const byte8 = serviceData.readUInt8(8);
19
+ const [byte1, byte2, byte3, , , , , , byte8] = serviceData;
19
20
  const hallState = (byte3 >> 1) & 0b00000011;
20
- const tested = byte1 & 0b10000000;
21
- const movement = !!(byte1 & 0b01000000); // 1 - Movement detected
22
- const battery = byte2 & 0b01111111; // %
23
- const contact_open = (byte3 & 0b00000010) === 0b00000010;
24
- const contact_timeout = (byte3 & 0b00000100) === 0b00000100;
25
- const lightLevel = byte3 & 0b00000001;
21
+ const tested = Boolean(byte1 & 0b10000000);
22
+ const movement = Boolean(byte1 & 0b01000000);
23
+ const battery = byte2 & 0b01111111;
24
+ const contact_open = Boolean(byte3 & 0b00000010);
25
+ const contact_timeout = Boolean(byte3 & 0b00000100);
26
+ const lightLevel = byte3 & 0b00000001 ? 'bright' : 'dark';
26
27
  const button_count = byte8 & 0b00001111;
27
- const data = {
28
+ const doorState = hallState === 0 ? 'close' : hallState === 1 ? 'open' : 'timeout no closed';
29
+ return {
28
30
  model: SwitchBotBLEModel.ContactSensor,
29
31
  modelName: SwitchBotBLEModelName.ContactSensor,
30
32
  modelFriendlyName: SwitchBotBLEModelFriendlyName.ContactSensor,
@@ -33,11 +35,10 @@ export class WoContact extends SwitchbotDevice {
33
35
  battery,
34
36
  contact_open,
35
37
  contact_timeout,
36
- lightLevel: lightLevel === 0 ? 'dark' : 'bright',
38
+ lightLevel,
37
39
  button_count,
38
- doorState: hallState === 0 ? 'close' : hallState === 1 ? 'open' : 'timeout no closed',
40
+ doorState,
39
41
  };
40
- return data;
41
42
  }
42
43
  }
43
44
  //# sourceMappingURL=wocontact.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wocontact.js","sourceRoot":"","sources":["../../src/device/wocontact.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G,MAAM,OAAO,SAAU,SAAQ,eAAe;IAC5C,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,WAAmB,EACnB,KAA8C;QAE9C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CAAC,gDAAgD,WAAW,CAAC,MAAM,SAAS,CAAC,CAAA;YACpF,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACtC,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QAEtC,MAAM,SAAS,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,UAAU,CAAA;QAC3C,MAAM,MAAM,GAAG,KAAK,GAAG,UAAU,CAAA;QACjC,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA,CAAC,wBAAwB;QAChE,MAAM,OAAO,GAAG,KAAK,GAAG,UAAU,CAAA,CAAC,IAAI;QACvC,MAAM,YAAY,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,UAAU,CAAA;QACxD,MAAM,eAAe,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,UAAU,CAAA;QAC3D,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,CAAA;QACrC,MAAM,YAAY,GAAG,KAAK,GAAG,UAAU,CAAA;QAEvC,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,iBAAiB,CAAC,aAAa;YACtC,SAAS,EAAE,qBAAqB,CAAC,aAAa;YAC9C,iBAAiB,EAAE,6BAA6B,CAAC,aAAa;YAC9D,QAAQ;YACR,MAAM;YACN,OAAO;YACP,YAAY;YACZ,eAAe;YACf,UAAU,EAAE,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;YAChD,YAAY;YACZ,SAAS,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB;SACtF,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
1
+ {"version":3,"file":"wocontact.js","sourceRoot":"","sources":["../../src/device/wocontact.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE3G;;;GAGG;AACH,MAAM,OAAO,SAAU,SAAQ,eAAe;IAC5C,MAAM,CAAC,YAAY,CAAc;IACjC;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,WAAmB;QAEnB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,gDAAgD,WAAW,CAAC,MAAM,SAAS,CAAC,CAAA;YAC/G,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,AAAD,EAAG,AAAD,EAAG,AAAD,EAAG,AAAD,EAAG,AAAD,EAAG,KAAK,CAAC,GAAG,WAAW,CAAA;QAE1D,MAAM,SAAS,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,UAAU,CAAA;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA;QAC5C,MAAM,OAAO,GAAG,KAAK,GAAG,UAAU,CAAA;QAClC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA;QAChD,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA;QACnD,MAAM,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAA;QACzD,MAAM,YAAY,GAAG,KAAK,GAAG,UAAU,CAAA;QACvC,MAAM,SAAS,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAA;QAE5F,OAAO;YACL,KAAK,EAAE,iBAAiB,CAAC,aAAa;YACtC,SAAS,EAAE,qBAAqB,CAAC,aAAa;YAC9C,iBAAiB,EAAE,6BAA6B,CAAC,aAAa;YAC9D,QAAQ;YACR,MAAM;YACN,OAAO;YACP,YAAY;YACZ,eAAe;YACf,UAAU;YACV,YAAY;YACZ,SAAS;SACV,CAAA;IACH,CAAC;CACF"}