* Fix signal collision in tado with multiple accounts Tado signals were not unique enough to prevent collisions between accounts with the same zone ids. * Bump upstream to fix multiple tado accounts * switch signal undo to async_on_remove * Bump version now that upstream is released * bump python-tado * While its only the dep that changed since the last run, best to force another CI to be sure
149 lines
3.6 KiB
Python
149 lines
3.6 KiB
Python
"""Constant values for the Tado component."""
|
|
|
|
from PyTado.const import (
|
|
CONST_HVAC_COOL,
|
|
CONST_HVAC_DRY,
|
|
CONST_HVAC_FAN,
|
|
CONST_HVAC_HEAT,
|
|
CONST_HVAC_HOT_WATER,
|
|
CONST_HVAC_IDLE,
|
|
CONST_HVAC_OFF,
|
|
)
|
|
|
|
from homeassistant.components.climate.const import (
|
|
CURRENT_HVAC_COOL,
|
|
CURRENT_HVAC_DRY,
|
|
CURRENT_HVAC_FAN,
|
|
CURRENT_HVAC_HEAT,
|
|
CURRENT_HVAC_IDLE,
|
|
CURRENT_HVAC_OFF,
|
|
FAN_AUTO,
|
|
FAN_HIGH,
|
|
FAN_LOW,
|
|
FAN_MEDIUM,
|
|
FAN_OFF,
|
|
HVAC_MODE_AUTO,
|
|
HVAC_MODE_COOL,
|
|
HVAC_MODE_DRY,
|
|
HVAC_MODE_FAN_ONLY,
|
|
HVAC_MODE_HEAT,
|
|
HVAC_MODE_HEAT_COOL,
|
|
HVAC_MODE_OFF,
|
|
PRESET_AWAY,
|
|
PRESET_HOME,
|
|
)
|
|
|
|
TADO_HVAC_ACTION_TO_HA_HVAC_ACTION = {
|
|
CONST_HVAC_HEAT: CURRENT_HVAC_HEAT,
|
|
CONST_HVAC_DRY: CURRENT_HVAC_DRY,
|
|
CONST_HVAC_FAN: CURRENT_HVAC_FAN,
|
|
CONST_HVAC_COOL: CURRENT_HVAC_COOL,
|
|
CONST_HVAC_IDLE: CURRENT_HVAC_IDLE,
|
|
CONST_HVAC_OFF: CURRENT_HVAC_OFF,
|
|
CONST_HVAC_HOT_WATER: CURRENT_HVAC_HEAT,
|
|
}
|
|
|
|
# Configuration
|
|
CONF_FALLBACK = "fallback"
|
|
DATA = "data"
|
|
UPDATE_TRACK = "update_track"
|
|
|
|
# Types
|
|
TYPE_AIR_CONDITIONING = "AIR_CONDITIONING"
|
|
TYPE_HEATING = "HEATING"
|
|
TYPE_HOT_WATER = "HOT_WATER"
|
|
|
|
# Base modes
|
|
CONST_MODE_OFF = "OFF"
|
|
CONST_MODE_SMART_SCHEDULE = "SMART_SCHEDULE" # Use the schedule
|
|
CONST_MODE_AUTO = "AUTO"
|
|
CONST_MODE_COOL = "COOL"
|
|
CONST_MODE_HEAT = "HEAT"
|
|
CONST_MODE_DRY = "DRY"
|
|
CONST_MODE_FAN = "FAN"
|
|
|
|
CONST_LINK_OFFLINE = "OFFLINE"
|
|
|
|
CONST_FAN_OFF = "OFF"
|
|
CONST_FAN_AUTO = "AUTO"
|
|
CONST_FAN_LOW = "LOW"
|
|
CONST_FAN_MIDDLE = "MIDDLE"
|
|
CONST_FAN_HIGH = "HIGH"
|
|
|
|
|
|
# When we change the temperature setting, we need an overlay mode
|
|
CONST_OVERLAY_TADO_MODE = "TADO_MODE" # wait until tado changes the mode automatic
|
|
CONST_OVERLAY_MANUAL = "MANUAL" # the user has change the temperature or mode manually
|
|
CONST_OVERLAY_TIMER = "TIMER" # the temperature will be reset after a timespan
|
|
|
|
|
|
# Heat always comes first since we get the
|
|
# min and max tempatures for the zone from
|
|
# it.
|
|
# Heat is preferred as it generally has a lower minimum temperature
|
|
ORDERED_KNOWN_TADO_MODES = [
|
|
CONST_MODE_HEAT,
|
|
CONST_MODE_COOL,
|
|
CONST_MODE_AUTO,
|
|
CONST_MODE_DRY,
|
|
CONST_MODE_FAN,
|
|
]
|
|
|
|
TADO_MODES_TO_HA_CURRENT_HVAC_ACTION = {
|
|
CONST_MODE_HEAT: CURRENT_HVAC_HEAT,
|
|
CONST_MODE_DRY: CURRENT_HVAC_DRY,
|
|
CONST_MODE_FAN: CURRENT_HVAC_FAN,
|
|
CONST_MODE_COOL: CURRENT_HVAC_COOL,
|
|
}
|
|
|
|
# These modes will not allow a temp to be set
|
|
TADO_MODES_WITH_NO_TEMP_SETTING = [CONST_MODE_AUTO, CONST_MODE_DRY, CONST_MODE_FAN]
|
|
#
|
|
# HVAC_MODE_HEAT_COOL is mapped to CONST_MODE_AUTO
|
|
# This lets tado decide on a temp
|
|
#
|
|
# HVAC_MODE_AUTO is mapped to CONST_MODE_SMART_SCHEDULE
|
|
# This runs the smart schedule
|
|
#
|
|
HA_TO_TADO_HVAC_MODE_MAP = {
|
|
HVAC_MODE_OFF: CONST_MODE_OFF,
|
|
HVAC_MODE_HEAT_COOL: CONST_MODE_AUTO,
|
|
HVAC_MODE_AUTO: CONST_MODE_SMART_SCHEDULE,
|
|
HVAC_MODE_HEAT: CONST_MODE_HEAT,
|
|
HVAC_MODE_COOL: CONST_MODE_COOL,
|
|
HVAC_MODE_DRY: CONST_MODE_DRY,
|
|
HVAC_MODE_FAN_ONLY: CONST_MODE_FAN,
|
|
}
|
|
|
|
HA_TO_TADO_FAN_MODE_MAP = {
|
|
FAN_AUTO: CONST_FAN_AUTO,
|
|
FAN_OFF: CONST_FAN_OFF,
|
|
FAN_LOW: CONST_FAN_LOW,
|
|
FAN_MEDIUM: CONST_FAN_MIDDLE,
|
|
FAN_HIGH: CONST_FAN_HIGH,
|
|
}
|
|
|
|
TADO_TO_HA_HVAC_MODE_MAP = {
|
|
value: key for key, value in HA_TO_TADO_HVAC_MODE_MAP.items()
|
|
}
|
|
|
|
TADO_TO_HA_FAN_MODE_MAP = {value: key for key, value in HA_TO_TADO_FAN_MODE_MAP.items()}
|
|
|
|
DEFAULT_TADO_PRECISION = 0.1
|
|
|
|
SUPPORT_PRESET = [PRESET_AWAY, PRESET_HOME]
|
|
|
|
|
|
TADO_SWING_OFF = "OFF"
|
|
TADO_SWING_ON = "ON"
|
|
|
|
DOMAIN = "tado"
|
|
|
|
SIGNAL_TADO_UPDATE_RECEIVED = "tado_update_received_{}_{}_{}"
|
|
UNIQUE_ID = "unique_id"
|
|
|
|
DEFAULT_NAME = "Tado"
|
|
|
|
TADO_BRIDGE = "Tado Bridge"
|
|
|
|
UPDATE_LISTENER = "update_listener"
|