Home Assistant Unofficial Reference 2024.12.1
binary_sensor.py
Go to the documentation of this file.
1 """Support for Radarr binary sensors."""
2 
3 from __future__ import annotations
4 
5 from aiopyarr import Health
6 
8  BinarySensorDeviceClass,
9  BinarySensorEntity,
10  BinarySensorEntityDescription,
11 )
12 from homeassistant.const import EntityCategory
13 from homeassistant.core import HomeAssistant
14 from homeassistant.helpers.entity_platform import AddEntitiesCallback
15 
16 from . import RadarrConfigEntry
17 from .const import HEALTH_ISSUES
18 from .entity import RadarrEntity
19 
20 BINARY_SENSOR_TYPE = BinarySensorEntityDescription(
21  key="health",
22  translation_key="health",
23  entity_category=EntityCategory.DIAGNOSTIC,
24  device_class=BinarySensorDeviceClass.PROBLEM,
25 )
26 
27 
29  hass: HomeAssistant,
30  entry: RadarrConfigEntry,
31  async_add_entities: AddEntitiesCallback,
32 ) -> None:
33  """Set up Radarr sensors based on a config entry."""
34  coordinator = entry.runtime_data.health
35  async_add_entities([RadarrBinarySensor(coordinator, BINARY_SENSOR_TYPE)])
36 
37 
38 class RadarrBinarySensor(RadarrEntity[list[Health]], BinarySensorEntity):
39  """Implementation of a Radarr binary sensor."""
40 
41  @property
42  def is_on(self) -> bool:
43  """Return True if the entity is on."""
44  return any(report.source in HEALTH_ISSUES for report in self.coordinator.data)
None async_setup_entry(HomeAssistant hass, RadarrConfigEntry entry, AddEntitiesCallback async_add_entities)