Home Assistant Unofficial Reference 2024.12.1
event.py
Go to the documentation of this file.
1 """Nice G.O. event platform."""
2 
3 import logging
4 from typing import Any
5 
6 from homeassistant.components.event import EventEntity
7 from homeassistant.core import HomeAssistant
8 from homeassistant.helpers.entity_platform import AddEntitiesCallback
9 
10 from . import NiceGOConfigEntry
11 from .entity import NiceGOEntity
12 
13 _LOGGER = logging.getLogger(__name__)
14 
15 
17  hass: HomeAssistant,
18  config_entry: NiceGOConfigEntry,
19  async_add_entities: AddEntitiesCallback,
20 ) -> None:
21  """Set up Nice G.O. event."""
22 
23  coordinator = config_entry.runtime_data
24 
26  NiceGOEventEntity(coordinator, device_id, device_data.name)
27  for device_id, device_data in coordinator.data.items()
28  )
29 
30 
31 EVENT_BARRIER_OBSTRUCTED = "barrier_obstructed"
32 
33 
35  """Event for Nice G.O. devices."""
36 
37  _attr_translation_key = "barrier_obstructed"
38  _attr_event_types = [EVENT_BARRIER_OBSTRUCTED]
39 
40  async def async_added_to_hass(self) -> None:
41  """Listen for events."""
42  await super().async_added_to_hass()
43  self.async_on_removeasync_on_remove(
44  self.coordinator.api.listen(
45  "on_barrier_obstructed", self.on_barrier_obstructedon_barrier_obstructed
46  )
47  )
48 
49  async def on_barrier_obstructed(self, data: dict[str, Any]) -> None:
50  """Handle barrier obstructed event."""
51  _LOGGER.debug("Barrier obstructed event: %s", data)
52  if data["deviceId"] == self.datadatadata.id:
53  _LOGGER.debug("Barrier obstructed event for %s, triggering", self.datadatadata.name)
54  self._trigger_event_trigger_event(EVENT_BARRIER_OBSTRUCTED)
55  self.async_write_ha_stateasync_write_ha_state()
None _trigger_event(self, str event_type, dict[str, Any]|None event_attributes=None)
Definition: __init__.py:148
None on_barrier_obstructed(self, dict[str, Any] data)
Definition: event.py:49
None async_on_remove(self, CALLBACK_TYPE func)
Definition: entity.py:1331
None async_setup_entry(HomeAssistant hass, NiceGOConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: event.py:20