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

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 (286) 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/switchbot.d.ts +1 -0
  111. package/dist/switchbot.d.ts.map +1 -1
  112. package/dist/switchbot.js +43 -30
  113. package/dist/switchbot.js.map +1 -1
  114. package/dist/types/index.d.ts +18 -0
  115. package/dist/types/index.d.ts.map +1 -1
  116. package/dist/types/index.js.map +1 -1
  117. package/dist/utils/index.d.ts +6 -1
  118. package/dist/utils/index.d.ts.map +1 -1
  119. package/dist/utils/index.js +23 -0
  120. package/dist/utils/index.js.map +1 -1
  121. package/docs/assets/hierarchy.js +1 -1
  122. package/docs/assets/highlight.css +7 -0
  123. package/docs/assets/search.js +1 -1
  124. package/docs/classes/APIError.html +2 -2
  125. package/docs/classes/APINotAvailableError.html +2 -2
  126. package/docs/classes/BLEConnection.html +10 -10
  127. package/docs/classes/BLENotAvailableError.html +2 -2
  128. package/docs/classes/BLEScanner.html +9 -9
  129. package/docs/classes/CommandFailedError.html +2 -2
  130. package/docs/classes/ConnectionTimeoutError.html +2 -2
  131. package/docs/classes/DeviceManager.html +13 -13
  132. package/docs/classes/DeviceNotFoundError.html +2 -2
  133. package/docs/classes/DeviceOverrideStateDuringConnection.html +33 -34
  134. package/docs/classes/DiscoveryError.html +2 -2
  135. package/docs/classes/OpenAPIClient.html +24 -24
  136. package/docs/classes/SequenceDevice.html +42 -35
  137. package/docs/classes/SwitchBot.html +11 -11
  138. package/docs/classes/SwitchBotDevice.html +68 -36
  139. package/docs/classes/SwitchBotError.html +2 -2
  140. package/docs/classes/ValidationError.html +2 -2
  141. package/docs/classes/WoAIHub.html +69 -36
  142. package/docs/classes/WoAirPurifier.html +40 -40
  143. package/docs/classes/WoAirPurifierPM25.html +73 -40
  144. package/docs/classes/WoAirPurifierTable.html +40 -40
  145. package/docs/classes/WoArtFrame.html +43 -43
  146. package/docs/classes/WoBlindTilt.html +35 -42
  147. package/docs/classes/WoBulb.html +43 -43
  148. package/docs/classes/WoCandleWarmerLamp.html +72 -39
  149. package/docs/classes/WoCeilingLight.html +43 -43
  150. package/docs/classes/WoCirculatorFan.html +40 -40
  151. package/docs/classes/WoClimatePanel.html +40 -40
  152. package/docs/classes/WoContact.html +34 -34
  153. package/docs/classes/WoCurtain.html +39 -40
  154. package/docs/classes/WoFloorLamp.html +43 -43
  155. package/docs/classes/WoGarageDoorOpener.html +39 -39
  156. package/docs/classes/WoHand.html +43 -43
  157. package/docs/classes/WoHub2.html +34 -34
  158. package/docs/classes/WoHub3.html +34 -34
  159. package/docs/classes/WoHubMiniMatter.html +34 -34
  160. package/docs/classes/WoHumi.html +41 -41
  161. package/docs/classes/WoHumi2.html +41 -41
  162. package/docs/classes/WoIOSensorTH.html +34 -34
  163. package/docs/classes/WoKeypad.html +34 -34
  164. package/docs/classes/WoKeypadVision.html +34 -34
  165. package/docs/classes/WoKeypadVisionPro.html +34 -34
  166. package/docs/classes/WoLeak.html +34 -34
  167. package/docs/classes/WoPanTiltCamPlus3K.html +72 -39
  168. package/docs/classes/WoPlugMiniJP.html +37 -37
  169. package/docs/classes/WoPlugMiniUS.html +37 -37
  170. package/docs/classes/WoPresence.html +34 -34
  171. package/docs/classes/WoRGBICBulb.html +45 -45
  172. package/docs/classes/WoRGBICNeonWireRopeLight.html +74 -41
  173. package/docs/classes/WoRGBICWWFloorLamp.html +45 -45
  174. package/docs/classes/WoRGBICWWStripLight.html +45 -45
  175. package/docs/classes/WoRelaySwitch1.html +39 -39
  176. package/docs/classes/WoRelaySwitch1PM.html +39 -39
  177. package/docs/classes/WoRelaySwitch2PM.html +41 -41
  178. package/docs/classes/WoRemote.html +34 -34
  179. package/docs/classes/WoRemoteWithScreen.html +69 -36
  180. package/docs/classes/WoRollerShade.html +39 -40
  181. package/docs/classes/WoSensorTH.html +34 -34
  182. package/docs/classes/WoSensorTHPlus.html +34 -34
  183. package/docs/classes/WoSensorTHPro.html +34 -34
  184. package/docs/classes/WoSensorTHProCO2.html +34 -34
  185. package/docs/classes/WoSmartLock.html +37 -37
  186. package/docs/classes/WoSmartLockLite.html +37 -37
  187. package/docs/classes/WoSmartLockPro.html +39 -39
  188. package/docs/classes/WoSmartLockProWiFi.html +39 -39
  189. package/docs/classes/WoSmartLockVision.html +37 -37
  190. package/docs/classes/WoSmartLockVisionPro.html +39 -39
  191. package/docs/classes/WoSmartThermostatRadiator.html +40 -40
  192. package/docs/classes/WoStrip.html +43 -43
  193. package/docs/classes/WoStripLight3.html +43 -43
  194. package/docs/classes/WoVacuum.html +42 -42
  195. package/docs/classes/WoVacuumK10Plus.html +42 -42
  196. package/docs/classes/WoVacuumK10Pro.html +42 -42
  197. package/docs/classes/WoVacuumK10ProCombo.html +42 -42
  198. package/docs/classes/WoVacuumK11Plus.html +42 -42
  199. package/docs/classes/WoVacuumK20.html +42 -42
  200. package/docs/classes/WoVacuumS10.html +42 -42
  201. package/docs/classes/WoVacuumS20.html +42 -42
  202. package/docs/classes/WoWaterDetector.html +69 -36
  203. package/docs/enums/LogLevel.html +2 -2
  204. package/docs/enums/SwitchBotBLEModel.html +2 -2
  205. package/docs/enums/SwitchBotBLEModelName.html +2 -2
  206. package/docs/functions/updateBaseURL.html +1 -1
  207. package/docs/hierarchy.html +1 -1
  208. package/docs/interfaces/APICommandRequest.html +2 -2
  209. package/docs/interfaces/APICommandResponse.html +2 -2
  210. package/docs/interfaces/APIDevice.html +2 -2
  211. package/docs/interfaces/APIDeviceStatus.html +2 -2
  212. package/docs/interfaces/APIErrorResponse.html +2 -2
  213. package/docs/interfaces/APIResponse.html +2 -2
  214. package/docs/interfaces/AirPurifierCommands.html +2 -2
  215. package/docs/interfaces/AirPurifierServiceData.html +14 -14
  216. package/docs/interfaces/AirPurifierStatus.html +7 -7
  217. package/docs/interfaces/BLEAdvertisement.html +5 -5
  218. package/docs/interfaces/BLEScanOptions.html +5 -5
  219. package/docs/interfaces/BLEServiceData.html +14 -14
  220. package/docs/interfaces/BlindTiltCommands.html +2 -2
  221. package/docs/interfaces/BlindTiltServiceData.html +14 -14
  222. package/docs/interfaces/BlindTiltStatus.html +6 -6
  223. package/docs/interfaces/BotCommands.html +2 -2
  224. package/docs/interfaces/BotServiceData.html +14 -14
  225. package/docs/interfaces/BotStatus.html +6 -6
  226. package/docs/interfaces/BulbCommands.html +2 -2
  227. package/docs/interfaces/BulbServiceData.html +14 -14
  228. package/docs/interfaces/BulbStatus.html +6 -6
  229. package/docs/interfaces/CeilingLightCommands.html +2 -2
  230. package/docs/interfaces/CeilingLightServiceData.html +14 -14
  231. package/docs/interfaces/CeilingLightStatus.html +6 -6
  232. package/docs/interfaces/CommandResult.html +6 -6
  233. package/docs/interfaces/ContactServiceData.html +14 -14
  234. package/docs/interfaces/ContactStatus.html +6 -6
  235. package/docs/interfaces/CurtainCommands.html +2 -2
  236. package/docs/interfaces/CurtainExtendedInfo.html +2 -2
  237. package/docs/interfaces/CurtainServiceData.html +14 -14
  238. package/docs/interfaces/CurtainStatus.html +6 -6
  239. package/docs/interfaces/DeviceInfo.html +18 -18
  240. package/docs/interfaces/DeviceListResponse.html +2 -2
  241. package/docs/interfaces/DeviceStatus.html +6 -6
  242. package/docs/interfaces/DiscoveryOptions.html +7 -7
  243. package/docs/interfaces/HubServiceData.html +14 -14
  244. package/docs/interfaces/HubStatus.html +6 -6
  245. package/docs/interfaces/HumidifierCommands.html +2 -2
  246. package/docs/interfaces/HumidifierServiceData.html +15 -15
  247. package/docs/interfaces/HumidifierStatus.html +6 -6
  248. package/docs/interfaces/KeypadStatus.html +6 -6
  249. package/docs/interfaces/LeakServiceData.html +14 -14
  250. package/docs/interfaces/LeakStatus.html +6 -6
  251. package/docs/interfaces/LockCommands.html +2 -2
  252. package/docs/interfaces/LockServiceData.html +15 -15
  253. package/docs/interfaces/LockStatus.html +6 -6
  254. package/docs/interfaces/MeterServiceData.html +14 -14
  255. package/docs/interfaces/MeterStatus.html +6 -6
  256. package/docs/interfaces/MotionServiceData.html +14 -14
  257. package/docs/interfaces/MotionStatus.html +6 -6
  258. package/docs/interfaces/PlugCommands.html +2 -2
  259. package/docs/interfaces/PlugServiceData.html +14 -14
  260. package/docs/interfaces/PlugStatus.html +6 -6
  261. package/docs/interfaces/PresenceServiceData.html +14 -14
  262. package/docs/interfaces/PresenceStatus.html +6 -6
  263. package/docs/interfaces/RelaySwitchCommands.html +2 -2
  264. package/docs/interfaces/RelaySwitchServiceData.html +14 -14
  265. package/docs/interfaces/RelaySwitchStatus.html +6 -6
  266. package/docs/interfaces/RemoteStatus.html +6 -6
  267. package/docs/interfaces/SceneListResponse.html +2 -2
  268. package/docs/interfaces/StripCommands.html +2 -2
  269. package/docs/interfaces/StripServiceData.html +14 -14
  270. package/docs/interfaces/StripStatus.html +6 -6
  271. package/docs/interfaces/SwitchBotConfig.html +25 -16
  272. package/docs/interfaces/VacuumCommands.html +2 -2
  273. package/docs/interfaces/VacuumStatus.html +6 -6
  274. package/docs/interfaces/WebhookConfig.html +2 -2
  275. package/docs/interfaces/WebhookDetails.html +2 -2
  276. package/docs/interfaces/WebhookQueryResponse.html +2 -2
  277. package/docs/interfaces/WebhookSetupResponse.html +2 -2
  278. package/docs/types/ConnectionType.html +1 -1
  279. package/docs/types/PhysicalDeviceType.html +1 -1
  280. package/docs/types/VirtualDeviceType.html +1 -1
  281. package/docs/variables/urls.html +1 -1
  282. package/package.json +3 -4
  283. package/todo/todo.md +14 -10
  284. package/todo/PYSWITCHBOT_COMPARISON.md +0 -479
  285. package/todo/README.md +0 -68
  286. package/todo/completed.md +0 -549
