Home Assistant Unofficial Reference 2024.12.1
button.py
Go to the documentation of this file.
1 """Obihai button module."""
2 
3 from __future__ import annotations
4 
6  ButtonDeviceClass,
7  ButtonEntity,
8  ButtonEntityDescription,
9 )
10 from homeassistant.config_entries import ConfigEntry
11 from homeassistant.const import EntityCategory
12 from homeassistant.core import HomeAssistant
13 from homeassistant.exceptions import HomeAssistantError
14 from homeassistant.helpers import entity_platform
15 
16 from .connectivity import ObihaiConnection
17 from .const import DOMAIN, OBIHAI
18 
19 BUTTON_DESCRIPTION = ButtonEntityDescription(
20  key="reboot",
21  name=f"{OBIHAI} Reboot",
22  device_class=ButtonDeviceClass.RESTART,
23  entity_category=EntityCategory.CONFIG,
24 )
25 
26 
28  hass: HomeAssistant,
29  entry: ConfigEntry,
30  async_add_entities: entity_platform.AddEntitiesCallback,
31 ) -> None:
32  """Set up the Obihai sensor entries."""
33 
34  requester: ObihaiConnection = hass.data[DOMAIN][entry.entry_id]
35 
36  buttons = [ObihaiButton(requester)]
37  async_add_entities(buttons, update_before_add=True)
38 
39 
41  """Obihai Reboot button."""
42 
43  entity_description = BUTTON_DESCRIPTION
44 
45  def __init__(self, requester: ObihaiConnection) -> None:
46  """Initialize monitor sensor."""
47  self.requesterrequester = requester
48  self._pyobihai_pyobihai = requester.pyobihai
49  self._attr_unique_id_attr_unique_id = f"{requester.serial}-reboot"
50 
51  def press(self) -> None:
52  """Press button."""
53 
54  if not self._pyobihai_pyobihai.call_reboot():
55  raise HomeAssistantError("Reboot failed!")
None __init__(self, ObihaiConnection requester)
Definition: button.py:45
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, entity_platform.AddEntitiesCallback async_add_entities)
Definition: button.py:31