1 """Support for Freedompro binary_sensor."""
6 BinarySensorDeviceClass,
15 from .const
import DOMAIN
16 from .coordinator
import FreedomproDataUpdateCoordinator
19 "smokeSensor": BinarySensorDeviceClass.SMOKE,
20 "occupancySensor": BinarySensorDeviceClass.OCCUPANCY,
21 "motionSensor": BinarySensorDeviceClass.MOTION,
22 "contactSensor": BinarySensorDeviceClass.OPENING,
26 "smokeSensor":
"smokeDetected",
27 "occupancySensor":
"occupancyDetected",
28 "motionSensor":
"motionDetected",
29 "contactSensor":
"contactSensorState",
32 SUPPORTED_SENSORS = {
"smokeSensor",
"occupancySensor",
"motionSensor",
"contactSensor"}
36 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
38 """Set up Freedompro binary_sensor."""
39 coordinator: FreedomproDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
41 Device(device, coordinator)
42 for device
in coordinator.data
43 if device[
"type"]
in SUPPORTED_SENSORS
48 """Representation of a Freedompro binary_sensor."""
50 _attr_has_entity_name =
True
54 self, device: dict[str, Any], coordinator: FreedomproDataUpdateCoordinator
56 """Initialize the Freedompro binary_sensor."""
59 self.
_type_type = device[
"type"]
62 (DOMAIN, device[
"uid"]),
64 manufacturer=
"Freedompro",
72 """Handle updated data from the coordinator."""
76 for device
in self.coordinator.data
77 if device[
"uid"] == self.
unique_idunique_id
81 if device
is not None and "state" in device:
82 state = device[
"state"]
87 """When entity is added to hass."""
None __init__(self, dict[str, Any] device, FreedomproDataUpdateCoordinator coordinator)
None _handle_coordinator_update(self)
None async_added_to_hass(self)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)