@@ -8,41 +8,25 @@ import { SwitchBotDevice } from './base.js';
8
8
  */
9
9
  export class WoPresence 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
- moveDetected: apiStatus.moveDetected || false,
22
- brightness: apiStatus.brightness,
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
- moveDetected: bleData.movement || false,
35
- brightness: bleData.lightLevel,
36
- battery: bleData.battery,
37
- updatedAt: new Date(),
38
- };
39
- }
40
- throw new Error('No connection method available');
41
- }
42
- catch (error) {
43
- this.logger.error('Failed to get status', error);
44
- throw error;
45
- }
14
+ return this.getStatusWithFallback(bleData => ({
15
+ deviceId: this.info.id,
16
+ connectionType: 'ble',
17
+ moveDetected: bleData.movement || false,
18
+ brightness: bleData.lightLevel,
19
+ battery: bleData.battery,
20
+ updatedAt: new Date(),
21
+ }), apiStatus => ({
22
+ deviceId: this.info.id,
23
+ connectionType: 'api',
24
+ moveDetected: apiStatus.moveDetected || false,
25
+ brightness: apiStatus.brightness,
26
+ battery: apiStatus.battery,
27
+ version: apiStatus.version,
28
+ updatedAt: new Date(),
29
+ }));
46
30
  }
