1 """Support for Vera thermostats."""
3 from __future__
import annotations
7 import pyvera
as veraApi
22 from .common
import ControllerData, get_controller_data
23 from .entity
import VeraEntity
25 FAN_OPERATION_LIST = [FAN_ON, FAN_AUTO]
27 SUPPORT_HVAC = [HVACMode.COOL, HVACMode.HEAT, HVACMode.HEAT_COOL, HVACMode.OFF]
33 async_add_entities: AddEntitiesCallback,
35 """Set up the sensor config entry."""
40 for device
in controller_data.devices[Platform.CLIMATE]
47 """Representation of a Vera Thermostat."""
49 _attr_hvac_modes = SUPPORT_HVAC
50 _attr_fan_modes = FAN_OPERATION_LIST
51 _attr_supported_features = (
52 ClimateEntityFeature.TARGET_TEMPERATURE
53 | ClimateEntityFeature.FAN_MODE
54 | ClimateEntityFeature.TURN_OFF
55 | ClimateEntityFeature.TURN_ON
57 _enable_turn_on_off_backwards_compatibility =
False
60 self, vera_device: veraApi.VeraThermostat, controller_data: ControllerData
62 """Initialize the Vera device."""
63 VeraEntity.__init__(self, vera_device, controller_data)
68 """Return hvac operation ie. heat, cool mode.
70 Need to be one of HVAC_MODE_*.
72 mode = self.vera_device.get_hvac_mode()
77 if mode ==
"AutoChangeOver":
78 return HVACMode.HEAT_COOL
83 """Return the fan setting."""
84 if self.vera_device.get_fan_mode() ==
"ContinuousOn":
89 """Set new target temperature."""
90 if fan_mode == FAN_ON:
91 self.vera_device.fan_on()
93 self.vera_device.fan_auto()
99 """Return the unit of measurement."""
100 vera_temp_units = self.vera_device.vera_controller.temperature_units
102 if vera_temp_units ==
"F":
103 return UnitOfTemperature.FAHRENHEIT
105 return UnitOfTemperature.CELSIUS
109 """Return the current temperature."""
110 return self.vera_device.get_current_temperature()
114 """Return current operation ie. heat, cool, idle."""
115 return self.vera_device.get_hvac_mode()
119 """Return the temperature we try to reach."""
120 return self.vera_device.get_current_goal_temperature()
123 """Set new target temperatures."""
124 if kwargs.get(ATTR_TEMPERATURE)
is not None:
130 """Set new target hvac mode."""
131 if hvac_mode == HVACMode.OFF:
133 elif hvac_mode == HVACMode.HEAT_COOL:
134 self.vera_device.turn_auto_on()
135 elif hvac_mode == HVACMode.COOL:
136 self.vera_device.turn_cool_on()
137 elif hvac_mode == HVACMode.HEAT:
138 self.vera_device.turn_heat_on()
None set_fan_mode(self, str fan_mode)
None set_hvac_mode(self, HVACMode hvac_mode)
float|None target_temperature(self)
None set_temperature(self, **Any kwargs)
None __init__(self, veraApi.VeraThermostat vera_device, ControllerData controller_data)
str temperature_unit(self)
float|None current_temperature(self)
None schedule_update_ha_state(self, bool force_refresh=False)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
ControllerData get_controller_data(HomeAssistant hass, ConfigEntry config_entry)