Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Constants for the switchbot integration."""
2 
3 from enum import StrEnum
4 
5 from switchbot import SwitchbotModel
6 
7 DOMAIN = "switchbot"
8 MANUFACTURER = "switchbot"
9 
10 # Config Attributes
11 
12 DEFAULT_NAME = "Switchbot"
13 
14 
15 class SupportedModels(StrEnum):
16  """Supported Switchbot models."""
17 
18  BOT = "bot"
19  BULB = "bulb"
20  CEILING_LIGHT = "ceiling_light"
21  CURTAIN = "curtain"
22  HYGROMETER = "hygrometer"
23  HYGROMETER_CO2 = "hygrometer_co2"
24  LIGHT_STRIP = "light_strip"
25  CONTACT = "contact"
26  PLUG = "plug"
27  MOTION = "motion"
28  HUMIDIFIER = "humidifier"
29  LOCK = "lock"
30  LOCK_PRO = "lock_pro"
31  BLIND_TILT = "blind_tilt"
32  HUB2 = "hub2"
33 
34 
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,
47 }
48 
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,
56 }
57 
58 SUPPORTED_MODEL_TYPES = (
59  CONNECTABLE_SUPPORTED_MODEL_TYPES | NON_CONNECTABLE_SUPPORTED_MODEL_TYPES
60 )
61 
62 SUPPORTED_LOCK_MODELS = {SwitchbotModel.LOCK, SwitchbotModel.LOCK_PRO}
63 
64 HASS_SENSOR_TYPE_TO_SWITCHBOT_MODEL = {
65  str(v): k for k, v in SUPPORTED_MODEL_TYPES.items()
66 }
67 
68 # Config Defaults
69 DEFAULT_RETRY_COUNT = 3
70 DEFAULT_LOCK_NIGHTLATCH = False
71 
72 # Config Options
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"