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-lock-vision.d.ts","sourceRoot":"","sources":["../../src/devices/wo-lock-vision.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C;;GAEG;AACH,qBAAa,iBAAkB,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-vision.ts: SwitchBot v4.0.0 - Smart Lock Vision Device
4
+ */
5
+ import { WoSmartLock } from './wo-lock.js';
6
+ /**
7
+ * Smart Lock Vision Device (with camera)
8
+ */
9
+ export class WoSmartLockVision extends WoSmartLock {
10
+ }
11
+ //# sourceMappingURL=wo-lock-vision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-lock-vision.js","sourceRoot":"","sources":["../../src/devices/wo-lock-vision.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE1C;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,WAAW;CAAG"}
@@ -0,0 +1,6 @@
1
+ import type { DeviceStatus } from '../types/index.js';
2
+ import { SwitchBotDevice } from './base.js';
3
+ export declare class WoPanTiltCamPlus3K extends SwitchBotDevice {
4
+ getStatus(): Promise<DeviceStatus>;
5
+ }
6
+ //# sourceMappingURL=wo-pan-tilt-cam-plus-3k.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-pan-tilt-cam-plus-3k.d.ts","sourceRoot":"","sources":["../../src/devices/wo-pan-tilt-cam-plus-3k.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,qBAAa,kBAAmB,SAAQ,eAAe;IAC/C,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;CAGzC"}
@@ -0,0 +1,7 @@
1
+ import { SwitchBotDevice } from './base.js';
2
+ export class WoPanTiltCamPlus3K extends SwitchBotDevice {
3
+ async getStatus() {
4
+ throw new Error('WoPanTiltCamPlus3K.getStatus not implemented');
5
+ }
6
+ }
7
+ //# sourceMappingURL=wo-pan-tilt-cam-plus-3k.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-pan-tilt-cam-plus-3k.js","sourceRoot":"","sources":["../../src/devices/wo-pan-tilt-cam-plus-3k.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IACrD,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;CACF"}
@@ -1,9 +1,23 @@
1
1
  import type { RelaySwitchCommands, RelaySwitchStatus } from '../types/device.js';
2
+ import { Buffer } from 'node:buffer';
2
3
  import { SequenceDevice } from './sequence-device.js';
3
4
  /**
4
5
  * Relay Switch 1 Device (1-channel)
5
6
  */
