1 """Support for Yale Smart Alarm button."""
3 from __future__
import annotations
5 from typing
import TYPE_CHECKING
12 from .
import YaleConfigEntry
13 from .const
import DOMAIN, YALE_ALL_ERRORS
14 from .coordinator
import YaleDataUpdateCoordinator
15 from .entity
import YaleAlarmEntity
20 translation_key=
"panic",
27 entry: YaleConfigEntry,
28 async_add_entities: AddEntitiesCallback,
30 """Set up the button from a config entry."""
32 coordinator = entry.runtime_data
35 [
YalePanicButton(coordinator, description)
for description
in BUTTON_TYPES]
40 """A Panic button for Yale Smart Alarm."""
42 entity_description: ButtonEntityDescription
46 coordinator: YaleDataUpdateCoordinator,
47 description: ButtonEntityDescription,
49 """Initialize the plug switch."""
55 """Press the button."""
57 assert self.coordinator.yale,
"Connection to API is missing"
60 await self.
hasshasshass.async_add_executor_job(
61 self.coordinator.yale.trigger_panic_button
63 except YALE_ALL_ERRORS
as error:
65 translation_domain=DOMAIN,
66 translation_key=
"could_not_trigger_panic",
67 translation_placeholders={