node-switchbot 4.0.0-beta.16 → 4.0.0-beta.18

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 (290) hide show
  1. package/dist/devices/base.d.ts +52 -1
  2. package/dist/devices/base.d.ts.map +1 -1
  3. package/dist/devices/base.js +85 -1
  4. package/dist/devices/base.js.map +1 -1
  5. package/dist/devices/sequence-device.d.ts +16 -0
  6. package/dist/devices/sequence-device.d.ts.map +1 -1
  7. package/dist/devices/sequence-device.js +16 -0
  8. package/dist/devices/sequence-device.js.map +1 -1
  9. package/dist/devices/wo-ai-hub.d.ts +1 -1
  10. package/dist/devices/wo-ai-hub.d.ts.map +1 -1
  11. package/dist/devices/wo-ai-hub.js +17 -33
  12. package/dist/devices/wo-ai-hub.js.map +1 -1
  13. package/dist/devices/wo-air-purifier-pm25.d.ts +1 -1
  14. package/dist/devices/wo-air-purifier-pm25.d.ts.map +1 -1
  15. package/dist/devices/wo-air-purifier-pm25.js +35 -50
  16. package/dist/devices/wo-air-purifier-pm25.js.map +1 -1
  17. package/dist/devices/wo-air-purifier.d.ts +1 -1
  18. package/dist/devices/wo-air-purifier.d.ts.map +1 -1
  19. package/dist/devices/wo-air-purifier.js +39 -53
  20. package/dist/devices/wo-air-purifier.js.map +1 -1
  21. package/dist/devices/wo-blind-tilt.d.ts +2 -17
  22. package/dist/devices/wo-blind-tilt.d.ts.map +1 -1
  23. package/dist/devices/wo-blind-tilt.js +128 -94
  24. package/dist/devices/wo-blind-tilt.js.map +1 -1
  25. package/dist/devices/wo-bulb.d.ts +1 -1
  26. package/dist/devices/wo-bulb.d.ts.map +1 -1
  27. package/dist/devices/wo-bulb.js +35 -49
  28. package/dist/devices/wo-bulb.js.map +1 -1
  29. package/dist/devices/wo-candle-warmer-lamp.d.ts +1 -1
  30. package/dist/devices/wo-candle-warmer-lamp.d.ts.map +1 -1
  31. package/dist/devices/wo-candle-warmer-lamp.js +14 -30
  32. package/dist/devices/wo-candle-warmer-lamp.js.map +1 -1
  33. package/dist/devices/wo-contact.d.ts +1 -1
  34. package/dist/devices/wo-contact.d.ts.map +1 -1
  35. package/dist/devices/wo-contact.js +19 -35
  36. package/dist/devices/wo-contact.js.map +1 -1
  37. package/dist/devices/wo-curtain.d.ts.map +1 -1
  38. package/dist/devices/wo-curtain.js +40 -52
  39. package/dist/devices/wo-curtain.js.map +1 -1
  40. package/dist/devices/wo-hand.d.ts +4 -4
  41. package/dist/devices/wo-hand.d.ts.map +1 -1
  42. package/dist/devices/wo-hand.js +24 -37
  43. package/dist/devices/wo-hand.js.map +1 -1
  44. package/dist/devices/wo-hub2.d.ts +1 -1
  45. package/dist/devices/wo-hub2.d.ts.map +1 -1
  46. package/dist/devices/wo-hub2.js +17 -33
  47. package/dist/devices/wo-hub2.js.map +1 -1
  48. package/dist/devices/wo-humi.d.ts +1 -1
  49. package/dist/devices/wo-humi.d.ts.map +1 -1
  50. package/dist/devices/wo-humi.js +21 -37
  51. package/dist/devices/wo-humi.js.map +1 -1
  52. package/dist/devices/wo-keypad.d.ts +1 -1
  53. package/dist/devices/wo-keypad.d.ts.map +1 -1
  54. package/dist/devices/wo-keypad.js +14 -30
  55. package/dist/devices/wo-keypad.js.map +1 -1
  56. package/dist/devices/wo-leak.d.ts +1 -1
  57. package/dist/devices/wo-leak.d.ts.map +1 -1
  58. package/dist/devices/wo-leak.js +15 -31
  59. package/dist/devices/wo-leak.js.map +1 -1
  60. package/dist/devices/wo-lock-pro.d.ts +1 -1
  61. package/dist/devices/wo-lock-pro.d.ts.map +1 -1
  62. package/dist/devices/wo-lock-pro.js +19 -35
  63. package/dist/devices/wo-lock-pro.js.map +1 -1
  64. package/dist/devices/wo-lock.d.ts +1 -1
  65. package/dist/devices/wo-lock.d.ts.map +1 -1
  66. package/dist/devices/wo-lock.js +18 -34
  67. package/dist/devices/wo-lock.js.map +1 -1
  68. package/dist/devices/wo-pan-tilt-cam-plus-3k.d.ts +1 -1
  69. package/dist/devices/wo-pan-tilt-cam-plus-3k.d.ts.map +1 -1
  70. package/dist/devices/wo-pan-tilt-cam-plus-3k.js +16 -28
  71. package/dist/devices/wo-pan-tilt-cam-plus-3k.js.map +1 -1
  72. package/dist/devices/wo-plug-mini-us.d.ts +1 -1
  73. package/dist/devices/wo-plug-mini-us.d.ts.map +1 -1
  74. package/dist/devices/wo-plug-mini-us.js +23 -33
  75. package/dist/devices/wo-plug-mini-us.js.map +1 -1
  76. package/dist/devices/wo-presence.d.ts +1 -1
  77. package/dist/devices/wo-presence.d.ts.map +1 -1
  78. package/dist/devices/wo-presence.js +17 -33
  79. package/dist/devices/wo-presence.js.map +1 -1
  80. package/dist/devices/wo-relay-switch-1.d.ts +1 -1
  81. package/dist/devices/wo-relay-switch-1.d.ts.map +1 -1
  82. package/dist/devices/wo-relay-switch-1.js +19 -40
  83. package/dist/devices/wo-relay-switch-1.js.map +1 -1
  84. package/dist/devices/wo-remote-with-screen.d.ts +1 -1
  85. package/dist/devices/wo-remote-with-screen.d.ts.map +1 -1
  86. package/dist/devices/wo-remote-with-screen.js +14 -30
  87. package/dist/devices/wo-remote-with-screen.js.map +1 -1
  88. package/dist/devices/wo-remote.d.ts +1 -1
  89. package/dist/devices/wo-remote.d.ts.map +1 -1
  90. package/dist/devices/wo-remote.js +13 -29
  91. package/dist/devices/wo-remote.js.map +1 -1
  92. package/dist/devices/wo-rgbic-bulb.d.ts +1 -1
  93. package/dist/devices/wo-rgbic-bulb.js +1 -1
  94. package/dist/devices/wo-rgbic-neon-wire-rope-light.d.ts +1 -1
  95. package/dist/devices/wo-rgbic-neon-wire-rope-light.d.ts.map +1 -1
  96. package/dist/devices/wo-rgbic-neon-wire-rope-light.js +18 -34
  97. package/dist/devices/wo-rgbic-neon-wire-rope-light.js.map +1 -1
  98. package/dist/devices/wo-sensor-th.d.ts +1 -1
  99. package/dist/devices/wo-sensor-th.d.ts.map +1 -1
  100. package/dist/devices/wo-sensor-th.js +18 -34
  101. package/dist/devices/wo-sensor-th.js.map +1 -1
  102. package/dist/devices/wo-vacuum.d.ts +3 -3
  103. package/dist/devices/wo-vacuum.d.ts.map +1 -1
  104. package/dist/devices/wo-vacuum.js +69 -43
  105. package/dist/devices/wo-vacuum.js.map +1 -1
  106. package/dist/devices/wo-water-detector.d.ts +1 -1
  107. package/dist/devices/wo-water-detector.d.ts.map +1 -1
  108. package/dist/devices/wo-water-detector.js +12 -28
  109. package/dist/devices/wo-water-detector.js.map +1 -1
  110. package/dist/index.d.ts +1 -1
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +1 -1
  113. package/dist/index.js.map +1 -1
  114. package/dist/switchbot.d.ts +1 -0
  115. package/dist/switchbot.d.ts.map +1 -1
  116. package/dist/switchbot.js +43 -30
  117. package/dist/switchbot.js.map +1 -1
  118. package/dist/types/index.d.ts +18 -0
  119. package/dist/types/index.d.ts.map +1 -1
  120. package/dist/types/index.js.map +1 -1
  121. package/dist/utils/index.d.ts +6 -1
  122. package/dist/utils/index.d.ts.map +1 -1
  123. package/dist/utils/index.js +23 -0
  124. package/dist/utils/index.js.map +1 -1
  125. package/docs/assets/hierarchy.js +1 -1
  126. package/docs/assets/highlight.css +7 -0
  127. package/docs/assets/search.js +1 -1
  128. package/docs/classes/APIError.html +2 -2
  129. package/docs/classes/APINotAvailableError.html +2 -2
  130. package/docs/classes/BLEConnection.html +10 -10
  131. package/docs/classes/BLENotAvailableError.html +2 -2
  132. package/docs/classes/BLEScanner.html +9 -9
  133. package/docs/classes/CommandFailedError.html +2 -2
  134. package/docs/classes/ConnectionTimeoutError.html +2 -2
  135. package/docs/classes/DeviceManager.html +13 -13
  136. package/docs/classes/DeviceNotFoundError.html +2 -2
  137. package/docs/classes/DeviceOverrideStateDuringConnection.html +33 -34
  138. package/docs/classes/DiscoveryError.html +2 -2
  139. package/docs/classes/OpenAPIClient.html +24 -24
  140. package/docs/classes/SequenceDevice.html +42 -35
  141. package/docs/classes/SwitchBot.html +11 -11
  142. package/docs/classes/SwitchBotDevice.html +68 -36
  143. package/docs/classes/SwitchBotError.html +2 -2
  144. package/docs/classes/ValidationError.html +2 -2
  145. package/docs/classes/WoAIHub.html +69 -36
  146. package/docs/classes/WoAirPurifier.html +40 -40
  147. package/docs/classes/WoAirPurifierPM25.html +73 -40
  148. package/docs/classes/WoAirPurifierTable.html +40 -40
  149. package/docs/classes/WoArtFrame.html +43 -43
  150. package/docs/classes/WoBlindTilt.html +35 -42
  151. package/docs/classes/WoBulb.html +43 -43
  152. package/docs/classes/WoCandleWarmerLamp.html +72 -39
  153. package/docs/classes/WoCeilingLight.html +43 -43
  154. package/docs/classes/WoCirculatorFan.html +40 -40
  155. package/docs/classes/WoClimatePanel.html +40 -40
  156. package/docs/classes/WoContact.html +34 -34
  157. package/docs/classes/WoCurtain.html +39 -40
  158. package/docs/classes/WoFloorLamp.html +43 -43
  159. package/docs/classes/WoGarageDoorOpener.html +39 -39
  160. package/docs/classes/WoHand.html +43 -43
  161. package/docs/classes/WoHub2.html +34 -34
  162. package/docs/classes/WoHub3.html +34 -34
  163. package/docs/classes/WoHubMiniMatter.html +34 -34
  164. package/docs/classes/WoHumi.html +41 -41
  165. package/docs/classes/WoHumi2.html +41 -41
  166. package/docs/classes/WoIOSensorTH.html +34 -34
  167. package/docs/classes/WoKeypad.html +34 -34
  168. package/docs/classes/WoKeypadVision.html +34 -34
  169. package/docs/classes/WoKeypadVisionPro.html +34 -34
  170. package/docs/classes/WoLeak.html +34 -34
  171. package/docs/classes/WoPanTiltCamPlus3K.html +72 -39
  172. package/docs/classes/WoPlugMiniJP.html +37 -37
  173. package/docs/classes/WoPlugMiniUS.html +37 -37
  174. package/docs/classes/WoPresence.html +34 -34
  175. package/docs/classes/WoRGBICBulb.html +45 -45
  176. package/docs/classes/WoRGBICNeonWireRopeLight.html +74 -41
  177. package/docs/classes/WoRGBICWWFloorLamp.html +45 -45
  178. package/docs/classes/WoRGBICWWStripLight.html +45 -45
  179. package/docs/classes/WoRelaySwitch1.html +39 -39
  180. package/docs/classes/WoRelaySwitch1PM.html +39 -39
  181. package/docs/classes/WoRelaySwitch2PM.html +41 -41
  182. package/docs/classes/WoRemote.html +34 -34
  183. package/docs/classes/WoRemoteWithScreen.html +69 -36
  184. package/docs/classes/WoRollerShade.html +39 -40
  185. package/docs/classes/WoSensorTH.html +34 -34
  186. package/docs/classes/WoSensorTHPlus.html +34 -34
  187. package/docs/classes/WoSensorTHPro.html +34 -34
  188. package/docs/classes/WoSensorTHProCO2.html +34 -34
  189. package/docs/classes/WoSmartLock.html +37 -37
  190. package/docs/classes/WoSmartLockLite.html +37 -37
  191. package/docs/classes/WoSmartLockPro.html +39 -39
  192. package/docs/classes/WoSmartLockProWiFi.html +39 -39
  193. package/docs/classes/WoSmartLockVision.html +37 -37
  194. package/docs/classes/WoSmartLockVisionPro.html +39 -39
  195. package/docs/classes/WoSmartThermostatRadiator.html +40 -40
  196. package/docs/classes/WoStrip.html +43 -43
  197. package/docs/classes/WoStripLight3.html +43 -43
  198. package/docs/classes/WoVacuum.html +42 -42
  199. package/docs/classes/WoVacuumK10Plus.html +42 -42
  200. package/docs/classes/WoVacuumK10Pro.html +42 -42
  201. package/docs/classes/WoVacuumK10ProCombo.html +42 -42
  202. package/docs/classes/WoVacuumK11Plus.html +42 -42
  203. package/docs/classes/WoVacuumK20.html +42 -42
  204. package/docs/classes/WoVacuumS10.html +42 -42
  205. package/docs/classes/WoVacuumS20.html +42 -42
  206. package/docs/classes/WoWaterDetector.html +69 -36
  207. package/docs/enums/LogLevel.html +2 -2
  208. package/docs/enums/SwitchBotBLEModel.html +2 -2
  209. package/docs/enums/SwitchBotBLEModelName.html +2 -2
  210. package/docs/functions/updateBaseURL.html +1 -1
  211. package/docs/hierarchy.html +1 -1
  212. package/docs/interfaces/APICommandRequest.html +2 -2
  213. package/docs/interfaces/APICommandResponse.html +2 -2
  214. package/docs/interfaces/APIDevice.html +2 -2
  215. package/docs/interfaces/APIDeviceStatus.html +2 -2
  216. package/docs/interfaces/APIErrorResponse.html +2 -2
  217. package/docs/interfaces/APIResponse.html +2 -2
  218. package/docs/interfaces/AirPurifierCommands.html +2 -2
  219. package/docs/interfaces/AirPurifierServiceData.html +14 -14
  220. package/docs/interfaces/AirPurifierStatus.html +7 -7
  221. package/docs/interfaces/BLEAdvertisement.html +5 -5
  222. package/docs/interfaces/BLEScanOptions.html +5 -5
  223. package/docs/interfaces/BLEServiceData.html +14 -14
  224. package/docs/interfaces/BlindTiltCommands.html +2 -2
  225. package/docs/interfaces/BlindTiltServiceData.html +14 -14
  226. package/docs/interfaces/BlindTiltStatus.html +6 -6
  227. package/docs/interfaces/BotCommands.html +2 -2
  228. package/docs/interfaces/BotServiceData.html +14 -14
  229. package/docs/interfaces/BotStatus.html +6 -6
  230. package/docs/interfaces/BulbCommands.html +2 -2
  231. package/docs/interfaces/BulbServiceData.html +14 -14
  232. package/docs/interfaces/BulbStatus.html +6 -6
  233. package/docs/interfaces/CeilingLightCommands.html +2 -2
  234. package/docs/interfaces/CeilingLightServiceData.html +14 -14
  235. package/docs/interfaces/CeilingLightStatus.html +6 -6
  236. package/docs/interfaces/CommandResult.html +6 -6
  237. package/docs/interfaces/ContactServiceData.html +14 -14
  238. package/docs/interfaces/ContactStatus.html +6 -6
  239. package/docs/interfaces/CurtainCommands.html +2 -2
  240. package/docs/interfaces/CurtainExtendedInfo.html +2 -2
  241. package/docs/interfaces/CurtainServiceData.html +14 -14
  242. package/docs/interfaces/CurtainStatus.html +6 -6
  243. package/docs/interfaces/DeviceInfo.html +18 -18
  244. package/docs/interfaces/DeviceListResponse.html +2 -2
  245. package/docs/interfaces/DeviceStatus.html +6 -6
  246. package/docs/interfaces/DiscoveryOptions.html +7 -7
  247. package/docs/interfaces/HubServiceData.html +14 -14
  248. package/docs/interfaces/HubStatus.html +6 -6
  249. package/docs/interfaces/HumidifierCommands.html +2 -2
  250. package/docs/interfaces/HumidifierServiceData.html +15 -15
  251. package/docs/interfaces/HumidifierStatus.html +6 -6
  252. package/docs/interfaces/KeypadStatus.html +6 -6
  253. package/docs/interfaces/LeakServiceData.html +14 -14
  254. package/docs/interfaces/LeakStatus.html +6 -6
  255. package/docs/interfaces/LockCommands.html +2 -2
  256. package/docs/interfaces/LockServiceData.html +15 -15
  257. package/docs/interfaces/LockStatus.html +6 -6
  258. package/docs/interfaces/MeterServiceData.html +14 -14
  259. package/docs/interfaces/MeterStatus.html +6 -6
  260. package/docs/interfaces/MotionServiceData.html +14 -14
  261. package/docs/interfaces/MotionStatus.html +6 -6
  262. package/docs/interfaces/PlugCommands.html +2 -2
  263. package/docs/interfaces/PlugServiceData.html +14 -14
  264. package/docs/interfaces/PlugStatus.html +6 -6
  265. package/docs/interfaces/PresenceServiceData.html +14 -14
  266. package/docs/interfaces/PresenceStatus.html +6 -6
  267. package/docs/interfaces/RelaySwitchCommands.html +2 -2
  268. package/docs/interfaces/RelaySwitchServiceData.html +14 -14
  269. package/docs/interfaces/RelaySwitchStatus.html +6 -6
  270. package/docs/interfaces/RemoteStatus.html +6 -6
  271. package/docs/interfaces/SceneListResponse.html +2 -2
  272. package/docs/interfaces/StripCommands.html +2 -2
  273. package/docs/interfaces/StripServiceData.html +14 -14
  274. package/docs/interfaces/StripStatus.html +6 -6
  275. package/docs/interfaces/SwitchBotConfig.html +25 -16
  276. package/docs/interfaces/VacuumCommands.html +2 -2
  277. package/docs/interfaces/VacuumStatus.html +6 -6
  278. package/docs/interfaces/WebhookConfig.html +2 -2
  279. package/docs/interfaces/WebhookDetails.html +2 -2
  280. package/docs/interfaces/WebhookQueryResponse.html +2 -2
  281. package/docs/interfaces/WebhookSetupResponse.html +2 -2
  282. package/docs/types/ConnectionType.html +1 -1
  283. package/docs/types/PhysicalDeviceType.html +1 -1
  284. package/docs/types/VirtualDeviceType.html +1 -1
  285. package/docs/variables/urls.html +1 -1
  286. package/package.json +3 -4
  287. package/todo/todo.md +14 -10
  288. package/todo/PYSWITCHBOT_COMPARISON.md +0 -479
  289. package/todo/README.md +0 -68
  290. package/todo/completed.md +0 -549
