node-switchbot 3.6.6 → 4.0.0-beta.1

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 (551) hide show
  1. package/.github/npm-version-script-esm.js +97 -0
  2. package/CHANGELOG.md +322 -0
  3. package/PRODUCTION_READY.md +135 -0
  4. package/README.md +92 -0
  5. package/dist/api.d.ts +130 -0
  6. package/dist/api.d.ts.map +1 -0
  7. package/dist/api.js +286 -0
  8. package/dist/api.js.map +1 -0
  9. package/dist/ble.d.ts +116 -0
  10. package/dist/ble.d.ts.map +1 -0
  11. package/dist/ble.js +430 -0
  12. package/dist/ble.js.map +1 -0
  13. package/dist/devices/base.d.ts +146 -0
  14. package/dist/devices/base.d.ts.map +1 -0
  15. package/dist/devices/base.js +324 -0
  16. package/dist/devices/base.js.map +1 -0
  17. package/dist/devices/index.d.ts +30 -0
  18. package/dist/devices/index.d.ts.map +1 -0
  19. package/dist/devices/index.js +34 -0
  20. package/dist/devices/index.js.map +1 -0
  21. package/dist/devices/wo-air-purifier-table.d.ts +8 -0
  22. package/dist/devices/wo-air-purifier-table.d.ts.map +1 -0
  23. package/dist/devices/wo-air-purifier-table.js +12 -0
  24. package/dist/devices/wo-air-purifier-table.js.map +1 -0
  25. package/dist/devices/wo-air-purifier.d.ts +28 -0
  26. package/dist/devices/wo-air-purifier.d.ts.map +1 -0
  27. package/dist/devices/wo-air-purifier.js +105 -0
  28. package/dist/devices/wo-air-purifier.js.map +1 -0
  29. package/dist/devices/wo-blind-tilt.d.ts +36 -0
  30. package/dist/devices/wo-blind-tilt.d.ts.map +1 -0
  31. package/dist/devices/wo-blind-tilt.js +95 -0
  32. package/dist/devices/wo-blind-tilt.js.map +1 -0
  33. package/dist/devices/wo-bulb.d.ts +32 -0
  34. package/dist/devices/wo-bulb.d.ts.map +1 -0
  35. package/dist/devices/wo-bulb.js +109 -0
  36. package/dist/devices/wo-bulb.js.map +1 -0
  37. package/dist/devices/wo-ceiling-light.d.ts +8 -0
  38. package/dist/devices/wo-ceiling-light.d.ts.map +1 -0
  39. package/dist/devices/wo-ceiling-light.js +12 -0
  40. package/dist/devices/wo-ceiling-light.js.map +1 -0
  41. package/dist/devices/wo-contact.d.ts +12 -0
  42. package/dist/devices/wo-contact.d.ts.map +1 -0
  43. package/dist/devices/wo-contact.js +50 -0
  44. package/dist/devices/wo-contact.js.map +1 -0
  45. package/dist/devices/wo-curtain.d.ts +28 -0
  46. package/dist/devices/wo-curtain.d.ts.map +1 -0
  47. package/dist/devices/wo-curtain.js +82 -0
  48. package/dist/devices/wo-curtain.js.map +1 -0
  49. package/dist/devices/wo-hand.d.ts +24 -0
  50. package/dist/devices/wo-hand.d.ts.map +1 -0
  51. package/dist/devices/wo-hand.js +70 -0
  52. package/dist/devices/wo-hand.js.map +1 -0
  53. package/dist/devices/wo-hub2.d.ts +12 -0
  54. package/dist/devices/wo-hub2.d.ts.map +1 -0
  55. package/dist/devices/wo-hub2.js +48 -0
  56. package/dist/devices/wo-hub2.js.map +1 -0
  57. package/dist/devices/wo-hub3.d.ts +8 -0
  58. package/dist/devices/wo-hub3.d.ts.map +1 -0
  59. package/dist/devices/wo-hub3.js +12 -0
  60. package/dist/devices/wo-hub3.js.map +1 -0
  61. package/dist/devices/wo-humi.d.ts +28 -0
  62. package/dist/devices/wo-humi.d.ts.map +1 -0
  63. package/dist/devices/wo-humi.js +91 -0
  64. package/dist/devices/wo-humi.js.map +1 -0
  65. package/dist/devices/wo-humi2.d.ts +8 -0
  66. package/dist/devices/wo-humi2.d.ts.map +1 -0
  67. package/dist/devices/wo-humi2.js +12 -0
  68. package/dist/devices/wo-humi2.js.map +1 -0
  69. package/dist/devices/wo-io-sensor-th.d.ts +8 -0
  70. package/dist/devices/wo-io-sensor-th.d.ts.map +1 -0
  71. package/dist/devices/wo-io-sensor-th.js +12 -0
  72. package/dist/devices/wo-io-sensor-th.js.map +1 -0
  73. package/dist/devices/wo-keypad.d.ts +13 -0
  74. package/dist/devices/wo-keypad.d.ts.map +1 -0
  75. package/dist/devices/wo-keypad.js +46 -0
  76. package/dist/devices/wo-keypad.js.map +1 -0
  77. package/dist/devices/wo-leak.d.ts +12 -0
  78. package/dist/devices/wo-leak.d.ts.map +1 -0
  79. package/dist/devices/wo-leak.js +46 -0
  80. package/dist/devices/wo-leak.js.map +1 -0
  81. package/dist/devices/wo-lock-pro.d.ts +24 -0
  82. package/dist/devices/wo-lock-pro.d.ts.map +1 -0
  83. package/dist/devices/wo-lock-pro.js +72 -0
  84. package/dist/devices/wo-lock-pro.js.map +1 -0
  85. package/dist/devices/wo-lock.d.ts +20 -0
  86. package/dist/devices/wo-lock.d.ts.map +1 -0
  87. package/dist/devices/wo-lock.js +64 -0
  88. package/dist/devices/wo-lock.js.map +1 -0
  89. package/dist/devices/wo-plug-mini-jp.d.ts +8 -0
  90. package/dist/devices/wo-plug-mini-jp.d.ts.map +1 -0
  91. package/dist/devices/wo-plug-mini-jp.js +12 -0
  92. package/dist/devices/wo-plug-mini-jp.js.map +1 -0
  93. package/dist/devices/wo-plug-mini-us.d.ts +24 -0
  94. package/dist/devices/wo-plug-mini-us.d.ts.map +1 -0
  95. package/dist/devices/wo-plug-mini-us.js +70 -0
  96. package/dist/devices/wo-plug-mini-us.js.map +1 -0
  97. package/dist/devices/wo-presence.d.ts +12 -0
  98. package/dist/devices/wo-presence.d.ts.map +1 -0
  99. package/dist/devices/wo-presence.js +48 -0
  100. package/dist/devices/wo-presence.js.map +1 -0
  101. package/dist/devices/wo-relay-switch-1.d.ts +24 -0
  102. package/dist/devices/wo-relay-switch-1.d.ts.map +1 -0
  103. package/dist/devices/wo-relay-switch-1.js +70 -0
  104. package/dist/devices/wo-relay-switch-1.js.map +1 -0
  105. package/dist/devices/wo-relay-switch-1pm.d.ts +8 -0
  106. package/dist/devices/wo-relay-switch-1pm.d.ts.map +1 -0
  107. package/dist/devices/wo-relay-switch-1pm.js +12 -0
  108. package/dist/devices/wo-relay-switch-1pm.js.map +1 -0
  109. package/dist/devices/wo-remote.d.ts +13 -0
  110. package/dist/devices/wo-remote.d.ts.map +1 -0
  111. package/dist/devices/wo-remote.js +45 -0
  112. package/dist/devices/wo-remote.js.map +1 -0
  113. package/dist/devices/wo-sensor-th-plus.d.ts +8 -0
  114. package/dist/devices/wo-sensor-th-plus.d.ts.map +1 -0
  115. package/dist/devices/wo-sensor-th-plus.js +12 -0
  116. package/dist/devices/wo-sensor-th-plus.js.map +1 -0
  117. package/dist/devices/wo-sensor-th-pro-co2.d.ts +8 -0
  118. package/dist/devices/wo-sensor-th-pro-co2.d.ts.map +1 -0
  119. package/dist/devices/wo-sensor-th-pro-co2.js +12 -0
  120. package/dist/devices/wo-sensor-th-pro-co2.js.map +1 -0
  121. package/dist/devices/wo-sensor-th-pro.d.ts +8 -0
  122. package/dist/devices/wo-sensor-th-pro.d.ts.map +1 -0
  123. package/dist/devices/wo-sensor-th-pro.js +12 -0
  124. package/dist/devices/wo-sensor-th-pro.js.map +1 -0
  125. package/dist/devices/wo-sensor-th.d.ts +12 -0
  126. package/dist/devices/wo-sensor-th.d.ts.map +1 -0
  127. package/dist/devices/wo-sensor-th.js +49 -0
  128. package/dist/devices/wo-sensor-th.js.map +1 -0
  129. package/dist/devices/wo-strip.d.ts +8 -0
  130. package/dist/devices/wo-strip.d.ts.map +1 -0
  131. package/dist/devices/wo-strip.js +12 -0
  132. package/dist/devices/wo-strip.js.map +1 -0
  133. package/dist/errors.d.ts +63 -0
  134. package/dist/errors.d.ts.map +1 -0
  135. package/dist/errors.js +103 -0
  136. package/dist/errors.js.map +1 -0
  137. package/dist/index.d.ts +10 -6
  138. package/dist/index.d.ts.map +1 -1
  139. package/dist/index.js +9 -10
  140. package/dist/index.js.map +1 -1
  141. package/dist/settings.d.ts +126 -47
  142. package/dist/settings.d.ts.map +1 -1
  143. package/dist/settings.js +214 -64
  144. package/dist/settings.js.map +1 -1
  145. package/dist/switchbot.d.ts +87 -0
  146. package/dist/switchbot.d.ts.map +1 -0
  147. package/dist/switchbot.js +422 -0
  148. package/dist/switchbot.js.map +1 -0
  149. package/dist/types/api.d.ts +187 -0
  150. package/dist/types/api.d.ts.map +1 -0
  151. package/dist/types/api.js +6 -0
  152. package/dist/types/api.js.map +1 -0
  153. package/dist/types/ble.d.ts +246 -348
  154. package/dist/types/ble.d.ts.map +1 -1
  155. package/dist/types/ble.js +94 -1
  156. package/dist/types/ble.js.map +1 -1
  157. package/dist/types/device.d.ts +209 -0
  158. package/dist/types/device.d.ts.map +1 -0
  159. package/dist/types/device.js +6 -0
  160. package/dist/types/device.js.map +1 -0
  161. package/dist/types/index.d.ts +115 -0
  162. package/dist/types/index.d.ts.map +1 -0
  163. package/dist/types/index.js +19 -0
  164. package/dist/types/index.js.map +1 -0
  165. package/dist/utils/index.d.ts +97 -0
  166. package/dist/utils/index.d.ts.map +1 -0
  167. package/dist/utils/index.js +206 -0
  168. package/dist/utils/index.js.map +1 -0
  169. package/docs/assets/hierarchy.js +1 -1
  170. package/docs/assets/highlight.css +20 -6
  171. package/docs/assets/icons.js +1 -1
  172. package/docs/assets/icons.svg +1 -1
  173. package/docs/assets/main.js +2 -2
  174. package/docs/assets/navigation.js +1 -1
  175. package/docs/assets/search.js +1 -1
  176. package/docs/assets/style.css +3 -3
  177. package/docs/classes/APIError.html +6 -0
  178. package/docs/classes/APINotAvailableError.html +4 -0
  179. package/docs/classes/BLEConnection.html +17 -0
  180. package/docs/classes/BLENotAvailableError.html +4 -0
  181. package/docs/classes/BLEScanner.html +15 -0
  182. package/docs/classes/CommandFailedError.html +6 -0
  183. package/docs/classes/ConnectionTimeoutError.html +5 -0
  184. package/docs/classes/DeviceManager.html +25 -0
  185. package/docs/classes/DeviceNotFoundError.html +4 -0
  186. package/docs/classes/DiscoveryError.html +5 -0
  187. package/docs/classes/OpenAPIClient.html +66 -0
  188. package/docs/classes/SwitchBot.html +22 -0
  189. package/docs/classes/SwitchBotDevice.html +28 -0
  190. package/docs/classes/SwitchBotError.html +4 -0
  191. package/docs/classes/ValidationError.html +5 -0
  192. package/docs/classes/WoAirPurifier.html +32 -80
  193. package/docs/classes/WoAirPurifierTable.html +36 -83
  194. package/docs/classes/WoBlindTilt.html +34 -73
  195. package/docs/classes/WoBulb.html +33 -85
  196. package/docs/classes/WoCeilingLight.html +38 -107
  197. package/docs/classes/WoContact.html +27 -52
  198. package/docs/classes/WoCurtain.html +32 -69
  199. package/docs/classes/WoHand.html +30 -59
  200. package/docs/classes/WoHub2.html +27 -52
  201. package/docs/classes/WoHub3.html +28 -52
  202. package/docs/classes/WoHumi.html +33 -65
  203. package/docs/classes/WoHumi2.html +36 -67
  204. package/docs/classes/WoIOSensorTH.html +28 -53
  205. package/docs/classes/WoKeypad.html +28 -52
  206. package/docs/classes/WoLeak.html +27 -53
  207. package/docs/classes/WoPlugMiniJP.html +34 -78
  208. package/docs/classes/WoPlugMiniUS.html +30 -75
  209. package/docs/classes/WoPresence.html +27 -60
  210. package/docs/classes/WoRelaySwitch1.html +31 -55
  211. package/docs/classes/WoRelaySwitch1PM.html +34 -57
  212. package/docs/classes/WoRemote.html +28 -52
  213. package/docs/classes/WoSensorTH.html +27 -46
  214. package/docs/classes/WoSensorTHPlus.html +28 -46
  215. package/docs/classes/WoSensorTHPro.html +28 -46
  216. package/docs/classes/WoSensorTHProCO2.html +28 -46
  217. package/docs/classes/WoSmartLock.html +29 -111
  218. package/docs/classes/WoSmartLockPro.html +31 -111
  219. package/docs/classes/WoStrip.html +38 -94
  220. package/docs/enums/LogLevel.html +4 -7
  221. package/docs/enums/SwitchBotBLEModel.html +11 -6
  222. package/docs/enums/SwitchBotBLEModelName.html +13 -6
  223. package/docs/functions/updateBaseURL.html +3 -3
  224. package/docs/hierarchy.html +1 -1
  225. package/docs/index.html +40 -6
  226. package/docs/interfaces/APICommandRequest.html +5 -0
  227. package/docs/interfaces/APICommandResponse.html +5 -0
  228. package/docs/interfaces/APIDevice.html +18 -0
  229. package/docs/interfaces/APIDeviceStatus.html +36 -0
  230. package/docs/interfaces/APIErrorResponse.html +5 -0
  231. package/docs/interfaces/APIResponse.html +5 -0
  232. package/docs/interfaces/AirPurifierCommands.html +5 -0
  233. package/docs/interfaces/AirPurifierServiceData.html +14 -0
  234. package/docs/interfaces/AirPurifierStatus.html +17 -0
  235. package/docs/interfaces/BLEAdvertisement.html +6 -0
  236. package/docs/interfaces/BLEScanOptions.html +10 -0
  237. package/docs/interfaces/BLEServiceData.html +10 -0
  238. package/docs/interfaces/BlindTiltCommands.html +7 -0
  239. package/docs/interfaces/BlindTiltServiceData.html +14 -0
  240. package/docs/interfaces/BlindTiltStatus.html +15 -0
  241. package/docs/interfaces/BotCommands.html +4 -0
  242. package/docs/interfaces/BotServiceData.html +12 -0
  243. package/docs/interfaces/BotStatus.html +14 -0
  244. package/docs/interfaces/BulbCommands.html +6 -0
  245. package/docs/interfaces/BulbServiceData.html +19 -0
  246. package/docs/interfaces/BulbStatus.html +16 -0
  247. package/docs/interfaces/CeilingLightCommands.html +6 -0
  248. package/docs/interfaces/CeilingLightServiceData.html +19 -0
  249. package/docs/interfaces/CeilingLightStatus.html +16 -0
  250. package/docs/interfaces/CommandResult.html +12 -0
  251. package/docs/interfaces/ContactServiceData.html +13 -0
  252. package/docs/interfaces/ContactStatus.html +15 -0
  253. package/docs/interfaces/CurtainCommands.html +5 -0
  254. package/docs/interfaces/CurtainServiceData.html +14 -0
  255. package/docs/interfaces/CurtainStatus.html +17 -0
  256. package/docs/interfaces/DeviceInfo.html +26 -0
  257. package/docs/interfaces/DeviceListResponse.html +4 -0
  258. package/docs/interfaces/DeviceStatus.html +12 -0
  259. package/docs/interfaces/DiscoveryOptions.html +14 -0
  260. package/docs/interfaces/HubServiceData.html +14 -0
  261. package/docs/interfaces/HubStatus.html +15 -0
  262. package/docs/interfaces/HumidifierCommands.html +5 -0
  263. package/docs/interfaces/HumidifierServiceData.html +14 -0
  264. package/docs/interfaces/HumidifierStatus.html +18 -0
  265. package/docs/interfaces/KeypadStatus.html +13 -0
  266. package/docs/interfaces/LeakServiceData.html +11 -0
  267. package/docs/interfaces/LeakStatus.html +13 -0
  268. package/docs/interfaces/LockCommands.html +3 -0
  269. package/docs/interfaces/LockServiceData.html +15 -0
  270. package/docs/interfaces/LockStatus.html +15 -0
  271. package/docs/interfaces/MeterServiceData.html +13 -0
  272. package/docs/interfaces/MeterStatus.html +15 -0
  273. package/docs/interfaces/MotionServiceData.html +13 -0
  274. package/docs/interfaces/MotionStatus.html +14 -0
  275. package/docs/interfaces/PlugCommands.html +4 -0
  276. package/docs/interfaces/PlugServiceData.html +17 -0
  277. package/docs/interfaces/PlugStatus.html +16 -0
  278. package/docs/interfaces/PresenceServiceData.html +12 -0
  279. package/docs/interfaces/PresenceStatus.html +14 -0
  280. package/docs/interfaces/RelaySwitchCommands.html +4 -0
  281. package/docs/interfaces/RelaySwitchServiceData.html +14 -0
  282. package/docs/interfaces/RelaySwitchStatus.html +16 -0
  283. package/docs/interfaces/RemoteStatus.html +12 -0
  284. package/docs/interfaces/SceneListResponse.html +3 -0
  285. package/docs/interfaces/StripCommands.html +6 -0
  286. package/docs/interfaces/StripServiceData.html +19 -0
  287. package/docs/interfaces/StripStatus.html +16 -0
  288. package/docs/interfaces/SwitchBotConfig.html +18 -0
  289. package/docs/interfaces/WebhookConfig.html +4 -0
  290. package/docs/interfaces/WebhookDetails.html +7 -0
  291. package/docs/interfaces/WebhookQueryResponse.html +5 -0
  292. package/docs/interfaces/WebhookSetupResponse.html +5 -0
  293. package/docs/modules.html +1 -1
  294. package/docs/types/ConnectionType.html +2 -0
  295. package/docs/types/PhysicalDeviceType.html +2 -0
  296. package/docs/types/VirtualDeviceType.html +2 -0
  297. package/docs/variables/urls.html +1 -1
  298. package/package.json +12 -21
  299. package/.github/scripts/npm-version-script-esm-auto.js +0 -207
  300. package/dist/device.d.ts +0 -1626
  301. package/dist/device.d.ts.map +0 -1
  302. package/dist/device.js +0 -3602
  303. package/dist/device.js.map +0 -1
  304. package/dist/device.test.d.ts +0 -2
  305. package/dist/device.test.d.ts.map +0 -1
  306. package/dist/device.test.js +0 -336
  307. package/dist/device.test.js.map +0 -1
  308. package/dist/index.test.d.ts +0 -2
  309. package/dist/index.test.d.ts.map +0 -1
  310. package/dist/index.test.js +0 -14
  311. package/dist/index.test.js.map +0 -1
  312. package/dist/parameter-checker.d.ts +0 -91
  313. package/dist/parameter-checker.d.ts.map +0 -1
  314. package/dist/parameter-checker.js +0 -262
  315. package/dist/parameter-checker.js.map +0 -1
  316. package/dist/parameter-checker.test.d.ts +0 -2
  317. package/dist/parameter-checker.test.d.ts.map +0 -1
  318. package/dist/parameter-checker.test.js +0 -56
  319. package/dist/parameter-checker.test.js.map +0 -1
  320. package/dist/settings.test.d.ts +0 -2
  321. package/dist/settings.test.d.ts.map +0 -1
  322. package/dist/settings.test.js +0 -61
  323. package/dist/settings.test.js.map +0 -1
  324. package/dist/switchbot-ble.d.ts +0 -89
  325. package/dist/switchbot-ble.d.ts.map +0 -1
  326. package/dist/switchbot-ble.js +0 -320
  327. package/dist/switchbot-ble.js.map +0 -1
  328. package/dist/switchbot-ble.test.d.ts +0 -2
  329. package/dist/switchbot-ble.test.d.ts.map +0 -1
  330. package/dist/switchbot-ble.test.js +0 -32
  331. package/dist/switchbot-ble.test.js.map +0 -1
  332. package/dist/switchbot-openapi.d.ts +0 -139
  333. package/dist/switchbot-openapi.d.ts.map +0 -1
  334. package/dist/switchbot-openapi.js +0 -375
  335. package/dist/switchbot-openapi.js.map +0 -1
  336. package/dist/switchbot-openapi.test.d.ts +0 -2
  337. package/dist/switchbot-openapi.test.d.ts.map +0 -1
  338. package/dist/switchbot-openapi.test.js +0 -36
  339. package/dist/switchbot-openapi.test.js.map +0 -1
  340. package/dist/types/ble-guards.d.ts +0 -12
  341. package/dist/types/ble-guards.d.ts.map +0 -1
  342. package/dist/types/ble-guards.js +0 -10
  343. package/dist/types/ble-guards.js.map +0 -1
  344. package/dist/types/ble-guards.test.d.ts +0 -2
  345. package/dist/types/ble-guards.test.d.ts.map +0 -1
  346. package/dist/types/ble-guards.test.js +0 -62
  347. package/dist/types/ble-guards.test.js.map +0 -1
  348. package/dist/types/openapi.d.ts +0 -638
  349. package/dist/types/openapi.d.ts.map +0 -1
  350. package/dist/types/openapi.js +0 -3
  351. package/dist/types/openapi.js.map +0 -1
  352. package/docs/classes/Advertising.html +0 -21
  353. package/docs/classes/ErrorUtils.html +0 -25
  354. package/docs/classes/ParameterChecker.html +0 -69
  355. package/docs/classes/SwitchBotBLE.html +0 -39
  356. package/docs/classes/SwitchBotOpenAPI.html +0 -57
  357. package/docs/classes/SwitchbotDevice.html +0 -47
  358. package/docs/classes/ValidationUtils.html +0 -51
  359. package/docs/classes/WoPlugMiniEU.html +0 -84
  360. package/docs/classes/WoSmartLockUltra.html +0 -113
  361. package/docs/enums/SwitchBotBLEModelFriendlyName.html +0 -39
  362. package/docs/enums/SwitchBotModel.html +0 -53
  363. package/docs/interfaces/AdvertisementData.html +0 -3
  364. package/docs/interfaces/Chars.html +0 -4
  365. package/docs/interfaces/ColorLightServiceDataBase.html +0 -17
  366. package/docs/interfaces/ErrorObject.html +0 -3
  367. package/docs/interfaces/LockBaseServiceData.html +0 -15
  368. package/docs/interfaces/NobleTypes.html +0 -3
  369. package/docs/interfaces/Params.html +0 -6
  370. package/docs/interfaces/PlugMiniServiceDataBase.html +0 -12
  371. package/docs/interfaces/Rule.html +0 -9
  372. package/docs/interfaces/ServiceData.html +0 -2
  373. package/docs/interfaces/SwitchBotBLEDevice.html +0 -28
  374. package/docs/interfaces/SwitchBotScanner.html +0 -6
  375. package/docs/interfaces/TemperatureServiceDataBase.html +0 -10
  376. package/docs/interfaces/WebhookDetail.html +0 -6
  377. package/docs/interfaces/ad.html +0 -5
  378. package/docs/interfaces/body.html +0 -3
  379. package/docs/interfaces/bodyChange.html +0 -4
  380. package/docs/interfaces/deleteWebhookResponse.html +0 -4
  381. package/docs/interfaces/device.html +0 -7
  382. package/docs/interfaces/deviceList.html +0 -2
  383. package/docs/interfaces/deviceStatus.html +0 -7
  384. package/docs/interfaces/deviceStatusRequest.html +0 -4
  385. package/docs/interfaces/deviceWebhook.html +0 -4
  386. package/docs/interfaces/deviceWebhookContext.html +0 -4
  387. package/docs/interfaces/devices.html +0 -4
  388. package/docs/interfaces/infraredRemoteList.html +0 -2
  389. package/docs/interfaces/irdevice.html +0 -5
  390. package/docs/interfaces/pushRequest.html +0 -5
  391. package/docs/interfaces/pushResponse.html +0 -5
  392. package/docs/interfaces/pushResponseBody.html +0 -3
  393. package/docs/interfaces/queryWebhookResponse.html +0 -4
  394. package/docs/interfaces/setupWebhookResponse.html +0 -4
  395. package/docs/interfaces/updateWebhookResponse.html +0 -4
  396. package/docs/interfaces/webhookRequest.html +0 -4
  397. package/docs/types/BLEDeviceServiceData.html +0 -1
  398. package/docs/types/IndoorCam.html +0 -1
  399. package/docs/types/MacAddress.html +0 -1
  400. package/docs/types/airPurifier.html +0 -1
  401. package/docs/types/airPurifierPM25WebhookContext.html +0 -1
  402. package/docs/types/airPurifierServiceData.html +0 -1
  403. package/docs/types/airPurifierStatus.html +0 -1
  404. package/docs/types/airPurifierTable.html +0 -1
  405. package/docs/types/airPurifierTablePM25WebhookContext.html +0 -1
  406. package/docs/types/airPurifierTableServiceData.html +0 -1
  407. package/docs/types/airPurifierTableStatus.html +0 -1
  408. package/docs/types/airPurifierTableVOC.html +0 -1
  409. package/docs/types/airPurifierTableVOCStatus.html +0 -1
  410. package/docs/types/airPurifierTableVOCWebhookContext.html +0 -1
  411. package/docs/types/airPurifierTableWebhookContext.html +0 -1
  412. package/docs/types/airPurifierVOC.html +0 -1
  413. package/docs/types/airPurifierVOCStatus.html +0 -1
  414. package/docs/types/airPurifierVOCWebhookContext.html +0 -1
  415. package/docs/types/airPurifierWebhookContext.html +0 -1
  416. package/docs/types/batteryCirculatorFan.html +0 -1
  417. package/docs/types/batteryCirculatorFanServiceData.html +0 -1
  418. package/docs/types/batteryCirculatorFanStatus.html +0 -1
  419. package/docs/types/batteryCirculatorFanWebhookContext.html +0 -1
  420. package/docs/types/blindTilt.html +0 -1
  421. package/docs/types/blindTiltServiceData.html +0 -1
  422. package/docs/types/blindTiltStatus.html +0 -1
  423. package/docs/types/blindTiltWebhookContext.html +0 -1
  424. package/docs/types/bot.html +0 -1
  425. package/docs/types/botServiceData.html +0 -1
  426. package/docs/types/botStatus.html +0 -1
  427. package/docs/types/botWebhookContext.html +0 -1
  428. package/docs/types/ceilingLight.html +0 -1
  429. package/docs/types/ceilingLightPro.html +0 -1
  430. package/docs/types/ceilingLightProServiceData.html +0 -1
  431. package/docs/types/ceilingLightProStatus.html +0 -1
  432. package/docs/types/ceilingLightProWebhookContext.html +0 -1
  433. package/docs/types/ceilingLightServiceData.html +0 -1
  434. package/docs/types/ceilingLightStatus.html +0 -1
  435. package/docs/types/ceilingLightWebhookContext.html +0 -1
  436. package/docs/types/circulatorFanStatus.html +0 -1
  437. package/docs/types/circulatorFanWebhookContext.html +0 -1
  438. package/docs/types/colorBulb.html +0 -1
  439. package/docs/types/colorBulbServiceData.html +0 -1
  440. package/docs/types/colorBulbStatus.html +0 -1
  441. package/docs/types/colorBulbWebhookContext.html +0 -1
  442. package/docs/types/commandType.html +0 -2
  443. package/docs/types/contactSensor.html +0 -1
  444. package/docs/types/contactSensorServiceData.html +0 -1
  445. package/docs/types/contactSensorStatus.html +0 -1
  446. package/docs/types/contactSensorWebhookContext.html +0 -1
  447. package/docs/types/curtain.html +0 -1
  448. package/docs/types/curtain3.html +0 -1
  449. package/docs/types/curtain3ServiceData.html +0 -1
  450. package/docs/types/curtain3WebhookContext.html +0 -1
  451. package/docs/types/curtainServiceData.html +0 -1
  452. package/docs/types/curtainStatus.html +0 -1
  453. package/docs/types/curtainWebhookContext.html +0 -1
  454. package/docs/types/floorCleaningRobotS10.html +0 -1
  455. package/docs/types/floorCleaningRobotS10Status.html +0 -1
  456. package/docs/types/floorCleaningRobotS10WebhookContext.html +0 -1
  457. package/docs/types/hub2.html +0 -1
  458. package/docs/types/hub2ServiceData.html +0 -1
  459. package/docs/types/hub2Status.html +0 -1
  460. package/docs/types/hub2WebhookContext.html +0 -1
  461. package/docs/types/hub3ServiceData.html +0 -1
  462. package/docs/types/humidifier.html +0 -1
  463. package/docs/types/humidifier2ServiceData.html +0 -1
  464. package/docs/types/humidifier2Status.html +0 -1
  465. package/docs/types/humidifier2WebhookContext.html +0 -1
  466. package/docs/types/humidifierServiceData.html +0 -1
  467. package/docs/types/humidifierStatus.html +0 -1
  468. package/docs/types/humidifierWebhookContext.html +0 -1
  469. package/docs/types/indoorCameraWebhookContext.html +0 -1
  470. package/docs/types/keypad.html +0 -1
  471. package/docs/types/keypadDetectorServiceData.html +0 -1
  472. package/docs/types/keypadTouch.html +0 -1
  473. package/docs/types/keypadTouchWebhookContext.html +0 -1
  474. package/docs/types/keypadWebhookContext.html +0 -1
  475. package/docs/types/lock.html +0 -1
  476. package/docs/types/lockPro.html +0 -1
  477. package/docs/types/lockProServiceData.html +0 -1
  478. package/docs/types/lockProStatus.html +0 -1
  479. package/docs/types/lockProWebhookContext.html +0 -1
  480. package/docs/types/lockServiceData.html +0 -1
  481. package/docs/types/lockStatus.html +0 -1
  482. package/docs/types/lockWebhookContext.html +0 -1
  483. package/docs/types/meter.html +0 -1
  484. package/docs/types/meterPlus.html +0 -1
  485. package/docs/types/meterPlusServiceData.html +0 -1
  486. package/docs/types/meterPlusStatus.html +0 -1
  487. package/docs/types/meterPlusWebhookContext.html +0 -1
  488. package/docs/types/meterPro.html +0 -1
  489. package/docs/types/meterProCO2ServiceData.html +0 -1
  490. package/docs/types/meterProCO2Status.html +0 -1
  491. package/docs/types/meterProCO2WebhookContext.html +0 -1
  492. package/docs/types/meterProServiceData.html +0 -1
  493. package/docs/types/meterProStatus.html +0 -1
  494. package/docs/types/meterProWebhookContext.html +0 -1
  495. package/docs/types/meterServiceData.html +0 -1
  496. package/docs/types/meterStatus.html +0 -1
  497. package/docs/types/meterWebhookContext.html +0 -1
  498. package/docs/types/motionSensor.html +0 -1
  499. package/docs/types/motionSensorServiceData.html +0 -1
  500. package/docs/types/motionSensorStatus.html +0 -1
  501. package/docs/types/motionSensorWebhookContext.html +0 -1
  502. package/docs/types/onadvertisement.html +0 -1
  503. package/docs/types/ondiscover.html +0 -1
  504. package/docs/types/outdoorMeter.html +0 -1
  505. package/docs/types/outdoorMeterServiceData.html +0 -1
  506. package/docs/types/outdoorMeterStatus.html +0 -1
  507. package/docs/types/outdoorMeterWebhookContext.html +0 -1
  508. package/docs/types/panTiltCamWebhookContext.html +0 -1
  509. package/docs/types/pantiltCam.html +0 -1
  510. package/docs/types/pantiltCam2k.html +0 -1
  511. package/docs/types/plug.html +0 -1
  512. package/docs/types/plugMini.html +0 -1
  513. package/docs/types/plugMiniEUServiceData.html +0 -1
  514. package/docs/types/plugMiniEUWebhookContext.html +0 -1
  515. package/docs/types/plugMiniJPServiceData.html +0 -1
  516. package/docs/types/plugMiniJPWebhookContext.html +0 -1
  517. package/docs/types/plugMiniStatus.html +0 -1
  518. package/docs/types/plugMiniUSServiceData.html +0 -1
  519. package/docs/types/plugMiniUSWebhookContext.html +0 -1
  520. package/docs/types/plugStatus.html +0 -1
  521. package/docs/types/plugWebhookContext.html +0 -1
  522. package/docs/types/presenceSensor.html +0 -1
  523. package/docs/types/presenceSensorServiceData.html +0 -1
  524. package/docs/types/presenceSensorStatus.html +0 -1
  525. package/docs/types/presenceSensorWebhookContext.html +0 -1
  526. package/docs/types/relaySwitch1Context.html +0 -1
  527. package/docs/types/relaySwitch1PMContext.html +0 -1
  528. package/docs/types/relaySwitch1PMServiceData.html +0 -1
  529. package/docs/types/relaySwitch1PMStatus.html +0 -1
  530. package/docs/types/relaySwitch1ServiceData.html +0 -1
  531. package/docs/types/relaySwitch1Status.html +0 -1
  532. package/docs/types/remote.html +0 -1
  533. package/docs/types/remoteServiceData.html +0 -1
  534. package/docs/types/robotVacuumCleanerS1.html +0 -1
  535. package/docs/types/robotVacuumCleanerS1Plus.html +0 -1
  536. package/docs/types/robotVacuumCleanerS1PlusStatus.html +0 -1
  537. package/docs/types/robotVacuumCleanerS1PlusWebhookContext.html +0 -1
  538. package/docs/types/robotVacuumCleanerS1Status.html +0 -1
  539. package/docs/types/robotVacuumCleanerS1WebhookContext.html +0 -1
  540. package/docs/types/robotVacuumCleanerServiceData.html +0 -1
  541. package/docs/types/stripLight.html +0 -1
  542. package/docs/types/stripLightServiceData.html +0 -1
  543. package/docs/types/stripLightStatus.html +0 -1
  544. package/docs/types/stripLightWebhookContext.html +0 -1
  545. package/docs/types/waterLeakDetector.html +0 -1
  546. package/docs/types/waterLeakDetectorServiceData.html +0 -1
  547. package/docs/types/waterLeakDetectorStatus.html +0 -1
  548. package/docs/types/waterLeakDetectorWebhookContext.html +0 -1
  549. package/docs/variables/parameterChecker.html +0 -1
  550. package/eslint.config.js +0 -48
  551. package/typedoc.json +0 -17
