node-switchbot 4.0.0-beta.10 → 4.0.0-beta.12

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 (359) hide show
  1. package/dist/ble.d.ts +10 -0
  2. package/dist/ble.d.ts.map +1 -1
  3. package/dist/ble.js +69 -3
  4. package/dist/ble.js.map +1 -1
  5. package/dist/devices/index.d.ts +32 -0
  6. package/dist/devices/index.d.ts.map +1 -1
  7. package/dist/devices/index.js +32 -0
  8. package/dist/devices/index.js.map +1 -1
  9. package/dist/devices/wo-ai-hub.d.ts +6 -0
  10. package/dist/devices/wo-ai-hub.d.ts.map +1 -0
  11. package/dist/devices/wo-ai-hub.js +7 -0
  12. package/dist/devices/wo-ai-hub.js.map +1 -0
  13. package/dist/devices/wo-air-purifier-pm25.d.ts +6 -0
  14. package/dist/devices/wo-air-purifier-pm25.d.ts.map +1 -0
  15. package/dist/devices/wo-air-purifier-pm25.js +7 -0
  16. package/dist/devices/wo-air-purifier-pm25.js.map +1 -0
  17. package/dist/devices/wo-air-purifier.d.ts +17 -0
  18. package/dist/devices/wo-air-purifier.d.ts.map +1 -1
  19. package/dist/devices/wo-air-purifier.js +74 -9
  20. package/dist/devices/wo-air-purifier.js.map +1 -1
  21. package/dist/devices/wo-art-frame.d.ts +8 -0
  22. package/dist/devices/wo-art-frame.d.ts.map +1 -0
  23. package/dist/devices/wo-art-frame.js +12 -0
  24. package/dist/devices/wo-art-frame.js.map +1 -0
  25. package/dist/devices/wo-blind-tilt.d.ts +1 -0
  26. package/dist/devices/wo-blind-tilt.d.ts.map +1 -1
  27. package/dist/devices/wo-blind-tilt.js +41 -2
  28. package/dist/devices/wo-blind-tilt.js.map +1 -1
  29. package/dist/devices/wo-bulb.d.ts +27 -1
  30. package/dist/devices/wo-bulb.d.ts.map +1 -1
  31. package/dist/devices/wo-bulb.js +124 -34
  32. package/dist/devices/wo-bulb.js.map +1 -1
  33. package/dist/devices/wo-candle-warmer-lamp.d.ts +6 -0
  34. package/dist/devices/wo-candle-warmer-lamp.d.ts.map +1 -0
  35. package/dist/devices/wo-candle-warmer-lamp.js +7 -0
  36. package/dist/devices/wo-candle-warmer-lamp.js.map +1 -0
  37. package/dist/devices/wo-circulator-fan.d.ts +8 -0
  38. package/dist/devices/wo-circulator-fan.d.ts.map +1 -0
  39. package/dist/devices/wo-circulator-fan.js +12 -0
  40. package/dist/devices/wo-circulator-fan.js.map +1 -0
  41. package/dist/devices/wo-climate-panel.d.ts +8 -0
  42. package/dist/devices/wo-climate-panel.d.ts.map +1 -0
  43. package/dist/devices/wo-climate-panel.js +12 -0
  44. package/dist/devices/wo-climate-panel.js.map +1 -0
  45. package/dist/devices/wo-curtain.d.ts +17 -1
  46. package/dist/devices/wo-curtain.d.ts.map +1 -1
  47. package/dist/devices/wo-curtain.js +106 -2
  48. package/dist/devices/wo-curtain.js.map +1 -1
  49. package/dist/devices/wo-floor-lamp.d.ts +8 -0
  50. package/dist/devices/wo-floor-lamp.d.ts.map +1 -0
  51. package/dist/devices/wo-floor-lamp.js +12 -0
  52. package/dist/devices/wo-floor-lamp.js.map +1 -0
  53. package/dist/devices/wo-garage-door-opener.d.ts +8 -0
  54. package/dist/devices/wo-garage-door-opener.d.ts.map +1 -0
  55. package/dist/devices/wo-garage-door-opener.js +12 -0
  56. package/dist/devices/wo-garage-door-opener.js.map +1 -0
  57. package/dist/devices/wo-hubmini-matter.d.ts +8 -0
  58. package/dist/devices/wo-hubmini-matter.d.ts.map +1 -0
  59. package/dist/devices/wo-hubmini-matter.js +12 -0
  60. package/dist/devices/wo-hubmini-matter.js.map +1 -0
  61. package/dist/devices/wo-humi.d.ts +16 -0
  62. package/dist/devices/wo-humi.d.ts.map +1 -1
  63. package/dist/devices/wo-humi.js +39 -0
  64. package/dist/devices/wo-humi.js.map +1 -1
  65. package/dist/devices/wo-humi2.d.ts.map +1 -1
  66. package/dist/devices/wo-humi2.js.map +1 -1
  67. package/dist/devices/wo-keypad-vision-pro.d.ts +18 -0
  68. package/dist/devices/wo-keypad-vision-pro.d.ts.map +1 -0
  69. package/dist/devices/wo-keypad-vision-pro.js +15 -0
  70. package/dist/devices/wo-keypad-vision-pro.js.map +1 -0
  71. package/dist/devices/wo-keypad-vision.d.ts +8 -0
  72. package/dist/devices/wo-keypad-vision.d.ts.map +1 -0
  73. package/dist/devices/wo-keypad-vision.js +12 -0
  74. package/dist/devices/wo-keypad-vision.js.map +1 -0
  75. package/dist/devices/wo-lock-lite.d.ts +7 -0
  76. package/dist/devices/wo-lock-lite.d.ts.map +1 -0
  77. package/dist/devices/wo-lock-lite.js +11 -0
  78. package/dist/devices/wo-lock-lite.js.map +1 -0
  79. package/dist/devices/wo-lock-pro-wifi.d.ts +7 -0
  80. package/dist/devices/wo-lock-pro-wifi.d.ts.map +1 -0
  81. package/dist/devices/wo-lock-pro-wifi.js +11 -0
  82. package/dist/devices/wo-lock-pro-wifi.js.map +1 -0
  83. package/dist/devices/wo-lock-vision-pro.d.ts +7 -0
  84. package/dist/devices/wo-lock-vision-pro.d.ts.map +1 -0
  85. package/dist/devices/wo-lock-vision-pro.js +11 -0
  86. package/dist/devices/wo-lock-vision-pro.js.map +1 -0
  87. package/dist/devices/wo-lock-vision.d.ts +7 -0
  88. package/dist/devices/wo-lock-vision.d.ts.map +1 -0
  89. package/dist/devices/wo-lock-vision.js +11 -0
  90. package/dist/devices/wo-lock-vision.js.map +1 -0
  91. package/dist/devices/wo-pan-tilt-cam-plus-3k.d.ts +6 -0
  92. package/dist/devices/wo-pan-tilt-cam-plus-3k.d.ts.map +1 -0
  93. package/dist/devices/wo-pan-tilt-cam-plus-3k.js +7 -0
  94. package/dist/devices/wo-pan-tilt-cam-plus-3k.js.map +1 -0
  95. package/dist/devices/wo-relay-switch-1.d.ts +14 -0
  96. package/dist/devices/wo-relay-switch-1.d.ts.map +1 -1
  97. package/dist/devices/wo-relay-switch-1.js +47 -10
  98. package/dist/devices/wo-relay-switch-1.js.map +1 -1
  99. package/dist/devices/wo-relay-switch-2pm.d.ts.map +1 -1
  100. package/dist/devices/wo-relay-switch-2pm.js +4 -6
  101. package/dist/devices/wo-relay-switch-2pm.js.map +1 -1
  102. package/dist/devices/wo-remote-with-screen.d.ts +6 -0
  103. package/dist/devices/wo-remote-with-screen.d.ts.map +1 -0
  104. package/dist/devices/wo-remote-with-screen.js +7 -0
  105. package/dist/devices/wo-remote-with-screen.js.map +1 -0
  106. package/dist/devices/wo-rgbic-neon-wire-rope-light.d.ts +6 -0
  107. package/dist/devices/wo-rgbic-neon-wire-rope-light.d.ts.map +1 -0
  108. package/dist/devices/wo-rgbic-neon-wire-rope-light.js +7 -0
  109. package/dist/devices/wo-rgbic-neon-wire-rope-light.js.map +1 -0
  110. package/dist/devices/wo-rgbicww-floor-lamp.d.ts +8 -0
  111. package/dist/devices/wo-rgbicww-floor-lamp.d.ts.map +1 -0
  112. package/dist/devices/wo-rgbicww-floor-lamp.js +12 -0
  113. package/dist/devices/wo-rgbicww-floor-lamp.js.map +1 -0
  114. package/dist/devices/wo-rgbicww-strip-light.d.ts +8 -0
  115. package/dist/devices/wo-rgbicww-strip-light.d.ts.map +1 -0
  116. package/dist/devices/wo-rgbicww-strip-light.js +12 -0
  117. package/dist/devices/wo-rgbicww-strip-light.js.map +1 -0
  118. package/dist/devices/wo-roller-shade.d.ts +8 -0
  119. package/dist/devices/wo-roller-shade.d.ts.map +1 -0
  120. package/dist/devices/wo-roller-shade.js +12 -0
  121. package/dist/devices/wo-roller-shade.js.map +1 -0
  122. package/dist/devices/wo-smart-thermostat-radiator.d.ts +8 -0
  123. package/dist/devices/wo-smart-thermostat-radiator.d.ts.map +1 -0
  124. package/dist/devices/wo-smart-thermostat-radiator.js +12 -0
  125. package/dist/devices/wo-smart-thermostat-radiator.js.map +1 -0
  126. package/dist/devices/wo-strip-light-3.d.ts +8 -0
  127. package/dist/devices/wo-strip-light-3.d.ts.map +1 -0
  128. package/dist/devices/wo-strip-light-3.js +12 -0
  129. package/dist/devices/wo-strip-light-3.js.map +1 -0
  130. package/dist/devices/wo-vacuum-k10-plus.d.ts +7 -0
  131. package/dist/devices/wo-vacuum-k10-plus.d.ts.map +1 -0
  132. package/dist/devices/wo-vacuum-k10-plus.js +11 -0
  133. package/dist/devices/wo-vacuum-k10-plus.js.map +1 -0
  134. package/dist/devices/wo-vacuum-k10-pro-combo.d.ts +7 -0
  135. package/dist/devices/wo-vacuum-k10-pro-combo.d.ts.map +1 -0
  136. package/dist/devices/wo-vacuum-k10-pro-combo.js +11 -0
  137. package/dist/devices/wo-vacuum-k10-pro-combo.js.map +1 -0
  138. package/dist/devices/wo-vacuum-k10-pro.d.ts +7 -0
  139. package/dist/devices/wo-vacuum-k10-pro.d.ts.map +1 -0
  140. package/dist/devices/wo-vacuum-k10-pro.js +11 -0
  141. package/dist/devices/wo-vacuum-k10-pro.js.map +1 -0
  142. package/dist/devices/wo-vacuum-k11-plus.d.ts +7 -0
  143. package/dist/devices/wo-vacuum-k11-plus.d.ts.map +1 -0
  144. package/dist/devices/wo-vacuum-k11-plus.js +11 -0
  145. package/dist/devices/wo-vacuum-k11-plus.js.map +1 -0
  146. package/dist/devices/wo-vacuum-k20.d.ts +7 -0
  147. package/dist/devices/wo-vacuum-k20.d.ts.map +1 -0
  148. package/dist/devices/wo-vacuum-k20.js +11 -0
  149. package/dist/devices/wo-vacuum-k20.js.map +1 -0
  150. package/dist/devices/wo-vacuum-s10.d.ts +7 -0
  151. package/dist/devices/wo-vacuum-s10.d.ts.map +1 -0
  152. package/dist/devices/wo-vacuum-s10.js +11 -0
  153. package/dist/devices/wo-vacuum-s10.js.map +1 -0
  154. package/dist/devices/wo-vacuum-s20.d.ts +7 -0
  155. package/dist/devices/wo-vacuum-s20.d.ts.map +1 -0
  156. package/dist/devices/wo-vacuum-s20.js +11 -0
  157. package/dist/devices/wo-vacuum-s20.js.map +1 -0
  158. package/dist/devices/wo-vacuum.d.ts +44 -0
  159. package/dist/devices/wo-vacuum.d.ts.map +1 -0
  160. package/dist/devices/wo-vacuum.js +117 -0
  161. package/dist/devices/wo-vacuum.js.map +1 -0
  162. package/dist/devices/wo-water-detector.d.ts +6 -0
  163. package/dist/devices/wo-water-detector.d.ts.map +1 -0
  164. package/dist/devices/wo-water-detector.js +7 -0
  165. package/dist/devices/wo-water-detector.js.map +1 -0
  166. package/dist/errors.d.ts +20 -0
  167. package/dist/errors.d.ts.map +1 -1
  168. package/dist/errors.js +31 -1
  169. package/dist/errors.js.map +1 -1
  170. package/dist/index.d.ts +2 -2
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js +1 -1
  173. package/dist/index.js.map +1 -1
  174. package/dist/settings.d.ts +11 -0
  175. package/dist/settings.d.ts.map +1 -1
  176. package/dist/settings.js +68 -5
  177. package/dist/settings.js.map +1 -1
  178. package/dist/switchbot.d.ts.map +1 -1
  179. package/dist/switchbot.js +69 -1
  180. package/dist/switchbot.js.map +1 -1
  181. package/dist/types/device.d.ts +44 -0
  182. package/dist/types/device.d.ts.map +1 -1
  183. package/dist/utils/index.d.ts +5 -0
  184. package/dist/utils/index.d.ts.map +1 -1
  185. package/dist/utils/index.js +9 -0
  186. package/dist/utils/index.js.map +1 -1
  187. package/dist/utils/relay-encryption.d.ts +10 -0
  188. package/dist/utils/relay-encryption.d.ts.map +1 -0
  189. package/dist/utils/relay-encryption.js +23 -0
  190. package/dist/utils/relay-encryption.js.map +1 -0
  191. package/dist/utils/retry.d.ts.map +1 -1
  192. package/dist/utils/retry.js +49 -6
  193. package/dist/utils/retry.js.map +1 -1
  194. package/docs/assets/hierarchy.js +1 -1
  195. package/docs/assets/navigation.js +1 -1
  196. package/docs/assets/search.js +1 -1
  197. package/docs/classes/APIError.html +2 -2
  198. package/docs/classes/APINotAvailableError.html +2 -2
  199. package/docs/classes/BLEConnection.html +11 -9
  200. package/docs/classes/BLENotAvailableError.html +2 -2
  201. package/docs/classes/BLEScanner.html +9 -9
  202. package/docs/classes/CommandFailedError.html +2 -2
  203. package/docs/classes/ConnectionTimeoutError.html +2 -2
  204. package/docs/classes/DeviceManager.html +13 -13
  205. package/docs/classes/DeviceNotFoundError.html +2 -2
  206. package/docs/classes/DeviceOverrideStateDuringConnection.html +28 -28
  207. package/docs/classes/DiscoveryError.html +2 -2
  208. package/docs/classes/OpenAPIClient.html +24 -24
  209. package/docs/classes/SequenceDevice.html +29 -29
  210. package/docs/classes/SwitchBot.html +11 -11
  211. package/docs/classes/SwitchBotDevice.html +28 -28
  212. package/docs/classes/SwitchBotError.html +2 -2
  213. package/docs/classes/ValidationError.html +2 -2
  214. package/docs/classes/WoAIHub.html +56 -0
  215. package/docs/classes/WoAirPurifier.html +38 -33
  216. package/docs/classes/WoAirPurifierPM25.html +56 -0
  217. package/docs/classes/WoAirPurifierTable.html +38 -33
  218. package/docs/classes/WoArtFrame.html +82 -0
  219. package/docs/classes/WoBlindTilt.html +36 -34
  220. package/docs/classes/WoBulb.html +46 -35
  221. package/docs/classes/WoCandleWarmerLamp.html +56 -0
  222. package/docs/classes/WoCeilingLight.html +46 -35
  223. package/docs/classes/WoCirculatorFan.html +71 -0
  224. package/docs/classes/WoClimatePanel.html +71 -0
  225. package/docs/classes/WoContact.html +28 -28
  226. package/docs/classes/WoCurtain.html +43 -32
  227. package/docs/classes/WoFloorLamp.html +82 -0
  228. package/docs/classes/WoGarageDoorOpener.html +67 -0
  229. package/docs/classes/WoHand.html +38 -38
  230. package/docs/classes/WoHub2.html +28 -28
  231. package/docs/classes/WoHub3.html +28 -28
  232. package/docs/classes/WoHubMiniMatter.html +56 -0
  233. package/docs/classes/WoHumi.html +40 -32
  234. package/docs/classes/WoHumi2.html +40 -32
  235. package/docs/classes/WoIOSensorTH.html +28 -28
  236. package/docs/classes/WoKeypad.html +28 -28
  237. package/docs/classes/WoKeypadVision.html +56 -0
  238. package/docs/classes/WoKeypadVisionPro.html +56 -0
  239. package/docs/classes/WoLeak.html +28 -28
  240. package/docs/classes/WoPanTiltCamPlus3K.html +56 -0
  241. package/docs/classes/WoPlugMiniJP.html +31 -31
  242. package/docs/classes/WoPlugMiniUS.html +31 -31
  243. package/docs/classes/WoPresence.html +28 -28
  244. package/docs/classes/WoRGBICBulb.html +93 -0
  245. package/docs/classes/WoRGBICNeonWireRopeLight.html +56 -0
  246. package/docs/classes/WoRGBICWWFloorLamp.html +93 -0
  247. package/docs/classes/WoRGBICWWStripLight.html +93 -0
  248. package/docs/classes/WoRelaySwitch1.html +35 -32
  249. package/docs/classes/WoRelaySwitch1PM.html +35 -32
  250. package/docs/classes/WoRelaySwitch2PM.html +71 -0
  251. package/docs/classes/WoRemote.html +28 -28
  252. package/docs/classes/WoRemoteWithScreen.html +56 -0
  253. package/docs/classes/WoRollerShade.html +75 -0
  254. package/docs/classes/WoSensorTH.html +28 -28
  255. package/docs/classes/WoSensorTHPlus.html +28 -28
  256. package/docs/classes/WoSensorTHPro.html +28 -28
  257. package/docs/classes/WoSensorTHProCO2.html +28 -28
  258. package/docs/classes/WoSmartLock.html +31 -31
  259. package/docs/classes/WoSmartLockLite.html +64 -0
  260. package/docs/classes/WoSmartLockPro.html +33 -33
  261. package/docs/classes/WoSmartLockProWiFi.html +68 -0
  262. package/docs/classes/WoSmartLockVision.html +64 -0
  263. package/docs/classes/WoSmartLockVisionPro.html +68 -0
  264. package/docs/classes/WoSmartThermostatRadiator.html +71 -0
  265. package/docs/classes/WoStrip.html +46 -35
  266. package/docs/classes/WoStripLight3.html +82 -0
  267. package/docs/classes/WoVacuum.html +71 -0
  268. package/docs/classes/WoVacuumK10Plus.html +71 -0
  269. package/docs/classes/WoVacuumK10Pro.html +71 -0
  270. package/docs/classes/WoVacuumK10ProCombo.html +71 -0
  271. package/docs/classes/WoVacuumK11Plus.html +71 -0
  272. package/docs/classes/WoVacuumK20.html +71 -0
  273. package/docs/classes/WoVacuumS10.html +71 -0
  274. package/docs/classes/WoVacuumS20.html +71 -0
  275. package/docs/classes/WoWaterDetector.html +56 -0
  276. package/docs/enums/LogLevel.html +2 -2
  277. package/docs/enums/SwitchBotBLEModel.html +2 -2
  278. package/docs/enums/SwitchBotBLEModelName.html +2 -2
  279. package/docs/functions/updateBaseURL.html +1 -1
  280. package/docs/hierarchy.html +1 -1
  281. package/docs/interfaces/APICommandRequest.html +2 -2
  282. package/docs/interfaces/APICommandResponse.html +2 -2
  283. package/docs/interfaces/APIDevice.html +2 -2
  284. package/docs/interfaces/APIDeviceStatus.html +2 -2
  285. package/docs/interfaces/APIErrorResponse.html +2 -2
  286. package/docs/interfaces/APIResponse.html +2 -2
  287. package/docs/interfaces/AirPurifierCommands.html +3 -2
  288. package/docs/interfaces/AirPurifierServiceData.html +14 -14
  289. package/docs/interfaces/AirPurifierStatus.html +7 -7
  290. package/docs/interfaces/BLEAdvertisement.html +2 -2
  291. package/docs/interfaces/BLEScanOptions.html +5 -5
  292. package/docs/interfaces/BLEServiceData.html +14 -14
  293. package/docs/interfaces/BlindTiltCommands.html +2 -2
  294. package/docs/interfaces/BlindTiltServiceData.html +14 -14
  295. package/docs/interfaces/BlindTiltStatus.html +7 -6
  296. package/docs/interfaces/BotCommands.html +2 -2
  297. package/docs/interfaces/BotServiceData.html +14 -14
  298. package/docs/interfaces/BotStatus.html +6 -6
  299. package/docs/interfaces/BulbCommands.html +4 -2
  300. package/docs/interfaces/BulbServiceData.html +14 -14
  301. package/docs/interfaces/BulbStatus.html +6 -6
  302. package/docs/interfaces/CeilingLightCommands.html +4 -2
  303. package/docs/interfaces/CeilingLightServiceData.html +14 -14
  304. package/docs/interfaces/CeilingLightStatus.html +6 -6
  305. package/docs/interfaces/CommandResult.html +6 -6
  306. package/docs/interfaces/ContactServiceData.html +14 -14
  307. package/docs/interfaces/ContactStatus.html +6 -6
  308. package/docs/interfaces/CurtainCommands.html +5 -2
  309. package/docs/interfaces/CurtainExtendedInfo.html +4 -0
  310. package/docs/interfaces/CurtainServiceData.html +14 -14
  311. package/docs/interfaces/CurtainStatus.html +6 -6
  312. package/docs/interfaces/DeviceInfo.html +18 -18
  313. package/docs/interfaces/DeviceListResponse.html +2 -2
  314. package/docs/interfaces/DeviceStatus.html +6 -6
  315. package/docs/interfaces/DiscoveryOptions.html +7 -7
  316. package/docs/interfaces/HubServiceData.html +14 -14
  317. package/docs/interfaces/HubStatus.html +6 -6
  318. package/docs/interfaces/HumidifierCommands.html +6 -2
  319. package/docs/interfaces/HumidifierServiceData.html +15 -15
  320. package/docs/interfaces/HumidifierStatus.html +6 -6
  321. package/docs/interfaces/KeypadStatus.html +6 -6
  322. package/docs/interfaces/LeakServiceData.html +14 -14
  323. package/docs/interfaces/LeakStatus.html +6 -6
  324. package/docs/interfaces/LockCommands.html +2 -2
  325. package/docs/interfaces/LockServiceData.html +15 -15
  326. package/docs/interfaces/LockStatus.html +6 -6
  327. package/docs/interfaces/MeterServiceData.html +14 -14
  328. package/docs/interfaces/MeterStatus.html +6 -6
  329. package/docs/interfaces/MotionServiceData.html +14 -14
  330. package/docs/interfaces/MotionStatus.html +6 -6
  331. package/docs/interfaces/PlugCommands.html +2 -2
  332. package/docs/interfaces/PlugServiceData.html +14 -14
  333. package/docs/interfaces/PlugStatus.html +6 -6
  334. package/docs/interfaces/PresenceServiceData.html +14 -14
  335. package/docs/interfaces/PresenceStatus.html +6 -6
  336. package/docs/interfaces/RelaySwitchCommands.html +2 -2
  337. package/docs/interfaces/RelaySwitchServiceData.html +14 -14
  338. package/docs/interfaces/RelaySwitchStatus.html +6 -6
  339. package/docs/interfaces/RemoteStatus.html +6 -6
  340. package/docs/interfaces/SceneListResponse.html +2 -2
  341. package/docs/interfaces/StripCommands.html +4 -2
  342. package/docs/interfaces/StripServiceData.html +14 -14
  343. package/docs/interfaces/StripStatus.html +6 -6
  344. package/docs/interfaces/SwitchBotConfig.html +15 -15
  345. package/docs/interfaces/VacuumCommands.html +8 -0
  346. package/docs/interfaces/VacuumStatus.html +16 -0
  347. package/docs/interfaces/WebhookConfig.html +2 -2
  348. package/docs/interfaces/WebhookDetails.html +2 -2
  349. package/docs/interfaces/WebhookQueryResponse.html +2 -2
  350. package/docs/interfaces/WebhookSetupResponse.html +2 -2
  351. package/docs/modules.html +1 -1
  352. package/docs/types/ConnectionType.html +1 -1
  353. package/docs/types/PhysicalDeviceType.html +1 -1
  354. package/docs/types/VirtualDeviceType.html +1 -1
  355. package/docs/variables/urls.html +1 -1
  356. package/package.json +4 -4
  357. package/todo/PYSWITCHBOT_COMPARISON.md +56 -56
  358. package/todo/completed.md +336 -0
  359. package/todo/todo.md +57 -114
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-circulator-fan.d.ts","sourceRoot":"","sources":["../../src/devices/wo-circulator-fan.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,aAAa;CAAG"}
@@ -0,0 +1,12 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-circulator-fan.ts: SwitchBot v4.0.0 - Circulator Fan Device
4
+ */
5
+ import { WoAirPurifier } from './wo-air-purifier.js';
6
+ /**
7
+ * Circulator Fan Device (Battery/USB)
8
+ * Reuses air purifier fan-speed control and status behavior.
9
+ */
10
+ export class WoCirculatorFan extends WoAirPurifier {
11
+ }
12
+ //# sourceMappingURL=wo-circulator-fan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-circulator-fan.js","sourceRoot":"","sources":["../../src/devices/wo-circulator-fan.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,aAAa;CAAG"}
@@ -0,0 +1,8 @@
1
+ import { WoAirPurifier } from './wo-air-purifier.js';
2
+ /**
3
+ * Climate Panel Device
4
+ * Reuses climate control behavior for power, mode, and fan-speed style control.
5
+ */
6
+ export declare class WoClimatePanel extends WoAirPurifier {
7
+ }
8
+ //# sourceMappingURL=wo-climate-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-climate-panel.d.ts","sourceRoot":"","sources":["../../src/devices/wo-climate-panel.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD;;;GAGG;AACH,qBAAa,cAAe,SAAQ,aAAa;CAAG"}
@@ -0,0 +1,12 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-climate-panel.ts: SwitchBot v4.0.0 - Climate Panel Device
4
+ */
5
+ import { WoAirPurifier } from './wo-air-purifier.js';
6
+ /**
7
+ * Climate Panel Device
8
+ * Reuses climate control behavior for power, mode, and fan-speed style control.
9
+ */
10
+ export class WoClimatePanel extends WoAirPurifier {
11
+ }
12
+ //# sourceMappingURL=wo-climate-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-climate-panel.js","sourceRoot":"","sources":["../../src/devices/wo-climate-panel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,aAAa;CAAG"}
@@ -1,4 +1,4 @@
1
- import type { CurtainCommands, CurtainStatus } from '../types/device.js';
1
+ import type { CurtainCommands, CurtainExtendedInfo, CurtainStatus } from '../types/device.js';
2
2
  import { SwitchBotDevice } from './base.js';
