Add defrost preset mode to Tesla (#34186)
* style: update logging details * Add defrost preset mode to Tesla * Bump teslajsonpy to 0.7.0
This commit is contained in:
parent
994e83811f
commit
5fc0e00ead
4 changed files with 34 additions and 6 deletions
|
@ -1,10 +1,14 @@
|
|||
"""Support for Tesla HVAC system."""
|
||||
import logging
|
||||
from typing import List, Optional
|
||||
|
||||
from teslajsonpy.exceptions import UnknownPresetMode
|
||||
|
||||
from homeassistant.components.climate import ClimateDevice
|
||||
from homeassistant.components.climate.const import (
|
||||
HVAC_MODE_HEAT_COOL,
|
||||
HVAC_MODE_OFF,
|
||||
SUPPORT_PRESET_MODE,
|
||||
SUPPORT_TARGET_TEMPERATURE,
|
||||
)
|
||||
from homeassistant.const import ATTR_TEMPERATURE, TEMP_CELSIUS, TEMP_FAHRENHEIT
|
||||
|
@ -45,7 +49,7 @@ class TeslaThermostat(TeslaDevice, ClimateDevice):
|
|||
@property
|
||||
def supported_features(self):
|
||||
"""Return the list of supported features."""
|
||||
return SUPPORT_TARGET_TEMPERATURE
|
||||
return SUPPORT_TARGET_TEMPERATURE | SUPPORT_PRESET_MODE
|
||||
|
||||
@property
|
||||
def hvac_mode(self):
|
||||
|
@ -93,15 +97,39 @@ class TeslaThermostat(TeslaDevice, ClimateDevice):
|
|||
|
||||
async def async_set_temperature(self, **kwargs):
|
||||
"""Set new target temperatures."""
|
||||
_LOGGER.debug("Setting temperature for: %s", self._name)
|
||||
temperature = kwargs.get(ATTR_TEMPERATURE)
|
||||
if temperature:
|
||||
_LOGGER.debug("%s: Setting temperature to %s", self._name, temperature)
|
||||
await self.tesla_device.set_temperature(temperature)
|
||||
|
||||
async def async_set_hvac_mode(self, hvac_mode):
|
||||
"""Set new target hvac mode."""
|
||||
_LOGGER.debug("Setting mode for: %s", self._name)
|
||||
_LOGGER.debug("%s: Setting hvac mode to %s", self._name, hvac_mode)
|
||||
if hvac_mode == HVAC_MODE_OFF:
|
||||
await self.tesla_device.set_status(False)
|
||||
elif hvac_mode == HVAC_MODE_HEAT_COOL:
|
||||
await self.tesla_device.set_status(True)
|
||||
|
||||
async def async_set_preset_mode(self, preset_mode: str) -> None:
|
||||
"""Set new preset mode."""
|
||||
_LOGGER.debug("%s: Setting preset_mode to: %s", self.name, preset_mode)
|
||||
try:
|
||||
await self.tesla_device.set_preset_mode(preset_mode)
|
||||
except UnknownPresetMode as ex:
|
||||
_LOGGER.error("%s", ex.message)
|
||||
|
||||
@property
|
||||
def preset_mode(self) -> Optional[str]:
|
||||
"""Return the current preset mode, e.g., home, away, temp.
|
||||
|
||||
Requires SUPPORT_PRESET_MODE.
|
||||
"""
|
||||
return self.tesla_device.preset_mode
|
||||
|
||||
@property
|
||||
def preset_modes(self) -> Optional[List[str]]:
|
||||
"""Return a list of available preset modes.
|
||||
|
||||
Requires SUPPORT_PRESET_MODE.
|
||||
"""
|
||||
return self.tesla_device.preset_modes
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
"name": "Tesla",
|
||||
"config_flow": true,
|
||||
"documentation": "https://www.home-assistant.io/integrations/tesla",
|
||||
"requirements": ["teslajsonpy==0.6.0"],
|
||||
"requirements": ["teslajsonpy==0.7.0"],
|
||||
"codeowners": ["@zabuldon", "@alandtse"]
|
||||
}
|
||||
|
|
|
@ -2020,7 +2020,7 @@ temperusb==1.5.3
|
|||
tesla-powerwall==0.2.3
|
||||
|
||||
# homeassistant.components.tesla
|
||||
teslajsonpy==0.6.0
|
||||
teslajsonpy==0.7.0
|
||||
|
||||
# homeassistant.components.thermoworks_smoke
|
||||
thermoworks_smoke==0.1.8
|
||||
|
|
|
@ -756,7 +756,7 @@ tellduslive==0.10.10
|
|||
tesla-powerwall==0.2.3
|
||||
|
||||
# homeassistant.components.tesla
|
||||
teslajsonpy==0.6.0
|
||||
teslajsonpy==0.7.0
|
||||
|
||||
# homeassistant.components.toon
|
||||
toonapilib==3.2.4
|
||||
|
|
Loading…
Add table
Reference in a new issue