package/dist/errors.js ADDED
@@ -0,0 +1,103 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * errors.ts: SwitchBot v4.0.0 - Custom Error Classes
4
+ */
5
+ /**
6
+ * Base error class for SwitchBot errors
7
+ */
8
+ export class SwitchBotError extends Error {
9
+ code;
10
+ constructor(message, code) {
11
+ super(message);
12
+ this.code = code;
13
+ this.name = 'SwitchBotError';
14
+ Error.captureStackTrace(this, this.constructor);
15
+ }
16
+ }
17
+ /**
18
+ * Error thrown when BLE is not available or supported
19
+ */
20
+ export class BLENotAvailableError extends SwitchBotError {
21
+ constructor(message = 'BLE not available on this platform or device') {
22
+ super(message, 'BLE_NOT_AVAILABLE');
23
+ this.name = 'BLENotAvailableError';
24
+ }
25
+ }
26
+ /**
27
+ * Error thrown when API is not available or credentials are missing
28
+ */
29
+ export class APINotAvailableError extends SwitchBotError {
30
+ constructor(message = 'API not available or credentials not provided') {
31
+ super(message, 'API_NOT_AVAILABLE');
32
+ this.name = 'APINotAvailableError';
33
+ }
34
+ }
35
+ /**
36
+ * Error thrown when a device is not found
37
+ */
38
+ export class DeviceNotFoundError extends SwitchBotError {
39
+ constructor(deviceId) {
40
+ super(`Device not found: ${deviceId}`, 'DEVICE_NOT_FOUND');
41
+ this.name = 'DeviceNotFoundError';
42
+ }
43
+ }
44
+ /**
45
+ * Error thrown when a command fails
46
+ */
47
+ export class CommandFailedError extends SwitchBotError {
48
+ connectionType;
49
+ originalError;
50
+ constructor(message, connectionType, originalError) {
51
+ super(message, 'COMMAND_FAILED');
52
+ this.connectionType = connectionType;
53
+ this.originalError = originalError;
54
+ this.name = 'CommandFailedError';
55
+ }
56
+ }
57
+ /**
58
+ * Error thrown when a connection timeout occurs
59
+ */
60
+ export class ConnectionTimeoutError extends SwitchBotError {
61
+ timeoutMs;
62
+ constructor(message = 'Connection timeout', timeoutMs) {
63
+ super(message, 'CONNECTION_TIMEOUT');
64
+ this.timeoutMs = timeoutMs;
65
+ this.name = 'ConnectionTimeoutError';
66
+ }
67
+ }
68
+ /**
69
+ * Error thrown when device discovery fails
70
+ */
71
+ export class DiscoveryError extends SwitchBotError {
72
+ originalError;
73
+ constructor(message, originalError) {
74
+ super(message, 'DISCOVERY_ERROR');
75
+ this.originalError = originalError;
76
+ this.name = 'DiscoveryError';
77
+ }
78
+ }
79
+ /**
80
+ * Error thrown when API request fails
81
+ */
82
+ export class APIError extends SwitchBotError {
83
+ statusCode;
84
+ statusMessage;
85
+ constructor(message, statusCode, statusMessage) {
86
+ super(message, 'API_ERROR');
87
+ this.statusCode = statusCode;
88
+ this.statusMessage = statusMessage;
89
+ this.name = 'APIError';
90
+ }
91
+ }
92
+ /**
93
+ * Error thrown when invalid parameters are provided
94
+ */
95
+ export class ValidationError extends SwitchBotError {
96
+ parameter;
97
+ constructor(message, parameter) {
98
+ super(message, 'VALIDATION_ERROR');
99
+ this.parameter = parameter;
100
+ this.name = 'ValidationError';
101
+ }
102
+ }
103
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACM;IAA7C,YAAY,OAAe,EAAkB,IAAa;QACxD,KAAK,CAAC,OAAO,CAAC,CAAA;QAD6B,SAAI,GAAJ,IAAI,CAAS;QAExD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;QAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACjD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IACtD,YAAY,OAAO,GAAG,8CAA8C;QAClE,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;QACnC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACpC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,cAAc;IACtD,YAAY,OAAO,GAAG,+CAA+C;QACnE,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAA;QACnC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAA;IACpC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,cAAc;IACrD,YAAY,QAAgB;QAC1B,KAAK,CAAC,qBAAqB,QAAQ,EAAE,EAAE,kBAAkB,CAAC,CAAA;QAC1D,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,cAAc;IAGlC;IACA;IAHlB,YACE,OAAe,EACC,cAA8B,EAC9B,aAAqB;QAErC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;QAHhB,mBAAc,GAAd,cAAc,CAAgB;QAC9B,kBAAa,GAAb,aAAa,CAAQ;QAGrC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;IAClC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,cAAc;IACI;IAA5D,YAAY,OAAO,GAAG,oBAAoB,EAAkB,SAAkB;QAC5E,KAAK,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;QADsB,cAAS,GAAT,SAAS,CAAS;QAE5E,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAA;IACtC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,cAAc;IACH;IAA7C,YAAY,OAAe,EAAkB,aAAqB;QAChE,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;QADU,kBAAa,GAAb,aAAa,CAAQ;QAEhE,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,cAAc;IAGxB;IACA;IAHlB,YACE,OAAe,EACC,UAAmB,EACnB,aAAsB;QAEtC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QAHX,eAAU,GAAV,UAAU,CAAS;QACnB,kBAAa,GAAb,aAAa,CAAS;QAGtC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;IACxB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,cAAc;IACJ;IAA7C,YAAY,OAAe,EAAkB,SAAkB;QAC7D,KAAK,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;QADS,cAAS,GAAT,SAAS,CAAS;QAE7D,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,12 @@
1
- export * from './device.js';
2
- export { ParameterChecker, parameterChecker } from './parameter-checker.js';
1
+ export { OpenAPIClient } from './api.js';
2
+ export { BLEConnection, BLEScanner } from './ble.js';
3
+ export { DeviceManager, SwitchBotDevice } from './devices/base.js';
4
+ export { WoAirPurifier, WoAirPurifierTable, WoBlindTilt, WoBulb, WoCeilingLight, WoContact, WoCurtain, WoHand, WoHub2, WoHub3, WoHumi, WoHumi2, WoIOSensorTH, WoKeypad, WoLeak, WoPlugMiniJP, WoPlugMiniUS, WoPresence, WoRelaySwitch1, WoRelaySwitch1PM, WoRemote, WoSensorTH, WoSensorTHPlus, WoSensorTHPro, WoSensorTHProCO2, WoSmartLock, WoSmartLockPro, WoStrip, } from './devices/index.js';
5
+ export { APIError, APINotAvailableError, BLENotAvailableError, CommandFailedError, ConnectionTimeoutError, DeviceNotFoundError, DiscoveryError, SwitchBotError, ValidationError, } from './errors.js';
3
6
  export { updateBaseURL, urls } from './settings.js';
