Luke Lashley 4ff5a04a72
Bump Python-Snoo to 0.6.5 (#141599)
* Bump Python-Snoo to 0.6.5

* add to event_types
2025-03-27 21:56:11 +01:00

64 lines
1.9 KiB
Python

"""Support for Snoo Events."""
from homeassistant.components.event import EventEntity, EventEntityDescription
from homeassistant.core import HomeAssistant, callback
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
from .coordinator import SnooConfigEntry
from .entity import SnooDescriptionEntity
async def async_setup_entry(
hass: HomeAssistant,
entry: SnooConfigEntry,
async_add_entities: AddConfigEntryEntitiesCallback,
) -> None:
"""Set up Snoo device."""
coordinators = entry.runtime_data
async_add_entities(
SnooEvent(
coordinator,
EventEntityDescription(
key="event",
translation_key="event",
event_types=[
"timer",
"cry",
"command",
"safety_clip",
"long_activity_press",
"activity",
"power",
"status_requested",
"sticky_white_noise_updated",
"config_change",
],
),
)
for coordinator in coordinators.values()
)
class SnooEvent(SnooDescriptionEntity, EventEntity):
"""A event using Snoo coordinator."""
@callback
def _async_handle_event(self) -> None:
"""Handle the demo button event."""
self._trigger_event(
self.coordinator.data.event.value,
)
self.async_write_ha_state()
async def async_added_to_hass(self) -> None:
"""Add Event."""
await super().async_added_to_hass()
if self.coordinator.data:
# If we were able to get data on startup - set it
# Otherwise, it will update when the coordinator gets data.
self._async_handle_event()
def _handle_coordinator_update(self) -> None:
self._async_handle_event()
return super()._handle_coordinator_update()