1 """Support for sensors."""
3 from __future__
import annotations
5 from collections.abc
import Callable
6 from dataclasses
import dataclass
8 from fjaraskupan
import Device
11 BinarySensorDeviceClass,
13 BinarySensorEntityDescription,
22 from .
import async_setup_entry_platform
23 from .coordinator
import FjaraskupanCoordinator
26 @dataclass(frozen=True)
28 """Entity description."""
30 is_on: Callable =
lambda _:
False
36 translation_key=
"grease_filter",
37 device_class=BinarySensorDeviceClass.PROBLEM,
38 is_on=
lambda state: state.grease_filter_full,
42 translation_key=
"carbon_filter",
43 device_class=BinarySensorDeviceClass.PROBLEM,
44 is_on=
lambda state: state.carbon_filter_full,
51 config_entry: ConfigEntry,
52 async_add_entities: AddEntitiesCallback,
54 """Set up sensors dynamically through discovery."""
56 def _constructor(coordinator: FjaraskupanCoordinator) -> list[Entity]:
61 coordinator.device_info,
64 for entity_description
in SENSORS
71 """Grease filter sensor."""
73 entity_description: EntityDescription
74 _attr_has_entity_name =
True
78 coordinator: FjaraskupanCoordinator,
80 device_info: DeviceInfo,
81 entity_description: EntityDescription,
87 self.
_attr_unique_id_attr_unique_id = f
"{device.address}-{entity_description.key}"
92 """Return true if the binary sensor is on."""
93 if data := self.coordinator.data:
None __init__(self, FjaraskupanCoordinator coordinator, Device device, DeviceInfo device_info, EntityDescription entity_description)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
None async_setup_entry_platform(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities, Callable[[FjaraskupanCoordinator], list[Entity]] constructor)