4
- export * from './switchbot-ble.js';
5
- export * from './switchbot-openapi.js';
6
- export * from './types/ble.js';
7
- export * from './types/openapi.js';
7
+ export { SwitchBot } from './switchbot.js';
8
+ export type { APICommandRequest, APICommandResponse, APIDevice, APIDeviceStatus, APIErrorResponse, APIResponse, DeviceListResponse, PhysicalDeviceType, SceneListResponse, VirtualDeviceType, WebhookConfig, WebhookDetails, WebhookQueryResponse, WebhookSetupResponse, } from './types/api.js';
9
+ export type { AirPurifierServiceData, BLEAdvertisement, BLEScanOptions, BLEServiceData, BlindTiltServiceData, BotServiceData, BulbServiceData, CeilingLightServiceData, ContactServiceData, CurtainServiceData, HubServiceData, HumidifierServiceData, LeakServiceData, LockServiceData, MeterServiceData, MotionServiceData, PlugServiceData, PresenceServiceData, RelaySwitchServiceData, StripServiceData, SwitchBotBLEModel, SwitchBotBLEModelName, } from './types/ble.js';
10
+ export type { AirPurifierCommands, AirPurifierStatus, BlindTiltCommands, BlindTiltStatus, BotCommands, BotStatus, BulbCommands, BulbStatus, CeilingLightCommands, CeilingLightStatus, ContactStatus, CurtainCommands, CurtainStatus, HubStatus, HumidifierCommands, HumidifierStatus, KeypadStatus, LeakStatus, LockCommands, LockStatus, MeterStatus, MotionStatus, PlugCommands, PlugStatus, PresenceStatus, RelaySwitchCommands, RelaySwitchStatus, RemoteStatus, StripCommands, StripStatus, } from './types/device.js';
11
+ export type { CommandResult, ConnectionType, DeviceInfo, DeviceStatus, DiscoveryOptions, LogLevel, SwitchBotConfig, } from './types/index.js';
8
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACnD,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AAGtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,MAAM,EACN,cAAc,EACd,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,OAAO,GACR,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG1C,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,SAAS,EACT,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,aAAa,EACb,cAAc,EACd,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,eAAe,GAChB,MAAM,kBAAkB,CAAA"}
package/dist/index.js CHANGED
@@ -1,14 +1,13 @@
1
- /* Copyright(C) 2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
2
  *
3
- * index.ts: Switchbot BLE API registration.
3
+ * index.ts: SwitchBot v4.0.0 - Hybrid BLE/OpenAPI Main Exports
4
4
  */
