Use NamedTuple for intesishome swing settings (#56752)

This commit is contained in:
Marc Mueller 2021-09-29 01:56:58 +02:00 committed by GitHub
parent e76ddb4b27
commit 160571888c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,6 +1,7 @@
"""Support for IntesisHome and airconwithme Smart AC Controllers.""" """Support for IntesisHome and airconwithme Smart AC Controllers."""
import logging import logging
from random import randrange from random import randrange
from typing import NamedTuple
from pyintesishome import IHAuthenticationError, IHConnectionError, IntesisHome from pyintesishome import IHAuthenticationError, IHConnectionError, IntesisHome
import voluptuous as vol import voluptuous as vol
@ -53,6 +54,14 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
} }
) )
class SwingSettings(NamedTuple):
"""Settings for swing mode."""
vvane: str
hvane: str
MAP_IH_TO_HVAC_MODE = { MAP_IH_TO_HVAC_MODE = {
"auto": HVAC_MODE_HEAT_COOL, "auto": HVAC_MODE_HEAT_COOL,
"cool": HVAC_MODE_COOL, "cool": HVAC_MODE_COOL,
@ -73,10 +82,10 @@ MAP_PRESET_MODE_TO_IH = {v: k for k, v in MAP_IH_TO_PRESET_MODE.items()}
IH_SWING_STOP = "auto/stop" IH_SWING_STOP = "auto/stop"
IH_SWING_SWING = "swing" IH_SWING_SWING = "swing"
MAP_SWING_TO_IH = { MAP_SWING_TO_IH = {
SWING_OFF: {"vvane": IH_SWING_STOP, "hvane": IH_SWING_STOP}, SWING_OFF: SwingSettings(vvane=IH_SWING_STOP, hvane=IH_SWING_STOP),
SWING_BOTH: {"vvane": IH_SWING_SWING, "hvane": IH_SWING_SWING}, SWING_BOTH: SwingSettings(vvane=IH_SWING_SWING, hvane=IH_SWING_SWING),
SWING_HORIZONTAL: {"vvane": IH_SWING_STOP, "hvane": IH_SWING_SWING}, SWING_HORIZONTAL: SwingSettings(vvane=IH_SWING_STOP, hvane=IH_SWING_SWING),
SWING_VERTICAL: {"vvane": IH_SWING_SWING, "hvane": IH_SWING_STOP}, SWING_VERTICAL: SwingSettings(vvane=IH_SWING_SWING, hvane=IH_SWING_STOP),
} }
@ -305,13 +314,12 @@ class IntesisAC(ClimateEntity):
async def async_set_swing_mode(self, swing_mode): async def async_set_swing_mode(self, swing_mode):
"""Set the vertical vane.""" """Set the vertical vane."""
swing_settings = MAP_SWING_TO_IH.get(swing_mode) if swing_settings := MAP_SWING_TO_IH.get(swing_mode):
if swing_settings:
await self._controller.set_vertical_vane( await self._controller.set_vertical_vane(
self._device_id, swing_settings.get("vvane") self._device_id, swing_settings.vvane
) )
await self._controller.set_horizontal_vane( await self._controller.set_horizontal_vane(
self._device_id, swing_settings.get("hvane") self._device_id, swing_settings.hvane
) )
async def async_update(self): async def async_update(self):