6
7
  export declare class WoRelaySwitch1 extends SequenceDevice implements RelaySwitchCommands {
8
+ /**
9
+ * Returns true if this relay switch requires BLE encryption (encryptionKey present)
10
+ */
11
+ private needsEncryption;
12
+ /**
13
+ * Encrypts a command if encryption is required for this device
14
+ */
15
+ protected maybeEncryptCommand(cmd: Buffer | readonly number[]): Buffer;
16
+ /**
17
+ * Verifies the BLE encryption key by attempting a status read with encryption.
18
+ * Throws an error if the key is invalid or the device rejects the command.
19
+ */
20
+ verifyEncryptionKey(): Promise<boolean>;
7
21
  private parseRelayPowerResponse;
8
22
  private getRelayPowerMonitoring;
9
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"wo-relay-switch-1.d.ts","sourceRoot":"","sources":["../../src/devices/wo-relay-switch-1.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAKhF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;GAEG;AACH,qBAAa,cAAe,SAAQ,cAAe,YAAW,mBAAmB;IAC/E,OAAO,CAAC,uBAAuB;YAqBjB,uBAAuB;IAiBrC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAQhC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAQjC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAQhC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;CA0C9C"}
1
+ {"version":3,"file":"wo-relay-switch-1.d.ts","sourceRoot":"","sources":["../../src/devices/wo-relay-switch-1.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAIpC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;GAEG;AACH,qBAAa,cAAe,SAAQ,cAAe,YAAW,mBAAmB;IAC/E;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,MAAM;IAStE;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB7C,OAAO,CAAC,uBAAuB;YAmBjB,uBAAuB;IAiBrC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAMhC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAMjC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAMhC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;CA0C9C"}
@@ -1,18 +1,52 @@
1
- /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
- *
3
- * devices/wo-relay-switch-1.ts: SwitchBot v4.0.0 - Relay Switch 1 Device
4
- */
5
1
  import { Buffer } from 'node:buffer';
6
2
  import { DEVICE_COMMANDS } from '../settings.js';
3
+ import { validateResponseLength } from '../utils/index.js';
4
+ import { encryptRelayCommandIfNeeded } from '../utils/relay-encryption.js';
7
5
  import { SequenceDevice } from './sequence-device.js';
8
6
  /**
9
7
  * Relay Switch 1 Device (1-channel)
10
8
  */
11
9
  export class WoRelaySwitch1 extends SequenceDevice {
12
- parseRelayPowerResponse(buffer) {
13
- if (!buffer || buffer.length < 11) {
14
- return {};
10
+ /**
11
+ * Returns true if this relay switch requires BLE encryption (encryptionKey present)
12
+ */
13
+ needsEncryption() {
14
+ return !!this.info.encryptionKey;
15
+ }
16
+ /**
17
+ * Encrypts a command if encryption is required for this device
18
+ */
19
+ maybeEncryptCommand(cmd) {
20
+ // Convert readonly arrays to mutable arrays for compatibility
21
+ const arr = Buffer.isBuffer(cmd) ? cmd : Buffer.from([...cmd]);
22
+ if (!this.needsEncryption()) {
23
+ return arr;
24
+ }
25
+ return encryptRelayCommandIfNeeded(arr, this.info.encryptionKey, this.info.encryptionIV);
26
+ }
27
+ /**
28
+ * Verifies the BLE encryption key by attempting a status read with encryption.
29
+ * Throws an error if the key is invalid or the device rejects the command.
30
+ */
31
+ async verifyEncryptionKey() {
32
+ if (!this.needsEncryption()) {
33
+ throw new Error('No encryptionKey set for this device');
15
34
  }
35
+ try {
36
+ // Try to get status with encryption; if the key is wrong, device will reject or return invalid data
37
+ const command = this.maybeEncryptCommand([...DEVICE_COMMANDS.COMMON.POWER_ON]);
38
+ const result = await this.sendCommand(command, 'verifyEncryptionKey');
39
+ if (!result.success) {
40
+ throw new Error('Encryption key verification failed: device did not accept encrypted command');
41
+ }
42
+ return true;
43
+ }
44
+ catch (err) {
45
+ throw new Error(`Encryption key verification failed: ${err?.message || err}`);
46
+ }
47
+ }
48
+ parseRelayPowerResponse(buffer) {
49
+ validateResponseLength(buffer, 11, 'WoRelaySwitch1:parseRelayPowerResponse');
16
50
  // Best-effort parsing aligned with relay basic-info responses.
17
51
  const voltageRaw = buffer.readUInt16BE(5);
18
52
  const currentRaw = buffer.readUInt16BE(7);
@@ -37,21 +71,24 @@ export class WoRelaySwitch1 extends SequenceDevice {
37
71
  * Turn on
38
72
  */
39
73
  async turnOn() {
40
- const result = await this.sendCommand(DEVICE_COMMANDS.COMMON.POWER_ON, 'turnOn');
74
+ const command = this.maybeEncryptCommand([...DEVICE_COMMANDS.COMMON.POWER_ON]);
75
+ const result = await this.sendCommand(command, 'turnOn');
41
76
  return result.success;
42
77
  }
43
78
  /**
44
79
  * Turn off
45
80
  */
46
81
  async turnOff() {
47
- const result = await this.sendCommand(DEVICE_COMMANDS.COMMON.POWER_OFF, 'turnOff');
82
+ const command = this.maybeEncryptCommand([...DEVICE_COMMANDS.COMMON.POWER_OFF]);
83
+ const result = await this.sendCommand(command, 'turnOff');
48
84
  return result.success;
49
85
  }
50
86
  /**
51
87
  * Toggle power
52
88
  */
53
89
  async toggle() {
54
- const result = await this.sendCommand(DEVICE_COMMANDS.PLUG.TOGGLE, 'toggle');
90
+ const command = this.maybeEncryptCommand([...DEVICE_COMMANDS.PLUG.TOGGLE]);
91
+ const result = await this.sendCommand(command, 'toggle');
55
92
  return result.success;
56
93
  }
57
94
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"wo-relay-switch-1.js","sourceRoot":"","sources":["../../src/devices/wo-relay-switch-1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wo-relay-switch-1.js","sourceRoot":"","sources":["../../src/devices/wo-relay-switch-1.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wo-relay-switch-2pm.d.ts","sourceRoot":"","sources":["../../src/devices/wo-relay-switch-2pm.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAGvF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,cAAe,YAAW,0BAA0B;IACxF;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IASnD;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IASnD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAG9C"}
1
+ {"version":3,"file":"wo-relay-switch-2pm.d.ts","sourceRoot":"","sources":["../../src/devices/wo-relay-switch-2pm.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAGvF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,cAAe,YAAW,0BAA0B;IACxF;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAOnD;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAOnD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAG9C"}
@@ -13,9 +13,8 @@ export class WoRelaySwitch2PM extends WoRelaySwitch1 {
13
13
  * Set channel 1 state
14
14
  */
15
15
  async setChannel1(state) {
16
- const command = state
17
- ? DEVICE_COMMANDS.RELAY.CHANNEL1_ON
18
- : DEVICE_COMMANDS.RELAY.CHANNEL1_OFF;
16
+ const raw = state ? DEVICE_COMMANDS.RELAY.CHANNEL1_ON : DEVICE_COMMANDS.RELAY.CHANNEL1_OFF;
17
+ const command = this.maybeEncryptCommand([...raw]);
19
18
  const result = await this.sendCommand(command, `setChannel1:${state}`);
20
19
  return result.success;
21
20
  }
@@ -23,9 +22,8 @@ export class WoRelaySwitch2PM extends WoRelaySwitch1 {
23
22
  * Set channel 2 state
24
23
  */
25
24
  async setChannel2(state) {
26
- const command = state
27
- ? DEVICE_COMMANDS.RELAY.CHANNEL2_ON
28
- : DEVICE_COMMANDS.RELAY.CHANNEL2_OFF;
25
+ const raw = state ? DEVICE_COMMANDS.RELAY.CHANNEL2_ON : DEVICE_COMMANDS.RELAY.CHANNEL2_OFF;
26
+ const command = this.maybeEncryptCommand([...raw]);
29
27
  const result = await this.sendCommand(command, `setChannel2:${state}`);
30
28
  return result.success;
31
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wo-relay-switch-2pm.js","sourceRoot":"","sources":["../../src/devices/wo-relay-switch-2pm.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAClD;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAAc;QAC9B,MAAM,OAAO,GAAG,KAAK;YACnB,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW;YACnC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAA;QAEtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,KAAK,EAAE,CAAC,CAAA;QACtE,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAAc;QAC9B,MAAM,OAAO,GAAG,KAAK;YACnB,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW;YACnC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAA;QAEtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,KAAK,EAAE,CAAC,CAAA;QACtE,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1B,CAAC;CACF"}
1
+ {"version":3,"file":"wo-relay-switch-2pm.js","sourceRoot":"","sources":["../../src/devices/wo-relay-switch-2pm.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAClD;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAAc;QAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAA;QAC1F,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,KAAK,EAAE,CAAC,CAAA;QACtE,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAAc;QAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAA;QAC1F,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,KAAK,EAAE,CAAC,CAAA;QACtE,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,KAAK,CAAC,SAAS,EAAE,CAAA;IAC1B,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import type { DeviceStatus } from '../types/index.js';
2
+ import { SwitchBotDevice } from './base.js';
3
+ export declare class WoRemoteWithScreen extends SwitchBotDevice {
4
+ getStatus(): Promise<DeviceStatus>;
5
+ }
6
+ //# sourceMappingURL=wo-remote-with-screen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-remote-with-screen.d.ts","sourceRoot":"","sources":["../../src/devices/wo-remote-with-screen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,qBAAa,kBAAmB,SAAQ,eAAe;IAC/C,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;CAGzC"}
@@ -0,0 +1,7 @@
1
+ import { SwitchBotDevice } from './base.js';
2
+ export class WoRemoteWithScreen extends SwitchBotDevice {
3
+ async getStatus() {
4
+ throw new Error('WoRemoteWithScreen.getStatus not implemented');
5
+ }
6
+ }
7
+ //# sourceMappingURL=wo-remote-with-screen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-remote-with-screen.js","sourceRoot":"","sources":["../../src/devices/wo-remote-with-screen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IACrD,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import type { DeviceStatus } from '../types/index.js';
2
+ import { SwitchBotDevice } from './base.js';
3
+ export declare class WoRGBICNeonWireRopeLight extends SwitchBotDevice {
4
+ getStatus(): Promise<DeviceStatus>;
5
+ }
6
+ //# sourceMappingURL=wo-rgbic-neon-wire-rope-light.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-rgbic-neon-wire-rope-light.d.ts","sourceRoot":"","sources":["../../src/devices/wo-rgbic-neon-wire-rope-light.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,qBAAa,wBAAyB,SAAQ,eAAe;IACrD,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;CAGzC"}
@@ -0,0 +1,7 @@
1
+ import { SwitchBotDevice } from './base.js';
2
+ export class WoRGBICNeonWireRopeLight extends SwitchBotDevice {
3
+ async getStatus() {
4
+ throw new Error('WoRGBICNeonWireRopeLight.getStatus not implemented');
5
+ }
6
+ }
7
+ //# sourceMappingURL=wo-rgbic-neon-wire-rope-light.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-rgbic-neon-wire-rope-light.js","sourceRoot":"","sources":["../../src/devices/wo-rgbic-neon-wire-rope-light.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,OAAO,wBAAyB,SAAQ,eAAe;IAC3D,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACvE,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import { WoRGBICBulb } from './wo-rgbic-bulb.js';
2
+ /**
3
+ * RGBICWW Floor Lamp Device
4
+ * Uses same logic as RGBIC Bulb with segmented control
5
+ */
6
+ export declare class WoRGBICWWFloorLamp extends WoRGBICBulb {
7
+ }
8
+ //# sourceMappingURL=wo-rgbicww-floor-lamp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-rgbicww-floor-lamp.d.ts","sourceRoot":"","sources":["../../src/devices/wo-rgbicww-floor-lamp.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;CAAG"}
@@ -0,0 +1,12 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-rgbicww-floor-lamp.ts: SwitchBot v4.0.0 - RGBICWW Floor Lamp
4
+ */
5
+ import { WoRGBICBulb } from './wo-rgbic-bulb.js';
6
+ /**
7
+ * RGBICWW Floor Lamp Device
8
+ * Uses same logic as RGBIC Bulb with segmented control
9
+ */
10
+ export class WoRGBICWWFloorLamp extends WoRGBICBulb {
11
+ }
12
+ //# sourceMappingURL=wo-rgbicww-floor-lamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-rgbicww-floor-lamp.js","sourceRoot":"","sources":["../../src/devices/wo-rgbicww-floor-lamp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,WAAW;CAAG"}
@@ -0,0 +1,8 @@
1
+ import { WoRGBICBulb } from './wo-rgbic-bulb.js';
2
+ /**
3
+ * RGBICWW Strip Light Device
4
+ * Uses same logic as RGBIC Bulb with segmented control
5
+ */
6
+ export declare class WoRGBICWWStripLight extends WoRGBICBulb {
7
+ }
8
+ //# sourceMappingURL=wo-rgbicww-strip-light.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-rgbicww-strip-light.d.ts","sourceRoot":"","sources":["../../src/devices/wo-rgbicww-strip-light.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;CAAG"}
@@ -0,0 +1,12 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-rgbicww-strip-light.ts: SwitchBot v4.0.0 - RGBICWW Strip Light
4
+ */
5
+ import { WoRGBICBulb } from './wo-rgbic-bulb.js';
6
+ /**
7
+ * RGBICWW Strip Light Device
8
+ * Uses same logic as RGBIC Bulb with segmented control
9
+ */
10
+ export class WoRGBICWWStripLight extends WoRGBICBulb {
11
+ }
12
+ //# sourceMappingURL=wo-rgbicww-strip-light.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-rgbicww-strip-light.js","sourceRoot":"","sources":["../../src/devices/wo-rgbicww-strip-light.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD;;;GAGG;AACH,MAAM,OAAO,mBAAoB,SAAQ,WAAW;CAAG"}
@@ -0,0 +1,8 @@
1
+ import { WoCurtain } from './wo-curtain.js';
2
+ /**
3
+ * Roller Shade Device
4
+ * Uses same logic as Curtain (motorized window covering)
5
+ */
6
+ export declare class WoRollerShade extends WoCurtain {
7
+ }
8
+ //# sourceMappingURL=wo-roller-shade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-roller-shade.d.ts","sourceRoot":"","sources":["../../src/devices/wo-roller-shade.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C;;;GAGG;AACH,qBAAa,aAAc,SAAQ,SAAS;CAAG"}
@@ -0,0 +1,12 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-roller-shade.ts: SwitchBot v4.0.0 - Roller Shade
4
+ */
5
+ import { WoCurtain } from './wo-curtain.js';
6
+ /**
7
+ * Roller Shade Device
8
+ * Uses same logic as Curtain (motorized window covering)
9
+ */
10
+ export class WoRollerShade extends WoCurtain {
11
+ }
12
+ //# sourceMappingURL=wo-roller-shade.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-roller-shade.js","sourceRoot":"","sources":["../../src/devices/wo-roller-shade.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;CAAG"}
@@ -0,0 +1,8 @@
1
+ import { WoAirPurifier } from './wo-air-purifier.js';
2
+ /**
3
+ * Smart Thermostat Radiator Device
4
+ * Reuses climate control behavior for power, mode, and speed-level style control.
5
+ */
6
+ export declare class WoSmartThermostatRadiator extends WoAirPurifier {
7
+ }
8
+ //# sourceMappingURL=wo-smart-thermostat-radiator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-smart-thermostat-radiator.d.ts","sourceRoot":"","sources":["../../src/devices/wo-smart-thermostat-radiator.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,aAAa;CAAG"}
@@ -0,0 +1,12 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-smart-thermostat-radiator.ts: SwitchBot v4.0.0 - Smart Thermostat Radiator Device
4
+ */
5
+ import { WoAirPurifier } from './wo-air-purifier.js';
6
+ /**
7
+ * Smart Thermostat Radiator Device
8
+ * Reuses climate control behavior for power, mode, and speed-level style control.
9
+ */
10
+ export class WoSmartThermostatRadiator extends WoAirPurifier {
11
+ }
12
+ //# sourceMappingURL=wo-smart-thermostat-radiator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-smart-thermostat-radiator.js","sourceRoot":"","sources":["../../src/devices/wo-smart-thermostat-radiator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD;;;GAGG;AACH,MAAM,OAAO,yBAA0B,SAAQ,aAAa;CAAG"}
@@ -0,0 +1,8 @@
1
+ import { WoBulb } from './wo-bulb.js';
2
+ /**
3
+ * Strip Light 3 Device
4
+ * Uses same logic as Color Bulb
5
+ */
6
+ export declare class WoStripLight3 extends WoBulb {
7
+ }
8
+ //# sourceMappingURL=wo-strip-light-3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-strip-light-3.d.ts","sourceRoot":"","sources":["../../src/devices/wo-strip-light-3.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC;;;GAGG;AACH,qBAAa,aAAc,SAAQ,MAAM;CAAG"}
@@ -0,0 +1,12 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-strip-light-3.ts: SwitchBot v4.0.0 - Strip Light 3
4
+ */
5
+ import { WoBulb } from './wo-bulb.js';
6
+ /**
7
+ * Strip Light 3 Device
8
+ * Uses same logic as Color Bulb
9
+ */
10
+ export class WoStripLight3 extends WoBulb {
11
+ }
12
+ //# sourceMappingURL=wo-strip-light-3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-strip-light-3.js","sourceRoot":"","sources":["../../src/devices/wo-strip-light-3.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,MAAM;CAAG"}
@@ -0,0 +1,7 @@
1
+ import { WoVacuum } from './wo-vacuum.js';
2
+ /**
3
+ * Robot Vacuum Cleaner K10+
4
+ */
5
+ export declare class WoVacuumK10Plus extends WoVacuum {
6
+ }
7
+ //# sourceMappingURL=wo-vacuum-k10-plus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-vacuum-k10-plus.d.ts","sourceRoot":"","sources":["../../src/devices/wo-vacuum-k10-plus.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;GAEG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,11 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-vacuum-k10-plus.ts: SwitchBot v4.0.0 - K10+ Vacuum Device
4
+ */
5
+ import { WoVacuum } from './wo-vacuum.js';
6
+ /**
7
+ * Robot Vacuum Cleaner K10+
8
+ */
9
+ export class WoVacuumK10Plus extends WoVacuum {
10
+ }
11
+ //# sourceMappingURL=wo-vacuum-k10-plus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-vacuum-k10-plus.js","sourceRoot":"","sources":["../../src/devices/wo-vacuum-k10-plus.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,7 @@
1
+ import { WoVacuum } from './wo-vacuum.js';
2
+ /**
3
+ * Robot Vacuum Cleaner K10+ Pro Combo
4
+ */
5
+ export declare class WoVacuumK10ProCombo extends WoVacuum {
6
+ }
7
+ //# sourceMappingURL=wo-vacuum-k10-pro-combo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-vacuum-k10-pro-combo.d.ts","sourceRoot":"","sources":["../../src/devices/wo-vacuum-k10-pro-combo.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,11 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-vacuum-k10-pro-combo.ts: SwitchBot v4.0.0 - K10+ Pro Combo Vacuum Device
4
+ */
5
+ import { WoVacuum } from './wo-vacuum.js';
6
+ /**
7
+ * Robot Vacuum Cleaner K10+ Pro Combo
8
+ */
9
+ export class WoVacuumK10ProCombo extends WoVacuum {
10
+ }
11
+ //# sourceMappingURL=wo-vacuum-k10-pro-combo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-vacuum-k10-pro-combo.js","sourceRoot":"","sources":["../../src/devices/wo-vacuum-k10-pro-combo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,7 @@
1
+ import { WoVacuum } from './wo-vacuum.js';
2
+ /**
3
+ * Robot Vacuum Cleaner K10+ Pro
4
+ */
5
+ export declare class WoVacuumK10Pro extends WoVacuum {
6
+ }
7
+ //# sourceMappingURL=wo-vacuum-k10-pro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-vacuum-k10-pro.d.ts","sourceRoot":"","sources":["../../src/devices/wo-vacuum-k10-pro.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;GAEG;AACH,qBAAa,cAAe,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,11 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-vacuum-k10-pro.ts: SwitchBot v4.0.0 - K10+ Pro Vacuum Device
4
+ */
5
+ import { WoVacuum } from './wo-vacuum.js';
6
+ /**
7
+ * Robot Vacuum Cleaner K10+ Pro
8
+ */
9
+ export class WoVacuumK10Pro extends WoVacuum {
10
+ }
11
+ //# sourceMappingURL=wo-vacuum-k10-pro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-vacuum-k10-pro.js","sourceRoot":"","sources":["../../src/devices/wo-vacuum-k10-pro.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,7 @@
1
+ import { WoVacuum } from './wo-vacuum.js';
2
+ /**
3
+ * Robot Vacuum Cleaner K11+
4
+ */
5
+ export declare class WoVacuumK11Plus extends WoVacuum {
6
+ }
7
+ //# sourceMappingURL=wo-vacuum-k11-plus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-vacuum-k11-plus.d.ts","sourceRoot":"","sources":["../../src/devices/wo-vacuum-k11-plus.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;GAEG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,11 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-vacuum-k11-plus.ts: SwitchBot v4.0.0 - K11+ Vacuum Device
4
+ */
5
+ import { WoVacuum } from './wo-vacuum.js';
6
+ /**
7
+ * Robot Vacuum Cleaner K11+
8
+ */
9
+ export class WoVacuumK11Plus extends WoVacuum {
10
+ }
11
+ //# sourceMappingURL=wo-vacuum-k11-plus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-vacuum-k11-plus.js","sourceRoot":"","sources":["../../src/devices/wo-vacuum-k11-plus.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,7 @@
1
+ import { WoVacuum } from './wo-vacuum.js';
2
+ /**
3
+ * Robot Vacuum Cleaner K20
4
+ */
5
+ export declare class WoVacuumK20 extends WoVacuum {
6
+ }
7
+ //# sourceMappingURL=wo-vacuum-k20.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-vacuum-k20.d.ts","sourceRoot":"","sources":["../../src/devices/wo-vacuum-k20.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;GAEG;AACH,qBAAa,WAAY,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,11 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-vacuum-k20.ts: SwitchBot v4.0.0 - K20 Vacuum Device
4
+ */
5
+ import { WoVacuum } from './wo-vacuum.js';
6
+ /**
7
+ * Robot Vacuum Cleaner K20
8
+ */
9
+ export class WoVacuumK20 extends WoVacuum {
10
+ }
11
+ //# sourceMappingURL=wo-vacuum-k20.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-vacuum-k20.js","sourceRoot":"","sources":["../../src/devices/wo-vacuum-k20.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,7 @@
1
+ import { WoVacuum } from './wo-vacuum.js';
2
+ /**
3
+ * Robot Vacuum Cleaner S10
4
+ */
5
+ export declare class WoVacuumS10 extends WoVacuum {
6
+ }
7
+ //# sourceMappingURL=wo-vacuum-s10.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-vacuum-s10.d.ts","sourceRoot":"","sources":["../../src/devices/wo-vacuum-s10.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;GAEG;AACH,qBAAa,WAAY,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,11 @@
1
+ /* Copyright(C) 2024-2026, donavanbecker (https://github.com/donavanbecker). All rights reserved.
2
+ *
3
+ * devices/wo-vacuum-s10.ts: SwitchBot v4.0.0 - S10 Vacuum Device
4
+ */
5
+ import { WoVacuum } from './wo-vacuum.js';
6
+ /**
7
+ * Robot Vacuum Cleaner S10
8
+ */
9
+ export class WoVacuumS10 extends WoVacuum {
10
+ }
11
+ //# sourceMappingURL=wo-vacuum-s10.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wo-vacuum-s10.js","sourceRoot":"","sources":["../../src/devices/wo-vacuum-s10.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,QAAQ;CAAG"}
@@ -0,0 +1,7 @@
1
+ import { WoVacuum } from './wo-vacuum.js';
2
+ /**
3
+ * Robot Vacuum Cleaner S20
4
+ */
5
+ export declare class WoVacuumS20 extends WoVacuum {
6
+ }
7
+ //# sourceMappingURL=wo-vacuum-s20.d.ts.map