Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Constant values for the Tado component."""
2 
3 from PyTado.const import (
4  CONST_HVAC_COOL,
5  CONST_HVAC_DRY,
6  CONST_HVAC_FAN,
7  CONST_HVAC_HEAT,
8  CONST_HVAC_HOT_WATER,
9  CONST_HVAC_IDLE,
10  CONST_HVAC_OFF,
11 )
12 
14  FAN_AUTO,
15  FAN_HIGH,
16  FAN_LOW,
17  FAN_MEDIUM,
18  FAN_OFF,
19  PRESET_AWAY,
20  PRESET_HOME,
21  SWING_OFF,
22  SWING_ON,
23  HVACAction,
24  HVACMode,
25 )
26 
27 TADO_HVAC_ACTION_TO_HA_HVAC_ACTION = {
28  CONST_HVAC_HEAT: HVACAction.HEATING,
29  CONST_HVAC_DRY: HVACAction.DRYING,
30  CONST_HVAC_FAN: HVACAction.FAN,
31  CONST_HVAC_COOL: HVACAction.COOLING,
32  CONST_HVAC_IDLE: HVACAction.IDLE,
33  CONST_HVAC_OFF: HVACAction.OFF,
34  CONST_HVAC_HOT_WATER: HVACAction.HEATING,
35 }
36 
37 # Configuration
38 CONF_FALLBACK = "fallback"
39 CONF_HOME_ID = "home_id"
40 DATA = "data"
41 
42 # Weather
43 CONDITIONS_MAP = {
44  "clear-night": {"NIGHT_CLEAR"},
45  "cloudy": {"CLOUDY", "CLOUDY_MOSTLY", "NIGHT_CLOUDY"},
46  "fog": {"FOGGY"},
47  "hail": {"HAIL", "RAIN_HAIL"},
48  "lightning": {"THUNDERSTORM"},
49  "partlycloudy": {"CLOUDY_PARTLY"},
50  "rainy": {"DRIZZLE", "RAIN", "SCATTERED_RAIN"},
51  "snowy": {"FREEZING", "SCATTERED_SNOW", "SNOW"},
52  "snowy-rainy": {"RAIN_SNOW", "SCATTERED_RAIN_SNOW"},
53  "sunny": {"SUN"},
54  "windy": {"WIND"},
55 }
56 
57 # Types
58 TYPE_AIR_CONDITIONING = "AIR_CONDITIONING"
59 TYPE_HEATING = "HEATING"
60 TYPE_HOT_WATER = "HOT_WATER"
61 
62 TYPE_BATTERY = "BATTERY"
63 TYPE_POWER = "POWER"
64 
65 # Base modes
66 CONST_MODE_OFF = "OFF"
67 CONST_MODE_SMART_SCHEDULE = "SMART_SCHEDULE" # Use the schedule
68 CONST_MODE_AUTO = "AUTO"
69 CONST_MODE_COOL = "COOL"
70 CONST_MODE_HEAT = "HEAT"
71 CONST_MODE_DRY = "DRY"
72 CONST_MODE_FAN = "FAN"
73 
74 CONST_LINK_OFFLINE = "OFFLINE"
75 
76 CONST_FAN_OFF = "OFF"
77 CONST_FAN_AUTO = "AUTO"
78 CONST_FAN_LOW_LEGACY = "LOW"
79 CONST_FAN_MIDDLE_LEGACY = "MIDDLE"
80 CONST_FAN_HIGH_LEGACY = "HIGH"
81 
82 CONST_FAN_LEVEL_1 = "LEVEL1"
83 CONST_FAN_LEVEL_2 = "LEVEL2"
84 CONST_FAN_LEVEL_3 = "LEVEL3"
85 
86 
87 # When we change the temperature setting, we need an overlay mode
88 CONST_OVERLAY_TADO_MODE = (
89  "NEXT_TIME_BLOCK" # wait until tado changes the mode automatic
90 )
91 CONST_OVERLAY_MANUAL = "MANUAL" # the user has change the temperature or mode manually
92 CONST_OVERLAY_TIMER = "TIMER" # the temperature will be reset after a timespan
93 CONST_OVERLAY_TADO_DEFAULT = (
94  "TADO_DEFAULT" # use the setting from tado zone itself (set in Tado app or webapp)
95 )
96 CONST_OVERLAY_TADO_OPTIONS = [
97  CONST_OVERLAY_TADO_MODE,
98  CONST_OVERLAY_MANUAL,
99  CONST_OVERLAY_TADO_DEFAULT,
100 ]
101 CONST_EXCLUSIVE_OVERLAY_GROUP = (
102  "overlay_group" # Overlay group for set_climate_timer service
103 )
104 
105 
106 # Heat always comes first since we get the
107 # min and max temperatures for the zone from
108 # it.
109 # Heat is preferred as it generally has a lower minimum temperature
110 ORDERED_KNOWN_TADO_MODES = [
111  CONST_MODE_HEAT,
112  CONST_MODE_COOL,
113  CONST_MODE_AUTO,
114  CONST_MODE_DRY,
115  CONST_MODE_FAN,
116 ]
117 
118 TADO_MODES_TO_HA_CURRENT_HVAC_ACTION = {
119  CONST_MODE_HEAT: HVACAction.HEATING,
120  CONST_MODE_DRY: HVACAction.DRYING,
121  CONST_MODE_FAN: HVACAction.FAN,
122  CONST_MODE_COOL: HVACAction.COOLING,
123 }
124 
125 # These modes will not allow a temp to be set
126 TADO_MODES_WITH_NO_TEMP_SETTING = [CONST_MODE_AUTO, CONST_MODE_FAN]
127 #
128 # HVAC_MODE_HEAT_COOL is mapped to CONST_MODE_AUTO
129 # This lets tado decide on a temp
130 #
131 # HVAC_MODE_AUTO is mapped to CONST_MODE_SMART_SCHEDULE
132 # This runs the smart schedule
133 #
134 HA_TO_TADO_HVAC_MODE_MAP = {
135  HVACMode.OFF: CONST_MODE_OFF,
136  HVACMode.HEAT_COOL: CONST_MODE_AUTO,
137  HVACMode.AUTO: CONST_MODE_SMART_SCHEDULE,
138  HVACMode.HEAT: CONST_MODE_HEAT,
139  HVACMode.COOL: CONST_MODE_COOL,
140  HVACMode.DRY: CONST_MODE_DRY,
141  HVACMode.FAN_ONLY: CONST_MODE_FAN,
142 }
143 
144 HA_TO_TADO_FAN_MODE_MAP_LEGACY = {
145  FAN_AUTO: CONST_FAN_AUTO,
146  FAN_OFF: CONST_FAN_OFF,
147  FAN_LOW: CONST_FAN_LOW_LEGACY,
148  FAN_MEDIUM: CONST_FAN_MIDDLE_LEGACY,
149  FAN_HIGH: CONST_FAN_HIGH_LEGACY,
150 }
151 
152 HA_TO_TADO_FAN_MODE_MAP = {
153  FAN_AUTO: CONST_FAN_AUTO,
154  FAN_OFF: CONST_FAN_OFF,
155  FAN_LOW: CONST_FAN_LEVEL_1,
156  FAN_MEDIUM: CONST_FAN_LEVEL_2,
157  FAN_HIGH: CONST_FAN_LEVEL_3,
158 }
159 
160 TADO_TO_HA_HVAC_MODE_MAP = {
161  value: key for key, value in HA_TO_TADO_HVAC_MODE_MAP.items()
162 }
163 
164 TADO_TO_HA_FAN_MODE_MAP_LEGACY = {
165  value: key for key, value in HA_TO_TADO_FAN_MODE_MAP_LEGACY.items()
166 }
167 
168 TADO_TO_HA_FAN_MODE_MAP = {value: key for key, value in HA_TO_TADO_FAN_MODE_MAP.items()}
169 
170 TADO_FAN_SPEEDS = list(HA_TO_TADO_FAN_MODE_MAP_LEGACY.values())
171 
172 TADO_FAN_LEVELS = list(HA_TO_TADO_FAN_MODE_MAP.values())
173 
174 DEFAULT_TADO_PRECISION = 0.1
175 
176 # Constant for Auto Geolocation mode
177 PRESET_AUTO = "auto"
178 
179 SUPPORT_PRESET_AUTO = [PRESET_AWAY, PRESET_HOME, PRESET_AUTO]
180 SUPPORT_PRESET_MANUAL = [PRESET_AWAY, PRESET_HOME]
181 
182 SENSOR_DATA_CATEGORY_WEATHER = "weather"
183 SENSOR_DATA_CATEGORY_GEOFENCE = "geofence"
184 
185 TADO_SWING_OFF = "OFF"
186 TADO_SWING_ON = "ON"
187 
188 HA_TO_TADO_SWING_MODE_MAP = {
189  SWING_OFF: TADO_SWING_OFF,
190  SWING_ON: TADO_SWING_ON,
191 }
192 
193 TADO_TO_HA_SWING_MODE_MAP = {
194  value: key for key, value in HA_TO_TADO_SWING_MODE_MAP.items()
195 }
196 
197 DOMAIN = "tado"
198 
199 SIGNAL_TADO_UPDATE_RECEIVED = "tado_update_received_{}_{}_{}"
200 SIGNAL_TADO_MOBILE_DEVICE_UPDATE_RECEIVED = "tado_mobile_device_update_received_{}"
201 UNIQUE_ID = "unique_id"
202 
203 DEFAULT_NAME = "Tado"
204 
205 TADO_HOME = "Home"
206 TADO_ZONE = "Zone"
207 
208 # Constants for Temperature Offset
209 INSIDE_TEMPERATURE_MEASUREMENT = "INSIDE_TEMPERATURE_MEASUREMENT"
210 TEMP_OFFSET = "temperatureOffset"
211 TADO_OFFSET_CELSIUS = "celsius"
212 HA_OFFSET_CELSIUS = "offset_celsius"
213 TADO_OFFSET_FAHRENHEIT = "fahrenheit"
214 HA_OFFSET_FAHRENHEIT = "offset_fahrenheit"
215 TADO_TO_HA_OFFSET_MAP = {
216  TADO_OFFSET_CELSIUS: HA_OFFSET_CELSIUS,
217  TADO_OFFSET_FAHRENHEIT: HA_OFFSET_FAHRENHEIT,
218 }
219 
220 # Constants for Overlay Default settings
221 HA_TERMINATION_TYPE = "default_overlay_type"
222 HA_TERMINATION_DURATION = "default_overlay_seconds"
223 
224 TADO_DEFAULT_MIN_TEMP = 5
225 TADO_DEFAULT_MAX_TEMP = 40
226 # Constants for service calls
227 SERVICE_ADD_METER_READING = "add_meter_reading"
228 CONF_CONFIG_ENTRY = "config_entry"
229 CONF_READING = "reading"
230 ATTR_MESSAGE = "message"
231 
232 WATER_HEATER_FALLBACK_REPAIR = "water_heater_fallback"
233 
234 TADO_SWING_SETTING = "swings"
235 TADO_FANSPEED_SETTING = "fanSpeeds"
236 
237 TADO_FANLEVEL_SETTING = "fanLevel"
238 TADO_VERTICAL_SWING_SETTING = "verticalSwing"
239 TADO_HORIZONTAL_SWING_SETTING = "horizontalSwing"