diff --git a/homeassistant/components/daikin/climate.py b/homeassistant/components/daikin/climate.py index 10d1a6161a326c..284776bc671bfc 100644 --- a/homeassistant/components/daikin/climate.py +++ b/homeassistant/components/daikin/climate.py @@ -12,7 +12,7 @@ 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) @@ -20,7 +20,8 @@ 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__) @@ -49,7 +50,7 @@ HA_PRESET_TO_DAIKIN = { PRESET_AWAY: 'on', - PRESET_HOME: 'off' + PRESET_NONE: 'off' } HA_ATTR_TO_DAIKIN = { @@ -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) @@ -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 @@ -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: @@ -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): diff --git a/homeassistant/components/daikin/const.py b/homeassistant/components/daikin/const.py index 90967904579c70..69a8372cff44df 100644 --- a/homeassistant/components/daikin/const.py +++ b/homeassistant/components/daikin/const.py @@ -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 = { diff --git a/homeassistant/components/daikin/manifest.json b/homeassistant/components/daikin/manifest.json index bb6db10131451b..f41faa42091697 100644 --- a/homeassistant/components/daikin/manifest.json +++ b/homeassistant/components/daikin/manifest.json @@ -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": [ diff --git a/requirements_all.txt b/requirements_all.txt index 16c414c03fb9bd..e360ca591ad86a 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -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