Home Assistant Unofficial Reference 2024.12.1
button.py
Go to the documentation of this file.
1 """Support for the Nettigo Air Monitor service."""
2 
3 from __future__ import annotations
4 
5 import logging
6 
8  ButtonDeviceClass,
9  ButtonEntity,
10  ButtonEntityDescription,
11 )
12 from homeassistant.const import EntityCategory
13 from homeassistant.core import HomeAssistant
14 from homeassistant.helpers.entity_platform import AddEntitiesCallback
15 from homeassistant.helpers.update_coordinator import CoordinatorEntity
16 
17 from . import NAMConfigEntry, NAMDataUpdateCoordinator
18 
19 PARALLEL_UPDATES = 1
20 
21 _LOGGER = logging.getLogger(__name__)
22 
23 RESTART_BUTTON: ButtonEntityDescription = ButtonEntityDescription(
24  key="restart",
25  device_class=ButtonDeviceClass.RESTART,
26  entity_category=EntityCategory.CONFIG,
27 )
28 
29 
31  hass: HomeAssistant, entry: NAMConfigEntry, async_add_entities: AddEntitiesCallback
32 ) -> None:
33  """Add a Nettigo Air Monitor entities from a config_entry."""
34  coordinator = entry.runtime_data
35 
36  buttons: list[NAMButton] = []
37  buttons.append(NAMButton(coordinator, RESTART_BUTTON))
38 
39  async_add_entities(buttons, False)
40 
41 
42 class NAMButton(CoordinatorEntity[NAMDataUpdateCoordinator], ButtonEntity):
43  """Define an Nettigo Air Monitor button."""
44 
45  _attr_has_entity_name = True
46 
47  def __init__(
48  self,
49  coordinator: NAMDataUpdateCoordinator,
50  description: ButtonEntityDescription,
51  ) -> None:
52  """Initialize."""
53  super().__init__(coordinator)
54  self._attr_device_info_attr_device_info = coordinator.device_info
55  self._attr_unique_id_attr_unique_id = f"{coordinator.unique_id}-{description.key}"
56  self.entity_descriptionentity_description = description
57 
58  async def async_press(self) -> None:
59  """Triggers the restart."""
60  await self.coordinator.nam.async_restart()
None __init__(self, NAMDataUpdateCoordinator coordinator, ButtonEntityDescription description)
Definition: button.py:51
None async_setup_entry(HomeAssistant hass, NAMConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: button.py:32