5
- // Primary module exports
6
- export * from './device.js';
7
- export { ParameterChecker, parameterChecker } from './parameter-checker.js';
5
+ // Main classes (alphabetically by module path)
6
+ export { OpenAPIClient } from './api.js';
7
+ export { BLEConnection, BLEScanner } from './ble.js';
8
+ export { DeviceManager, SwitchBotDevice } from './devices/base.js';
9
+ export { WoAirPurifier, WoAirPurifierTable, WoBlindTilt, WoBulb, WoCeilingLight, WoContact, WoCurtain, WoHand, WoHub2, WoHub3, WoHumi, WoHumi2, WoIOSensorTH, WoKeypad, WoLeak, WoPlugMiniJP, WoPlugMiniUS, WoPresence, WoRelaySwitch1, WoRelaySwitch1PM, WoRemote, WoSensorTH, WoSensorTHPlus, WoSensorTHPro, WoSensorTHProCO2, WoSmartLock, WoSmartLockPro, WoStrip, } from './devices/index.js';
10
+ export { APIError, APINotAvailableError, BLENotAvailableError, CommandFailedError, ConnectionTimeoutError, DeviceNotFoundError, DiscoveryError, SwitchBotError, ValidationError, } from './errors.js';
8
11
  export { updateBaseURL, urls } from './settings.js';