47
31
  }
48
32
  //# sourceMappingURL=wo-presence.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wo-presence.js","sourceRoot":"","sources":["../../src/devices/wo-presence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C;;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,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,KAAK;oBAC7C,UAAU,EAAE,SAAS,CAAC,UAAU;oBAChC,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,YAAY,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;oBACvC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,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-presence.js","sourceRoot":"","sources":["../../src/devices/wo-presence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C;;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,YAAY,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;YACvC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,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,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,KAAK;YAC7C,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
@@ -33,7 +33,7 @@ export declare class WoRelaySwitch1 extends SequenceDevice implements RelaySwitc
33
33
  */
34
34
  toggle(): Promise<boolean>;
35
35
  /**
36
- * Get device status
36
+ * Get device status (BLE-first, API-fallback)
37
37
  */
38
38
  getStatus(): Promise<RelaySwitchStatus>;
39
39
  }
@@ -1 +1 @@
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
+ {"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;CAuB9C"}
@@ -92,48 +92,27 @@ export class WoRelaySwitch1 extends SequenceDevice {
92
92
  return result.success;
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
- power: apiStatus.power || 'off',
106
- voltage: apiStatus.voltage,
107
- electricCurrent: apiStatus.electricCurrent,
108
- electricityOfDay: apiStatus.electricityOfDay,
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
- const power = await this.getRelayPowerMonitoring().catch(() => ({
117
- voltage: undefined,
118
- electricCurrent: undefined,
119
- electricityOfDay: undefined,
120
- }));
121
- return {
122
- deviceId: this.info.id,
123
- connectionType: 'ble',
124
- power: bleData.state ? 'on' : 'off',
125
- voltage: power.voltage ?? bleData.voltage,
126
- electricCurrent: power.electricCurrent,
127
- electricityOfDay: power.electricityOfDay,
128
- updatedAt: new Date(),
129
- };
130
- }
131
- throw new Error('No connection method available');
132
- }
133
- catch (error) {
134
- this.logger.error('Failed to get status', error);
135
- throw error;
136
- }
98
+ return this.getStatusWithFallback(bleData => ({
99
+ deviceId: this.info.id,
100
+ connectionType: 'ble',
101
+ power: bleData.state ? 'on' : 'off',
102
+ voltage: bleData.voltage,
103
+ electricCurrent: bleData.electricCurrent,
104
+ electricityOfDay: bleData.electricityOfDay,
105
+ updatedAt: new Date(),
106
+ }), apiStatus => ({
107
+ deviceId: this.info.id,
108
+ connectionType: 'api',
109
+ power: apiStatus.power || 'off',
110
+ voltage: apiStatus.voltage,
111
+ electricCurrent: apiStatus.electricCurrent,
112
+ electricityOfDay: apiStatus.electricityOfDay,
113
+ version: apiStatus.version,
114
+ updatedAt: new Date(),
115
+ }));
137
116
  }
