1 """Support for StarLine button."""
3 from __future__
import annotations
10 from .account
import StarlineAccount, StarlineDevice
11 from .const
import DOMAIN
12 from .entity
import StarlineEntity
14 BUTTON_TYPES: tuple[ButtonEntityDescription, ...] = (
17 translation_key=
"horn",
21 translation_key=
"panic",
22 entity_registry_enabled_default=
False,
27 translation_key=
"flex",
28 translation_placeholders={
"num":
str(i)},
29 entity_registry_enabled_default=
False,
37 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
39 """Set up the StarLine button."""
40 account: StarlineAccount = hass.data[DOMAIN][entry.entry_id]
43 for device
in account.api.devices.values()
44 if device.support_state
45 for description
in BUTTON_TYPES
50 """Representation of a StarLine button."""
52 entity_description: ButtonEntityDescription
56 account: StarlineAccount,
57 device: StarlineDevice,
58 description: ButtonEntityDescription,
60 """Initialize the button."""
61 super().
__init__(account, device, description.key)
66 """Return True if entity is available."""
67 return super().available
and self.
_device_device.online
70 """Press the button."""