__init__.py 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. """Library to handle connection with Switchbot."""
  2. from __future__ import annotations
  3. from bleak_retry_connector import (
  4. close_stale_connections,
  5. close_stale_connections_by_address,
  6. get_device,
  7. )
  8. from .adv_parser import SwitchbotSupportedType, parse_advertisement_data
  9. from .const import (
  10. AirPurifierMode,
  11. AirQualityLevel,
  12. BulbColorMode,
  13. CeilingLightColorMode,
  14. CirculatorFanProMode,
  15. ClimateAction,
  16. ClimateMode,
  17. ColorMode,
  18. FanMode,
  19. HorizontalOscillationAngle,
  20. HumidifierAction,
  21. HumidifierMode,
  22. HumidifierWaterLevel,
  23. LockStatus,
  24. NightLightState,
  25. QuickKeyFunction,
  26. SmartThermostatRadiatorMode,
  27. StandingFanMode,
  28. StripLightColorMode,
  29. SwitchbotAccountConnectionError,
  30. SwitchbotApiError,
  31. SwitchbotAuthenticationError,
  32. SwitchbotModel,
  33. VerticalOscillationAngle,
  34. )
  35. from .devices.air_purifier import SwitchbotAirPurifier
  36. from .devices.art_frame import SwitchbotArtFrame
  37. from .devices.base_light import SwitchbotBaseLight
  38. from .devices.blind_tilt import SwitchbotBlindTilt
  39. from .devices.bot import Switchbot
  40. from .devices.bulb import SwitchbotBulb
  41. from .devices.ceiling_light import SwitchbotCeilingLight
  42. from .devices.curtain import SwitchbotCurtain
  43. from .devices.device import (
  44. SwitchbotDevice,
  45. SwitchbotEncryptedDevice,
  46. SwitchbotOperationError,
  47. fetch_cloud_devices,
  48. fetch_cloud_devices_by_token,
  49. )
  50. from .devices.evaporative_humidifier import SwitchbotEvaporativeHumidifier
  51. from .devices.fan import (
  52. SwitchbotCirculatorFanPro,
  53. SwitchbotFan,
  54. SwitchbotStandingFan,
  55. )
  56. from .devices.humidifier import SwitchbotHumidifier
  57. from .devices.keypad_vision import SwitchbotKeypadVision
  58. from .devices.light_strip import (
  59. SwitchbotCandleWarmerLamp,
  60. SwitchbotLightStrip,
  61. SwitchbotPermanentOutdoorLight,
  62. SwitchbotRgbicLight,
  63. SwitchbotRgbicNeonLight,
  64. SwitchbotRgbicwwCeilingLight,
  65. SwitchbotStripLight3,
  66. )
  67. from .devices.lock import SwitchbotLock, SwitchbotLockUltra
  68. from .devices.meter_pro import SwitchbotMeterPro, SwitchbotMeterProCO2
  69. from .devices.plug import SwitchbotPlugMini
  70. from .devices.relay_switch import (
  71. SwitchbotGarageDoorOpener,
  72. SwitchbotRelaySwitch,
  73. SwitchbotRelaySwitch2PM,
  74. )
  75. from .devices.roller_shade import SwitchbotRollerShade
  76. from .devices.smart_thermostat_radiator import SwitchbotSmartThermostatRadiator
  77. from .devices.universal_remote import SwitchbotUniversalRemote
  78. from .devices.vacuum import SwitchbotVacuum
  79. from .discovery import GetSwitchbotDevices
  80. from .models import SwitchBotAdvertisement
  81. from .oauth import (
  82. OAUTH_AUTHORIZE_URL,
  83. OAUTH_SCOPE,
  84. OAUTH_TOKEN_URL,
  85. build_oauth_authorize_url,
  86. exchange_oauth_code,
  87. )
  88. __all__ = [
  89. "OAUTH_AUTHORIZE_URL",
  90. "OAUTH_SCOPE",
  91. "OAUTH_TOKEN_URL",
  92. "AirPurifierMode",
  93. "AirQualityLevel",
  94. "BulbColorMode",
  95. "CeilingLightColorMode",
  96. "CirculatorFanProMode",
  97. "ClimateAction",
  98. "ClimateMode",
  99. "ColorMode",
  100. "FanMode",
  101. "GetSwitchbotDevices",
  102. "HorizontalOscillationAngle",
  103. "HumidifierAction",
  104. "HumidifierMode",
  105. "HumidifierWaterLevel",
  106. "LockStatus",
  107. "NightLightState",
  108. "QuickKeyFunction",
  109. "SmartThermostatRadiatorMode",
  110. "StandingFanMode",
  111. "StripLightColorMode",
  112. "SwitchBotAdvertisement",
  113. "Switchbot",
  114. "SwitchbotAccountConnectionError",
  115. "SwitchbotAirPurifier",
  116. "SwitchbotApiError",
  117. "SwitchbotArtFrame",
  118. "SwitchbotAuthenticationError",
  119. "SwitchbotBaseLight",
  120. "SwitchbotBlindTilt",
  121. "SwitchbotBulb",
  122. "SwitchbotCandleWarmerLamp",
  123. "SwitchbotCeilingLight",
  124. "SwitchbotCirculatorFanPro",
  125. "SwitchbotCurtain",
  126. "SwitchbotDevice",
  127. "SwitchbotEncryptedDevice",
  128. "SwitchbotEvaporativeHumidifier",
  129. "SwitchbotFan",
  130. "SwitchbotGarageDoorOpener",
  131. "SwitchbotHumidifier",
  132. "SwitchbotKeypadVision",
  133. "SwitchbotLightStrip",
  134. "SwitchbotLock",
  135. "SwitchbotLockUltra",
  136. "SwitchbotMeterPro",
  137. "SwitchbotMeterProCO2",
  138. "SwitchbotModel",
  139. "SwitchbotOperationError",
  140. "SwitchbotPermanentOutdoorLight",
  141. "SwitchbotPlugMini",
  142. "SwitchbotRelaySwitch",
  143. "SwitchbotRelaySwitch2PM",
  144. "SwitchbotRgbicLight",
  145. "SwitchbotRgbicNeonLight",
  146. "SwitchbotRgbicwwCeilingLight",
  147. "SwitchbotRollerShade",
  148. "SwitchbotSmartThermostatRadiator",
  149. "SwitchbotStandingFan",
  150. "SwitchbotStripLight3",
  151. "SwitchbotSupportedType",
  152. "SwitchbotUniversalRemote",
  153. "SwitchbotVacuum",
  154. "VerticalOscillationAngle",
  155. "build_oauth_authorize_url",
  156. "close_stale_connections",
  157. "close_stale_connections_by_address",
  158. "exchange_oauth_code",
  159. "fetch_cloud_devices",
  160. "fetch_cloud_devices_by_token",
  161. "get_device",
  162. "parse_advertisement_data",
  163. ]