Home Assistant Unofficial Reference 2024.12.1
light.py
Go to the documentation of this file.
1 """TOLO Sauna light controls."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from homeassistant.components.light import ColorMode, LightEntity
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 light controls for TOLO Sauna."""
23  coordinator = hass.data[DOMAIN][entry.entry_id]
24  async_add_entities([ToloLight(coordinator, entry)])
25 
26 
28  """Sauna light control."""
29 
30  _attr_color_mode = ColorMode.ONOFF
31  _attr_translation_key = "light"
32  _attr_supported_color_modes = {ColorMode.ONOFF}
33 
34  def __init__(
35  self, coordinator: ToloSaunaUpdateCoordinator, entry: ConfigEntry
36  ) -> None:
37  """Initialize TOLO Sauna Light entity."""
38  super().__init__(coordinator, entry)
39 
40  self._attr_unique_id_attr_unique_id = f"{entry.entry_id}_light"
41 
42  @property
43  def is_on(self) -> bool:
44  """Return current lamp status."""
45  return self.coordinator.data.status.lamp_on
46 
47  def turn_on(self, **kwargs: Any) -> None:
48  """Turn on TOLO Sauna lamp."""
49  self.coordinator.client.set_lamp_on(True)
50 
51  def turn_off(self, **kwargs: Any) -> None:
52  """Turn off TOLO Sauna lamp."""
53  self.coordinator.client.set_lamp_on(False)
None turn_off(self, **Any kwargs)
Definition: light.py:51
None __init__(self, ToloSaunaUpdateCoordinator coordinator, ConfigEntry entry)
Definition: light.py:36
None turn_on(self, **Any kwargs)
Definition: light.py:47
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: light.py:21