Home Assistant Unofficial Reference 2024.12.1
button.py
Go to the documentation of this file.
1 """Demo platform that offers a fake button entity."""
2 
3 from __future__ import annotations
4 
5 from homeassistant.components import persistent_notification
6 from homeassistant.components.button import ButtonEntity
7 from homeassistant.config_entries import ConfigEntry
8 from homeassistant.core import HomeAssistant
9 from homeassistant.helpers.device_registry import DeviceInfo
10 from homeassistant.helpers.entity_platform import AddEntitiesCallback
11 
12 from . import DOMAIN
13 
14 
16  hass: HomeAssistant,
17  config_entry: ConfigEntry,
18  async_add_entities: AddEntitiesCallback,
19 ) -> None:
20  """Set up the demo button platform."""
22  [
23  DemoButton(
24  unique_id="push",
25  device_name="Push",
26  ),
27  ]
28  )
29 
30 
32  """Representation of a demo button entity."""
33 
34  _attr_has_entity_name = True
35  _attr_name = None
36  _attr_should_poll = False
37 
38  def __init__(
39  self,
40  unique_id: str,
41  device_name: str,
42  ) -> None:
43  """Initialize the Demo button entity."""
44  self._attr_unique_id_attr_unique_id = unique_id
45  self._attr_device_info_attr_device_info = DeviceInfo(
46  identifiers={(DOMAIN, unique_id)},
47  name=device_name,
48  )
49 
50  async def async_press(self) -> None:
51  """Send out a persistent notification."""
52  persistent_notification.async_create(
53  self.hasshass, "Button pressed", title="Button"
54  )
55  self.hasshass.bus.async_fire("demo_button_pressed")
None __init__(self, str unique_id, str device_name)
Definition: button.py:42
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: button.py:19