node-switchbot 3.6.5 → 4.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (548) hide show
  1. package/.github/npm-version-script-esm.js +97 -0
  2. package/CHANGELOG.md +586 -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 +80 -0
  146. package/dist/switchbot.d.ts.map +1 -0
  147. package/dist/switchbot.js +376 -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 -343
  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 +21 -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 -5
  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 +11 -20
  299. package/.github/scripts/npm-version-script-esm-auto.js +0 -207
  300. package/dist/device.d.ts +0 -1577
  301. package/dist/device.d.ts.map +0 -1
  302. package/dist/device.js +0 -3493
  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 -255
  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 -319
  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 -635
  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/WoSmartLockUltra.html +0 -113
  360. package/docs/enums/SwitchBotBLEModelFriendlyName.html +0 -39
  361. package/docs/enums/SwitchBotModel.html +0 -52
  362. package/docs/interfaces/AdvertisementData.html +0 -3
  363. package/docs/interfaces/Chars.html +0 -4
  364. package/docs/interfaces/ColorLightServiceDataBase.html +0 -17
  365. package/docs/interfaces/ErrorObject.html +0 -3
  366. package/docs/interfaces/LockBaseServiceData.html +0 -15
  367. package/docs/interfaces/NobleTypes.html +0 -3
  368. package/docs/interfaces/Params.html +0 -6
  369. package/docs/interfaces/PlugMiniServiceDataBase.html +0 -12
  370. package/docs/interfaces/Rule.html +0 -9
  371. package/docs/interfaces/ServiceData.html +0 -2
  372. package/docs/interfaces/SwitchBotBLEDevice.html +0 -27
  373. package/docs/interfaces/SwitchBotScanner.html +0 -6
  374. package/docs/interfaces/TemperatureServiceDataBase.html +0 -10
  375. package/docs/interfaces/WebhookDetail.html +0 -6
  376. package/docs/interfaces/ad.html +0 -5
  377. package/docs/interfaces/body.html +0 -3
  378. package/docs/interfaces/bodyChange.html +0 -4
  379. package/docs/interfaces/deleteWebhookResponse.html +0 -4
  380. package/docs/interfaces/device.html +0 -7
  381. package/docs/interfaces/deviceList.html +0 -2
  382. package/docs/interfaces/deviceStatus.html +0 -7
  383. package/docs/interfaces/deviceStatusRequest.html +0 -4
  384. package/docs/interfaces/deviceWebhook.html +0 -4
  385. package/docs/interfaces/deviceWebhookContext.html +0 -4
  386. package/docs/interfaces/devices.html +0 -4
  387. package/docs/interfaces/infraredRemoteList.html +0 -2
  388. package/docs/interfaces/irdevice.html +0 -5
  389. package/docs/interfaces/pushRequest.html +0 -5
  390. package/docs/interfaces/pushResponse.html +0 -5
  391. package/docs/interfaces/pushResponseBody.html +0 -3
  392. package/docs/interfaces/queryWebhookResponse.html +0 -4
  393. package/docs/interfaces/setupWebhookResponse.html +0 -4
  394. package/docs/interfaces/updateWebhookResponse.html +0 -4
  395. package/docs/interfaces/webhookRequest.html +0 -4
  396. package/docs/types/BLEDeviceServiceData.html +0 -1
  397. package/docs/types/IndoorCam.html +0 -1
  398. package/docs/types/MacAddress.html +0 -1
  399. package/docs/types/airPurifier.html +0 -1
  400. package/docs/types/airPurifierPM25WebhookContext.html +0 -1
  401. package/docs/types/airPurifierServiceData.html +0 -1
  402. package/docs/types/airPurifierStatus.html +0 -1
  403. package/docs/types/airPurifierTable.html +0 -1
  404. package/docs/types/airPurifierTablePM25WebhookContext.html +0 -1
  405. package/docs/types/airPurifierTableServiceData.html +0 -1
  406. package/docs/types/airPurifierTableStatus.html +0 -1
  407. package/docs/types/airPurifierTableVOC.html +0 -1
  408. package/docs/types/airPurifierTableVOCStatus.html +0 -1
  409. package/docs/types/airPurifierTableVOCWebhookContext.html +0 -1
  410. package/docs/types/airPurifierTableWebhookContext.html +0 -1
  411. package/docs/types/airPurifierVOC.html +0 -1
  412. package/docs/types/airPurifierVOCStatus.html +0 -1
  413. package/docs/types/airPurifierVOCWebhookContext.html +0 -1
  414. package/docs/types/airPurifierWebhookContext.html +0 -1
  415. package/docs/types/batteryCirculatorFan.html +0 -1
  416. package/docs/types/batteryCirculatorFanServiceData.html +0 -1
  417. package/docs/types/batteryCirculatorFanStatus.html +0 -1
  418. package/docs/types/batteryCirculatorFanWebhookContext.html +0 -1
  419. package/docs/types/blindTilt.html +0 -1
  420. package/docs/types/blindTiltServiceData.html +0 -1
  421. package/docs/types/blindTiltStatus.html +0 -1
  422. package/docs/types/blindTiltWebhookContext.html +0 -1
  423. package/docs/types/bot.html +0 -1
  424. package/docs/types/botServiceData.html +0 -1
  425. package/docs/types/botStatus.html +0 -1
  426. package/docs/types/botWebhookContext.html +0 -1
  427. package/docs/types/ceilingLight.html +0 -1
  428. package/docs/types/ceilingLightPro.html +0 -1
  429. package/docs/types/ceilingLightProServiceData.html +0 -1
  430. package/docs/types/ceilingLightProStatus.html +0 -1
  431. package/docs/types/ceilingLightProWebhookContext.html +0 -1
  432. package/docs/types/ceilingLightServiceData.html +0 -1
  433. package/docs/types/ceilingLightStatus.html +0 -1
  434. package/docs/types/ceilingLightWebhookContext.html +0 -1
  435. package/docs/types/circulatorFanStatus.html +0 -1
  436. package/docs/types/circulatorFanWebhookContext.html +0 -1
  437. package/docs/types/colorBulb.html +0 -1
  438. package/docs/types/colorBulbServiceData.html +0 -1
  439. package/docs/types/colorBulbStatus.html +0 -1
  440. package/docs/types/colorBulbWebhookContext.html +0 -1
  441. package/docs/types/commandType.html +0 -2
  442. package/docs/types/contactSensor.html +0 -1
  443. package/docs/types/contactSensorServiceData.html +0 -1
  444. package/docs/types/contactSensorStatus.html +0 -1
  445. package/docs/types/contactSensorWebhookContext.html +0 -1
  446. package/docs/types/curtain.html +0 -1
  447. package/docs/types/curtain3.html +0 -1
  448. package/docs/types/curtain3ServiceData.html +0 -1
  449. package/docs/types/curtain3WebhookContext.html +0 -1
  450. package/docs/types/curtainServiceData.html +0 -1
  451. package/docs/types/curtainStatus.html +0 -1
  452. package/docs/types/curtainWebhookContext.html +0 -1
  453. package/docs/types/floorCleaningRobotS10.html +0 -1
  454. package/docs/types/floorCleaningRobotS10Status.html +0 -1
  455. package/docs/types/floorCleaningRobotS10WebhookContext.html +0 -1
  456. package/docs/types/hub2.html +0 -1
  457. package/docs/types/hub2ServiceData.html +0 -1
  458. package/docs/types/hub2Status.html +0 -1
  459. package/docs/types/hub2WebhookContext.html +0 -1
  460. package/docs/types/hub3ServiceData.html +0 -1
  461. package/docs/types/humidifier.html +0 -1
  462. package/docs/types/humidifier2ServiceData.html +0 -1
  463. package/docs/types/humidifier2Status.html +0 -1
  464. package/docs/types/humidifier2WebhookContext.html +0 -1
  465. package/docs/types/humidifierServiceData.html +0 -1
  466. package/docs/types/humidifierStatus.html +0 -1
  467. package/docs/types/humidifierWebhookContext.html +0 -1
  468. package/docs/types/indoorCameraWebhookContext.html +0 -1
  469. package/docs/types/keypad.html +0 -1
  470. package/docs/types/keypadDetectorServiceData.html +0 -1
  471. package/docs/types/keypadTouch.html +0 -1
  472. package/docs/types/keypadTouchWebhookContext.html +0 -1
  473. package/docs/types/keypadWebhookContext.html +0 -1
  474. package/docs/types/lock.html +0 -1
  475. package/docs/types/lockPro.html +0 -1
  476. package/docs/types/lockProServiceData.html +0 -1
  477. package/docs/types/lockProStatus.html +0 -1
  478. package/docs/types/lockProWebhookContext.html +0 -1
  479. package/docs/types/lockServiceData.html +0 -1
  480. package/docs/types/lockStatus.html +0 -1
  481. package/docs/types/lockWebhookContext.html +0 -1
  482. package/docs/types/meter.html +0 -1
  483. package/docs/types/meterPlus.html +0 -1
  484. package/docs/types/meterPlusServiceData.html +0 -1
  485. package/docs/types/meterPlusStatus.html +0 -1
  486. package/docs/types/meterPlusWebhookContext.html +0 -1
  487. package/docs/types/meterPro.html +0 -1
  488. package/docs/types/meterProCO2ServiceData.html +0 -1
  489. package/docs/types/meterProCO2Status.html +0 -1
  490. package/docs/types/meterProCO2WebhookContext.html +0 -1
  491. package/docs/types/meterProServiceData.html +0 -1
  492. package/docs/types/meterProStatus.html +0 -1
  493. package/docs/types/meterProWebhookContext.html +0 -1
  494. package/docs/types/meterServiceData.html +0 -1
  495. package/docs/types/meterStatus.html +0 -1
  496. package/docs/types/meterWebhookContext.html +0 -1
  497. package/docs/types/motionSensor.html +0 -1
  498. package/docs/types/motionSensorServiceData.html +0 -1
  499. package/docs/types/motionSensorStatus.html +0 -1
  500. package/docs/types/motionSensorWebhookContext.html +0 -1
  501. package/docs/types/onadvertisement.html +0 -1
  502. package/docs/types/ondiscover.html +0 -1
  503. package/docs/types/outdoorMeter.html +0 -1
  504. package/docs/types/outdoorMeterServiceData.html +0 -1
  505. package/docs/types/outdoorMeterStatus.html +0 -1
  506. package/docs/types/outdoorMeterWebhookContext.html +0 -1
  507. package/docs/types/panTiltCamWebhookContext.html +0 -1
  508. package/docs/types/pantiltCam.html +0 -1
  509. package/docs/types/pantiltCam2k.html +0 -1
  510. package/docs/types/plug.html +0 -1
  511. package/docs/types/plugMini.html +0 -1
  512. package/docs/types/plugMiniJPServiceData.html +0 -1
  513. package/docs/types/plugMiniJPWebhookContext.html +0 -1
  514. package/docs/types/plugMiniStatus.html +0 -1
  515. package/docs/types/plugMiniUSServiceData.html +0 -1
  516. package/docs/types/plugMiniUSWebhookContext.html +0 -1
  517. package/docs/types/plugStatus.html +0 -1
  518. package/docs/types/plugWebhookContext.html +0 -1
  519. package/docs/types/presenceSensor.html +0 -1
  520. package/docs/types/presenceSensorServiceData.html +0 -1
  521. package/docs/types/presenceSensorStatus.html +0 -1
  522. package/docs/types/presenceSensorWebhookContext.html +0 -1
  523. package/docs/types/relaySwitch1Context.html +0 -1
  524. package/docs/types/relaySwitch1PMContext.html +0 -1
  525. package/docs/types/relaySwitch1PMServiceData.html +0 -1
  526. package/docs/types/relaySwitch1PMStatus.html +0 -1
  527. package/docs/types/relaySwitch1ServiceData.html +0 -1
  528. package/docs/types/relaySwitch1Status.html +0 -1
  529. package/docs/types/remote.html +0 -1
  530. package/docs/types/remoteServiceData.html +0 -1
  531. package/docs/types/robotVacuumCleanerS1.html +0 -1
  532. package/docs/types/robotVacuumCleanerS1Plus.html +0 -1
  533. package/docs/types/robotVacuumCleanerS1PlusStatus.html +0 -1
  534. package/docs/types/robotVacuumCleanerS1PlusWebhookContext.html +0 -1
  535. package/docs/types/robotVacuumCleanerS1Status.html +0 -1
  536. package/docs/types/robotVacuumCleanerS1WebhookContext.html +0 -1
  537. package/docs/types/robotVacuumCleanerServiceData.html +0 -1
  538. package/docs/types/stripLight.html +0 -1
  539. package/docs/types/stripLightServiceData.html +0 -1
  540. package/docs/types/stripLightStatus.html +0 -1
  541. package/docs/types/stripLightWebhookContext.html +0 -1
  542. package/docs/types/waterLeakDetector.html +0 -1
  543. package/docs/types/waterLeakDetectorServiceData.html +0 -1
  544. package/docs/types/waterLeakDetectorStatus.html +0 -1
  545. package/docs/types/waterLeakDetectorWebhookContext.html +0 -1
  546. package/docs/variables/parameterChecker.html +0 -1
  547. package/eslint.config.js +0 -48
  548. package/typedoc.json +0 -17
