mirror of
https://github.com/home-assistant/core.git
synced 2025-11-15 22:10:09 +00:00
39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
"""Support for Fluss Devices."""
|
|
|
|
from homeassistant.components.button import ButtonEntity
|
|
from homeassistant.config_entries import ConfigEntry
|
|
from homeassistant.core import HomeAssistant
|
|
from homeassistant.exceptions import HomeAssistantError
|
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
|
|
|
from .coordinator import FlussApiClientError, FlussDataUpdateCoordinator
|
|
from .entity import FlussEntity
|
|
|
|
type FlussConfigEntry = ConfigEntry[FlussDataUpdateCoordinator]
|
|
|
|
|
|
async def async_setup_entry(
|
|
hass: HomeAssistant,
|
|
entry: FlussConfigEntry,
|
|
async_add_entities: AddConfigEntryEntitiesCallback,
|
|
) -> None:
|
|
"""Set up the Fluss Devices, filtering out any invalid payloads."""
|
|
coordinator = entry.runtime_data
|
|
devices = coordinator.data
|
|
|
|
async_add_entities(
|
|
FlussButton(coordinator, device_id, device)
|
|
for device_id, device in devices.items()
|
|
)
|
|
|
|
|
|
class FlussButton(FlussEntity, ButtonEntity):
|
|
"""Representation of a Fluss button device."""
|
|
|
|
async def async_press(self) -> None:
|
|
"""Handle the button press."""
|
|
try:
|
|
await self.coordinator.api.async_trigger_device(self.device_id)
|
|
except FlussApiClientError as err:
|
|
raise HomeAssistantError(f"Failed to trigger device: {err}") from err
|