Home Assistant Unofficial Reference 2024.12.1
light.py
Go to the documentation of this file.
1 """Support for Velux lights."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from pyvlx import Intensity, LighteningDevice
8 
9 from homeassistant.components.light import ATTR_BRIGHTNESS, ColorMode, LightEntity
10 from homeassistant.config_entries import ConfigEntry
11 from homeassistant.core import HomeAssistant
12 from homeassistant.helpers.entity_platform import AddEntitiesCallback
13 
14 from .const import DOMAIN
15 from .entity import VeluxEntity
16 
17 PARALLEL_UPDATES = 1
18 
19 
21  hass: HomeAssistant, config: ConfigEntry, async_add_entities: AddEntitiesCallback
22 ) -> None:
23  """Set up light(s) for Velux platform."""
24  module = hass.data[DOMAIN][config.entry_id]
25 
27  VeluxLight(node, config.entry_id)
28  for node in module.pyvlx.nodes
29  if isinstance(node, LighteningDevice)
30  )
31 
32 
34  """Representation of a Velux light."""
35 
36  _attr_supported_color_modes = {ColorMode.BRIGHTNESS}
37  _attr_color_mode = ColorMode.BRIGHTNESS
38 
39  node: LighteningDevice
40 
41  @property
42  def brightness(self):
43  """Return the current brightness."""
44  return int((100 - self.nodenode.intensity.intensity_percent) * 255 / 100)
45 
46  @property
47  def is_on(self):
48  """Return true if light is on."""
49  return not self.nodenode.intensity.off and self.nodenode.intensity.known
50 
51  async def async_turn_on(self, **kwargs: Any) -> None:
52  """Instruct the light to turn on."""
53  if ATTR_BRIGHTNESS in kwargs:
54  intensity_percent = int(100 - kwargs[ATTR_BRIGHTNESS] / 255 * 100)
55  await self.nodenode.set_intensity(
56  Intensity(intensity_percent=intensity_percent),
57  wait_for_completion=True,
58  )
59  else:
60  await self.nodenode.turn_on(wait_for_completion=True)
61 
62  async def async_turn_off(self, **kwargs: Any) -> None:
63  """Instruct the light to turn off."""
64  await self.nodenode.turn_off(wait_for_completion=True)
None async_turn_off(self, **Any kwargs)
Definition: light.py:62
None async_turn_on(self, **Any kwargs)
Definition: light.py:51
None turn_off(self, **Any kwargs)
Definition: entity.py:1705
None turn_on(self, **Any kwargs)
Definition: entity.py:1697
None async_setup_entry(HomeAssistant hass, ConfigEntry config, AddEntitiesCallback async_add_entities)
Definition: light.py:22