Home Assistant Unofficial Reference 2024.12.1
button.py
Go to the documentation of this file.
1 """Button entity to set the time of the Alpha2 base."""
2 
3 from homeassistant.components.button import ButtonEntity
4 from homeassistant.config_entries import ConfigEntry
5 from homeassistant.const import EntityCategory
6 from homeassistant.core import HomeAssistant
7 from homeassistant.helpers.entity_platform import AddEntitiesCallback
8 from homeassistant.helpers.update_coordinator import CoordinatorEntity
9 from homeassistant.util import dt as dt_util
10 
11 from .const import DOMAIN
12 from .coordinator import Alpha2BaseCoordinator
13 
14 
16  hass: HomeAssistant,
17  config_entry: ConfigEntry,
18  async_add_entities: AddEntitiesCallback,
19 ) -> None:
20  """Add Alpha2 button entities."""
21 
22  coordinator: Alpha2BaseCoordinator = hass.data[DOMAIN][config_entry.entry_id]
23 
24  async_add_entities([Alpha2TimeSyncButton(coordinator, config_entry.entry_id)])
25 
26 
27 class Alpha2TimeSyncButton(CoordinatorEntity[Alpha2BaseCoordinator], ButtonEntity):
28  """Alpha2 virtual time sync button."""
29 
30  _attr_name = "Sync time"
31  _attr_entity_category = EntityCategory.DIAGNOSTIC
32 
33  def __init__(self, coordinator: Alpha2BaseCoordinator, entry_id: str) -> None:
34  """Initialize Alpha2TimeSyncButton."""
35  super().__init__(coordinator)
36 
37  self._attr_unique_id_attr_unique_id = f"{entry_id}:sync_time"
38 
39  async def async_press(self) -> None:
40  """Synchronize current local time from HA instance to base station."""
41  await self.coordinator.base.set_datetime(dt_util.now())
None __init__(self, Alpha2BaseCoordinator coordinator, str entry_id)
Definition: button.py:33
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: button.py:19