1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
"""Switchbot Device Consts Library."""
from __future__ import annotations
from ..enum import StrEnum
from .air_purifier import AirPurifierMode
from .climate import ClimateAction, ClimateMode, SmartThermostatRadiatorMode
from .evaporative_humidifier import (
HumidifierAction,
HumidifierMode,
HumidifierWaterLevel,
)
from .fan import FanMode
from .light import (
BulbColorMode,
CeilingLightColorMode,
ColorMode,
StripLightColorMode,
)
# Preserve old LockStatus export for backwards compatibility
from .lock import LockStatus
DEFAULT_RETRY_COUNT = 3
DEFAULT_RETRY_TIMEOUT = 1
DEFAULT_SCAN_TIMEOUT = 5
class SwitchbotApiError(RuntimeError):
"""
Raised when API call fails.
This exception inherits from RuntimeError to avoid breaking existing code
but will be changed to Exception in a future release.
"""
class SwitchbotAuthenticationError(RuntimeError):
"""
Raised when authentication fails.
This exception inherits from RuntimeError to avoid breaking existing code
but will be changed to Exception in a future release.
"""
class SwitchbotAccountConnectionError(RuntimeError):
"""
Raised when connection to Switchbot account fails.
This exception inherits from RuntimeError to avoid breaking existing code
but will be changed to Exception in a future release.
"""
class SwitchbotModel(StrEnum):
BOT = "WoHand"
CURTAIN = "WoCurtain"
HUMIDIFIER = "WoHumi"
PLUG_MINI = "WoPlug"
CONTACT_SENSOR = "WoContact"
LIGHT_STRIP = "WoStrip"
METER = "WoSensorTH"
METER_PRO = "WoTHP"
METER_PRO_C = "WoTHPc"
IO_METER = "WoIOSensorTH"
MOTION_SENSOR = "WoPresence"
COLOR_BULB = "WoBulb"
CEILING_LIGHT = "WoCeiling"
LOCK = "WoLock"
LOCK_PRO = "WoLockPro"
BLIND_TILT = "WoBlindTilt"
HUB2 = "WoHub2"
LEAK = "Leak Detector"
KEYPAD = "WoKeypad"
RELAY_SWITCH_1PM = "Relay Switch 1PM"
RELAY_SWITCH_1 = "Relay Switch 1"
REMOTE = "WoRemote"
EVAPORATIVE_HUMIDIFIER = "Evaporative Humidifier"
ROLLER_SHADE = "Roller Shade"
HUBMINI_MATTER = "HubMini Matter"
CIRCULATOR_FAN = "Circulator Fan"
K20_VACUUM = "K20 Vacuum"
S10_VACUUM = "S10 Vacuum"
K10_VACUUM = "K10+ Vacuum"
K10_PRO_VACUUM = "K10+ Pro Vacuum"
K10_PRO_COMBO_VACUUM = "K10+ Pro Combo Vacuum"
AIR_PURIFIER = "Air Purifier"
AIR_PURIFIER_TABLE = "Air Purifier Table"
HUB3 = "Hub3"
LOCK_ULTRA = "Lock Ultra"
LOCK_LITE = "Lock Lite"
GARAGE_DOOR_OPENER = "Garage Door Opener"
RELAY_SWITCH_2PM = "Relay Switch 2PM"
STRIP_LIGHT_3 = "Strip Light 3"
FLOOR_LAMP = "Floor Lamp"
PLUG_MINI_EU = "Plug Mini (EU)"
RGBICWW_STRIP_LIGHT = "RGBICWW Strip Light"
RGBICWW_FLOOR_LAMP = "RGBICWW Floor Lamp"
K11_VACUUM = "K11+ Vacuum"
CLIMATE_PANEL = "Climate Panel"
SMART_THERMOSTAT_RADIATOR = "Smart Thermostat Radiator"
S20_VACUUM = "S20 Vacuum"
PRESENCE_SENSOR = "Presence Sensor"
ART_FRAME = "Art Frame"
KEYPAD_VISION = "Keypad Vision"
KEYPAD_VISION_PRO = "Keypad Vision Pro"
__all__ = [
"DEFAULT_RETRY_COUNT",
"DEFAULT_RETRY_TIMEOUT",
"DEFAULT_SCAN_TIMEOUT",
"AirPurifierMode",
"BulbColorMode",
"CeilingLightColorMode",
"ClimateAction",
"ClimateMode",
"ColorMode",
"FanMode",
"HumidifierAction",
"HumidifierMode",
"HumidifierWaterLevel",
"LockStatus",
"SmartThermostatRadiatorMode",
"StripLightColorMode",
"SwitchbotAccountConnectionError",
"SwitchbotApiError",
"SwitchbotAuthenticationError",
"SwitchbotModel",
]
|