1 """Support for Motionblinds button entity using their WLAN API."""
3 from __future__
import annotations
5 from motionblinds.motion_blinds
import LimitStatus, MotionBlind
13 from .const
import DOMAIN, KEY_COORDINATOR, KEY_GATEWAY
14 from .coordinator
import DataUpdateCoordinatorMotionBlinds
15 from .entity
import MotionCoordinatorEntity
20 config_entry: ConfigEntry,
21 async_add_entities: AddEntitiesCallback,
23 """Perform the setup for Motionblinds."""
24 entities: list[ButtonEntity] = []
25 motion_gateway = hass.data[DOMAIN][config_entry.entry_id][KEY_GATEWAY]
26 coordinator = hass.data[DOMAIN][config_entry.entry_id][KEY_COORDINATOR]
28 for blind
in motion_gateway.device_list.values():
29 if blind.limit_status
in (
30 LimitStatus.Limit3Detected.name,
32 "T": LimitStatus.Limit3Detected.name,
33 "B": LimitStatus.Limit3Detected.name,
43 """Button entity to go to the favorite position of a blind."""
45 _attr_translation_key =
"go_favorite"
48 self, coordinator: DataUpdateCoordinatorMotionBlinds, blind: MotionBlind
50 """Initialize the Motion Button."""
55 """Execute the button action."""
57 await self.
hasshasshass.async_add_executor_job(self.
_blind_blind.Go_favorite_position)
62 """Button entity to set the favorite position of a blind to the current position."""
64 _attr_entity_category = EntityCategory.CONFIG
65 _attr_translation_key =
"set_favorite"
68 self, coordinator: DataUpdateCoordinatorMotionBlinds, blind: MotionBlind
70 """Initialize the Motion Button."""
75 """Execute the button action."""
77 await self.
hasshasshass.async_add_executor_job(self.
_blind_blind.Set_favorite_position)
None async_request_position_till_stop(self, int|None delay=None)