1 """The Flexit Nordic (BACnet) integration."""
3 from collections.abc
import Callable
4 from dataclasses
import dataclass
6 from flexit_bacnet
import FlexitBACnet
9 BinarySensorDeviceClass,
11 BinarySensorEntityDescription,
17 from .
import FlexitCoordinator
18 from .const
import DOMAIN
19 from .entity
import FlexitEntity
22 @dataclass(kw_only=True, frozen=True)
24 """Describes a Flexit binary sensor entity."""
26 value_fn: Callable[[FlexitBACnet], bool]
29 SENSOR_TYPES: tuple[FlexitBinarySensorEntityDescription, ...] = (
31 key=
"air_filter_polluted",
32 device_class=BinarySensorDeviceClass.PROBLEM,
33 translation_key=
"air_filter_polluted",
34 value_fn=
lambda data: data.air_filter_polluted,
41 config_entry: ConfigEntry,
42 async_add_entities: AddEntitiesCallback,
44 """Set up Flexit (bacnet) binary sensor from a config entry."""
45 coordinator: FlexitCoordinator = hass.data[DOMAIN][config_entry.entry_id]
53 """Representation of a Flexit binary Sensor."""
55 entity_description: FlexitBinarySensorEntityDescription
59 coordinator: FlexitCoordinator,
60 entity_description: FlexitBinarySensorEntityDescription,
62 """Initialize Flexit (bacnet) sensor."""
67 f
"{coordinator.device.serial_number}-{entity_description.key}"
72 """Return value of binary sensor."""
None __init__(self, FlexitCoordinator coordinator, FlexitBinarySensorEntityDescription entity_description)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)