1 """Constants for the switchbot integration."""
3 from enum
import StrEnum
5 from switchbot
import SwitchbotModel
8 MANUFACTURER =
"switchbot"
12 DEFAULT_NAME =
"Switchbot"
16 """Supported Switchbot models."""
20 CEILING_LIGHT =
"ceiling_light"
22 HYGROMETER =
"hygrometer"
23 HYGROMETER_CO2 =
"hygrometer_co2"
24 LIGHT_STRIP =
"light_strip"
28 HUMIDIFIER =
"humidifier"
31 BLIND_TILT =
"blind_tilt"
35 CONNECTABLE_SUPPORTED_MODEL_TYPES = {
36 SwitchbotModel.BOT: SupportedModels.BOT,
37 SwitchbotModel.CURTAIN: SupportedModels.CURTAIN,
38 SwitchbotModel.PLUG_MINI: SupportedModels.PLUG,
39 SwitchbotModel.COLOR_BULB: SupportedModels.BULB,
40 SwitchbotModel.LIGHT_STRIP: SupportedModels.LIGHT_STRIP,
41 SwitchbotModel.CEILING_LIGHT: SupportedModels.CEILING_LIGHT,
42 SwitchbotModel.HUMIDIFIER: SupportedModels.HUMIDIFIER,
43 SwitchbotModel.LOCK: SupportedModels.LOCK,
44 SwitchbotModel.LOCK_PRO: SupportedModels.LOCK_PRO,
45 SwitchbotModel.BLIND_TILT: SupportedModels.BLIND_TILT,
46 SwitchbotModel.HUB2: SupportedModels.HUB2,
49 NON_CONNECTABLE_SUPPORTED_MODEL_TYPES = {
50 SwitchbotModel.METER: SupportedModels.HYGROMETER,
51 SwitchbotModel.IO_METER: SupportedModels.HYGROMETER,
52 SwitchbotModel.METER_PRO: SupportedModels.HYGROMETER,
53 SwitchbotModel.METER_PRO_C: SupportedModels.HYGROMETER_CO2,
54 SwitchbotModel.CONTACT_SENSOR: SupportedModels.CONTACT,
55 SwitchbotModel.MOTION_SENSOR: SupportedModels.MOTION,
58 SUPPORTED_MODEL_TYPES = (
59 CONNECTABLE_SUPPORTED_MODEL_TYPES | NON_CONNECTABLE_SUPPORTED_MODEL_TYPES
62 SUPPORTED_LOCK_MODELS = {SwitchbotModel.LOCK, SwitchbotModel.LOCK_PRO}
64 HASS_SENSOR_TYPE_TO_SWITCHBOT_MODEL = {
65 str(v): k
for k, v
in SUPPORTED_MODEL_TYPES.items()
69 DEFAULT_RETRY_COUNT = 3
70 DEFAULT_LOCK_NIGHTLATCH =
False
73 CONF_RETRY_COUNT =
"retry_count"
74 CONF_KEY_ID =
"key_id"
75 CONF_ENCRYPTION_KEY =
"encryption_key"
76 CONF_LOCK_NIGHTLATCH =
"lock_force_nightlatch"