9
- export * from './switchbot-ble.js';
10
- export * from './switchbot-openapi.js';
11
- // Type definitions
12
- export * from './types/ble.js';
13
- export * from './types/openapi.js';
12
+ export { SwitchBot } from './switchbot.js';
14
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,yBAAyB;AACzB,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACnD,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AAEtC,mBAAmB;AACnB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,+CAA+C;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,MAAM,EACN,cAAc,EACd,SAAS,EACT,SAAS,EACT,MAAM,EACN,MAAM,EACN,MAAM,EACN,MAAM,EACN,OAAO,EACP,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,UAAU,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,OAAO,GACR,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,eAAe,GAChB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA"}
@@ -1,53 +1,132 @@
1
1
  /**
2
- * Updates the base URL for the SwitchBot API endpoints.
3
- * @param {string} newBaseURL - The new base URL to use.
2
+ * OpenAPI Configuration
4
3
  */
5
- export declare function updateBaseURL(newBaseURL: string): void;
4
+ export declare const DEFAULT_BASE_URL = "https://api.switch-bot.com";
5
+ export declare const API_VERSION = "v1.1";
6
6
  export declare const urls: {
7
- readonly baseURL: string;
8
- readonly devicesURL: string;
9
- readonly setupWebhook: string;
10
- readonly queryWebhook: string;
11
- readonly updateWebhook: string;
12
- readonly deleteWebhook: string;
7
+ base: string;
8
+ devices: string;
9
+ scenes: string;
10
+ webhook: string;
13
11
  };