@@ -0,0 +1,97 @@
1
+ #!/bin/env node
2
+
3
+ /**
4
+ * This scripts queries the npm registry to pull out the latest version for a given tag.
5
+ */
6
+
7
+ import assert from 'node:assert'
8
+ import child_process from 'node:child_process'
9
+ import fs from 'node:fs'
10
+ import process from 'node:process'
11
+
12
+ const BRANCH_VERSION_PATTERN = /^([A-Z]+)-(\d+\.\d+\.\d+)$/i
13
+
14
+ // Load the contents of the package.json file
15
+ const packageJSON = JSON.parse(fs.readFileSync('package.json', 'utf8'))
16
+
17
+ const refArgument = process.argv[2]
18
+ const tagArgument = process.argv[3] || 'latest'
19
+
20
+ if (!refArgument) {
21
+ console.error('ref argument is missing')
22
+ console.error('Usage: npm-version-script-esm.js <ref> [tag]')
23
+ process.exit(1)
24
+ }
25
+
26
+ /**
27
+ * Queries the NPM registry for the latest version for the provided base version and tag.
28
+ * If the tag is latest, then the base version is returned if it exists. For other tags, the latest
29
+ * version found for that base version and tag is returned.
30
+ * @param baseVersion The base version to query for, e.g. 2.0.0
31
+ * @param tag The tag to query for, e.g. beta or latest
32
+ * @returns {string} Returns the version, or '' if not found
33
+ */
34
+ function getTagVersionFromNpm(baseVersion, tag) {
35
+ try {
36
+ return JSON.parse(child_process.execSync(`npm info ${packageJSON.name} versions --json`).toString('utf8').trim())
37
+ .filter(v => tag === 'latest' ? v === baseVersion : v.startsWith(`${baseVersion}-${tag}.`)) // find all published versions for this base version and tag
38
+ .reduce((_, current) => current, '') // choose the last as they're sorted in ascending order, or '' if there are none
39
+ } catch (e) {
40
+ console.error(`Failed to query the npm registry for the latest version for tag: ${tag}`, e)
41
+ // throw e;
42
+ return ''
43
+ }
44
+ }
45
+
46
+ function desiredTargetVersion(ref) {
47
+ // ref is a GitHub action ref string
48
+ if (ref.startsWith('refs/pull/')) {
49
+ throw new Error('The version script was executed inside a PR!')
50
+ }
51
+
52
+ assert(ref.startsWith('refs/heads/'))
53
+ const branchName = ref.slice('refs/heads/'.length)
54
+
55
+ const results = branchName.match(BRANCH_VERSION_PATTERN)
56
+ if (results !== null) {
57
+ if (results[1] !== tagArgument) {
58
+ console.warn(`The base branch name (${results[1]}) differs from the tag name ${tagArgument}`)
59
+ }
60
+
61
+ return results[2]
62
+ }
63
+
64
+ throw new Error(`Malformed branch name for ref: ${ref}. Can't derive the base version. Use a branch name like: beta-x.x.x or alpha-x.x.x`)
65
+ }
66
+
67
+ // derive the base version from the branch ref
68
+ const baseVersion = desiredTargetVersion(refArgument)
69
+
70
+ // query the npm registry for the latest version of the provided tag name
71
+ const latestReleasedVersion = getTagVersionFromNpm(baseVersion, tagArgument) // e.g. 0.7.0-beta.12
72
+
73
+ let publishTag
74
+
75
+ if (latestReleasedVersion) {
76
+ console.warn(`Latest published version for ${baseVersion} with tag ${tagArgument} is ${latestReleasedVersion}`)
77
+ publishTag = latestReleasedVersion // set this released beta or alpha to be incremented
78
+ } else {
79
+ console.warn(`No published versions for ${baseVersion} with tag ${tagArgument}`)
80
+ publishTag = baseVersion // start off with a new beta or alpha version
81
+ }
82
+
83
+ if (packageJSON.version !== publishTag) {
84
+ // report the change for CI
85
+ console.warn(`Changing version in package.json from ${packageJSON.version} to ${publishTag}`)
86
+
87
+ // save the package.json
88
+ packageJSON.version = publishTag
89
+ fs.writeFileSync('package.json', JSON.stringify(packageJSON, null, 2))
90
+
91
+ // perform the same change to the package-lock.json
92
+ const packageLockJSON = JSON.parse(fs.readFileSync('package-lock.json', 'utf8'))
93
+ packageLockJSON.version = publishTag
94
+ fs.writeFileSync('package-lock.json', JSON.stringify(packageLockJSON, null, 2))
95
+ } else {
96
+ console.warn(`Leaving version in package.json at ${packageJSON.version}`)
97
+ }
package/CHANGELOG.md CHANGED
@@ -2,6 +2,592 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. This project uses [Semantic Versioning](https://semver.org/)
4
4
 
5
+ ## [4.0.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.6.6...v4.0.0) (2026-03-03)
6
+
7
+ ### ⚠ BREAKING CHANGES
8
+
9
+ * Complete rewrite with unified hybrid BLE/API architecture
10
+ * No backward compatibility with v3.x - migration required
11
+ * Single `SwitchBot` class replaces `SwitchBotBLE` and `SwitchBotOpenAPI`
12
+ * Device access via `switchbot.devices` manager pattern
13
+ * Full TypeScript rewrite with comprehensive type definitions
14
+
15
+ ### Features
16
+
17
+ * **Hybrid Architecture**: Unified BLE-first approach with automatic OpenAPI fallback
18
+ * **Automatic Discovery**: Combined BLE + OpenAPI device discovery in single call
19
+ * **Smart Fallback**: Commands automatically retry via API when BLE fails
20
+ * **Device Manager**: Centralized device management with `get()`, `list()`, and `clear()` methods
21
+ * **30 Device Types**: Full support for all SwitchBot devices (Bot, Curtain, Lock, Meter, Plug, Bulb, etc.)
22
+ * **Event-Driven**: EventEmitter-based architecture for discovery and command events
23
+ * **TypeScript Native**: Written in TypeScript with full type safety and exports
24
+ * **Custom Errors**: Specific error classes for better error handling
25
+ * **BLE-Only Mode**: Works without OpenAPI credentials on Linux systems
26
+ * **API-Only Mode**: Works without BLE on Windows/macOS
27
+ * **Comprehensive Examples**: 6 example files covering all major use cases
28
+
29
+ ### Technical Improvements
30
+
31
+ * Complete ES2022 module implementation
32
+ * Improved error handling with custom error classes
33
+ * Better connection management and timeout handling
34
+ * Enhanced logging with configurable log levels
35
+ * Full JSDoc documentation coverage
36
+ * Comprehensive TypeScript type definitions for all devices
37
+ * Production-ready test suite with Vitest
38
+ * Auto-formatting and linting with @antfu/eslint-config
39
+
40
+ ### Documentation
41
+
42
+ * Updated README with v4 quick start and migration guide
43
+ * 6 usage examples in `examples/` directory
44
+ * Migration guide from v3.x to v4.0.0
45
+ * Full API documentation via TypeDoc
46
+
47
+ ---
48
+
49
+ ## [3.6.6](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.6.5...v3.6.6) (2026-02-25)
50
+
51
+
52
+ ### Bug Fixes
53
+
54
+ * sync package-lock.json with @stoprocent/noble@^2.3.14 ([#324](https://github.com/OpenWonderLabs/node-switchbot/issues/324)) ([0670987](https://github.com/OpenWonderLabs/node-switchbot/commit/06709876ab1bb4adc244507863f1b25b786b87f2))
55
+
56
+
57
+ ### Features
58
+
59
+ * Add Plug Mini (EU) support ([#325](https://github.com/OpenWonderLabs/node-switchbot/issues/325)) ([1eb8d2e](https://github.com/OpenWonderLabs/node-switchbot/commit/1eb8d2e572e211482105c2563a736bdfabeb50be))
60
+
61
+
62
+
63
+ ## [3.6.5](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.6.4...v3.6.5) (2026-02-19)
64
+
65
+
66
+
67
+ ## [3.6.4](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.6.3...v3.6.4) (2026-02-18)
68
+
69
+
70
+
71
+ ## [3.6.3](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.5.1...v3.6.3) (2026-02-05)
72
+
73
+
74
+
75
+ ## [3.5.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.5.0...v3.5.1) (2025-07-25)
76
+
77
+
78
+
79
+ # [3.5.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.9...v3.5.0) (2025-03-05)
80
+
81
+
82
+
83
+ ## [3.4.9](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.8...v3.4.9) (2025-01-24)
84
+
85
+
86
+
87
+ ## [3.4.8](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.7...v3.4.8) (2025-01-24)
88
+
89
+
90
+
91
+ ## [3.4.7](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.6...v3.4.7) (2025-01-24)
92
+
93
+
94
+
95
+ ## [3.4.6](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.5...v3.4.6) (2025-01-24)
96
+
97
+
98
+
99
+ ## [3.4.5](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.4...v3.4.5) (2025-01-24)
100
+
101
+
102
+
103
+ ## [3.4.4](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.3...v3.4.4) (2025-01-24)
104
+
105
+
106
+
107
+ ## [3.4.3](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.2...v3.4.3) (2024-12-22)
108
+
109
+
110
+
111
+ ## [3.4.2](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.1...v3.4.2) (2024-12-22)
112
+
113
+
114
+
115
+ ## [3.4.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.0...v3.4.1) (2024-11-28)
116
+
117
+
118
+
119
+ # [3.4.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.3.0...v3.4.0) (2024-11-18)
120
+
121
+
122
+
123
+ # [3.3.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.2.1...v3.3.0) (2024-11-02)
124
+
125
+
126
+
127
+ ## [3.2.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.2.0...v3.2.1) (2024-10-22)
128
+
129
+
130
+
131
+ # [3.2.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.1.1...v3.2.0) (2024-10-22)
132
+
133
+
134
+
135
+ ## [3.1.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.1.0...v3.1.1) (2024-10-12)
136
+
137
+
138
+
139
+ # [3.1.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.0.1...v3.1.0) (2024-10-12)
140
+
141
+
142
+
143
+ ## [3.0.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.0.0...v3.0.1) (2024-10-05)
144
+
145
+
146
+
147
+ # [3.0.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v2.3.0...v3.0.0) (2024-10-05)
148
+
149
+
150
+
151
+ # [2.3.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v2.2.0...v2.3.0) (2024-07-21)
152
+
153
+
154
+
155
+ # [2.2.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v2.1.1...v2.2.0) (2024-06-26)
156
+
157
+
158
+
159
+ ## [2.1.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v2.1.0...v2.1.1) (2024-05-26)
160
+
161
+
162
+
163
+ # [2.1.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v2.0.3...v2.1.0) (2024-05-14)
164
+
165
+
166
+
167
+ ## [2.0.3](https://github.com/OpenWonderLabs/node-switchbot/compare/v2.0.2...v2.0.3) (2024-02-12)
168
+
169
+
170
+
171
+ ## [2.0.2](https://github.com/OpenWonderLabs/node-switchbot/compare/v2.0.0...v2.0.2) (2024-02-10)
172
+
173
+
174
+
175
+ # [2.0.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.9.1...v2.0.0) (2024-02-05)
176
+
177
+
178
+
179
+ ## [1.9.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.9.0...v1.9.1) (2023-11-21)
180
+
181
+
182
+
183
+ # [1.9.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.8.2...v1.9.0) (2023-09-16)
184
+
185
+
186
+
187
+ ## [1.8.2](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.8.1...v1.8.2) (2023-07-26)
188
+
189
+
190
+
191
+ ## [1.8.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.8.0...v1.8.1) (2023-04-08)
192
+
193
+
194
+
195
+ # [1.8.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.7.3...v1.8.0) (2023-01-29)
196
+
197
+
198
+
199
+ ## [1.7.3](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.7.2...v1.7.3) (2023-01-05)
200
+
201
+
202
+
203
+ ## [1.7.2](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.7.1...v1.7.2) (2022-12-26)
204
+
205
+
206
+
207
+ ## [1.7.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.7.0...v1.7.1) (2022-12-20)
208
+
209
+
210
+
211
+ # [1.7.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.6.1...v1.7.0) (2022-12-08)
212
+
213
+
214
+
215
+ ## [1.6.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.6.0...v1.6.1) (2022-10-19)
216
+
217
+
218
+
219
+ # [1.6.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.5.0...v1.6.0) (2022-10-18)
220
+
221
+
222
+
223
+ # [1.5.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.4.1...v1.5.0) (2022-10-07)
224
+
225
+
226
+
227
+ ## [1.4.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.4.0...v1.4.1) (2022-08-27)
228
+
229
+
230
+
231
+ # [1.4.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.3.0...v1.4.0) (2022-08-20)
232
+
233
+
234
+
235
+ # [1.3.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.2.0...v1.3.0) (2022-06-25)
236
+
237
+
238
+
239
+ # [1.2.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.1.2...v1.2.0) (2022-03-04)
240
+
241
+
242
+
243
+ ## [1.1.2](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.1.1...v1.1.2) (2021-11-13)
244
+
245
+
246
+
247
+ ## [1.1.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.1.0...v1.1.1) (2021-11-02)
248
+
249
+
250
+
251
+ # [1.1.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.8...v1.1.0) (2021-10-27)
252
+
253
+
254
+
255
+ ## [1.0.8](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.7...v1.0.8) (2021-09-30)
256
+
257
+
258
+
259
+ ## [1.0.7](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.6...v1.0.7) (2021-09-25)
260
+
261
+
262
+
263
+ ## [1.0.6](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.5...v1.0.6) (2021-08-29)
264
+
265
+
266
+
267
+ ## [1.0.5](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.4...v1.0.5) (2021-08-04)
268
+
269
+
270
+
271
+ ## [1.0.4](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.3...v1.0.4) (2021-08-04)
272
+
273
+
274
+
275
+ ## [1.0.3](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.2...v1.0.3) (2021-07-30)
276
+
277
+
278
+
279
+ ## [1.0.2](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.1...v1.0.2) (2021-07-29)
280
+
281
+
282
+
283
+ ## [1.0.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.0...v1.0.1) (2021-07-29)
284
+
285
+
286
+
287
+ # [1.0.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v0.2.0...v1.0.0) (2021-01-21)
288
+
289
+
290
+
291
+ # [0.2.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v0.1.0...v0.2.0) (2020-11-05)
292
+
293
+
294
+
295
+ # [0.1.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v0.0.5...v0.1.0) (2020-10-28)
296
+
297
+
298
+ ### Bug Fixes
299
+
300
+ * typo ([338044f](https://github.com/OpenWonderLabs/node-switchbot/commit/338044f3469788f76c189ba75be80518b1765107))
301
+
302
+
303
+ ### Features
304
+
305
+ * Added support for running on the Raspberry Pi Zero W. ([017b244](https://github.com/OpenWonderLabs/node-switchbot/commit/017b244cfba178827b4a2504853cc013b7a6bc70))
306
+
307
+
308
+
309
+ ## [0.0.5](https://github.com/OpenWonderLabs/node-switchbot/compare/v0.0.4...v0.0.5) (2020-02-18)
310
+
311
+
312
+
313
+ ## [0.0.4](https://github.com/OpenWonderLabs/node-switchbot/compare/v0.0.3...v0.0.4) (2020-02-10)
314
+
315
+
316
+
317
+ ## [0.0.3](https://github.com/OpenWonderLabs/node-switchbot/compare/v0.0.2...v0.0.3) (2020-02-10)
318
+
319
+
320
+
321
+ ## [0.0.2](https://github.com/OpenWonderLabs/node-switchbot/compare/v0.0.1...v0.0.2) (2019-11-20)
322
+
323
+
324
+
325
+ ## 0.0.1 (2019-11-20)
326
+
327
+ ## [3.6.5](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.6.4...v3.6.5) (2026-02-19)
328
+
329
+
330
+
331
+ ## [3.6.4](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.6.3...v3.6.4) (2026-02-18)
332
+
333
+
334
+
335
+ ## [3.6.3](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.5.1...v3.6.3) (2026-02-05)
336
+
337
+
338
+
339
+ ## [3.5.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.5.0...v3.5.1) (2025-07-25)
340
+
341
+
342
+
343
+ # [3.5.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.9...v3.5.0) (2025-03-05)
344
+
345
+
346
+
347
+ ## [3.4.9](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.8...v3.4.9) (2025-01-24)
348
+
349
+
350
+
351
+ ## [3.4.8](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.7...v3.4.8) (2025-01-24)
352
+
353
+
354
+
355
+ ## [3.4.7](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.6...v3.4.7) (2025-01-24)
356
+
357
+
358
+
359
+ ## [3.4.6](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.5...v3.4.6) (2025-01-24)
360
+
361
+
362
+
363
+ ## [3.4.5](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.4...v3.4.5) (2025-01-24)
364
+
365
+
366
+
367
+ ## [3.4.4](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.3...v3.4.4) (2025-01-24)
368
+
369
+
370
+
371
+ ## [3.4.3](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.2...v3.4.3) (2024-12-22)
372
+
373
+
374
+
375
+ ## [3.4.2](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.1...v3.4.2) (2024-12-22)
376
+
377
+
378
+
379
+ ## [3.4.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.4.0...v3.4.1) (2024-11-28)
380
+
381
+
382
+
383
+ # [3.4.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.3.0...v3.4.0) (2024-11-18)
384
+
385
+
386
+
387
+ # [3.3.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.2.1...v3.3.0) (2024-11-02)
388
+
389
+
390
+
391
+ ## [3.2.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.2.0...v3.2.1) (2024-10-22)
392
+
393
+
394
+
395
+ # [3.2.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.1.1...v3.2.0) (2024-10-22)
396
+
397
+
398
+
399
+ ## [3.1.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.1.0...v3.1.1) (2024-10-12)
400
+
401
+
402
+
403
+ # [3.1.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.0.1...v3.1.0) (2024-10-12)
404
+
405
+
406
+
407
+ ## [3.0.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.0.0...v3.0.1) (2024-10-05)
408
+
409
+
410
+
411
+ # [3.0.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v2.3.0...v3.0.0) (2024-10-05)
412
+
413
+
414
+
415
+ # [2.3.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v2.2.0...v2.3.0) (2024-07-21)
416
+
417
+
418
+
419
+ # [2.2.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v2.1.1...v2.2.0) (2024-06-26)
420
+
421
+
422
+
423
+ ## [2.1.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v2.1.0...v2.1.1) (2024-05-26)
424
+
425
+
426
+
427
+ # [2.1.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v2.0.3...v2.1.0) (2024-05-14)
428
+
429
+
430
+
431
+ ## [2.0.3](https://github.com/OpenWonderLabs/node-switchbot/compare/v2.0.2...v2.0.3) (2024-02-12)
432
+
433
+
434
+
435
+ ## [2.0.2](https://github.com/OpenWonderLabs/node-switchbot/compare/v2.0.0...v2.0.2) (2024-02-10)
436
+
437
+
438
+
439
+ # [2.0.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.9.1...v2.0.0) (2024-02-05)
440
+
441
+
442
+
443
+ ## [1.9.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.9.0...v1.9.1) (2023-11-21)
444
+
445
+
446
+
447
+ # [1.9.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.8.2...v1.9.0) (2023-09-16)
448
+
449
+
450
+
451
+ ## [1.8.2](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.8.1...v1.8.2) (2023-07-26)
452
+
453
+
454
+
455
+ ## [1.8.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.8.0...v1.8.1) (2023-04-08)
456
+
457
+
458
+
459
+ # [1.8.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.7.3...v1.8.0) (2023-01-29)
460
+
461
+
462
+
463
+ ## [1.7.3](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.7.2...v1.7.3) (2023-01-05)
464
+
465
+
466
+
467
+ ## [1.7.2](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.7.1...v1.7.2) (2022-12-26)
468
+
469
+
470
+
471
+ ## [1.7.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.7.0...v1.7.1) (2022-12-20)
472
+
473
+
474
+
475
+ # [1.7.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.6.1...v1.7.0) (2022-12-08)
476
+
477
+
478
+
479
+ ## [1.6.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.6.0...v1.6.1) (2022-10-19)
480
+
481
+
482
+
483
+ # [1.6.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.5.0...v1.6.0) (2022-10-18)
484
+
485
+
486
+
487
+ # [1.5.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.4.1...v1.5.0) (2022-10-07)
488
+
489
+
490
+
491
+ ## [1.4.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.4.0...v1.4.1) (2022-08-27)
492
+
493
+
494
+
495
+ # [1.4.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.3.0...v1.4.0) (2022-08-20)
496
+
497
+
498
+
499
+ # [1.3.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.2.0...v1.3.0) (2022-06-25)
500
+
501
+
502
+
503
+ # [1.2.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.1.2...v1.2.0) (2022-03-04)
504
+
505
+
506
+
507
+ ## [1.1.2](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.1.1...v1.1.2) (2021-11-13)
508
+
509
+
510
+
511
+ ## [1.1.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.1.0...v1.1.1) (2021-11-02)
512
+
513
+
514
+
515
+ # [1.1.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.8...v1.1.0) (2021-10-27)
516
+
517
+
518
+
519
+ ## [1.0.8](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.7...v1.0.8) (2021-09-30)
520
+
521
+
522
+
523
+ ## [1.0.7](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.6...v1.0.7) (2021-09-25)
524
+
525
+
526
+
527
+ ## [1.0.6](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.5...v1.0.6) (2021-08-29)
528
+
529
+
530
+
531
+ ## [1.0.5](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.4...v1.0.5) (2021-08-04)
532
+
533
+
534
+
535
+ ## [1.0.4](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.3...v1.0.4) (2021-08-04)
536
+
537
+
538
+
539
+ ## [1.0.3](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.2...v1.0.3) (2021-07-30)
540
+
541
+
542
+
543
+ ## [1.0.2](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.1...v1.0.2) (2021-07-29)
544
+
545
+
546
+
547
+ ## [1.0.1](https://github.com/OpenWonderLabs/node-switchbot/compare/v1.0.0...v1.0.1) (2021-07-29)
548
+
549
+
550
+
551
+ # [1.0.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v0.2.0...v1.0.0) (2021-01-21)
552
+
553
+
554
+
555
+ # [0.2.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v0.1.0...v0.2.0) (2020-11-05)
556
+
557
+
558
+
559
+ # [0.1.0](https://github.com/OpenWonderLabs/node-switchbot/compare/v0.0.5...v0.1.0) (2020-10-28)
560
+
561
+
562
+ ### Bug Fixes
563
+
564
+ * typo ([338044f](https://github.com/OpenWonderLabs/node-switchbot/commit/338044f3469788f76c189ba75be80518b1765107))
565
+
566
+
567
+ ### Features
568
+
569
+ * Added support for running on the Raspberry Pi Zero W. ([017b244](https://github.com/OpenWonderLabs/node-switchbot/commit/017b244cfba178827b4a2504853cc013b7a6bc70))
570
+
571
+
572
+
573
+ ## [0.0.5](https://github.com/OpenWonderLabs/node-switchbot/compare/v0.0.4...v0.0.5) (2020-02-18)
574
+
575
+
576
+
577
+ ## [0.0.4](https://github.com/OpenWonderLabs/node-switchbot/compare/v0.0.3...v0.0.4) (2020-02-10)
578
+
579
+
580
+
581
+ ## [0.0.3](https://github.com/OpenWonderLabs/node-switchbot/compare/v0.0.2...v0.0.3) (2020-02-10)
582
+
583
+
584
+
585
+ ## [0.0.2](https://github.com/OpenWonderLabs/node-switchbot/compare/v0.0.1...v0.0.2) (2019-11-20)
586
+
587
+
588
+
589
+ ## 0.0.1 (2019-11-20)
590
+
5
591
  ## [3.6.5](https://github.com/OpenWonderLabs/node-switchbot/compare/v3.6.4...v3.6.5) (2026-02-19)
6
592
 
7
593