@@ -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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"}
@@ -6,7 +6,7 @@ import { SwitchBotDevice } from './base.js';
6
6
  */
7
7
  export declare class WoKeypad extends SwitchBotDevice {
8
8
  /**
9
- * Get device status
9
+ * Get device status (BLE-first, API-fallback)
10
10
  */
11
11
  getStatus(): Promise<KeypadStatus>;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wo-keypad.d.ts","sourceRoot":"","sources":["../../src/devices/wo-keypad.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;;GAGG;AACH,qBAAa,QAAS,SAAQ,eAAe;IAC3C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;CAgCzC"}
1
+ {"version":3,"file":"wo-keypad.d.ts","sourceRoot":"","sources":["../../src/devices/wo-keypad.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;;GAGG;AACH,qBAAa,QAAS,SAAQ,eAAe;IAC3C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;CAkBzC"}
@@ -9,38 +9,22 @@ import { SwitchBotDevice } from './base.js';
9
9
  */
10
10
  export class WoKeypad extends SwitchBotDevice {
11
11
  /**
12
- * Get device status
12
+ * Get device status (BLE-first, API-fallback)
13
13
  */
14
14
  async getStatus() {
15
- try {
16
- // Try API first if available
17
- if (this.hasAPI()) {
18
- const apiStatus = await this.getAPIStatus();
19
- return {
20
- deviceId: this.info.id,
21
- connectionType: 'api',
22
- lockState: apiStatus.lockState,
23
- battery: apiStatus.battery,
24
- version: apiStatus.version,
25
- updatedAt: new Date(),
26
- };
27
- }
28
- // Fallback to BLE
29
- if (this.hasBLE()) {
30
- const bleData = await this.getBLEStatus();
31
- return {
32
- deviceId: this.info.id,
33
- connectionType: 'ble',
34
- battery: bleData.battery,
35
- updatedAt: new Date(),
36
- };
37
- }
38
- throw new Error('No connection method available');
39
- }
40
- catch (error) {
41
- this.logger.error('Failed to get status', error);
42
- throw error;
43
- }
15
+ return this.getStatusWithFallback(bleData => ({
16
+ deviceId: this.info.id,
17
+ connectionType: 'ble',
18
+ battery: bleData.battery,
19
+ updatedAt: new Date(),
20
+ }), apiStatus => ({
21
+ deviceId: this.info.id,
22
+ connectionType: 'api',
23
+ lockState: apiStatus.lockState,
24
+ battery: apiStatus.battery,
25
+ version: apiStatus.version,
26
+ updatedAt: new Date(),
27
+ }));
44
28
  }
45
29
  }
46
30
  //# sourceMappingURL=wo-keypad.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wo-keypad.js","sourceRoot":"","sources":["../../src/devices/wo-keypad.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;;GAGG;AACH,MAAM,OAAO,QAAS,SAAQ,eAAe;IAC3C;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,IAAI,CAAC;YACH,6BAA6B;YAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;gBAC3C,OAAO;oBACL,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;oBACtB,cAAc,EAAE,KAAK;oBACrB,SAAS,EAAE,SAAS,CAAC,SAAS;oBAC9B,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAA;YACH,CAAC;YAED,kBAAkB;YAClB,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;gBACzC,OAAO;oBACL,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;oBACtB,cAAc,EAAE,KAAK;oBACrB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAA;YACH,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;YAChD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"wo-keypad.js","sourceRoot":"","sources":["../../src/devices/wo-keypad.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;;GAGG;AACH,MAAM,OAAO,QAAS,SAAQ,eAAe;IAC3C;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,qBAAqB,CAC/B,OAAO,CAAC,EAAE,CAAC,CAAC;YACV,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,cAAc,EAAE,KAAK;YACrB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,EACF,SAAS,CAAC,EAAE,CAAC,CAAC;YACZ,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
@@ -5,7 +5,7 @@ import { SwitchBotDevice } from './base.js';
5
5
  */
6
6
  export declare class WoLeak extends SwitchBotDevice {
7
7
  /**
8
- * Get device status
8
+ * Get device status (BLE-first, API-fallback)
9
9
  */
10
10
  getStatus(): Promise<LeakStatus>;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wo-leak.d.ts","sourceRoot":"","sources":["../../src/devices/wo-leak.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,qBAAa,MAAO,SAAQ,eAAe;IACzC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;CAiCvC"}
1
+ {"version":3,"file":"wo-leak.d.ts","sourceRoot":"","sources":["../../src/devices/wo-leak.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,qBAAa,MAAO,SAAQ,eAAe;IACzC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;CAmBvC"}
@@ -8,39 +8,23 @@ import { SwitchBotDevice } from './base.js';
8
8
  */
9
9
  export class WoLeak extends SwitchBotDevice {
10
10
  /**
11
- * Get device status
11
+ * Get device status (BLE-first, API-fallback)
12
12
  */
13
13
  async getStatus() {
14
- try {
15
- // Try API first if available
16
- if (this.hasAPI()) {
17
- const apiStatus = await this.getAPIStatus();
18
- return {
19
- deviceId: this.info.id,
20
- connectionType: 'api',
21
- waterLeakDetected: apiStatus.waterLeakDetected || false,
22
- battery: apiStatus.battery,
23
- version: apiStatus.version,
24
- updatedAt: new Date(),
25
- };
26
- }
27
- // Fallback to BLE
28
- if (this.hasBLE()) {
29
- const bleData = await this.getBLEStatus();
30
- return {
31
- deviceId: this.info.id,
32
- connectionType: 'ble',
33
- waterLeakDetected: bleData.waterLeakDetected || false,
34
- battery: bleData.battery,
35
- updatedAt: new Date(),
36
- };
37
- }
38
- throw new Error('No connection method available');
39
- }
40
- catch (error) {
41
- this.logger.error('Failed to get status', error);
42
- throw error;
43
- }
14
+ return this.getStatusWithFallback(bleData => ({
15
+ deviceId: this.info.id,
16
+ connectionType: 'ble',
17
+ waterLeakDetected: bleData.waterLeakDetected || false,
18
+ battery: bleData.battery,
19
+ updatedAt: new Date(),
20
+ }), apiStatus => ({
21
+ deviceId: this.info.id,
22
+ connectionType: 'api',
23
+ waterLeakDetected: apiStatus.waterLeakDetected || false,
24
+ battery: apiStatus.battery,
25
+ version: apiStatus.version,
26
+ updatedAt: new Date(),
27
+ }));
44
28
  }
45
29
  }
46
30
  //# sourceMappingURL=wo-leak.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wo-leak.js","sourceRoot":"","sources":["../../src/devices/wo-leak.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,MAAM,OAAO,MAAO,SAAQ,eAAe;IACzC;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,IAAI,CAAC;YACH,6BAA6B;YAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;gBAC3C,OAAO;oBACL,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;oBACtB,cAAc,EAAE,KAAK;oBACrB,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,IAAI,KAAK;oBACvD,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAA;YACH,CAAC;YAED,kBAAkB;YAClB,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;gBACzC,OAAO;oBACL,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;oBACtB,cAAc,EAAE,KAAK;oBACrB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,KAAK;oBACrD,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAA;YACH,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;YAChD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"wo-leak.js","sourceRoot":"","sources":["../../src/devices/wo-leak.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,MAAM,OAAO,MAAO,SAAQ,eAAe;IACzC;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,qBAAqB,CAC/B,OAAO,CAAC,EAAE,CAAC,CAAC;YACV,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,cAAc,EAAE,KAAK;YACrB,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,IAAI,KAAK;YACrD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,EACF,SAAS,CAAC,EAAE,CAAC,CAAC;YACZ,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,cAAc,EAAE,KAAK;YACrB,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,IAAI,KAAK;YACvD,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
@@ -26,7 +26,7 @@ export declare class WoSmartLockPro extends SequenceDevice implements LockComman
26
26
  onLockNotification(handler: (payload: Buffer) => void): Promise<void>;
27
27
  offLockNotification(handler: (payload: Buffer) => void): void;
28
28
  /**
29
- * Get device status
29
+ * Get device status (BLE-first, API-fallback)
30
30
  */
31
31
  getStatus(): Promise<LockStatus>;
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wo-lock-pro.d.ts","sourceRoot":"","sources":["../../src/devices/wo-lock-pro.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;GAEG;AACH,qBAAa,cAAe,SAAQ,cAAe,YAAW,YAAY;IACxE,OAAO,CAAC,wBAAwB,CAAuC;IAEvE;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB9B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAiBhC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAS9C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ3B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAsB/C,kBAAkB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3E,mBAAmB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAU7D;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;CAqCvC"}
1
+ {"version":3,"file":"wo-lock-pro.d.ts","sourceRoot":"","sources":["../../src/devices/wo-lock-pro.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;GAEG;AACH,qBAAa,cAAe,SAAQ,cAAe,YAAW,YAAY;IACxE,OAAO,CAAC,wBAAwB,CAAuC;IAEvE;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB9B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAiBhC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC;IAS9C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ3B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAsB/C,kBAAkB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3E,mBAAmB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAU7D;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;CAuBvC"}
@@ -92,43 +92,27 @@ export class WoSmartLockPro extends SequenceDevice {
92
92
  this.lockNotificationHandlers.delete(handler);
93
93
  }
94
94
  /**
95
- * Get device status
95
+ * Get device status (BLE-first, API-fallback)
96
96
  */
97
97
  async getStatus() {
98
- try {
99
- // Try API first if available
100
- if (this.hasAPI()) {
101
- const apiStatus = await this.getAPIStatus();
102
- return {
103
- deviceId: this.info.id,
104
- connectionType: 'api',
105
- lockState: apiStatus.lockState || 'locked',
106
- doorState: apiStatus.doorState,
107
- calibrated: apiStatus.calibrate,
108
- battery: apiStatus.battery,
109
- version: apiStatus.version,
110
- updatedAt: new Date(),
111
- };
112
- }
113
- // Fallback to BLE
114
- if (this.hasBLE()) {
115
- const bleData = await this.getBLEStatus().catch(() => this.normalizeBLEStatusData(undefined));
116
- return {
117
- deviceId: this.info.id,
118
- connectionType: 'ble',
119
- lockState: bleData.lockState || 'locked',
120
- doorState: bleData.doorOpen ? 'opened' : 'closed',
121
- calibrated: bleData.calibration,
122
- battery: bleData.battery,
123
- updatedAt: new Date(),
124
- };
125
- }
126
- throw new Error('No connection method available');
127
- }
128
- catch (error) {
129
- this.logger.error('Failed to get status', error);
130
- throw error;
131
- }
98
+ return this.getStatusWithFallback(bleData => ({
99
+ deviceId: this.info.id,
100
+ connectionType: 'ble',
101
+ lockState: bleData.lockState || 'locked',
102
+ doorState: bleData.doorOpen ? 'opened' : 'closed',
103
+ calibrated: bleData.calibration,
104
+ battery: bleData.battery,
105
+ updatedAt: new Date(),
106
+ }), apiStatus => ({
107
+ deviceId: this.info.id,
108
+ connectionType: 'api',
109
+ lockState: apiStatus.lockState || 'locked',
110
+ doorState: apiStatus.doorState,
111
+ calibrated: apiStatus.calibrate,
112
+ battery: apiStatus.battery,
113
+ version: apiStatus.version,
114
+ updatedAt: new Date(),
115
+ }));
132
116
  }
133
117
  }
134
118
  //# sourceMappingURL=wo-lock-pro.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wo-lock-pro.js","sourceRoot":"","sources":["../../src/devices/wo-lock-pro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wo-lock-pro.js","sourceRoot":"","sources":["../../src/devices/wo-lock-pro.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export declare class WoSmartLock extends SequenceDevice implements LockCommands
18
18
  onLockNotification(handler: (payload: Buffer) => void): Promise<void>;
19
19
  offLockNotification(handler: (payload: Buffer) => void): void;
20
20
  /**
21
- * Get device status
21
+ * Get device status (BLE-first, API-fallback)
22
22
  */
23
23
  getStatus(): Promise<LockStatus>;
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wo-lock.d.ts","sourceRoot":"","sources":["../../src/devices/wo-lock.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;GAEG;AACH,qBAAa,WAAY,SAAQ,cAAe,YAAW,YAAY;IACrE,OAAO,CAAC,wBAAwB,CAAuC;IAEvE;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB9B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB1B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAsB/C,kBAAkB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3E,mBAAmB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAU7D;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;CAoCvC"}
1
+ {"version":3,"file":"wo-lock.d.ts","sourceRoot":"","sources":["../../src/devices/wo-lock.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;GAEG;AACH,qBAAa,WAAY,SAAQ,cAAe,YAAW,YAAY;IACrE,OAAO,CAAC,wBAAwB,CAAuC;IAEvE;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB9B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB1B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAsB/C,kBAAkB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3E,mBAAmB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAU7D;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;CAsBvC"}
@@ -78,42 +78,26 @@ export class WoSmartLock extends SequenceDevice {
78
78
  this.lockNotificationHandlers.delete(handler);
79
79
  }
80
80
  /**
81
- * Get device status
81
+ * Get device status (BLE-first, API-fallback)
82
82
  */
83
83
  async getStatus() {
84
- try {
85
- // Try API first if available
86
- if (this.hasAPI()) {
87
- const apiStatus = await this.getAPIStatus();
88
- return {
89
- deviceId: this.info.id,
90
- connectionType: 'api',
91
- lockState: apiStatus.lockState || 'locked',
92
- doorState: apiStatus.doorState,
93
- calibrated: apiStatus.calibrate,
94
- battery: apiStatus.battery,
95
- version: apiStatus.version,
96
- updatedAt: new Date(),
97
- };
98
- }
99
- // Fallback to BLE
100
- if (this.hasBLE()) {
101
- const bleData = await this.getBLEStatus().catch(() => this.normalizeBLEStatusData(undefined));
102
- return {
103
- deviceId: this.info.id,
104
- connectionType: 'ble',
105
- lockState: bleData.lockState || 'locked',
106
- calibrated: bleData.calibration,
107
- battery: bleData.battery,
108
- updatedAt: new Date(),
109
- };
110
- }
111
- throw new Error('No connection method available');
112
- }
113
- catch (error) {
114
- this.logger.error('Failed to get status', error);
115
- throw error;
116
- }
84
+ return this.getStatusWithFallback(bleData => ({
85
+ deviceId: this.info.id,
86
+ connectionType: 'ble',
87
+ lockState: bleData.lockState || 'locked',
88
+ calibrated: bleData.calibration,
89
+ battery: bleData.battery,
90
+ updatedAt: new Date(),
91
+ }), apiStatus => ({
92
+ deviceId: this.info.id,
93
+ connectionType: 'api',
94
+ lockState: apiStatus.lockState || 'locked',
95
+ doorState: apiStatus.doorState,
96
+ calibrated: apiStatus.calibrate,
97
+ battery: apiStatus.battery,
98
+ version: apiStatus.version,
99
+ updatedAt: new Date(),
100
+ }));
117
101
  }
118
102
  }
119
103
  //# sourceMappingURL=wo-lock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wo-lock.js","sourceRoot":"","sources":["../../src/devices/wo-lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wo-lock.js","sourceRoot":"","sources":["../../src/devices/wo-lock.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,cAAc;IACrC,wBAAwB,GAAG,IAAI,GAAG,EAA6B,CAAA;IAEvE;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;YACrC,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,mBAAmB,CAAC,IAAI,EACxB,MAAM,CACP,CAAA;QACD,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAA;YACrC,IAAI,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;gBACpC,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,mBAAmB,CAAC,MAAM,EAC1B,QAAQ,CACT,CAAA;QACD,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;YACxC,OAAO;gBACL,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAA;QACH,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAA;QACzF,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,cAAc,EAAE,GAAG,CAAC,cAAc;SACnC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAkC;QACzD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;QAC7D,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;QACpD,MAAM,IAAI,CAAC,aAAc,CAAC,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC9D,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC5C,CAAC;IAED,mBAAmB,CAAC,OAAkC;QACpD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,OAAM;QACR,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;QACpD,IAAI,CAAC,aAAa,EAAE,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC1D,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,qBAAqB,CAC/B,OAAO,CAAC,EAAE,CAAC,CAAC;YACV,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,QAAQ;YACxC,UAAU,EAAE,OAAO,CAAC,WAAW;YAC/B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,EACF,SAAS,CAAC,EAAE,CAAC,CAAC;YACZ,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,QAAQ;YAC1C,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,UAAU,EAAE,SAAS,CAAC,SAAS;YAC/B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
@@ -2,7 +2,7 @@ import type { DeviceStatus } from '../types/index.js';
2
2
  import { SwitchBotDevice } from './base.js';
3
3
  export declare class WoPanTiltCamPlus3K extends SwitchBotDevice {
4
4
  /**
5
- * Get device status (BLE first, then API)
5
+ * Get device status (BLE-first, API-fallback, centralized)
6
6
  */
7
7
  getStatus(): Promise<DeviceStatus>;
8
8
  /**
@@ -1 +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;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,qBAAa,kBAAmB,SAAQ,eAAe;IACrD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IA8BxC;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB5C;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB7C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;CAiBhC"}
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;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,qBAAa,kBAAmB,SAAQ,eAAe;IACrD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAmBxC;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB5C;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmB7C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;CAiBhC"}
@@ -2,36 +2,24 @@ import { Buffer } from 'node:buffer';
2
2
  import { SwitchBotDevice } from './base.js';
3
3
  export class WoPanTiltCamPlus3K extends SwitchBotDevice {
4
4
  /**
5
- * Get device status (BLE first, then API)
5
+ * Get device status (BLE-first, API-fallback, centralized)
6
6
  */
7
7
  async getStatus() {
8
- try {
9
- // Try BLE first
10
- if (this.hasBLE()) {
11
- await this.getBLEStatus();
12
- return {
13
- deviceId: this.info.id,
14
- connectionType: 'ble',
15
- updatedAt: new Date(),
16
- // Add more fields if available from BLE
17
- };
18
- }
19
- // Fallback to API
20
- if (this.hasAPI()) {
21
- await this.getAPIStatus();
22
- return {
23
- deviceId: this.info.id,
24
- connectionType: 'api',
25
- updatedAt: new Date(),
26
- // Add more fields if available from API
27
- };
28
- }
29
- throw new Error('No connection method available');
30
- }
31
- catch (error) {
32
- this.logger.error('Failed to get status', error);
33
- throw error;
34
- }
8
+ return this.getStatusWithFallback(
9
+ // BLE normalization
10
+ () => ({
11
+ deviceId: this.info.id,
12
+ connectionType: 'ble',
13
+ updatedAt: new Date(),
14
+ // Add more fields if available from BLE
15
+ }),
16
+ // API normalization
17
+ () => ({
18
+ deviceId: this.info.id,
19
+ connectionType: 'api',
20
+ updatedAt: new Date(),
21
+ // Add more fields if available from API
22
+ }));
35
23
  }
36
24
  /**
37
25
  * Pan the camera (degrees: -180 to 180)
@@ -1 +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":"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"}
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,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,OAAO,kBAAmB,SAAQ,eAAe;IACrD;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,qBAAqB;QAC/B,oBAAoB;QACpB,GAAG,EAAE,CAAC,CAAC;YACL,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,wCAAwC;SACzC,CAAC;QACF,oBAAoB;QACpB,GAAG,EAAE,CAAC,CAAC;YACL,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,wCAAwC;SACzC,CAAC,CACH,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,OAAe;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;QACtD,YAAY;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,wCAAwC;YACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,CAAA;YACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;YAC9D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QACD,eAAe;QACf,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;YACxD,OAAO,MAAM,CAAC,OAAO,CAAA;QACvB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAA;QACpD,YAAY;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,wCAAwC;YACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC,CAAA;YACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC/D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QACD,eAAe;QACf,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YACzD,OAAO,MAAM,CAAC,OAAO,CAAA;QACvB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,YAAY;QACZ,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,wCAAwC;YACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;YAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACvD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QACD,eAAe;QACf,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;YACjD,OAAO,MAAM,CAAC,OAAO,CAAA;QACvB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;CACF"}
@@ -17,7 +17,7 @@ export declare class WoPlugMiniUS extends DeviceOverrideStateDuringConnection im
17
17
  */
18
18
  toggle(): Promise<boolean>;
19
19
  /**
20
- * Get device status
20
+ * Get device status (BLE-first, API-fallback, centralized)
21
21
  */
22
22
  getStatus(): Promise<PlugStatus>;
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wo-plug-mini-us.d.ts","sourceRoot":"","sources":["../../src/devices/wo-plug-mini-us.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,EAAE,mCAAmC,EAAE,MAAM,8CAA8C,CAAA;AAElG;;GAEG;AACH,qBAAa,YAAa,SAAQ,mCAAoC,YAAW,YAAY;IAC3F;;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,UAAU,CAAC;CAmCvC"}
1
+ {"version":3,"file":"wo-plug-mini-us.d.ts","sourceRoot":"","sources":["../../src/devices/wo-plug-mini-us.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGlE,OAAO,EAAE,mCAAmC,EAAE,MAAM,8CAA8C,CAAA;AAElG;;GAEG;AACH,qBAAa,YAAa,SAAQ,mCAAoC,YAAW,YAAY;IAC3F;;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,UAAU,CAAC;CAyBvC"}
@@ -30,41 +30,31 @@ export class WoPlugMiniUS extends DeviceOverrideStateDuringConnection {
30
30
  return result.success;
31
31
  }
32
32
  /**
33
- * Get device status
33
+ * Get device status (BLE-first, API-fallback, centralized)
34
34
  */
35
35
  async getStatus() {
36
- try {
37
- // Try API first if available
38
- if (this.hasAPI()) {
39
- const apiStatus = await this.getAPIStatus();
40
- return {
41
- deviceId: this.info.id,
42
- connectionType: 'api',
43
- power: apiStatus.power || 'off',
44
- voltage: apiStatus.voltage,
45
- electricCurrent: apiStatus.electricCurrent,
46
- electricityOfDay: apiStatus.electricityOfDay,
47
- version: apiStatus.version,
48
- updatedAt: new Date(),
49
- };
50
- }
51
- // Fallback to BLE
52
- if (this.hasBLE()) {
53
- const bleData = await this.getBLEStatus();
54
- return {
55
- deviceId: this.info.id,
56
- connectionType: 'ble',
57
- power: bleData.state ? 'on' : 'off',
58
- voltage: bleData.voltage,
59
- updatedAt: new Date(),
60
- };
61
- }
62
- throw new Error('No connection method available');
63
- }
64
- catch (error) {
65
- this.logger.error('Failed to get status', error);
66
- throw error;
67
- }
36
+ return this.getStatusWithFallback(
37
+ // BLE normalization
38
+ bleData => ({
39
+ deviceId: this.info.id,
40
+ connectionType: 'ble',
41
+ power: bleData.state ? 'on' : 'off',
42
+ voltage: bleData.voltage,
43
+ electricCurrent: bleData.electricCurrent,
44
+ electricityOfDay: bleData.electricityOfDay,
45
+ updatedAt: new Date(),
46
+ }),
47
+ // API normalization
48
+ apiStatus => ({
49
+ deviceId: this.info.id,
50
+ connectionType: 'api',
51
+ power: apiStatus.power || 'off',
52
+ voltage: apiStatus.voltage,
53
+ electricCurrent: apiStatus.electricCurrent,
54
+ electricityOfDay: apiStatus.electricityOfDay,
55
+ version: apiStatus.version,
56
+ updatedAt: new Date(),
57
+ }));
68
58
  }
69
59
  }
70
60
  //# sourceMappingURL=wo-plug-mini-us.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wo-plug-mini-us.js","sourceRoot":"","sources":["../../src/devices/wo-plug-mini-us.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,mCAAmC,EAAE,MAAM,8CAA8C,CAAA;AAElG;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,mCAAmC;IACnE;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,eAAe,CAAC,IAAI,CAAC,OAAO,EAC5B,QAAQ,CACT,CAAA;QACD,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAC7B,SAAS,CACV,CAAA;QACD,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,eAAe,CAAC,IAAI,CAAC,MAAM,EAC3B,QAAQ,CACT,CAAA;QACD,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,IAAI,CAAC;YACH,6BAA6B;YAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;gBAC3C,OAAO;oBACL,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;oBACtB,cAAc,EAAE,KAAK;oBACrB,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,KAAK;oBAC/B,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,eAAe,EAAE,SAAS,CAAC,eAAe;oBAC1C,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;oBAC5C,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAA;YACH,CAAC;YAED,kBAAkB;YAClB,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;gBACzC,OAAO;oBACL,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;oBACtB,cAAc,EAAE,KAAK;oBACrB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;oBACnC,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAA;YACH,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;YAChD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"wo-plug-mini-us.js","sourceRoot":"","sources":["../../src/devices/wo-plug-mini-us.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,mCAAmC,EAAE,MAAM,8CAA8C,CAAA;AAElG;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,mCAAmC;IACnE;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,eAAe,CAAC,IAAI,CAAC,OAAO,EAC5B,QAAQ,CACT,CAAA;QACD,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAC7B,SAAS,CACV,CAAA;QACD,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CACnC,eAAe,CAAC,IAAI,CAAC,MAAM,EAC3B,QAAQ,CACT,CAAA;QACD,OAAO,MAAM,CAAC,OAAO,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,qBAAqB;QAC/B,oBAAoB;QACpB,OAAO,CAAC,EAAE,CAAC,CAAC;YACV,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,cAAc,EAAE,KAAK;YACrB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;YACnC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;QACF,oBAAoB;QACpB,SAAS,CAAC,EAAE,CAAC,CAAC;YACZ,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,cAAc,EAAE,KAAK;YACrB,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,KAAK;YAC/B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,eAAe,EAAE,SAAS,CAAC,eAAe;YAC1C,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;YAC5C,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
@@ -5,7 +5,7 @@ import { SwitchBotDevice } from './base.js';
5
5
  */
6
6
  export declare class WoPresence extends SwitchBotDevice {
7
7
  /**
8
- * Get device status
8
+ * Get device status (BLE-first, API-fallback)
9
9
  */
10
10
  getStatus(): Promise<MotionStatus>;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wo-presence.d.ts","sourceRoot":"","sources":["../../src/devices/wo-presence.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAAe;IAC7C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;CAmCzC"}
1
+ {"version":3,"file":"wo-presence.d.ts","sourceRoot":"","sources":["../../src/devices/wo-presence.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAAe;IAC7C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;CAqBzC"}