Home Assistant Unofficial Reference 2024.12.1
scene.py
Go to the documentation of this file.
1 """Support for Tuya scenes."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from tuya_sharing import Manager, SharingScene
8 
9 from homeassistant.components.scene import Scene
10 from homeassistant.core import HomeAssistant
11 from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
12 from homeassistant.helpers.entity_platform import AddEntitiesCallback
13 
14 from . import TuyaConfigEntry
15 from .const import DOMAIN
16 
17 
19  hass: HomeAssistant, entry: TuyaConfigEntry, async_add_entities: AddEntitiesCallback
20 ) -> None:
21  """Set up Tuya scenes."""
22  hass_data = entry.runtime_data
23  scenes = await hass.async_add_executor_job(hass_data.manager.query_scenes)
24  async_add_entities(TuyaSceneEntity(hass_data.manager, scene) for scene in scenes)
25 
26 
28  """Tuya Scene Remote."""
29 
30  _should_poll = False
31  _attr_has_entity_name = True
32  _attr_name = None
33 
34  def __init__(self, home_manager: Manager, scene: SharingScene) -> None:
35  """Init Tuya Scene."""
36  super().__init__()
37  self._attr_unique_id_attr_unique_id = f"tys{scene.scene_id}"
38  self.home_managerhome_manager = home_manager
39  self.scenescene = scene
40 
41  @property
42  def device_info(self) -> DeviceInfo:
43  """Return a device description for device registry."""
44  return DeviceInfo(
45  identifiers={(DOMAIN, f"{self.unique_id}")},
46  manufacturer="tuya",
47  name=self.scenescene.name,
48  model="Tuya Scene",
49  entry_type=DeviceEntryType.SERVICE,
50  )
51 
52  @property
53  def available(self) -> bool:
54  """Return if the scene is enabled."""
55  return self.scenescene.enabled
56 
57  def activate(self, **kwargs: Any) -> None:
58  """Activate the scene."""
59  self.home_managerhome_manager.trigger_scene(self.scenescene.home_id, self.scenescene.scene_id)
None __init__(self, Manager home_manager, SharingScene scene)
Definition: scene.py:34
None async_setup_entry(HomeAssistant hass, TuyaConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: scene.py:20