Home Assistant Unofficial Reference 2024.12.1
fan.py
Go to the documentation of this file.
1 """TOLO Sauna fan controls."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from homeassistant.components.fan import FanEntity, FanEntityFeature
8 from homeassistant.config_entries import ConfigEntry
9 from homeassistant.core import HomeAssistant
10 from homeassistant.helpers.entity_platform import AddEntitiesCallback
11 
12 from .const import DOMAIN
13 from .coordinator import ToloSaunaUpdateCoordinator
14 from .entity import ToloSaunaCoordinatorEntity
15 
16 
18  hass: HomeAssistant,
19  entry: ConfigEntry,
20  async_add_entities: AddEntitiesCallback,
21 ) -> None:
22  """Set up fan controls for TOLO Sauna."""
23  coordinator = hass.data[DOMAIN][entry.entry_id]
24  async_add_entities([ToloFan(coordinator, entry)])
25 
26 
28  """Sauna fan control."""
29 
30  _attr_translation_key = "fan"
31  _attr_supported_features = FanEntityFeature.TURN_OFF | FanEntityFeature.TURN_ON
32  _enable_turn_on_off_backwards_compatibility = False
33 
34  def __init__(
35  self, coordinator: ToloSaunaUpdateCoordinator, entry: ConfigEntry
36  ) -> None:
37  """Initialize TOLO fan entity."""
38  super().__init__(coordinator, entry)
39 
40  self._attr_unique_id_attr_unique_id = f"{entry.entry_id}_fan"
41 
42  @property
43  def is_on(self) -> bool:
44  """Return if sauna fan is running."""
45  return self.coordinator.data.status.fan_on
46 
47  def turn_on(
48  self,
49  percentage: int | None = None,
50  preset_mode: str | None = None,
51  **kwargs: Any,
52  ) -> None:
53  """Turn on sauna fan."""
54  self.coordinator.client.set_fan_on(True)
55 
56  def turn_off(self, **kwargs: Any) -> None:
57  """Turn off sauna fan."""
58  self.coordinator.client.set_fan_on(False)
None turn_on(self, int|None percentage=None, str|None preset_mode=None, **Any kwargs)
Definition: fan.py:52
None __init__(self, ToloSaunaUpdateCoordinator coordinator, ConfigEntry entry)
Definition: fan.py:36
None turn_off(self, **Any kwargs)
Definition: fan.py:56
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: fan.py:21