1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 21:06:19 +00:00
This commit is contained in:
Paulus Schoutsen
2019-07-31 12:25:30 -07:00
parent da05dfe708
commit 4de97abc3a
2676 changed files with 163166 additions and 140084 deletions

View File

@@ -5,26 +5,39 @@ from typing import List, Optional
from aioesphomeapi import FanInfo, FanSpeed, FanState
from homeassistant.components.fan import (
SPEED_HIGH, SPEED_LOW, SPEED_MEDIUM, SPEED_OFF, SUPPORT_OSCILLATE,
SUPPORT_SET_SPEED, FanEntity)
SPEED_HIGH,
SPEED_LOW,
SPEED_MEDIUM,
SPEED_OFF,
SUPPORT_OSCILLATE,
SUPPORT_SET_SPEED,
FanEntity,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.helpers.typing import HomeAssistantType
from . import (
EsphomeEntity, esphome_map_enum, esphome_state_property,
platform_async_setup_entry)
EsphomeEntity,
esphome_map_enum,
esphome_state_property,
platform_async_setup_entry,
)
_LOGGER = logging.getLogger(__name__)
async def async_setup_entry(hass: HomeAssistantType,
entry: ConfigEntry, async_add_entities) -> None:
async def async_setup_entry(
hass: HomeAssistantType, entry: ConfigEntry, async_add_entities
) -> None:
"""Set up ESPHome fans based on a config entry."""
await platform_async_setup_entry(
hass, entry, async_add_entities,
component_key='fan',
info_type=FanInfo, entity_type=EsphomeFan,
state_type=FanState
hass,
entry,
async_add_entities,
component_key="fan",
info_type=FanInfo,
entity_type=EsphomeFan,
state_type=FanState,
)
@@ -55,17 +68,17 @@ class EsphomeFan(EsphomeEntity, FanEntity):
return
await self._client.fan_command(
self._static_info.key, speed=_fan_speeds.from_hass(speed))
self._static_info.key, speed=_fan_speeds.from_hass(speed)
)
async def async_turn_on(self, speed: Optional[str] = None,
**kwargs) -> None:
async def async_turn_on(self, speed: Optional[str] = None, **kwargs) -> None:
"""Turn on the fan."""
if speed == SPEED_OFF:
await self.async_turn_off()
return
data = {'key': self._static_info.key, 'state': True}
data = {"key": self._static_info.key, "state": True}
if speed is not None:
data['speed'] = _fan_speeds.from_hass(speed)
data["speed"] = _fan_speeds.from_hass(speed)
await self._client.fan_command(**data)
# pylint: disable=arguments-differ
@@ -75,8 +88,9 @@ class EsphomeFan(EsphomeEntity, FanEntity):
async def async_oscillate(self, oscillating: bool) -> None:
"""Oscillate the fan."""
await self._client.fan_command(key=self._static_info.key,
oscillating=oscillating)
await self._client.fan_command(
key=self._static_info.key, oscillating=oscillating
)
@esphome_state_property
def is_on(self) -> Optional[bool]: