Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Support for Xiaomi Yeelight WiFi color bulb."""
2 
3 from datetime import timedelta
4 
5 from homeassistant.const import Platform
6 
7 DOMAIN = "yeelight"
8 
9 
10 STATE_CHANGE_TIME = 0.40 # seconds
11 POWER_STATE_CHANGE_TIME = 1 # seconds
12 
13 
14 #
15 # These models do not transition correctly when turning on, and
16 # yeelight is no longer updating the firmware on older devices
17 #
18 # https://github.com/home-assistant/core/issues/58315
19 #
20 # The problem can be worked around by always setting the brightness
21 # even when the bulb is reporting the brightness is already at the
22 # desired level.
23 #
24 MODELS_WITH_DELAYED_ON_TRANSITION = {
25  "color", # YLDP02YL
26 }
27 
28 DATA_UPDATED = "yeelight_{}_data_updated"
29 
30 DEFAULT_NAME = "Yeelight"
31 DEFAULT_TRANSITION = 350
32 DEFAULT_MODE_MUSIC = False
33 DEFAULT_SAVE_ON_CHANGE = False
34 DEFAULT_NIGHTLIGHT_SWITCH = False
35 
36 CONF_DETECTED_MODEL = "detected_model"
37 CONF_TRANSITION = "transition"
38 
39 CONF_SAVE_ON_CHANGE = "save_on_change"
40 CONF_MODE_MUSIC = "use_music_mode"
41 CONF_FLOW_PARAMS = "flow_params"
42 CONF_CUSTOM_EFFECTS = "custom_effects"
43 CONF_NIGHTLIGHT_SWITCH_TYPE = "nightlight_switch_type"
44 CONF_NIGHTLIGHT_SWITCH = "nightlight_switch"
45 
46 DATA_CONFIG_ENTRIES = "config_entries"
47 DATA_CUSTOM_EFFECTS = "custom_effects"
48 DATA_DEVICE = "device"
49 DATA_REMOVE_INIT_DISPATCHER = "remove_init_dispatcher"
50 DATA_PLATFORMS_LOADED = "platforms_loaded"
51 
52 ATTR_COUNT = "count"
53 ATTR_ACTION = "action"
54 ATTR_TRANSITIONS = "transitions"
55 ATTR_MODE_MUSIC = "music_mode"
56 
57 ACTION_RECOVER = "recover"
58 ACTION_STAY = "stay"
59 ACTION_OFF = "off"
60 
61 ACTIVE_MODE_NIGHTLIGHT = 1
62 ACTIVE_COLOR_FLOWING = 1
63 
64 
65 NIGHTLIGHT_SWITCH_TYPE_LIGHT = "light"
66 
67 DISCOVERY_INTERVAL = timedelta(seconds=60)
68 SSDP_TARGET = ("239.255.255.250", 1982)
69 SSDP_ST = "wifi_bulb"
70 DISCOVERY_ATTEMPTS = 3
71 DISCOVERY_SEARCH_INTERVAL = timedelta(seconds=2)
72 DISCOVERY_TIMEOUT = 8
73 
74 
75 YEELIGHT_RGB_TRANSITION = "RGBTransition"
76 YEELIGHT_HSV_TRANSACTION = "HSVTransition"
77 YEELIGHT_TEMPERATURE_TRANSACTION = "TemperatureTransition"
78 YEELIGHT_SLEEP_TRANSACTION = "SleepTransition"
79 
80 
81 UPDATE_REQUEST_PROPERTIES = [
82  "power",
83  "main_power",
84  "bright",
85  "ct",
86  "rgb",
87  "hue",
88  "sat",
89  "color_mode",
90  "flowing",
91  "bg_power",
92  "bg_lmode",
93  "bg_flowing",
94  "bg_ct",
95  "bg_bright",
96  "bg_hue",
97  "bg_sat",
98  "bg_rgb",
99  "nl_br",
100  "active_mode",
101 ]
102 
103 
104 PLATFORMS = [Platform.BINARY_SENSOR, Platform.LIGHT]