__init__.py 4.6 KB

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