Home Assistant Unofficial Reference 2024.12.1
button.py
Go to the documentation of this file.
1 """BleBox button entities implementation."""
2 
3 from __future__ import annotations
4 
6 
7 from homeassistant.components.button import ButtonEntity
8 from homeassistant.core import HomeAssistant
9 from homeassistant.helpers.entity_platform import AddEntitiesCallback
10 
11 from . import BleBoxConfigEntry
12 from .entity import BleBoxEntity
13 
14 
16  hass: HomeAssistant,
17  config_entry: BleBoxConfigEntry,
18  async_add_entities: AddEntitiesCallback,
19 ) -> None:
20  """Set up a BleBox button entry."""
21  entities = [
22  BleBoxButtonEntity(feature)
23  for feature in config_entry.runtime_data.features.get("buttons", [])
24  ]
25  async_add_entities(entities, True)
26 
27 
28 class BleBoxButtonEntity(BleBoxEntity[blebox_uniapi.button.Button], ButtonEntity):
29  """Representation of BleBox buttons."""
30 
31  def __init__(self, feature: blebox_uniapi.button.Button) -> None:
32  """Initialize a BleBox button feature."""
33  super().__init__(feature)
34  self._attr_icon_attr_icon = self.get_iconget_icon()
35 
36  def get_icon(self) -> str | None:
37  """Return icon for endpoint."""
38  if "up" in self._feature.query_string:
39  return "mdi:arrow-up-circle"
40  if "down" in self._feature.query_string:
41  return "mdi:arrow-down-circle"
42  if "fav" in self._feature.query_string:
43  return "mdi:heart-circle"
44  if "open" in self._feature.query_string:
45  return "mdi:arrow-up-circle"
46  if "close" in self._feature.query_string:
47  return "mdi:arrow-down-circle"
48  return None
49 
50  async def async_press(self) -> None:
51  """Handle the button press."""
52  await self._feature.set()
None __init__(self, blebox_uniapi.button.Button feature)
Definition: button.py:31
None async_setup_entry(HomeAssistant hass, BleBoxConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: button.py:19