138
117
  }
139
118
  //# sourceMappingURL=wo-relay-switch-1.js.map
@@ -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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"}
@@ -2,7 +2,7 @@ import type { DeviceStatus } from '../types/index.js';
2
2
  import { SwitchBotDevice } from './base.js';
3
3
  export declare class WoRemoteWithScreen extends SwitchBotDevice {
4
4
  /**
5
- * Get device status (BLE first, then API)
5
+ * Get device status (BLE-first, API-fallback)
6
6
  */
7
7
  getStatus(): Promise<DeviceStatus>;
8
8
  }
@@ -1 +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;IACrD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;CA+BzC"}
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;IACrD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;CAkBzC"}
@@ -1,38 +1,22 @@
1
1
  import { SwitchBotDevice } from './base.js';
2
2
  export class WoRemoteWithScreen extends SwitchBotDevice {
3
3
  /**
4
- * Get device status (BLE first, then API)
4
+ * Get device status (BLE-first, API-fallback)
5
5
  */
6
6
  async getStatus() {
7
- try {
8
- // Try BLE first
9
- if (this.hasBLE()) {
10
- const bleData = await this.getBLEStatus();
11
- return {
12
- deviceId: this.info.id,
13
- connectionType: 'ble',
14
- updatedAt: new Date(),
15
- battery: bleData.battery,
16
- version: bleData.version,
17
- };
18
- }
19
- // Fallback to API
20
- if (this.hasAPI()) {
21
- const apiStatus = await this.getAPIStatus();
22
- return {
23
- deviceId: this.info.id,
24
- connectionType: 'api',
25
- updatedAt: new Date(),
26
- battery: apiStatus.battery,
27
- version: apiStatus.version,
28
- };
29
- }
30
- throw new Error('No connection method available');
31
- }
32
- catch (error) {
33
- this.logger?.error?.('Failed to get status', error);
34
- throw error;
35
- }
7
+ return this.getStatusWithFallback(bleData => ({
8
+ deviceId: this.info.id,
9
+ connectionType: 'ble',
10
+ updatedAt: new Date(),
11
+ battery: bleData.battery,
12
+ version: bleData.version,
13
+ }), apiStatus => ({
14
+ deviceId: this.info.id,
15
+ connectionType: 'api',
16
+ updatedAt: new Date(),
17
+ battery: apiStatus.battery,
18
+ version: apiStatus.version,
19
+ }));
36
20
  }
37
21
  }
