Skip to content

Commit

Permalink
Update Daikin preset modes (#25395)
Browse files Browse the repository at this point in the history
* fix preset documentation

* Use pydaikin set holiday method
  • Loading branch information
fredrike authored and balloob committed Jul 24, 2019
1 parent 956cdba commit 638f5b1
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 15 deletions.
29 changes: 16 additions & 13 deletions homeassistant/components/daikin/climate.py
Expand Up @@ -12,15 +12,16 @@
SUPPORT_SWING_MODE,
HVAC_MODE_OFF, HVAC_MODE_HEAT, HVAC_MODE_COOL, HVAC_MODE_HEAT_COOL,
HVAC_MODE_DRY, HVAC_MODE_FAN_ONLY,
PRESET_AWAY, PRESET_HOME,
PRESET_AWAY, PRESET_NONE,
ATTR_CURRENT_TEMPERATURE, ATTR_FAN_MODE,
ATTR_HVAC_MODE, ATTR_SWING_MODE,
ATTR_PRESET_MODE)
import homeassistant.helpers.config_validation as cv

from . import DOMAIN as DAIKIN_DOMAIN
from .const import (
ATTR_INSIDE_TEMPERATURE, ATTR_OUTSIDE_TEMPERATURE, ATTR_TARGET_TEMPERATURE)
ATTR_INSIDE_TEMPERATURE, ATTR_OUTSIDE_TEMPERATURE, ATTR_STATE_OFF,
ATTR_STATE_ON, ATTR_TARGET_TEMPERATURE)

_LOGGER = logging.getLogger(__name__)

Expand Down Expand Up @@ -49,7 +50,7 @@

HA_PRESET_TO_DAIKIN = {
PRESET_AWAY: 'on',
PRESET_HOME: 'off'
PRESET_NONE: 'off'
}

HA_ATTR_TO_DAIKIN = {
Expand Down Expand Up @@ -142,9 +143,10 @@ def get(self, key):
ha_mode = DAIKIN_TO_HA_STATE.get(daikin_mode)
value = ha_mode
elif key == ATTR_PRESET_MODE:
away = (self._api.device.represent(daikin_attr)[1]
!= HA_STATE_TO_DAIKIN[HVAC_MODE_OFF])
value = PRESET_AWAY if away else PRESET_HOME
if self._api.device.represent(
daikin_attr)[1] == HA_PRESET_TO_DAIKIN[PRESET_AWAY]:
return PRESET_AWAY
return PRESET_NONE

if value is None:
_LOGGER.error("Invalid value requested for key %s", key)
Expand All @@ -164,7 +166,7 @@ async def _set(self, settings):
values = {}

for attr in [ATTR_TEMPERATURE, ATTR_FAN_MODE, ATTR_SWING_MODE,
ATTR_HVAC_MODE, ATTR_PRESET_MODE]:
ATTR_HVAC_MODE]:
value = settings.get(attr)
if value is None:
continue
Expand All @@ -173,8 +175,6 @@ async def _set(self, settings):
if daikin_attr is not None:
if attr == ATTR_HVAC_MODE:
values[daikin_attr] = HA_STATE_TO_DAIKIN[value]
elif attr == ATTR_PRESET_MODE:
values[daikin_attr] = HA_PRESET_TO_DAIKIN[value]
elif value in self._list[attr]:
values[daikin_attr] = value.lower()
else:
Expand Down Expand Up @@ -273,16 +273,19 @@ def swing_modes(self):

@property
def preset_mode(self):
"""Return the fan setting."""
"""Return the preset_mode."""
return self.get(ATTR_PRESET_MODE)

async def async_set_preset_mode(self, preset_mode):
"""Set new target temperature."""
await self._set({ATTR_PRESET_MODE: preset_mode})
"""Set preset mode."""
if preset_mode == PRESET_AWAY:
await self._api.device.set_holiday(ATTR_STATE_ON)
else:
await self._api.device.set_holiday(ATTR_STATE_OFF)

@property
def preset_modes(self):
"""List of available swing modes."""
"""List of available preset modes."""
return list(HA_PRESET_TO_DAIKIN)

async def async_update(self):
Expand Down
3 changes: 3 additions & 0 deletions homeassistant/components/daikin/const.py
Expand Up @@ -5,6 +5,9 @@
ATTR_INSIDE_TEMPERATURE = 'inside_temperature'
ATTR_OUTSIDE_TEMPERATURE = 'outside_temperature'

ATTR_STATE_ON = 'on'
ATTR_STATE_OFF = 'off'

SENSOR_TYPE_TEMPERATURE = 'temperature'

SENSOR_TYPES = {
Expand Down
2 changes: 1 addition & 1 deletion homeassistant/components/daikin/manifest.json
Expand Up @@ -4,7 +4,7 @@
"config_flow": true,
"documentation": "https://www.home-assistant.io/components/daikin",
"requirements": [
"pydaikin==1.4.6"
"pydaikin==1.5.1"
],
"dependencies": [],
"codeowners": [
Expand Down
2 changes: 1 addition & 1 deletion requirements_all.txt
Expand Up @@ -1078,7 +1078,7 @@ pycsspeechtts==1.0.2
# pycups==1.9.73

# homeassistant.components.daikin
pydaikin==1.4.6
pydaikin==1.5.1

# homeassistant.components.danfoss_air
pydanfossair==0.1.0
Expand Down

0 comments on commit 638f5b1

Please sign in to comment.