3
3
  /**
4
4
  * Curtain Device - Smart curtain controller
@@ -23,6 +23,22 @@ export declare class WoCurtain extends SwitchBotDevice implements CurtainCommand
23
23
  /**
24
24
  * Get device status
25
25
  */
26
+ _lastPosition?: number;
26
27
  getStatus(): Promise<CurtainStatus>;
28
+ /**
29
+ * Get extended device information (Curtain 3)
30
+ * Returns device chain information and grouped curtain status
31
+ */
32
+ getExtendedInfo(): Promise<CurtainExtendedInfo>;
33
+ /**
34
+ * Send multiple commands in sequence (all must succeed)
35
+ * Used for Curtain 3 complex operations
36
+ */
37
+ sendCommandSequence(commands: Array<() => Promise<boolean>>): Promise<boolean>;
38
+ /**
39
+ * Send multiple commands (returns true if any succeed)
40
+ * Used for Curtain 3 fallback operations
41
+ */
42
+ sendMultipleCommands(commands: Array<() => Promise<boolean>>): Promise<boolean>;
27
43
  }
28
44
  //# sourceMappingURL=wo-curtain.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wo-curtain.d.ts","sourceRoot":"","sources":["../../src/devices/wo-curtain.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAIxE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,qBAAa,SAAU,SAAQ,eAAgB,YAAW,eAAe;IACvE;;OAEG;IACG,IAAI,CAAC,KAAK,SAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUzC;;OAEG;IACG,KAAK,CAAC,KAAK,SAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU1C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ/B;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAelE;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC;CAoC1C"}