14
12
  /**
15
- * constants used to access SwitchBot BLE API
16
- */
17
- export declare const SERV_UUID_PRIMARY = "cba20d00224d11e69fb80002a5d5c51b";
18
- export declare const CHAR_UUID_WRITE = "cba20002224d11e69fb80002a5d5c51b";
19
- export declare const CHAR_UUID_NOTIFY = "cba20003224d11e69fb80002a5d5c51b";
20
- export declare const CHAR_UUID_DEVICE = "2a00";
21
- export declare const READ_TIMEOUT_MSEC = 3000;
22
- export declare const WRITE_TIMEOUT_MSEC = 3000;
23
- export declare const COMMAND_TIMEOUT_MSEC = 3000;
24
- export declare const DEFAULT_DISCOVERY_DURATION = 5000;
25
- export declare const PRIMARY_SERVICE_UUID_LIST: never[];
26
- export declare enum WoSmartLockProCommands {
27
- GET_CKIV = "570f2103",
28
- LOCK_INFO = "570f4f8102",
29
- UNLOCK = "570f4e0101000080",
30
- UNLOCK_NO_UNLATCH = "570f4e01010000a0",
31
- LOCK = "570f4e0101000000",
32
- ENABLE_NOTIFICATIONS = "570e01001e00008101",
33
- DISABLE_NOTIFICATIONS = "570e00"
34
- }
35
- export declare enum WoSmartLockCommands {
36
- GET_CKIV = "570f2103",
37
- LOCK_INFO = "570f4f8101",
38
- UNLOCK = "570f4e01011080",
39
- UNLOCK_NO_UNLATCH = "570f4e010110a0",
40
- LOCK = "570f4e01011000",
41
- ENABLE_NOTIFICATIONS = "570e01001e00008101",
42
- DISABLE_NOTIFICATIONS = "570e00"
43
- }
44
- export declare enum WoSmartLockUltraCommands {
45
- GET_CKIV = "570f2103",
46
- LOCK_INFO = "570f4f8102",
47
- UNLOCK = "570f4e0101000080",
48
- UNLOCK_NO_UNLATCH = "570f4e01010000a0",
49
- LOCK = "570f4e0101000000",
50
- ENABLE_NOTIFICATIONS = "570e01001e00008101",
51
- DISABLE_NOTIFICATIONS = "570e00"
52
- }
13
+ * Update the base URL for all API endpoints
14
+ * @param newBaseURL - The new base URL to use
15
+ */
16
+ export declare function updateBaseURL(newBaseURL: string): void;
17
+ /**
18
+ * BLE Configuration
19
+ */
20
+ export declare const BLE_SERVICE_UUID = "cba20d00224d11e69fb80002a5d5c51b";
21
+ export declare const BLE_WRITE_CHARACTERISTIC_UUID = "cba20002224d11e69fb80002a5d5c51b";
22
+ export declare const BLE_NOTIFY_CHARACTERISTIC_UUID = "cba20003224d11e69fb80002a5d5c51b";
23
+ export declare const SERV_UUID_PRIMARY = "cba20d00-224d-11e6-9fb8-0002a5d5c51b";
24
+ export declare const CHAR_UUID_WRITE = "cba20002-224d-11e6-9fb8-0002a5d5c51b";
25
+ export declare const CHAR_UUID_NOTIFY = "cba20003-224d-11e6-9fb8-0002a5d5c51b";
26
+ export declare const CHAR_UUID_DEVICE = "cba20d00-224d-11e6-9fb8-0002a5d5c51b";
27
+ /**
28
+ * BLE Timeouts (in milliseconds)
29
+ */
30
+ export declare const BLE_SCAN_TIMEOUT = 10000;
31
+ export declare const BLE_CONNECT_TIMEOUT = 10000;
32
+ export declare const BLE_COMMAND_TIMEOUT = 5000;
33
+ export declare const READ_TIMEOUT_MSEC = 10000;
34
+ export declare const WRITE_TIMEOUT_MSEC = 10000;
35
+ /**
36
+ * Device Command Constants
37
+ */
38
+ export declare const DEVICE_COMMANDS: {
39
+ readonly BOT: {
40
+ readonly PRESS: readonly [87, 1, 0];
41
+ readonly TURN_ON: readonly [87, 1, 1];
42
+ readonly TURN_OFF: readonly [87, 1, 2];
43
+ readonly DOWN: readonly [87, 1, 1];
44
+ readonly UP: readonly [87, 1, 2];
45
+ };
46
+ readonly CURTAIN: {
47
+ readonly OPEN: readonly [87, 15, 69, 1, 5, 255, 0];
48
+ readonly CLOSE: readonly [87, 15, 69, 1, 5, 255, 100];
49
+ readonly PAUSE: readonly [87, 15, 69, 1, 0, 255];
50
+ readonly POSITION: readonly [87, 15, 69, 1, 5, 255];
51
+ };
52
+ readonly BLIND_TILT: {
53
+ readonly OPEN: readonly [87, 15, 69, 1, 5, 255, 50];
54
+ readonly CLOSE_UP: readonly [87, 15, 69, 1, 5, 255, 100];
55
+ readonly CLOSE_DOWN: readonly [87, 15, 69, 1, 5, 255, 0];
56
+ readonly PAUSE: readonly [87, 15, 69, 1, 0, 255];
57
+ };
58
+ readonly BULB: {
59
+ readonly BASE: readonly [87, 15, 71, 1];
60
+ readonly READ_STATE: readonly [87, 15, 72, 1];
61
+ readonly TURN_ON: readonly [1, 1];
62
+ readonly TURN_OFF: readonly [1, 2];
63
+ readonly SET_BRIGHTNESS: readonly [2, 20];
64
+ readonly SET_COLOR_TEMP: readonly [2, 23];
65
+ readonly SET_RGB: readonly [2, 18];
66
+ };
67
+ readonly HUMIDIFIER: {
68
+ readonly HEADER: "5701";
69
+ readonly TURN_ON: "570101";
70
+ readonly TURN_OFF: "570102";
71
+ readonly INCREASE: "570103";
72
+ readonly DECREASE: "570104";
73
+ readonly SET_AUTO_MODE: "570105";
74
+ readonly SET_MANUAL_MODE: "570106";
75
+ };
76
+ readonly AIR_PURIFIER: {
77
+ readonly TURN_ON: readonly [87, 1, 1];
78
+ readonly TURN_OFF: readonly [87, 1, 2];
79
+ readonly SET_MODE: readonly [87, 2];
80
+ readonly SET_SPEED: readonly [87, 3];
81
+ };
82
+ readonly PLUG: {
83
+ readonly TURN_ON: readonly [87, 15, 80, 1, 1];
84
+ readonly TURN_OFF: readonly [87, 15, 80, 1, 2];
85
+ readonly TOGGLE: readonly [87, 15, 80, 1, 0];
86
+ };
87
+ readonly COMMON: {
88
+ readonly POWER_ON: readonly [87, 1, 1];
89
+ readonly POWER_OFF: readonly [87, 1, 2];
90
+ };
91
+ };
92
+ /**
93
+ * Lock Command Constants (WoSmartLock)
94
+ */
95
+ export declare const WoSmartLockCommands: {
96
+ readonly LOCK: readonly [87, 15, 78, 1, 0];
97
+ readonly UNLOCK: readonly [87, 15, 78, 1, 1];
98
+ };
99
+ /**
100
+ * Lock Pro Command Constants (WoSmartLockPro)
101
+ */
102
+ export declare const WoSmartLockProCommands: {
103
+ readonly LOCK: readonly [87, 15, 79, 1, 0];
104
+ readonly UNLOCK: readonly [87, 15, 79, 1, 1];
105
+ readonly UNLATCH: readonly [87, 15, 79, 1, 2];
106
+ };
107
+ /**
108
+ * Device Model to Type Mapping
109
+ */
110
+ export declare const DEVICE_MODEL_MAP: Record<string, string>;
111
+ /**
112
+ * Device Type to Class Name Mapping
113
+ */
114
+ export declare const DEVICE_CLASS_MAP: Record<string, string>;
115
+ /**
116
+ * Default configuration values
117
+ */
118
+ export declare const DEFAULTS: {
119
+ readonly logLevel: 2;
120
+ readonly scanTimeout: 10000;
121
+ readonly connectTimeout: 10000;
122
+ readonly commandTimeout: 5000;
123
+ readonly enableBLE: true;
124
+ readonly enableFallback: true;
125
+ readonly baseURL: "https://api.switch-bot.com";
126
+ };
127
+ /**
128
+ * Platform detection
129
+ */
130
+ export declare const IS_LINUX: boolean;
131
+ export declare const BLE_SUPPORTED: boolean;
53
132
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED,eAAO,MAAM,IAAI;;;;;;;CAmBhB,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,qCAAqC,CAAA;AACnE,eAAO,MAAM,eAAe,qCAAqC,CAAA;AACjE,eAAO,MAAM,gBAAgB,qCAAqC,CAAA;AAClE,eAAO,MAAM,gBAAgB,SAAS,CAAA;AAEtC,eAAO,MAAM,iBAAiB,OAAO,CAAA;AACrC,eAAO,MAAM,kBAAkB,OAAO,CAAA;AACtC,eAAO,MAAM,oBAAoB,OAAO,CAAA;AAExC,eAAO,MAAM,0BAA0B,OAAO,CAAA;AAC9C,eAAO,MAAM,yBAAyB,SAAK,CAAA;AAE3C,oBAAY,sBAAsB;IAChC,QAAQ,aAAa;IACrB,SAAS,eAAe;IACxB,MAAM,qBAAqB;IAC3B,iBAAiB,qBAAqB;IACtC,IAAI,qBAAqB;IACzB,oBAAoB,uBAAuB;IAC3C,qBAAqB,WAAW;CACjC;AAED,oBAAY,mBAAmB;IAC7B,QAAQ,aAAa;IACrB,SAAS,eAAe;IACxB,MAAM,mBAAmB;IACzB,iBAAiB,mBAAmB;IACpC,IAAI,mBAAmB;IACvB,oBAAoB,uBAAuB;IAC3C,qBAAqB,WAAW;CACjC;AAGD,oBAAY,wBAAwB;IAClC,QAAQ,aAAa;IACrB,SAAS,eAAe;IACxB,MAAM,qBAAqB;IAC3B,iBAAiB,qBAAqB;IACtC,IAAI,qBAAqB;IACzB,oBAAoB,uBAAuB;IAC3C,qBAAqB,WAAW;CACjC"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,gBAAgB,+BAA+B,CAAA;AAC5D,eAAO,MAAM,WAAW,SAAS,CAAA;AAEjC,eAAO,MAAM,IAAI,EAAE;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAMhB,CAAA;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAKtD;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,qCAAqC,CAAA;AAClE,eAAO,MAAM,6BAA6B,qCAAqC,CAAA;AAC/E,eAAO,MAAM,8BAA8B,qCAAqC,CAAA;AAGhF,eAAO,MAAM,iBAAiB,yCAAyC,CAAA;AACvE,eAAO,MAAM,eAAe,yCAAyC,CAAA;AACrE,eAAO,MAAM,gBAAgB,yCAAyC,CAAA;AACtE,eAAO,MAAM,gBAAgB,yCAAyC,CAAA;AAEtE;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAQ,CAAA;AACrC,eAAO,MAAM,mBAAmB,QAAQ,CAAA;AACxC,eAAO,MAAM,mBAAmB,OAAO,CAAA;AACvC,eAAO,MAAM,iBAAiB,QAAQ,CAAA;AACtC,eAAO,MAAM,kBAAkB,QAAQ,CAAA;AAEvC;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoElB,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;CAGtB,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqC1C,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0C1C,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;CAQX,CAAA;AAEV;;GAEG;AACH,eAAO,MAAM,QAAQ,SAA+B,CAAA;AACpD,eAAO,MAAM,aAAa,SAAW,CAAA"}
package/dist/settings.js CHANGED
@@ -1,80 +1,230 @@
1
- /**
2
- * Switchbot BLE API registration settings.
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
3
2
  *
4
- * © 2024, donavanbecker (https://github.com/donavanbecker). All rights reserved.
3
+ * settings.ts: SwitchBot v4.0.0 - Configuration and Constants
4
+ */
5
+ import process from 'node:process';
6
+ /**
7
+ * OpenAPI Configuration
5
8
  */
