1 """Renson ventilation unit buttons."""
3 from __future__
import annotations
5 from collections.abc
import Callable
6 from dataclasses
import dataclass
8 from renson_endura_delta.renson
import RensonVentilation
13 ButtonEntityDescription,
20 from .
import RensonCoordinator, RensonData
21 from .const
import DOMAIN
22 from .entity
import RensonEntity
25 @dataclass(frozen=True, kw_only=True)
27 """Class describing Renson button entity."""
29 action_fn: Callable[[RensonVentilation],
None]
32 ENTITY_DESCRIPTIONS: tuple[RensonButtonEntityDescription, ...] = (
35 entity_category=EntityCategory.CONFIG,
36 translation_key=
"sync_time",
37 action_fn=
lambda api: api.sync_time(),
41 device_class=ButtonDeviceClass.RESTART,
42 entity_category=EntityCategory.CONFIG,
43 action_fn=
lambda api: api.restart_device(),
47 translation_key=
"reset_filter",
48 entity_category=EntityCategory.CONFIG,
49 action_fn=
lambda api: api.reset_filter(),
56 config_entry: ConfigEntry,
57 async_add_entities: AddEntitiesCallback,
59 """Set up the Renson button platform."""
61 data: RensonData = hass.data[DOMAIN][config_entry.entry_id]
65 for description
in ENTITY_DESCRIPTIONS
72 """Representation of a Renson actions."""
74 _attr_has_entity_name =
True
75 entity_description: RensonButtonEntityDescription
79 description: RensonButtonEntityDescription,
80 api: RensonVentilation,
81 coordinator: RensonCoordinator,
83 """Initialize class."""
84 super().
__init__(description.key, api, coordinator)
89 """Triggers the action."""