1 """Support for Aqualink Thermostats."""
3 from __future__
import annotations
8 from iaqualink.device
import AqualinkThermostat
9 from iaqualink.systems.iaqua.device
import AqualinkState
12 DOMAIN
as CLIMATE_DOMAIN,
23 from .
import refresh_system
24 from .const
import DOMAIN
as AQUALINK_DOMAIN
25 from .entity
import AqualinkEntity
26 from .utils
import await_or_reraise
28 _LOGGER = logging.getLogger(__name__)
35 config_entry: ConfigEntry,
36 async_add_entities: AddEntitiesCallback,
38 """Set up discovered switches."""
42 for dev
in hass.data[AQUALINK_DOMAIN][CLIMATE_DOMAIN]
49 """Representation of a thermostat."""
51 _attr_hvac_modes = [HVACMode.HEAT, HVACMode.OFF]
52 _attr_supported_features = (
53 ClimateEntityFeature.TARGET_TEMPERATURE
54 | ClimateEntityFeature.TURN_OFF
55 | ClimateEntityFeature.TURN_ON
57 _enable_turn_on_off_backwards_compatibility =
False
59 def __init__(self, dev: AqualinkThermostat) ->
None:
60 """Initialize AquaLink thermostat."""
64 UnitOfTemperature.FAHRENHEIT
66 else UnitOfTemperature.CELSIUS
73 """Return the current HVAC mode."""
74 if self.
devdev.is_on
is True:
80 """Turn the underlying heater switch on or off."""
81 if hvac_mode == HVACMode.HEAT:
83 elif hvac_mode == HVACMode.OFF:
86 _LOGGER.warning(
"Unknown operation mode: %s", hvac_mode)
90 """Return the current HVAC action."""
91 state = AqualinkState(self.
devdev._heater.state)
92 if state == AqualinkState.ON:
93 return HVACAction.HEATING
94 if state == AqualinkState.ENABLED:
95 return HVACAction.IDLE
100 """Return the current target temperature."""
105 """Set new target temperature."""
110 """Return the current temperature."""
111 if self.
devdev.current_temperature !=
"":
112 return float(self.
devdev.current_temperature)
None set_temperature(self, **Any kwargs)
None async_set_temperature(self, **Any kwargs)
float target_temperature(self)
None async_set_hvac_mode(self, HVACMode hvac_mode)
None __init__(self, AqualinkThermostat dev)
HVACAction hvac_action(self)
float|None current_temperature(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
None await_or_reraise(Awaitable awaitable)