6
- let baseURL = 'https://api.switch-bot.com';
7
- // API version used for endpoint paths
8
- const API_VERSION = '/v1.1';
9
- // URLs are generated dynamically via getters below
9
+ export const DEFAULT_BASE_URL = 'https://api.switch-bot.com';
10
+ export const API_VERSION = 'v1.1';
11
+ export const urls = {
12
+ base: DEFAULT_BASE_URL,
13
+ devices: `${DEFAULT_BASE_URL}/${API_VERSION}/devices`,
14
+ scenes: `${DEFAULT_BASE_URL}/${API_VERSION}/scenes`,
15
+ webhook: `${DEFAULT_BASE_URL}/${API_VERSION}/webhook`,
16
+ };
10
17
  /**
11
- * Updates the base URL for the SwitchBot API endpoints.
12
- * @param {string} newBaseURL - The new base URL to use.
18
+ * Update the base URL for all API endpoints
19
+ * @param newBaseURL - The new base URL to use
13
20
  */
14
21
  export function updateBaseURL(newBaseURL) {
15
- baseURL = newBaseURL;
22
+ urls.base = newBaseURL;
23
+ urls.devices = `${newBaseURL}/${API_VERSION}/devices`;
24
+ urls.scenes = `${newBaseURL}/${API_VERSION}/scenes`;
25
+ urls.webhook = `${newBaseURL}/${API_VERSION}/webhook`;
16
26
  }
