1 """Button platform for Sensibo integration."""
3 from __future__
import annotations
5 from dataclasses
import dataclass
13 from .
import SensiboConfigEntry
14 from .coordinator
import SensiboDataUpdateCoordinator
15 from .entity
import SensiboDeviceBaseEntity, async_handle_api_call
20 @dataclass(frozen=True, kw_only=True)
22 """Class describing Sensibo Button entities."""
29 translation_key=
"reset_filter",
30 entity_category=EntityCategory.CONFIG,
31 data_key=
"filter_clean",
37 entry: SensiboConfigEntry,
38 async_add_entities: AddEntitiesCallback,
40 """Set up Sensibo binary sensor platform."""
42 coordinator = entry.runtime_data
46 for device_id, device_data
in coordinator.data.parsed.items()
51 """Representation of a Sensibo Device Binary Sensor."""
53 entity_description: SensiboButtonEntityDescription
57 coordinator: SensiboDataUpdateCoordinator,
59 entity_description: SensiboButtonEntityDescription,
61 """Initiate Sensibo Device Button."""
70 """Press the button."""
76 @async_handle_api_call
78 """Make service call to api."""
79 result = await self.
_client_client.async_reset_filter(
82 return bool(result.get(
"status") ==
"success")