1 """Button entities for Acaia scales."""
3 from collections.abc
import Callable, Coroutine
4 from dataclasses
import dataclass
7 from aioacaia.acaiascale
import AcaiaScale
13 from .coordinator
import AcaiaConfigEntry
14 from .entity
import AcaiaEntity
19 @dataclass(kw_only=True, frozen=True)
21 """Description for acaia button entities."""
23 press_fn: Callable[[AcaiaScale], Coroutine[Any, Any,
None]]
26 BUTTONS: tuple[AcaiaButtonEntityDescription, ...] = (
29 translation_key=
"tare",
30 press_fn=
lambda scale: scale.tare(),
34 translation_key=
"reset_timer",
35 press_fn=
lambda scale: scale.reset_timer(),
39 translation_key=
"start_stop",
40 press_fn=
lambda scale: scale.start_stop_timer(),
47 entry: AcaiaConfigEntry,
48 async_add_entities: AddEntitiesCallback,
50 """Set up button entities and services."""
52 coordinator = entry.runtime_data
57 """Representation of an Acaia button."""
59 entity_description: AcaiaButtonEntityDescription
62 """Handle the button press."""