38
22
  //# sourceMappingURL=wo-remote-with-screen.js.map
@@ -1 +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;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,IAAI,CAAC;YACH,gBAAgB;YAChB,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,SAAS,EAAE,IAAI,IAAI,EAAE;oBACrB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAA;YACH,CAAC;YAED,kBAAkB;YAClB,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,IAAI,IAAI,EAAE;oBACrB,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;iBAC3B,CAAA;YACH,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;YACnD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF"}
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;;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,IAAI,IAAI,EAAE;YACrB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,EACF,SAAS,CAAC,EAAE,CAAC,CAAC;YACZ,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,cAAc,EAAE,KAAK;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;SAC3B,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
@@ -6,7 +6,7 @@ import { SwitchBotDevice } from './base.js';
6
6
  */
7
7
  export declare class WoRemote extends SwitchBotDevice {
8
8
  /**
9
- * Get device status
9
+ * Get device status (BLE-first, API-fallback)
10
10
  */
11
11
  getStatus(): Promise<RemoteStatus>;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wo-remote.d.ts","sourceRoot":"","sources":["../../src/devices/wo-remote.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;CA+BzC"}
1
+ {"version":3,"file":"wo-remote.d.ts","sourceRoot":"","sources":["../../src/devices/wo-remote.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;CAiBzC"}
@@ -9,37 +9,21 @@ import { SwitchBotDevice } from './base.js';
9
9
  */
10
10
  export class WoRemote 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
- 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
- battery: bleData.battery,
34
- updatedAt: new Date(),
35
- };
36
- }
37
- throw new Error('No connection method available');
38
- }
39
- catch (error) {
40
- this.logger.error('Failed to get status', error);
41
- throw error;
42
- }
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
+ battery: apiStatus.battery,
24
+ version: apiStatus.version,
25
+ updatedAt: new Date(),
26
+ }));
43
27
  }
44
28
  }
45
29
  //# sourceMappingURL=wo-remote.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wo-remote.js","sourceRoot":"","sources":["../../src/devices/wo-remote.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,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-remote.js","sourceRoot":"","sources":["../../src/devices/wo-remote.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,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
@@ -22,7 +22,7 @@ export declare class WoRGBICBulb extends WoBulb implements RGBICBulbCommands {
22
22
  */
23
23
  setSegmentEffect(segmentId: number, effectName: string, speed?: number): Promise<boolean>;
24
24
  /**
25
- * Get device status (inherited from WoBulb)
25
+ * Get device status (inherited from WoBulb, centralized fallback)
26
26
  */
27
27
  getStatus(): Promise<RGBICBulbStatus>;
28
28
  }
@@ -75,7 +75,7 @@ export class WoRGBICBulb extends WoBulb {
75
75
  return result.success;
76
76
  }
77
77
  /**
78
- * Get device status (inherited from WoBulb)
78
+ * Get device status (inherited from WoBulb, centralized fallback)
79
79
  */
