Home Assistant Unofficial Reference 2024.12.1
scene.py
Go to the documentation of this file.
1 """Support for scenes through the SmartThings cloud API."""
2 
3 from typing import Any
4 
5 from homeassistant.components.scene import Scene
6 from homeassistant.config_entries import ConfigEntry
7 from homeassistant.core import HomeAssistant
8 from homeassistant.helpers.entity_platform import AddEntitiesCallback
9 
10 from .const import DATA_BROKERS, DOMAIN
11 
12 
14  hass: HomeAssistant,
15  config_entry: ConfigEntry,
16  async_add_entities: AddEntitiesCallback,
17 ) -> None:
18  """Add switches for a config entry."""
19  broker = hass.data[DOMAIN][DATA_BROKERS][config_entry.entry_id]
20  async_add_entities(SmartThingsScene(scene) for scene in broker.scenes.values())
21 
22 
24  """Define a SmartThings scene."""
25 
26  def __init__(self, scene):
27  """Init the scene class."""
28  self._scene_scene = scene
29  self._attr_name_attr_name = scene.name
30  self._attr_unique_id_attr_unique_id = scene.scene_id
31 
32  async def async_activate(self, **kwargs: Any) -> None:
33  """Activate scene."""
34  await self._scene_scene.execute()
35 
36  @property
38  """Get attributes about the state."""
39  return {
40  "icon": self._scene_scene.icon,
41  "color": self._scene_scene.color,
42  "location_id": self._scene_scene.location_id,
43  }
def execute(hass, filename, source, data=None, return_response=False)
Definition: __init__.py:194
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: scene.py:17