Home Assistant Unofficial Reference 2024.12.1
scene.py
Go to the documentation of this file.
1 """Support for Vera scenes."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 import pyvera as veraApi
8 
9 from homeassistant.components.scene import Scene
10 from homeassistant.config_entries import ConfigEntry
11 from homeassistant.core import HomeAssistant
12 from homeassistant.helpers.entity_platform import AddEntitiesCallback
13 from homeassistant.util import slugify
14 
15 from .common import ControllerData, get_controller_data
16 from .const import VERA_ID_FORMAT
17 
18 
20  hass: HomeAssistant,
21  entry: ConfigEntry,
22  async_add_entities: AddEntitiesCallback,
23 ) -> None:
24  """Set up the sensor config entry."""
25  controller_data = get_controller_data(hass, entry)
27  [VeraScene(device, controller_data) for device in controller_data.scenes], True
28  )
29 
30 
32  """Representation of a Vera scene entity."""
33 
34  def __init__(
35  self, vera_scene: veraApi.VeraScene, controller_data: ControllerData
36  ) -> None:
37  """Initialize the scene."""
38  self.vera_scenevera_scene = vera_scene
39  self.controllercontroller = controller_data.controller
40 
41  self._attr_name_attr_name = self.vera_scenevera_scene.name
42  # Append device id to prevent name clashes in HA.
43  self.vera_idvera_id = VERA_ID_FORMAT.format(
44  slugify(vera_scene.name), vera_scene.scene_id
45  )
46 
47  def update(self) -> None:
48  """Update the scene status."""
49  self.vera_scenevera_scene.refresh()
50 
51  def activate(self, **kwargs: Any) -> None:
52  """Activate the scene."""
53  self.vera_scenevera_scene.activate()
54 
55  @property
56  def extra_state_attributes(self) -> dict[str, Any] | None:
57  """Return the state attributes of the scene."""
58  return {"vera_scene_id": self.vera_scenevera_scene.vera_scene_id}
dict[str, Any]|None extra_state_attributes(self)
Definition: scene.py:56
None activate(self, **Any kwargs)
Definition: scene.py:51
None __init__(self, veraApi.VeraScene vera_scene, ControllerData controller_data)
Definition: scene.py:36
ControllerData get_controller_data(HomeAssistant hass, ConfigEntry config_entry)
Definition: common.py:40
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: scene.py:23