80
80
  async getStatus() {
81
81
  return super.getStatus();
@@ -2,7 +2,7 @@ import type { RGBICBulbStatus } from '../types/device.js';
2
2
  import { SwitchBotDevice } from './base.js';
3
3
  export declare class WoRGBICNeonWireRopeLight 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<RGBICBulbStatus>;
8
8
  /**
@@ -1 +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,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,qBAAa,wBAAyB,SAAQ,eAAe;IAC3D;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAmC3C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAehC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAejC;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBpD;;OAEG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe1E;;OAEG;IACG,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAcjE"}
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,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,qBAAa,wBAAyB,SAAQ,eAAe;IAC3D;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAuB3C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAehC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAejC;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBpD;;OAEG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe1E;;OAEG;IACG,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAcjE"}
@@ -2,42 +2,26 @@ import { Buffer } from 'node:buffer';
2
2
  import { SwitchBotDevice } from './base.js';
3
3
  export class WoRGBICNeonWireRopeLight 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
- // BLE first
10
- if (this.hasBLE()) {
11
- const bleData = await this.getBLEStatus();
12
- return {
13
- deviceId: this.info.id,
14
- connectionType: 'ble',
15
- updatedAt: new Date(),
16
- power: bleData.state ? 'on' : 'off',
17
- brightness: bleData.brightness,
18
- colorTemperature: bleData.colorTemperature,
19
- color: bleData.red !== undefined ? { r: bleData.red, g: bleData.green, b: bleData.blue } : undefined,
20
- };
21
- }
22
- // API fallback
23
- if (this.hasAPI()) {
24
- const apiStatus = await this.getAPIStatus();
25
- return {
26
- deviceId: this.info.id,
27
- connectionType: 'api',
28
- updatedAt: new Date(),
29
- power: apiStatus.power,
30
- brightness: apiStatus.brightness,
31
- colorTemperature: apiStatus.colorTemperature,
32
- color: apiStatus.color,
33
- };
34
- }
35
- throw new Error('No connection method available');
36
- }
37
- catch (error) {
38
- this.logger?.error?.('Failed to get status', error);
39
- throw error;
40
- }
8
+ return this.getStatusWithFallback(bleData => ({
9
+ deviceId: this.info.id,
10
+ connectionType: 'ble',
11
+ updatedAt: new Date(),
12
+ power: bleData.state ? 'on' : 'off',
13
+ brightness: bleData.brightness,
14
+ colorTemperature: bleData.colorTemperature,
15
+ color: bleData.red !== undefined ? { r: bleData.red, g: bleData.green, b: bleData.blue } : undefined,
16
+ }), apiStatus => ({
17
+ deviceId: this.info.id,
18
+ connectionType: 'api',
19
+ updatedAt: new Date(),
20
+ power: apiStatus.power,
21
+ brightness: apiStatus.brightness,
22
+ colorTemperature: apiStatus.colorTemperature,
23
+ color: apiStatus.color,
24
+ }));
41
25
  }
42
26
  /**
43
27
  * Turn on the neon wire rope light
@@ -1 +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":"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"}
1
+ {"version":3,"file":"wo-rgbic-neon-wire-rope-light.js","sourceRoot":"","sources":["../../src/devices/wo-rgbic-neon-wire-rope-light.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { SwitchBotDevice } from './base.js';
5
5
  */
6
6
  export declare class WoSensorTH extends SwitchBotDevice {
7
7
  /**
8
- * Get device status
8
+ * Get device status (BLE-first, API-fallback)
9
9
  */
10
10
  getStatus(): Promise<MeterStatus>;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wo-sensor-th.d.ts","sourceRoot":"","sources":["../../src/devices/wo-sensor-th.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAAe;IAC7C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC;CAoCxC"}
1
+ {"version":3,"file":"wo-sensor-th.d.ts","sourceRoot":"","sources":["../../src/devices/wo-sensor-th.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAAe;IAC7C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC;CAsBxC"}
@@ -8,42 +8,26 @@ import { SwitchBotDevice } from './base.js';
8
8
  */
9
9
  export class WoSensorTH 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
- temperature: apiStatus.temperature || 0,
22
- humidity: apiStatus.humidity || 0,
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
- temperature: bleData.temperature || 0,
35
- humidity: bleData.humidity || 0,
36
- temperatureScale: bleData.fahrenheit ? 'f' : 'c',
37
- battery: bleData.battery,
38
- updatedAt: new Date(),
39
- };
40
- }
41
- throw new Error('No connection method available');
42
- }
43
- catch (error) {
44
- this.logger.error('Failed to get status', error);
45
- throw error;
46
- }
14
+ return this.getStatusWithFallback(bleData => ({
15
+ deviceId: this.info.id,
16
+ connectionType: 'ble',
17
+ temperature: bleData.temperature || 0,
18
+ humidity: bleData.humidity || 0,
19
+ temperatureScale: bleData.fahrenheit ? 'f' : 'c',
20
+ battery: bleData.battery,
21
+ updatedAt: new Date(),
22
+ }), apiStatus => ({
23
+ deviceId: this.info.id,
24
+ connectionType: 'api',
25
+ temperature: apiStatus.temperature || 0,
26
+ humidity: apiStatus.humidity || 0,
27
+ battery: apiStatus.battery,
28
+ version: apiStatus.version,
29
+ updatedAt: new Date(),
30
+ }));
47
31
  }