1
+ {"version":3,"file":"wo-curtain.d.ts","sourceRoot":"","sources":["../../src/devices/wo-curtain.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAM7F,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,qBAAa,SAAU,SAAQ,eAAgB,YAAW,eAAe;IACvE;;OAEG;IACG,IAAI,CAAC,KAAK,SAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUzC;;OAEG;IACG,KAAK,CAAC,KAAK,SAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAU1C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ/B;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAelE;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEhB,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC;IA2DzC;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAkCrD;;;OAGG;IACG,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBpF;;;OAGG;IACG,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CAmBtF"}
@@ -2,6 +2,7 @@
2
2
  *
3
3
  * devices/wo-curtain.ts: SwitchBot v4.0.0 - Curtain Device
4
4
  */
5
+ import { Buffer } from 'node:buffer';
5
6
  import { DEVICE_COMMANDS } from '../settings.js';
6
7
  import { clamp } from '../utils/index.js';
7
8
  import { SwitchBotDevice } from './base.js';
@@ -46,15 +47,29 @@ export class WoCurtain extends SwitchBotDevice {
46
47
  /**
47
48
  * Get device status
48
49
  */
50
+ _lastPosition;
49
51
  async getStatus() {
50
52
  try {
53
+ let direction;
54
+ let position = 0;
51
55
  // Try API first if available
52
56
  if (this.hasAPI()) {
53
57
  const apiStatus = await this.getAPIStatus();
58
+ position = typeof apiStatus.slidePosition === 'number' ? apiStatus.slidePosition : 0;
59
+ if (typeof this._lastPosition === 'number') {
60
+ if (position > this._lastPosition) {
61
+ direction = 'opening';
62
+ }
63
+ else if (position < this._lastPosition) {
64
+ direction = 'closing';
65
+ }
66
+ }
67
+ this._lastPosition = position;
54
68
  return {
55
69
  deviceId: this.info.id,
56
70
  connectionType: 'api',
57
- position: apiStatus.slidePosition || 0,
71
+ position,
72
+ direction,
58
73
  calibrated: apiStatus.calibrate,
59
74
  moving: apiStatus.moving,
60
75
  battery: apiStatus.battery,
@@ -65,10 +80,21 @@ export class WoCurtain extends SwitchBotDevice {
65
80
  // Fallback to BLE
66
81
  if (this.hasBLE()) {
67
82
  const bleData = await this.getBLEStatus().catch(() => this.normalizeBLEStatusData(undefined));
83
+ position = typeof bleData.position === 'number' ? bleData.position : 0;
84
+ if (typeof this._lastPosition === 'number') {
85
+ if (position > this._lastPosition) {
86
+ direction = 'opening';
87
+ }
88
+ else if (position < this._lastPosition) {
89
+ direction = 'closing';
90
+ }
91
+ }
92
+ this._lastPosition = position;
68
93
  return {
69
94
  deviceId: this.info.id,
70
95
  connectionType: 'ble',
71
- position: bleData.position || 0,
96
+ position,
97
+ direction,
72
98
  calibrated: bleData.calibration,
73
99
  battery: bleData.battery,
74
100
  updatedAt: new Date(),
@@ -81,5 +107,83 @@ export class WoCurtain extends SwitchBotDevice {
81
107
  throw error;
82
108
  }
83
109
  }
110
+ /**
111
+ * Get extended device information (Curtain 3)
112
+ * Returns device chain information and grouped curtain status
113
+ */
114
+ async getExtendedInfo() {
115
+ if (!this.hasBLE()) {
116
+ throw new Error('Extended info only available via BLE');
117
+ }
118
+ try {
119
+ const result = await this.sendBLECommand(DEVICE_COMMANDS.CURTAIN.EXTENDED_INFO);
120
+ if (!result.success || !result.data) {
121
+ throw new Error('Failed to get extended info');
122
+ }
123
+ const response = Buffer.isBuffer(result.data) ? result.data : Buffer.from(result.data);
124
+ // Parse extended info from response
125
+ // Response format (example): [device_chain_info, group_status_bytes]
126
+ // This is a simplified implementation - actual parsing depends on device response format
127
+ return {
128
+ deviceChain: {
129
+ masterDevice: this.info.id,
130
+ slaveDevices: [], // Would parse from response bytes
131
+ },
132
+ groupStatus: {
133
+ position: response.length > 2 ? response[2] : 0,
134
+ calibrated: response.length > 3 ? (response[3] & 0x40) !== 0 : false,
135
+ moving: response.length > 3 ? (response[3] & 0x03) !== 0 : false,
136
+ },
137
+ };
138
+ }
139
+ catch (error) {
140
+ this.logger.error('Failed to get extended info', error);
141
+ throw error;
142
+ }
143
+ }
144
+ /**
145
+ * Send multiple commands in sequence (all must succeed)
146
+ * Used for Curtain 3 complex operations
147
+ */
148
+ async sendCommandSequence(commands) {
149
+ try {
150
+ for (const command of commands) {
151
+ const success = await command();
152
+ if (!success) {
153
+ this.logger.warn('Command in sequence failed, stopping execution');
154
+ return false;
155
+ }
156
+ // Small delay between commands
157
+ await new Promise(resolve => setTimeout(resolve, 100));
158
+ }
159
+ return true;
160
+ }
161
+ catch (error) {
162
+ this.logger.error('Command sequence failed', error);
163
+ return false;
164
+ }
165
+ }
166
+ /**
167
+ * Send multiple commands (returns true if any succeed)
168
+ * Used for Curtain 3 fallback operations
169
+ */
170
+ async sendMultipleCommands(commands) {
171
+ let anySucceeded = false;
172
+ for (const command of commands) {
173
+ try {
174
+ const success = await command();
175
+ if (success) {
176
+ anySucceeded = true;
177
+ }
178
+ // Small delay between commands
179
+ await new Promise(resolve => setTimeout(resolve, 100));
180
+ }
181
+ catch (error) {
182
+ this.logger.debug('Command in multi-command attempt failed', error);
183
+ // Continue trying other commands
184
+ }
185
+ }
186
+ return anySucceeded;
187
+ }
84
188
  }
85
189
  //# sourceMappingURL=wo-curtain.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wo-curtain.js","sourceRoot":"","sources":["../../src/devices/wo-curtain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wo-curtain.js","sourceRoot":"","sources":["../../src/devices/wo-curtain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { WoBulb } from './wo-bulb.js';
2
+ /**
3
+ * Floor Lamp Device
4
+ * Uses same logic as Color Bulb
5
+ */
6
+ export declare class WoFloorLamp extends WoBulb {
7
+ }
8
+ //# sourceMappingURL=wo-floor-lamp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-floor-lamp.d.ts","sourceRoot":"","sources":["../../src/devices/wo-floor-lamp.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC;;;GAGG;AACH,qBAAa,WAAY,SAAQ,MAAM;CAAG"}
@@ -0,0 +1,12 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-floor-lamp.ts: SwitchBot v4.0.0 - Floor Lamp
4
+ */
5
+ import { WoBulb } from './wo-bulb.js';
6
+ /**
7
+ * Floor Lamp Device
8
+ * Uses same logic as Color Bulb
9
+ */
10
+ export class WoFloorLamp extends WoBulb {
11
+ }
12
+ //# sourceMappingURL=wo-floor-lamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-floor-lamp.js","sourceRoot":"","sources":["../../src/devices/wo-floor-lamp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,MAAM;CAAG"}
@@ -0,0 +1,8 @@
1
+ import { WoRelaySwitch1 } from './wo-relay-switch-1.js';
2
+ /**
3
+ * Garage Door Opener Device (uses relay switch control)
4
+ * Extends Relay Switch 1 for simple open/close control
5
+ */
6
+ export declare class WoGarageDoorOpener extends WoRelaySwitch1 {
7
+ }
8
+ //# sourceMappingURL=wo-garage-door-opener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-garage-door-opener.d.ts","sourceRoot":"","sources":["../../src/devices/wo-garage-door-opener.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;CAAG"}
@@ -0,0 +1,12 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-garage-door-opener.ts: SwitchBot v4.0.0 - Garage Door Opener Device
4
+ */
5
+ import { WoRelaySwitch1 } from './wo-relay-switch-1.js';
6
+ /**
7
+ * Garage Door Opener Device (uses relay switch control)
8
+ * Extends Relay Switch 1 for simple open/close control
9
+ */
10
+ export class WoGarageDoorOpener extends WoRelaySwitch1 {
11
+ }
12
+ //# sourceMappingURL=wo-garage-door-opener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-garage-door-opener.js","sourceRoot":"","sources":["../../src/devices/wo-garage-door-opener.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,cAAc;CAAG"}
@@ -0,0 +1,8 @@
1
+ import { WoHub2 } from './wo-hub2.js';
2
+ /**
3
+ * HubMini Matter Device
4
+ * Uses same hub logic as Hub 2
5
+ */
6
+ export declare class WoHubMiniMatter extends WoHub2 {
7
+ }
8
+ //# sourceMappingURL=wo-hubmini-matter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-hubmini-matter.d.ts","sourceRoot":"","sources":["../../src/devices/wo-hubmini-matter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,MAAM;CAAG"}
@@ -0,0 +1,12 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-hubmini-matter.ts: SwitchBot v4.0.0 - HubMini Matter Device
4
+ */
5
+ import { WoHub2 } from './wo-hub2.js';
6
+ /**
7
+ * HubMini Matter Device
8
+ * Uses same hub logic as Hub 2
9
+ */
10
+ export class WoHubMiniMatter extends WoHub2 {
11
+ }
12
+ //# sourceMappingURL=wo-hubmini-matter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-hubmini-matter.js","sourceRoot":"","sources":["../../src/devices/wo-hubmini-matter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,MAAM;CAAG"}
@@ -20,9 +20,25 @@ export declare class WoHumi extends SwitchBotDevice implements HumidifierCommand
20
20
  * Set nebulization efficiency (0-100)
21
21
  */
22
22
  setEfficiency(level: number): Promise<boolean>;
23
+ /**
24
+ * Set target humidity level (1-100)
25
+ */
26
+ setLevel(level: number): Promise<boolean>;
23
27
  /**
24
28
  * Get device status
25
29
  */
26
30
  getStatus(): Promise<HumidifierStatus>;
31
+ /**
32
+ * Set auto mode
33
+ */
34
+ setAuto(): Promise<boolean>;
35
+ /**
36
+ * Set manual mode
37
+ */
38
+ setManual(): Promise<boolean>;
39
+ /**
40
+ * Get target humidity level (if available)
41
+ */
42
+ getTargetLevel(): Promise<number | undefined>;
27
43
  }
28
44
  //# sourceMappingURL=wo-humi.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wo-humi.d.ts","sourceRoot":"","sources":["../../src/devices/wo-humi.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAI9E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,qBAAa,MAAO,SAAQ,eAAgB,YAAW,kBAAkB;IACvE;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAQhC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAQjC;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAaxD;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBpD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAuC7C"}
1
+ {"version":3,"file":"wo-humi.d.ts","sourceRoot":"","sources":["../../src/devices/wo-humi.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAI9E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,qBAAa,MAAO,SAAQ,eAAgB,YAAW,kBAAkB;IACvE;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAQhC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAQjC;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAaxD;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiBpD;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK/C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAwC5C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAiBpD"}
@@ -46,6 +46,13 @@ export class WoHumi extends SwitchBotDevice {
46
46
  const result = await this.sendCommand(bleCommand, 'setMode', clampedLevel.toString());
47
47
  return result.success;
48
48
  }
49
+ /**
50
+ * Set target humidity level (1-100)
51
+ */
52
+ async setLevel(level) {
53
+ const clampedLevel = clamp(level, 1, 100);
54
+ return this.setEfficiency(clampedLevel);
55
+ }
49
56
  /**
50
57
  * Get device status
51
58
  */
@@ -87,5 +94,37 @@ export class WoHumi extends SwitchBotDevice {
87
94
  throw error;
88
95
  }
89
96
  }
97
+ /**
98
+ * Set auto mode
99
+ */
100
+ async setAuto() {
101
+ return this.setMode('auto');
102
+ }
103
+ /**
104
+ * Set manual mode
105
+ */
106
+ async setManual() {
107
+ return this.setMode('manual');
108
+ }
109
+ /**
110
+ * Get target humidity level (if available)
111
+ */
112
+ async getTargetLevel() {
113
+ // Try API first if available
114
+ if (this.hasAPI()) {
115
+ const apiStatus = await this.getAPIStatus();
116
+ if (typeof apiStatus.humidity === 'number') {
117
+ return apiStatus.humidity;
118
+ }
119
+ }
120
+ // Fallback to BLE if available
121
+ if (this.hasBLE()) {
122
+ const bleData = await this.getBLEStatus();
123
+ if (typeof bleData.percentage === 'number') {
124
+ return bleData.percentage;
125
+ }
126
+ }
127
+ return undefined;
128
+ }
90
129
  }
91
130
  //# sourceMappingURL=wo-humi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wo-humi.js","sourceRoot":"","sources":["../../src/devices/wo-humi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wo-humi.js","sourceRoot":"","sources":["../../src/devices/wo-humi.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wo-humi2.d.ts","sourceRoot":"","sources":["../../src/devices/wo-humi2.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,MAAM;CAAG"}
1
+ {"version":3,"file":"wo-humi2.d.ts","sourceRoot":"","sources":["../../src/devices/wo-humi2.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,MAAM;CAElC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wo-humi2.js","sourceRoot":"","sources":["../../src/devices/wo-humi2.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC;;;GAGG;AACH,MAAM,OAAO,OAAQ,SAAQ,MAAM;CAAG"}
1
+ {"version":3,"file":"wo-humi2.js","sourceRoot":"","sources":["../../src/devices/wo-humi2.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC;;;GAGG;AACH,MAAM,OAAO,OAAQ,SAAQ,MAAM;CAElC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * WoKeypadVisionPro device class for SwitchBot Keypad Vision Pro
3
+ * Extends base WoKeypad functionality for lock keypad operations
4
+ */
5
+ import type { KeypadStatus } from '../types/device.js';
6
+ import { WoKeypad } from './wo-keypad.js';
7
+ /**
8
+ * SwitchBot Keypad Vision Pro device
9
+ * @extends WoKeypad
10
+ */
11
+ export declare class WoKeypadVisionPro extends WoKeypad {
12
+ /**
13
+ * Get keypad status (inherited from WoKeypad)
14
+ * @returns Promise resolving to KeypadStatus
15
+ */
16
+ getStatus(): Promise<KeypadStatus>;
17
+ }
18
+ //# sourceMappingURL=wo-keypad-vision-pro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-keypad-vision-pro.d.ts","sourceRoot":"","sources":["../../src/devices/wo-keypad-vision-pro.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;CAGzC"}
@@ -0,0 +1,15 @@
1
+ import { WoKeypad } from './wo-keypad.js';
2
+ /**
3
+ * SwitchBot Keypad Vision Pro device
4
+ * @extends WoKeypad
5
+ */
6
+ export class WoKeypadVisionPro extends WoKeypad {
7
+ /**
8
+ * Get keypad status (inherited from WoKeypad)
9
+ * @returns Promise resolving to KeypadStatus
10
+ */
11
+ async getStatus() {
12
+ return super.getStatus();
13
+ }
14
+ }
15
+ //# sourceMappingURL=wo-keypad-vision-pro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-keypad-vision-pro.js","sourceRoot":"","sources":["../../src/devices/wo-keypad-vision-pro.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAC7C;;;OAGG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1B,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import { WoKeypad } from './wo-keypad.js';
2
+ /**
3
+ * Keypad Vision Device
4
+ * Uses same logic as Keypad for lock control
5
+ */
6
+ export declare class WoKeypadVision extends WoKeypad {
7
+ }
8
+ //# sourceMappingURL=wo-keypad-vision.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-keypad-vision.d.ts","sourceRoot":"","sources":["../../src/devices/wo-keypad-vision.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;;GAGG;AACH,qBAAa,cAAe,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,12 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-keypad-vision.ts: SwitchBot v4.0.0 - Keypad Vision
4
+ */
5
+ import { WoKeypad } from './wo-keypad.js';
6
+ /**
7
+ * Keypad Vision Device
8
+ * Uses same logic as Keypad for lock control
9
+ */
10
+ export class WoKeypadVision extends WoKeypad {
11
+ }
12
+ //# sourceMappingURL=wo-keypad-vision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-keypad-vision.js","sourceRoot":"","sources":["../../src/devices/wo-keypad-vision.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,7 @@
1
+ import { WoSmartLock } from './wo-lock.js';
2
+ /**
3
+ * Smart Lock Lite Device
4
+ */
5
+ export declare class WoSmartLockLite extends WoSmartLock {
6
+ }
7
+ //# sourceMappingURL=wo-lock-lite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-lock-lite.d.ts","sourceRoot":"","sources":["../../src/devices/wo-lock-lite.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;CAAG"}
@@ -0,0 +1,11 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-lock-lite.ts: SwitchBot v4.0.0 - Smart Lock Lite Device
4
+ */
5
+ import { WoSmartLock } from './wo-lock.js';
6
+ /**
7
+ * Smart Lock Lite Device
8
+ */
9
+ export class WoSmartLockLite extends WoSmartLock {
10
+ }
11
+ //# sourceMappingURL=wo-lock-lite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-lock-lite.js","sourceRoot":"","sources":["../../src/devices/wo-lock-lite.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,WAAW;CAAG"}
@@ -0,0 +1,7 @@
1
+ import { WoSmartLockPro } from './wo-lock-pro.js';
2
+ /**
3
+ * Smart Lock Pro WiFi Device (with WiFi connectivity and unlatch support)
4
+ */
5
+ export declare class WoSmartLockProWiFi extends WoSmartLockPro {
6
+ }
7
+ //# sourceMappingURL=wo-lock-pro-wifi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-lock-pro-wifi.d.ts","sourceRoot":"","sources":["../../src/devices/wo-lock-pro-wifi.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;CAAG"}
@@ -0,0 +1,11 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-lock-pro-wifi.ts: SwitchBot v4.0.0 - Smart Lock Pro WiFi Device
4
+ */
5
+ import { WoSmartLockPro } from './wo-lock-pro.js';
6
+ /**
7
+ * Smart Lock Pro WiFi Device (with WiFi connectivity and unlatch support)
8
+ */
9
+ export class WoSmartLockProWiFi extends WoSmartLockPro {
10
+ }
11
+ //# sourceMappingURL=wo-lock-pro-wifi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-lock-pro-wifi.js","sourceRoot":"","sources":["../../src/devices/wo-lock-pro-wifi.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,cAAc;CAAG"}
@@ -0,0 +1,7 @@
1
+ import { WoSmartLockPro } from './wo-lock-pro.js';
2
+ /**
3
+ * Smart Lock Vision Pro Device (with camera and unlatch support)
4
+ */
5
+ export declare class WoSmartLockVisionPro extends WoSmartLockPro {
6
+ }
7
+ //# sourceMappingURL=wo-lock-vision-pro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-lock-vision-pro.d.ts","sourceRoot":"","sources":["../../src/devices/wo-lock-vision-pro.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;CAAG"}
@@ -0,0 +1,11 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-lock-vision-pro.ts: SwitchBot v4.0.0 - Smart Lock Vision Pro Device
4
+ */
5
+ import { WoSmartLockPro } from './wo-lock-pro.js';
6
+ /**
7
+ * Smart Lock Vision Pro Device (with camera and unlatch support)
8
+ */
9
+ export class WoSmartLockVisionPro extends WoSmartLockPro {
10
+ }
11
+ //# sourceMappingURL=wo-lock-vision-pro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-lock-vision-pro.js","sourceRoot":"","sources":["../../src/devices/wo-lock-vision-pro.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,cAAc;CAAG"}
@@ -0,0 +1,7 @@
1
+ import { WoSmartLock } from './wo-lock.js';
2
+ /**
3
+ * Smart Lock Vision Device (with camera)
4
+ */
5
+ export declare class WoSmartLockVision extends WoSmartLock {
6
+ }
7
+ //# sourceMappingURL=wo-lock-vision.d.ts.map