1
0
mirror of https://github.com/home-assistant/core.git synced 2026-05-30 12:14:20 +01:00
Files
theobld-ww eeca75b937 Watts: add timer mode service (#169846)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-11 21:18:13 +02:00

74 lines
2.4 KiB
Python

"""Constants for the Watts Vision+ integration."""
from visionpluspython.models import SwitchDevice, ThermostatDevice, ThermostatMode
from homeassistant.components.climate import (
PRESET_COMFORT,
PRESET_ECO,
HVACAction,
HVACMode,
)
DOMAIN = "watts"
OAUTH2_AUTHORIZE = "https://visionlogin.b2clogin.com/visionlogin.onmicrosoft.com/B2C_1A_VISION_UNIFIEDSIGNUPORSIGNIN/oauth2/v2.0/authorize"
OAUTH2_TOKEN = "https://visionlogin.b2clogin.com/visionlogin.onmicrosoft.com/B2C_1A_VISION_UNIFIEDSIGNUPORSIGNIN/oauth2/v2.0/token"
OAUTH2_SCOPES = [
"openid",
"offline_access",
"https://visionlogin.onmicrosoft.com/homeassistant-api/homeassistant.read",
]
# Update intervals
UPDATE_INTERVAL_SECONDS = 30
FAST_POLLING_INTERVAL_SECONDS = 5
DISCOVERY_INTERVAL_MINUTES = 15
# Mapping from Watts Vision+ modes to Home Assistant HVAC modes
THERMOSTAT_MODE_TO_HVAC: dict[ThermostatMode, HVACMode] = {
ThermostatMode.PROGRAM: HVACMode.AUTO,
ThermostatMode.ECO: HVACMode.HEAT,
ThermostatMode.COMFORT: HVACMode.HEAT,
ThermostatMode.DEFROST: HVACMode.HEAT,
ThermostatMode.TIMER: HVACMode.HEAT,
ThermostatMode.OFF: HVACMode.OFF,
}
# Mapping from Home Assistant HVAC modes to Watts Vision+ modes
HVAC_MODE_TO_THERMOSTAT: dict[HVACMode, ThermostatMode] = {
HVACMode.HEAT: ThermostatMode.COMFORT,
HVACMode.OFF: ThermostatMode.OFF,
HVACMode.AUTO: ThermostatMode.PROGRAM,
}
# Preset modes available on all Watts Vision+ thermostats.
PRESET_MODES: list[str] = [PRESET_COMFORT, PRESET_ECO, "defrost", "timer"]
# Mapping from Watts Vision+ mode to HA preset mode string
THERMOSTAT_MODE_TO_PRESET: dict[ThermostatMode, str] = {
ThermostatMode.COMFORT: PRESET_COMFORT,
ThermostatMode.ECO: PRESET_ECO,
ThermostatMode.DEFROST: "defrost",
ThermostatMode.TIMER: "timer",
}
# Mapping from HA preset mode string to Watts Vision+ ThermostatMode
PRESET_MODE_TO_THERMOSTAT: dict[str, ThermostatMode] = {
v: k for k, v in THERMOSTAT_MODE_TO_PRESET.items()
}
# Mapping from Watts Vision+ HVAC actions to Home Assistant HVACAction
HVAC_ACTION_TO_HA: dict[str, HVACAction] = {
"Heating": HVACAction.HEATING,
"Cooling": HVACAction.COOLING,
"Idle": HVACAction.IDLE,
"Off": HVACAction.OFF,
}
SUPPORTED_DEVICE_TYPES = (ThermostatDevice, SwitchDevice)
# Timer service
SERVICE_ACTIVATE_TIMER_MODE = "activate_timer_mode"
ATTR_DURATION = "duration"