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
@@ -8,7 +8,53 @@ import { CircuitBreaker, ConnectionTracker, FallbackHandlerManager, Logger, Retr
8
8
  export declare const PASSIVE_POLL_INTERVAL: number;
9
9
  /**
10
10
  * Base class for all SwitchBot devices
11
- * Provides hybrid BLE/API functionality with automatic fallback, circuit breaker, and connection intelligence
11
+ *
12
+ * ## BLE-first, API-fallback Logic
13
+ *
14
+ * This class provides a centralized, robust hybrid connection strategy for all SwitchBot devices:
15
+ *
16
+ * - **BLE-first, API-fallback**: By default, status and command methods attempt BLE first (if available), then fall back to OpenAPI if BLE fails or is unavailable. This is controlled by `preferredConnection` and `enableFallback`.
17
+ * - **Centralized Fallback**: The `getStatusWithFallback()` and `sendCommand()` methods implement this logic. Device subclasses should call these methods and provide normalization/mapping as needed.
18
+ * - **Connection Intelligence**: Tracks connection health and performance, automatically preferring the most reliable connection if enabled.
19
+ * - **Circuit Breaker & Retry**: Both BLE and API commands are protected by circuit breaker and retry logic to handle transient failures gracefully.
20
+ *
21
+ * ### Usage in Subclasses
22
+ *
23
+ * - For status: Call `await this.getStatusWithFallback(normalizeBLE, normalizeAPI)` in your `getStatus()` implementation.
24
+ * - For commands: Use `await this.sendCommand(bleCommand, apiCommand, apiParameter)` to automatically select the best connection and handle fallback.
25
+ * - For custom logic: You may override or extend these methods, but should preserve the fallback and error-handling patterns for consistency.
26
+ *
27
+ * ### Example (in a device subclass)
28
+ *
29
+ * ```typescript
30
+ * async getStatus(): Promise<DeviceStatus> {
31
+ * return this.getStatusWithFallback(
32
+ * bleData => ({ ... }), // normalize BLE data
33
+ * apiData => ({ ... }), // normalize API data
34
+ * )
35
+ * }
36
+ *
37
+ * async turnOn(): Promise<boolean> {
38
+ * const result = await this.sendCommand([0x57, 0x01, 0x01], 'turnOn')
39
+ * return result.success
40
+ * }
41
+ * ```
42
+ *
43
+ * ### Configuration
44
+ *
45
+ * - `preferredConnection`: 'ble' | 'api' (default: 'ble')
46
+ * - `enableFallback`: boolean (default: true)
47
+ * - `enableConnectionIntelligence`: boolean (default: true)
48
+ * - `enableCircuitBreaker`: boolean (default: true)
49
+ * - `enableRetry`: boolean (default: true)
50
+ *
51
+ * ### See Also
52
+ * - `getStatusWithFallback()`
53
+ * - `sendCommand()`
54
+ * - `hasBLE()`, `hasAPI()`
55
+ * - `setPreferredConnection()`, `setFallbackEnabled()`
56
+ *
57
+ * This pattern ensures all device classes benefit from robust, testable, and consistent connection logic.
12
58
  */
13
59
  export declare abstract class SwitchBotDevice extends EventEmitter {
14
60
  protected info: DeviceInfo;
@@ -113,6 +159,11 @@ export declare abstract class SwitchBotDevice extends EventEmitter {
113
159
  /**
114
160
  * Get device status (abstract - implemented by subclasses)
115
161
  */
162
+ /**
163
+ * Get device status with BLE-first/API-fallback logic (centralized)
164
+ * Subclasses should call this and map/normalize fields as needed.
165
+ */
166
+ protected getStatusWithFallback<TStatus = DeviceStatus>(normalizeBLE?: (bleData: any) => TStatus, normalizeAPI?: (apiData: any) => TStatus): Promise<TStatus>;
116
167
  abstract getStatus(): Promise<DeviceStatus>;
117
168
  /**
118
169
  * Send a command via BLE with circuit breaker and retry logic
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/devices/base.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChG,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEnH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK1C,OAAO,EACL,cAAc,EAGd,iBAAiB,EAEjB,sBAAsB,EAEtB,MAAM,EAEN,aAAa,EACd,MAAM,mBAAmB,CAAA;AAE1B,eAAO,MAAM,qBAAqB,QAAsB,CAAA;AAExD;;;GAGG;AACH,8BAAsB,eAAgB,SAAQ,YAAY;IA0CtD,SAAS,CAAC,IAAI,EAAE,UAAU;IAzC5B,SAAS,CAAC,MAAM,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,aAAa,CAAC,EAAE,aAAa,CAAA;IACvC,SAAS,CAAC,SAAS,CAAC,EAAE,aAAa,CAAA;IACnC,SAAS,CAAC,cAAc,EAAE,OAAO,CAAA;IACjC,SAAS,CAAC,mBAAmB,EAAE,cAAc,CAAA;IAG7C,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,CAAA;IAC9C,SAAS,CAAC,iBAAiB,EAAE,cAAc,CAAA;IAC3C,SAAS,CAAC,iBAAiB,EAAE,cAAc,CAAA;IAC3C,SAAS,CAAC,sBAAsB,EAAE,sBAAsB,CAAA;IACxD,SAAS,CAAC,aAAa,EAAE,aAAa,CAAA;IACtC,SAAS,CAAC,4BAA4B,EAAE,OAAO,CAAA;IAC/C,SAAS,CAAC,oBAAoB,EAAE,OAAO,CAAA;IACvC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAA;IAC9B,OAAO,CAAC,iBAAiB,CAAmC;IAG5D,OAAO,CAAC,YAAY,CAAC,CAAQ;IAE7B,OAAO,CAAC,6BAA6B;gBAqBzB,IAAI,EAAE,UAAU,EAC1B,OAAO,GAAE;QACP,aAAa,CAAC,EAAE,aAAa,CAAA;QAC7B,SAAS,CAAC,EAAE,aAAa,CAAA;QACzB,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,mBAAmB,CAAC,EAAE,cAAc,CAAA;QACpC,4BAA4B,CAAC,EAAE,OAAO,CAAA;QACtC,oBAAoB,CAAC,EAAE,OAAO,CAAA;QAC9B,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB,WAAW,CAAC,EAAE,WAAW,CAAA;QACzB,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAA;KACb;IA+BR;;;OAGG;IACG,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBpF;;;OAGG;IACG,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBrF;;OAEG;IACH,UAAU,CAAC,QAAQ,GAAE,MAA8B,GAAG,OAAO;IAO7D;;OAEG;IACG,YAAY,CAAC,QAAQ,GAAE,MAA8B,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAS/F;;OAEG;IACH,OAAO,IAAI,UAAU;IAIrB;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,IAAI,EAAE,IAAI,MAAM,GAAG,SAAS,CAE3B;IAED;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;OAEG;IACH,MAAM,IAAI,MAAM,GAAG,SAAS;IAI5B;;OAEG;IACH,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAED;;OAEG;IACH,mBAAmB,IAAI,cAAc,GAAG,SAAS;IAIjD;;OAEG;IACH,IAAI,gBAAgB,IAAI,cAAc,GAAG,SAAS,CAEjD;IAED;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAE3C;;OAEG;cACa,cAAc,CAC5B,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,GAC7C,OAAO,CAAC,aAAa,CAAC;IAqGzB;;OAEG;cACa,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC;IA8ExF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;cACa,WAAW,CACzB,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EACjD,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,GAAG,GACjB,OAAO,CAAC,aAAa,CAAC;IA8EzB;;OAEG;cACa,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC;IAmC5C,SAAS,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;YAQtD,cAAc;IAe5B;;OAEG;cACa,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC;IAmC5C;;;;;;;;;;OAUG;IACG,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC;IAY5C;;;;;;;;;;;OAWG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAc5D;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAK9C;;OAEG;IACH,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAKlD;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAK1C;;OAEG;IACH,gCAAgC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKxD;;OAEG;IACH,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKhD;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKvC;;OAEG;IACH,oBAAoB,IAAI,iBAAiB;IAIzC;;OAEG;IACH,oBAAoB;IAIpB;;OAEG;IACH,oBAAoB;IAIpB;;OAEG;IACH,uBAAuB,CACrB,OAAO,EAAE,eAAe,EACxB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,MAAM;IAIT;;OAEG;IACH,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI9C;;OAEG;IACH,yBAAyB,IAAI,sBAAsB;CAGpD;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,MAAM,CAAQ;gBAEV,QAAQ,CAAC,EAAE,MAAM;IAK7B;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAYlC;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAajC;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIlD;;OAEG;IACH,IAAI,IAAI,eAAe,EAAE;IAIzB;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,EAAE;IAIhD;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIlD;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9B;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,MAAM,IAAI,MAAM,EAAE;IAIlB;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;CAG5C"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/devices/base.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,53 @@ import { CircuitBreaker, CircuitBreakerState, ConnectionTracker, FallbackHandler
11
11
  export const PASSIVE_POLL_INTERVAL = 60 * 60 * 24 * 1000;
12
12
  /**
13
13
  * Base class for all SwitchBot devices
14
- * Provides hybrid BLE/API functionality with automatic fallback, circuit breaker, and connection intelligence
14
+ *
15
+ * ## BLE-first, API-fallback Logic
16
+ *
17
+ * This class provides a centralized, robust hybrid connection strategy for all SwitchBot devices:
18
+ *
19
+ * - **BLE-first, API-fallback**: By default, status and command methods attempt BLE first (if available), then fall back to OpenAPI if BLE fails or is unavailable. This is controlled by `preferredConnection` and `enableFallback`.
20
+ * - **Centralized Fallback**: The `getStatusWithFallback()` and `sendCommand()` methods implement this logic. Device subclasses should call these methods and provide normalization/mapping as needed.
21
+ * - **Connection Intelligence**: Tracks connection health and performance, automatically preferring the most reliable connection if enabled.
22
+ * - **Circuit Breaker & Retry**: Both BLE and API commands are protected by circuit breaker and retry logic to handle transient failures gracefully.
23
+ *
24
+ * ### Usage in Subclasses
25
+ *
26
+ * - For status: Call `await this.getStatusWithFallback(normalizeBLE, normalizeAPI)` in your `getStatus()` implementation.
27
+ * - For commands: Use `await this.sendCommand(bleCommand, apiCommand, apiParameter)` to automatically select the best connection and handle fallback.
28
+ * - For custom logic: You may override or extend these methods, but should preserve the fallback and error-handling patterns for consistency.
29
+ *
30
+ * ### Example (in a device subclass)
31
+ *
32
+ * ```typescript
33
+ * async getStatus(): Promise<DeviceStatus> {
34
+ * return this.getStatusWithFallback(
35
+ * bleData => ({ ... }), // normalize BLE data
36
+ * apiData => ({ ... }), // normalize API data
37
+ * )
38
+ * }
39
+ *
40
+ * async turnOn(): Promise<boolean> {
41
+ * const result = await this.sendCommand([0x57, 0x01, 0x01], 'turnOn')
42
+ * return result.success
43
+ * }
44
+ * ```
45
+ *
46
+ * ### Configuration
47
+ *
48
+ * - `preferredConnection`: 'ble' | 'api' (default: 'ble')
49
+ * - `enableFallback`: boolean (default: true)
50
+ * - `enableConnectionIntelligence`: boolean (default: true)
51
+ * - `enableCircuitBreaker`: boolean (default: true)
52
+ * - `enableRetry`: boolean (default: true)
53
+ *
54
+ * ### See Also
55
+ * - `getStatusWithFallback()`
56
+ * - `sendCommand()`
57
+ * - `hasBLE()`, `hasAPI()`
58
+ * - `setPreferredConnection()`, `setFallbackEnabled()`
59
+ *
60
+ * This pattern ensures all device classes benefit from robust, testable, and consistent connection logic.
15
61
  */
16
62
  export class SwitchBotDevice extends EventEmitter {
17
63
  info;
@@ -213,6 +259,44 @@ export class SwitchBotDevice extends EventEmitter {
213
259
  hasAPI() {
214
260
  return this.info.connectionTypes.includes('api') && !!this.apiClient && this.info.cloudServiceEnabled !== false;
215
261
  }
262
+ /**
263
+ * Get device status (abstract - implemented by subclasses)
264
+ */
265
+ /**
266
+ * Get device status with BLE-first/API-fallback logic (centralized)
267
+ * Subclasses should call this and map/normalize fields as needed.
268
+ */
269
+ async getStatusWithFallback(normalizeBLE, normalizeAPI) {
270
+ // Determine connection order
271
+ const preferBLE = this.preferredConnection === 'ble';
272
+ const tryBLE = () => this.getBLEStatus().then(normalizeBLE ?? (d => d));
273
+ const tryAPI = () => this.getAPIStatus().then(normalizeAPI ?? (d => d));
274
+ // BLE-first
275
+ if (preferBLE && this.hasBLE()) {
276
+ try {
277
+ return await tryBLE();
278
+ }
279
+ catch (err) {
280
+ this.logger?.warn?.('BLE getStatus failed, falling back to API', err);
281
+ }
282
+ if (this.enableFallback && this.hasAPI()) {
283
+ return await tryAPI();
284
+ }
285
+ }
286
+ // API-first
287
+ if (!preferBLE && this.hasAPI()) {
288
+ try {
289
+ return await tryAPI();
290
+ }
291
+ catch (err) {
292
+ this.logger?.warn?.('API getStatus failed, falling back to BLE', err);
293
+ }
294
+ if (this.enableFallback && this.hasBLE()) {
295
+ return await tryBLE();
296
+ }
297
+ }
298
+ throw new Error('No connection method available for getStatus');
299
+ }
216
300
  /**
217
301
  * Send a command via BLE with circuit breaker and retry logic
218
302
  */
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/devices/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/devices/base.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,22 @@ import { SwitchBotDevice } from './base.js';
6
6
  /**
7
7
  * Base class for devices that expose an advertisement sequence number.
8
8
  * Automatically triggers a status refresh when the sequence number changes.
9
+ *
10
+ * ## BLE-first, API-fallback Status Pattern
11
+ *
12
+ * Subclasses should implement their `getStatus()` using the centralized
13
+ * `getStatusWithFallback()` method from SwitchBotDevice for robust BLE-first,
14
+ * API-fallback logic. See SwitchBotDevice for details.
15
+ *
16
+ * Example:
17
+ * ```typescript
18
+ * async getStatus(): Promise<DeviceStatus> {
19
+ * return this.getStatusWithFallback(
20
+ * bleData => ({ ... }),
21
+ * apiData => ({ ... })
22
+ * )
23
+ * }
24
+ * ```
9
25
  */
10
26
  export declare abstract class SequenceDevice extends SwitchBotDevice {
11
27
  private lastSequenceNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"sequence-device.d.ts","sourceRoot":"","sources":["../../src/devices/sequence-device.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;;GAGG;AACH,8BAAsB,cAAe,SAAQ,eAAe;IAC1D,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,sBAAsB,CAAQ;gBAGpC,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE;QACP,aAAa,CAAC,EAAE,aAAa,CAAA;QAC7B,SAAS,CAAC,EAAE,aAAa,CAAA;QACzB,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,mBAAmB,CAAC,EAAE,cAAc,CAAA;QACpC,4BAA4B,CAAC,EAAE,OAAO,CAAA;QACtC,oBAAoB,CAAC,EAAE,OAAO,CAAA;QAC9B,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB,WAAW,CAAC,EAAE,WAAW,CAAA;QACzB,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAA;KACb;IAMR;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAIrC;;OAEG;IACM,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IA6BvD,OAAO,CAAC,yBAAyB;YAMnB,qBAAqB;CAmBpC"}
1
+ {"version":3,"file":"sequence-device.d.ts","sourceRoot":"","sources":["../../src/devices/sequence-device.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,8BAAsB,cAAe,SAAQ,eAAe;IAC1D,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,sBAAsB,CAAQ;gBAGpC,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE;QACP,aAAa,CAAC,EAAE,aAAa,CAAA;QAC7B,SAAS,CAAC,EAAE,aAAa,CAAA;QACzB,cAAc,CAAC,EAAE,OAAO,CAAA;QACxB,mBAAmB,CAAC,EAAE,cAAc,CAAA;QACpC,4BAA4B,CAAC,EAAE,OAAO,CAAA;QACtC,oBAAoB,CAAC,EAAE,OAAO,CAAA;QAC9B,WAAW,CAAC,EAAE,OAAO,CAAA;QACrB,WAAW,CAAC,EAAE,WAAW,CAAA;QACzB,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;QAC3C,QAAQ,CAAC,EAAE,MAAM,CAAA;KACb;IAMR;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAIrC;;OAEG;IACM,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IA6BvD,OAAO,CAAC,yBAAyB;YAMnB,qBAAqB;CAmBpC"}
@@ -6,6 +6,22 @@ import { SwitchBotDevice } from './base.js';
6
6
  /**
7
7
  * Base class for devices that expose an advertisement sequence number.
8
8
  * Automatically triggers a status refresh when the sequence number changes.
9
+ *
10
+ * ## BLE-first, API-fallback Status Pattern
11
+ *
12
+ * Subclasses should implement their `getStatus()` using the centralized
13
+ * `getStatusWithFallback()` method from SwitchBotDevice for robust BLE-first,
14
+ * API-fallback logic. See SwitchBotDevice for details.
15
+ *
16
+ * Example:
17
+ * ```typescript
18
+ * async getStatus(): Promise<DeviceStatus> {
19
+ * return this.getStatusWithFallback(
20
+ * bleData => ({ ... }),
21
+ * apiData => ({ ... })
22
+ * )
23
+ * }
24
+ * ```
9
25
  */
10
26
  export class SequenceDevice extends SwitchBotDevice {
11
27
  lastSequenceNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"sequence-device.js","sourceRoot":"","sources":["../../src/devices/sequence-device.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;;GAGG;AACH,MAAM,OAAgB,cAAe,SAAQ,eAAe;IAClD,kBAAkB,CAAoB;IACtC,sBAAsB,GAAG,KAAK,CAAA;IAEtC,YACE,IAAgB,EAChB,UAWI,EAAE;QAEN,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAChE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,SAAS,EAAE,CAAA;IACzB,CAAC;IAED;;OAEG;IACM,UAAU,CAAC,OAA4B;QAC9C,MAAM,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAA;QACtD,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAEzB,MAAM,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpE,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,OAAM;QACR,CAAC;QAED,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;YAC5C,OAAM;QACR,CAAC;QAED,IAAI,kBAAkB,KAAK,sBAAsB,EAAE,CAAC;YAClD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,sBAAsB;YACtB,cAAc,EAAE,kBAAkB;YAClC,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CAAA;QAEF,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAA;IACnC,CAAC;IAEO,yBAAyB,CAAC,IAAgB;QAChD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAA4B,CAAA;QAClE,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,CAAA;QACzC,OAAO,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAA;IACxE,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAA;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;YAClC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC1B,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBACtB,MAAM;gBACN,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;QAC9D,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAA;QACrC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"sequence-device.js","sourceRoot":"","sources":["../../src/devices/sequence-device.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAgB,cAAe,SAAQ,eAAe;IAClD,kBAAkB,CAAoB;IACtC,sBAAsB,GAAG,KAAK,CAAA;IAEtC,YACE,IAAgB,EAChB,UAWI,EAAE;QAEN,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAChE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,SAAS,EAAE,CAAA;IACzB,CAAC;IAED;;OAEG;IACM,UAAU,CAAC,OAA4B;QAC9C,MAAM,sBAAsB,GAAG,IAAI,CAAC,kBAAkB,CAAA;QACtD,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAEzB,MAAM,kBAAkB,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpE,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,OAAM;QACR,CAAC;QAED,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;YAC5C,OAAM;QACR,CAAC;QAED,IAAI,kBAAkB,KAAK,sBAAsB,EAAE,CAAC;YAClD,OAAM;QACR,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,sBAAsB;YACtB,cAAc,EAAE,kBAAkB;YAClC,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CAAA;QAEF,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAA;IACnC,CAAC;IAEO,yBAAyB,CAAC,IAAgB;QAChD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAA4B,CAAA;QAClE,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,CAAA;QACzC,OAAO,OAAO,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAA;IACxE,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAChC,OAAM;QACR,CAAC;QAED,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAA;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;YAClC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC1B,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBACtB,MAAM;gBACN,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAA;QAC9D,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAA;QACrC,CAAC;IACH,CAAC;CACF"}
@@ -2,7 +2,7 @@ import type { HubStatus } from '../types/device.js';
2
2
  import { SwitchBotDevice } from './base.js';
3
3
  export declare class WoAIHub 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<HubStatus>;
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wo-ai-hub.d.ts","sourceRoot":"","sources":["../../src/devices/wo-ai-hub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,qBAAa,OAAQ,SAAQ,eAAe;IAC1C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;CAmCtC"}
1
+ {"version":3,"file":"wo-ai-hub.d.ts","sourceRoot":"","sources":["../../src/devices/wo-ai-hub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,qBAAa,OAAQ,SAAQ,eAAe;IAC1C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;CAqBtC"}
@@ -1,41 +1,25 @@
1
1
  import { SwitchBotDevice } from './base.js';
2
2
  export class WoAIHub 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
- temperature: bleData.temperature,
15
- humidity: bleData.humidity,
16
- lightLevel: bleData.lightLevel,
17
- updatedAt: new Date(),
18
- };
19
- }
20
- // Fallback to API
21
- if (this.hasAPI()) {
22
- const apiStatus = await this.getAPIStatus();
23
- return {
24
- deviceId: this.info.id,
25
- connectionType: 'api',
26
- temperature: apiStatus.temperature,
27
- humidity: apiStatus.humidity,
28
- lightLevel: apiStatus.lightLevel,
29
- version: apiStatus.version,
30
- updatedAt: new Date(),
31
- };
32
- }
33
- throw new Error('No connection method available');
34
- }
35
- catch (error) {
36
- this.logger.error('Failed to get status', error);
37
- throw error;
38
- }
7
+ return this.getStatusWithFallback(bleData => ({
8
+ deviceId: this.info.id,
9
+ connectionType: 'ble',
10
+ temperature: bleData.temperature,
11
+ humidity: bleData.humidity,
12
+ lightLevel: bleData.lightLevel,
13
+ updatedAt: new Date(),
14
+ }), apiStatus => ({
15
+ deviceId: this.info.id,
16
+ connectionType: 'api',
17
+ temperature: apiStatus.temperature,
18
+ humidity: apiStatus.humidity,
19
+ lightLevel: apiStatus.lightLevel,
20
+ version: apiStatus.version,
21
+ updatedAt: new Date(),
22
+ }));
39
23
  }
40
24
  }
41
25
  //# sourceMappingURL=wo-ai-hub.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wo-ai-hub.js","sourceRoot":"","sources":["../../src/devices/wo-ai-hub.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,OAAO,OAAQ,SAAQ,eAAe;IAC1C;;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,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,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,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;oBAChC,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,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-ai-hub.js","sourceRoot":"","sources":["../../src/devices/wo-ai-hub.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,OAAO,OAAQ,SAAQ,eAAe;IAC1C;;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;YAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,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;YAClC,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,UAAU,EAAE,SAAS,CAAC,UAAU;YAChC,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
@@ -2,7 +2,7 @@ import type { AirPurifierStatus } from '../types/device.js';
2
2
  import { SwitchBotDevice } from './base.js';
3
3
  export declare class WoAirPurifierPM25 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<AirPurifierStatus>;
8
8
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"wo-air-purifier-pm25.d.ts","sourceRoot":"","sources":["../../src/devices/wo-air-purifier-pm25.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,qBAAa,iBAAkB,SAAQ,eAAe;IACpD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAmD7C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAehC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAejC;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,mBAAmB,EAAE,aAAa,CAAC;IAepG;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBlD;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;CA0B1G"}
1
+ {"version":3,"file":"wo-air-purifier-pm25.d.ts","sourceRoot":"","sources":["../../src/devices/wo-air-purifier-pm25.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,qBAAa,iBAAkB,SAAQ,eAAe;IACpD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAuC7C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAehC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAejC;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,mBAAmB,EAAE,aAAa,CAAC;IAepG;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBlD;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;CA0B1G"}
@@ -2,60 +2,45 @@ import { Buffer } from 'node:buffer';
2
2
  import { SwitchBotDevice } from './base.js';
3
3
  export class WoAirPurifierPM25 extends SwitchBotDevice {
4
4
  /**
5
- * Get device status (BLE first, then API)
5
+ * Get device status (BLE-first, API-fallback)
6
6
  */
7
7
  async getStatus() {
8
- try {
9
- // Try BLE first
10
- if (this.hasBLE()) {
11
- const bleData = await this.getBLEStatus();
12
- return {
13
- deviceId: this.info.id,
14
- connectionType: 'ble',
15
- power: bleData.state ? 'on' : 'off',
16
- fanSpeed: bleData.fanSpeed,
17
- mode: bleData.mode,
18
- pm25: bleData.pm25,
19
- updatedAt: new Date(),
20
- };
21
- }
22
- // Fallback to API
23
- if (this.hasAPI()) {
24
- const apiStatus = await this.getAPIStatus();
25
- // Map air quality from PM2.5 value
26
- let airQuality;
27
- if (apiStatus.pm25 !== undefined) {
28
- if (apiStatus.pm25 <= 35) {
29
- airQuality = 'excellent';
30
- }
31
- else if (apiStatus.pm25 <= 75) {
32
- airQuality = 'good';
33
- }
34
- else if (apiStatus.pm25 <= 115) {
35
- airQuality = 'fair';
36
- }
37
- else {
38
- airQuality = 'poor';
39
- }
8
+ return this.getStatusWithFallback(bleData => ({
9
+ deviceId: this.info.id,
10
+ connectionType: 'ble',
11
+ power: bleData.state ? 'on' : 'off',
12
+ fanSpeed: bleData.fanSpeed,
13
+ mode: bleData.mode,
14
+ pm25: bleData.pm25,
15
+ updatedAt: new Date(),
16
+ }), (apiStatus) => {
17
+ let airQuality;
18
+ if (apiStatus.pm25 !== undefined) {
19
+ if (apiStatus.pm25 <= 35) {
20
+ airQuality = 'excellent';
21
+ }
22
+ else if (apiStatus.pm25 <= 75) {
23
+ airQuality = 'good';
24
+ }
25
+ else if (apiStatus.pm25 <= 115) {
26
+ airQuality = 'fair';
27
+ }
28
+ else {
29
+ airQuality = 'poor';
40
30
  }
41
- return {
42
- deviceId: this.info.id,
43
- connectionType: 'api',
44
- power: apiStatus.power || 'off',
45
- fanSpeed: apiStatus.fanSpeed,
46
- mode: apiStatus.mode,
47
- pm25: apiStatus.pm25,
48
- airQuality,
49
- version: apiStatus.version,
50
- updatedAt: new Date(),
51
- };
52
31
  }
53
- throw new Error('No connection method available');
54
- }
55
- catch (error) {
56
- this.logger.error('Failed to get status', error);
57
- throw error;
58
- }
32
+ return {
33
+ deviceId: this.info.id,
34
+ connectionType: 'api',
35
+ power: apiStatus.power || 'off',
36
+ fanSpeed: apiStatus.fanSpeed,
37
+ mode: apiStatus.mode,
38
+ pm25: apiStatus.pm25,
39
+ airQuality,
40
+ version: apiStatus.version,
41
+ updatedAt: new Date(),
42
+ };
43
+ });
59
44
  }
60
45
  /**
61
46
  * Turn on
@@ -1 +1 @@
1
- {"version":3,"file":"wo-air-purifier-pm25.js","sourceRoot":"","sources":["../../src/devices/wo-air-purifier-pm25.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,OAAO,iBAAkB,SAAQ,eAAe;IACpD;;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,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;oBACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAA;YACH,CAAC;YAED,kBAAkB;YAClB,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;gBAC3C,mCAAmC;gBACnC,IAAI,UAA8D,CAAA;gBAClE,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACjC,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;wBACzB,UAAU,GAAG,WAAW,CAAA;oBAC1B,CAAC;yBAAM,IAAI,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;wBAChC,UAAU,GAAG,MAAM,CAAA;oBACrB,CAAC;yBAAM,IAAI,SAAS,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;wBACjC,UAAU,GAAG,MAAM,CAAA;oBACrB,CAAC;yBAAM,CAAC;wBACN,UAAU,GAAG,MAAM,CAAA;oBACrB,CAAC;gBACH,CAAC;gBACD,OAAO;oBACL,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;oBACtB,cAAc,EAAE,KAAK;oBACrB,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,KAAK;oBAC/B,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,UAAU;oBACV,OAAO,EAAE,SAAS,CAAC,OAAO;oBAC1B,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CAAA;YACH,CAAC;YACD,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;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,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,QAAQ,CAAC,CAAA;YACxD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAA;YAClD,OAAO,MAAM,CAAC,OAAO,CAAA;QACvB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,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,SAAS,CAAC,CAAA;YACzD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;YACnD,OAAO,MAAM,CAAC,OAAO,CAAA;QACvB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,IAAiC;QAC7C,MAAM,OAAO,GAA2B,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;QACxE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC3D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;YAClE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,MAAM,CAAA;YACf,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QAC7C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;QACpD,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAA;YAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,aAAa,EAAE,YAAY,CAAC,CAAA;YAC9E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;YACrE,OAAO,MAAM,CAAC,OAAO,CAAA;QACvB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,IAAkE;QACpF,MAAM,OAAO,GAA2B;YACtC,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,GAAG,EAAE,CAAC;SACP,CAAA;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAA;QACrD,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;YACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,CAAA;YACxE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;YAC/D,OAAO,MAAM,CAAC,OAAO,CAAA;QACvB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;CACF"}
1
+ {"version":3,"file":"wo-air-purifier-pm25.js","sourceRoot":"","sources":["../../src/devices/wo-air-purifier-pm25.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ export declare class WoAirPurifier extends SequenceDevice implements AirPurifier
34
34
  */
35
35
  setFanSpeed(speed: number): Promise<boolean>;
36
36
  /**
37
- * Get device status
37
+ * Get device status (BLE-first, API-fallback)
38
38
  */
39
39
  getStatus(): Promise<AirPurifierStatus>;
40
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"wo-air-purifier.d.ts","sourceRoot":"","sources":["../../src/devices/wo-air-purifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAKhF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;GAEG;AACH,qBAAa,aAAc,SAAQ,cAAe,YAAW,mBAAmB;IAC9E;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB7C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAMhC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAMjC;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,mBAAmB,EAAE,aAAa,CAAC;IAYpG;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASlD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA0D7C;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;CAmB1G"}
1
+ {"version":3,"file":"wo-air-purifier.d.ts","sourceRoot":"","sources":["../../src/devices/wo-air-purifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAKhF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD;;GAEG;AACH,qBAAa,aAAc,SAAQ,cAAe,YAAW,mBAAmB;IAC9E;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB7C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC;IAMhC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAMjC;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,mBAAmB,EAAE,aAAa,CAAC;IAYpG;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASlD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA4C7C;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;CAmB1G"}