1 """Support for Powerview scenes from a Powerview hub."""
3 from __future__
import annotations
8 from aiopvapi.helpers.constants
import ATTR_NAME
9 from aiopvapi.resources.scene
import Scene
as PvScene
15 from .const
import STATE_ATTRIBUTE_ROOM_NAME
16 from .coordinator
import PowerviewShadeUpdateCoordinator
17 from .entity
import HDEntity
18 from .model
import PowerviewConfigEntry, PowerviewDeviceInfo
20 _LOGGER = logging.getLogger(__name__)
27 entry: PowerviewConfigEntry,
28 async_add_entities: AddEntitiesCallback,
30 """Set up powerview scene entries."""
31 pv_entry = entry.runtime_data
32 pvscenes: list[PowerViewScene] = []
33 for scene
in pv_entry.scene_data.values():
34 room_name = getattr(pv_entry.room_data.get(scene.room_id), ATTR_NAME,
"")
36 PowerViewScene(pv_entry.coordinator, pv_entry.device_info, room_name, scene)
42 """Representation of a Powerview scene."""
44 _attr_icon =
"mdi:blinds"
48 coordinator: PowerviewShadeUpdateCoordinator,
49 device_info: PowerviewDeviceInfo,
53 """Initialize the scene."""
54 super().
__init__(coordinator, device_info, room_name, scene.id)
55 self._scene: PvScene = scene
60 """Activate scene. Try to get entities into requested state."""
61 shades = await self._scene.
activate()
62 _LOGGER.debug(
"Scene activated for shade(s) %s", shades)
None async_activate(self, **Any kwargs)
_attr_extra_state_attributes
None __init__(self, PowerviewShadeUpdateCoordinator coordinator, PowerviewDeviceInfo device_info, str room_name, PvScene scene)
None activate(self, **Any kwargs)
None async_setup_entry(HomeAssistant hass, PowerviewConfigEntry entry, AddEntitiesCallback async_add_entities)