48
32
  }
49
33
  //# sourceMappingURL=wo-sensor-th.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wo-sensor-th.js","sourceRoot":"","sources":["../../src/devices/wo-sensor-th.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C;;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,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,CAAC;oBACvC,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,CAAC;oBACjC,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,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC;oBACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;oBAC/B,gBAAgB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;oBAChD,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-sensor-th.js","sourceRoot":"","sources":["../../src/devices/wo-sensor-th.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C;;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,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC;YACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,CAAC;YAC/B,gBAAgB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YAChD,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,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,CAAC;YACvC,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,CAAC;YACjC,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,11 +5,11 @@ import { SequenceDevice } from './sequence-device.js';
5
5
  */
6
6
  export declare class WoVacuum extends SequenceDevice implements VacuumCommands {
7
7
  /**
8
- * Start cleaning
8
+ * Start cleaning (BLE-first, API-fallback)
9
9
  */
10
10
  cleanUp(protocolVersion: number): Promise<boolean>;
11
11
  /**
12
- * Return to dock
12
+ * Return to dock (BLE-first, API-fallback)
13
13
  */
14
14
  returnToDock(protocolVersion: number): Promise<boolean>;
15
15
  /**
@@ -33,7 +33,7 @@ export declare class WoVacuum extends SequenceDevice implements VacuumCommands {
33
33
  */
34
34
  getNetworkConnectedStatus(): boolean | undefined;
35
35
  /**
36
- * Get device status
36
+ * Get device status (BLE-first/API-fallback, centralized)
37
37
  */
38
38
  getStatus(): Promise<VacuumStatus>;
39
39
  private getCommandForProtocol;
@@ -1 +1 @@
1
- {"version":3,"file":"wo-vacuum.d.ts","sourceRoot":"","sources":["../../src/devices/wo-vacuum.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;GAEG;AACH,qBAAa,QAAS,SAAQ,cAAe,YAAW,cAAc;IACpE;;OAEG;IACG,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMxD;;OAEG;IACG,YAAY,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM7D;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,SAAS;IAKhC;;OAEG;IACH,aAAa,IAAI,MAAM,GAAG,SAAS;IAKnC;;OAEG;IACH,qBAAqB,IAAI,OAAO,GAAG,SAAS;IAK5C;;OAEG;IACH,yBAAyB,IAAI,OAAO,GAAG,SAAS;IAKhD;;OAEG;IACH,yBAAyB,IAAI,OAAO,GAAG,SAAS;IAKhD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAsCxC,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,SAAS;CAGlB"}
1
+ {"version":3,"file":"wo-vacuum.d.ts","sourceRoot":"","sources":["../../src/devices/wo-vacuum.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAGtE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;GAEG;AACH,qBAAa,QAAS,SAAQ,cAAe,YAAW,cAAc;IACpE;;OAEG;IACG,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBxD;;OAEG;IACG,YAAY,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB7D;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,SAAS;IAKhC;;OAEG;IACH,aAAa,IAAI,MAAM,GAAG,SAAS;IAKnC;;OAEG;IACH,qBAAqB,IAAI,OAAO,GAAG,SAAS;IAK5C;;OAEG;IACH,yBAAyB,IAAI,OAAO,GAAG,SAAS;IAKhD;;OAEG;IACH,yBAAyB,IAAI,OAAO,GAAG,SAAS;IAKhD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IA0BxC,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,SAAS;CAGlB"}