17
- export const urls = {
18
- get baseURL() {
19
- return baseURL;
27
+ /**
28
+ * BLE Configuration
29
+ */
30
+ export const BLE_SERVICE_UUID = 'cba20d00224d11e69fb80002a5d5c51b';
31
+ export const BLE_WRITE_CHARACTERISTIC_UUID = 'cba20002224d11e69fb80002a5d5c51b';
32
+ export const BLE_NOTIFY_CHARACTERISTIC_UUID = 'cba20003224d11e69fb80002a5d5c51b';
33
+ // Alternative UUIDs for specific devices
34
+ export const SERV_UUID_PRIMARY = 'cba20d00-224d-11e6-9fb8-0002a5d5c51b';
35
+ export const CHAR_UUID_WRITE = 'cba20002-224d-11e6-9fb8-0002a5d5c51b';
36
+ export const CHAR_UUID_NOTIFY = 'cba20003-224d-11e6-9fb8-0002a5d5c51b';
37
+ export const CHAR_UUID_DEVICE = 'cba20d00-224d-11e6-9fb8-0002a5d5c51b';
38
+ /**
39
+ * BLE Timeouts (in milliseconds)
40
+ */
41
+ export const BLE_SCAN_TIMEOUT = 10000;
42
+ export const BLE_CONNECT_TIMEOUT = 10000;
43
+ export const BLE_COMMAND_TIMEOUT = 5000;
44
+ export const READ_TIMEOUT_MSEC = 10000;
45
+ export const WRITE_TIMEOUT_MSEC = 10000;
46
+ /**
47
+ * Device Command Constants
48
+ */
49
+ export const DEVICE_COMMANDS = {
50
+ // Bot (WoHand)
51
+ BOT: {
52
+ PRESS: [0x57, 0x01, 0x00],
53
+ TURN_ON: [0x57, 0x01, 0x01],
54
+ TURN_OFF: [0x57, 0x01, 0x02],
55
+ DOWN: [0x57, 0x01, 0x01],
56
+ UP: [0x57, 0x01, 0x02],
20
57
  },
21
- get devicesURL() {
22
- return `${baseURL}${API_VERSION}/devices`;
58
+ // Curtain (WoCurtain)
59
+ CURTAIN: {
60
+ OPEN: [0x57, 0x0F, 0x45, 0x01, 0x05, 0xFF, 0x00],
61
+ CLOSE: [0x57, 0x0F, 0x45, 0x01, 0x05, 0xFF, 0x64],
62
+ PAUSE: [0x57, 0x0F, 0x45, 0x01, 0x00, 0xFF],
63
+ POSITION: [0x57, 0x0F, 0x45, 0x01, 0x05, 0xFF], // Add position byte
23
64
  },
24
- get setupWebhook() {
25
- return `${baseURL}${API_VERSION}/webhook/setupWebhook`;
65
+ // Blind Tilt
66
+ BLIND_TILT: {
67
+ OPEN: [0x57, 0x0F, 0x45, 0x01, 0x05, 0xFF, 0x32],
68
+ CLOSE_UP: [0x57, 0x0F, 0x45, 0x01, 0x05, 0xFF, 0x64],
69
+ CLOSE_DOWN: [0x57, 0x0F, 0x45, 0x01, 0x05, 0xFF, 0x00],
70
+ PAUSE: [0x57, 0x0F, 0x45, 0x01, 0x00, 0xFF],
26
71
  },
27
- get queryWebhook() {
28
- return `${baseURL}${API_VERSION}/webhook/queryWebhook`;
72
+ // Bulb (WoBulb)
73
+ BULB: {
74
+ BASE: [0x57, 0x0F, 0x47, 0x01],
75
+ READ_STATE: [0x57, 0x0F, 0x48, 0x01],
76
+ TURN_ON: [0x01, 0x01],
77
+ TURN_OFF: [0x01, 0x02],
78
+ SET_BRIGHTNESS: [0x02, 0x14], // Add brightness byte
79
+ SET_COLOR_TEMP: [0x02, 0x17], // Add temp bytes
80
+ SET_RGB: [0x02, 0x12], // Add RGB bytes
29
81
  },
30
- get updateWebhook() {
31
- return `${baseURL}${API_VERSION}/webhook/updateWebhook`;
82
+ // Humidifier
83
+ HUMIDIFIER: {
84
+ HEADER: '5701',
85
+ TURN_ON: '570101',
86
+ TURN_OFF: '570102',
87
+ INCREASE: '570103',
88
+ DECREASE: '570104',
89
+ SET_AUTO_MODE: '570105',
90
+ SET_MANUAL_MODE: '570106',
32
91
  },
33
- get deleteWebhook() {
34
- return `${baseURL}${API_VERSION}/webhook/deleteWebhook`;
92
+ // Air Purifier
93
+ AIR_PURIFIER: {
94
+ TURN_ON: [0x57, 0x01, 0x01],
95
+ TURN_OFF: [0x57, 0x01, 0x02],
96
+ SET_MODE: [0x57, 0x02], // Add mode byte
97
+ SET_SPEED: [0x57, 0x03], // Add speed byte
35
98
  },
99
+ // Plug
100
+ PLUG: {
101
+ TURN_ON: [0x57, 0x0F, 0x50, 0x01, 0x01],
102
+ TURN_OFF: [0x57, 0x0F, 0x50, 0x01, 0x02],
103
+ TOGGLE: [0x57, 0x0F, 0x50, 0x01, 0x00],
104
+ },
105
+ // Common commands
106
+ COMMON: {
107
+ POWER_ON: [0x57, 0x01, 0x01],
108
+ POWER_OFF: [0x57, 0x01, 0x02],
109
+ },
110
+ };
111
+ /**
112
+ * Lock Command Constants (WoSmartLock)
113
+ */
114
+ export const WoSmartLockCommands = {
115
+ LOCK: [0x57, 0x0F, 0x4E, 0x01, 0x00],
116
+ UNLOCK: [0x57, 0x0F, 0x4E, 0x01, 0x01],
117
+ };
118
+ /**
119
+ * Lock Pro Command Constants (WoSmartLockPro)
120
+ */
121
+ export const WoSmartLockProCommands = {
122
+ LOCK: [0x57, 0x0F, 0x4F, 0x01, 0x00],
123
+ UNLOCK: [0x57, 0x0F, 0x4F, 0x01, 0x01],
124
+ UNLATCH: [0x57, 0x0F, 0x4F, 0x01, 0x02],
125
+ };
126
+ /**
127
+ * Device Model to Type Mapping
128
+ */
129
+ export const DEVICE_MODEL_MAP = {
130
+ 'H': 'Bot',
131
+ 'c': 'Curtain',
132
+ '{': 'Curtain3',
133
+ 'g': 'Plug',
134
+ 'j': 'Plug Mini (US)',
135
+ 'T': 'Meter',
136
+ 'i': 'Meter Plus',
137
+ 'o': 'Lock',
138
+ '\x11': 'Lock Pro',
139
+ 'k': 'Keypad',
140
+ '\x0B': 'Keypad Touch',
141
+ 's': 'Motion Sensor',
142
+ 'd': 'Contact Sensor',
143
+ 'q': 'Ceiling Light',
144
+ 'r': 'Ceiling Light Pro',
145
+ 'p': 'Strip Light',
146
+ 'u': 'Color Bulb',
147
+ '\x0A': 'Robot Vacuum Cleaner S1',
148
+ '\x0C': 'Robot Vacuum Cleaner S1 Plus',
149
+ '\x0F': 'Robot Vacuum Cleaner K10 Plus',
150
+ 'e': 'Humidifier',
151
+ '\x07': 'Humidifier 2',
152
+ 'x': 'Blind Tilt',
153
+ '\x01': 'Hub 2',
154
+ '\x02': 'Hub 3',
155
+ '\x05': 'Remote',
156
+ '\x04': 'Battery Circulator Fan',
157
+ '\x08': 'Air Purifier',
158
+ '\x09': 'Air Purifier Table',
159
+ 'y': 'Water Leak Detector',
160
+ '\x06': 'Presence Sensor',
161
+ '\x0D': 'Relay Switch 1PM',
162
+ '\x0E': 'Relay Switch 1',
163
+ '\x10': 'K10+ Pro Combo',
164
+ 'w': 'Meter Pro (CO2)',
165
+ 'n': 'Outdoor Meter',
166
+ };
167
+ /**
168
+ * Device Type to Class Name Mapping
169
+ */
170
+ export const DEVICE_CLASS_MAP = {
171
+ 'Bot': 'WoHand',
172
+ 'Curtain': 'WoCurtain',
173
+ 'Curtain3': 'WoCurtain',
174
+ 'Plug': 'WoPlugUS',
175
+ 'Plug Mini (US)': 'WoPlugMiniUS',
176
+ 'Plug Mini (JP)': 'WoPlugMiniJP',
177
+ 'Plug Mini (EU)': 'WoPlugMiniEU',
178
+ 'Meter': 'WoSensorTH',
179
+ 'Meter Plus': 'WoSensorTHPlus',
180
+ 'Meter Pro': 'WoSensorTHPro',
181
+ 'Meter Pro (CO2)': 'WoSensorTHProCO2',
182
+ 'Outdoor Meter': 'WoIOSensorTH',
183
+ 'Lock': 'WoSmartLock',
184
+ 'Lock Pro': 'WoSmartLockPro',
185
+ 'Keypad': 'WoKeypad',
186
+ 'Keypad Touch': 'WoKeypad',
187
+ 'Motion Sensor': 'WoPresence',
188
+ 'Contact Sensor': 'WoContact',
189
+ 'Ceiling Light': 'WoCeilingLight',
190
+ 'Ceiling Light Pro': 'WoCeilingLight',
191
+ 'Strip Light': 'WoStrip',
192
+ 'Color Bulb': 'WoBulb',
193
+ 'Robot Vacuum Cleaner S1': 'WoVacuum',
194
+ 'Robot Vacuum Cleaner S1 Plus': 'WoVacuum',
195
+ 'Robot Vacuum Cleaner K10 Plus': 'WoVacuum',
196
+ 'Humidifier': 'WoHumi',
197
+ 'Humidifier 2': 'WoHumi2',
198
+ 'Blind Tilt': 'WoBlindTilt',
199
+ 'Hub 2': 'WoHub2',
200
+ 'Hub 3': 'WoHub3',
201
+ 'Hub Mini': 'WoHub2',
202
+ 'Hub Plus': 'WoHub2',
203
+ 'Remote': 'WoRemote',
204
+ 'Battery Circulator Fan': 'WoFan',
205
+ 'Air Purifier': 'WoAirPurifier',
206
+ 'Air Purifier Table': 'WoAirPurifierTable',
207
+ 'Water Leak Detector': 'WoLeak',
208
+ 'Presence Sensor': 'WoPresence',
209
+ 'Relay Switch 1PM': 'WoRelaySwitch1PM',
210
+ 'Relay Switch 1': 'WoRelaySwitch1',
211
+ 'K10+ Pro Combo': 'WoVacuum',
212
+ };
213
+ /**
214
+ * Default configuration values
215
+ */
216
+ export const DEFAULTS = {
217
+ logLevel: 2, // WARN
218
+ scanTimeout: BLE_SCAN_TIMEOUT,
219
+ connectTimeout: BLE_CONNECT_TIMEOUT,
220
+ commandTimeout: BLE_COMMAND_TIMEOUT,
221
+ enableBLE: true,
222
+ enableFallback: true,
223
+ baseURL: DEFAULT_BASE_URL,
36
224
  };
37
225
  /**
38
- * constants used to access SwitchBot BLE API
226
+ * Platform detection
39
227
  */
40
- export const SERV_UUID_PRIMARY = 'cba20d00224d11e69fb80002a5d5c51b';
41
- export const CHAR_UUID_WRITE = 'cba20002224d11e69fb80002a5d5c51b';
42
- export const CHAR_UUID_NOTIFY = 'cba20003224d11e69fb80002a5d5c51b';
43
- export const CHAR_UUID_DEVICE = '2a00';
44
- export const READ_TIMEOUT_MSEC = 3000;
45
- export const WRITE_TIMEOUT_MSEC = 3000;
46
- export const COMMAND_TIMEOUT_MSEC = 3000;
47
- export const DEFAULT_DISCOVERY_DURATION = 5000;
48
- export const PRIMARY_SERVICE_UUID_LIST = [];
49
- export var WoSmartLockProCommands;
50
- (function (WoSmartLockProCommands) {
51
- WoSmartLockProCommands["GET_CKIV"] = "570f2103";
52
- WoSmartLockProCommands["LOCK_INFO"] = "570f4f8102";
53
- WoSmartLockProCommands["UNLOCK"] = "570f4e0101000080";
54
- WoSmartLockProCommands["UNLOCK_NO_UNLATCH"] = "570f4e01010000a0";
55
- WoSmartLockProCommands["LOCK"] = "570f4e0101000000";
56
- WoSmartLockProCommands["ENABLE_NOTIFICATIONS"] = "570e01001e00008101";
57
- WoSmartLockProCommands["DISABLE_NOTIFICATIONS"] = "570e00";
58
- })(WoSmartLockProCommands || (WoSmartLockProCommands = {}));
59
- export var WoSmartLockCommands;
60
- (function (WoSmartLockCommands) {
61
- WoSmartLockCommands["GET_CKIV"] = "570f2103";
62
- WoSmartLockCommands["LOCK_INFO"] = "570f4f8101";
63
- WoSmartLockCommands["UNLOCK"] = "570f4e01011080";
64
- WoSmartLockCommands["UNLOCK_NO_UNLATCH"] = "570f4e010110a0";
65
- WoSmartLockCommands["LOCK"] = "570f4e01011000";
66
- WoSmartLockCommands["ENABLE_NOTIFICATIONS"] = "570e01001e00008101";
67
- WoSmartLockCommands["DISABLE_NOTIFICATIONS"] = "570e00";
68
- })(WoSmartLockCommands || (WoSmartLockCommands = {}));
69
- // Lock Ultra uses the same command structure as Lock Pro (AES/IV based).
70
- export var WoSmartLockUltraCommands;
71
- (function (WoSmartLockUltraCommands) {
72
- WoSmartLockUltraCommands["GET_CKIV"] = "570f2103";
73
- WoSmartLockUltraCommands["LOCK_INFO"] = "570f4f8102";
74
- WoSmartLockUltraCommands["UNLOCK"] = "570f4e0101000080";
75
- WoSmartLockUltraCommands["UNLOCK_NO_UNLATCH"] = "570f4e01010000a0";
76
- WoSmartLockUltraCommands["LOCK"] = "570f4e0101000000";
77
- WoSmartLockUltraCommands["ENABLE_NOTIFICATIONS"] = "570e01001e00008101";
78
- WoSmartLockUltraCommands["DISABLE_NOTIFICATIONS"] = "570e00";
79
- })(WoSmartLockUltraCommands || (WoSmartLockUltraCommands = {}));
228
+ export const IS_LINUX = process.platform === 'linux';
229
+ export const BLE_SUPPORTED = IS_LINUX;
80
230
  //# sourceMappingURL=settings.js.map