Home Assistant Unofficial Reference 2024.12.1
binary_sensor.py
Go to the documentation of this file.
1 """Setup Mullvad VPN Binary Sensors."""
2 
4  BinarySensorDeviceClass,
5  BinarySensorEntity,
6  BinarySensorEntityDescription,
7 )
8 from homeassistant.config_entries import ConfigEntry
9 from homeassistant.core import HomeAssistant
10 from homeassistant.helpers.device_registry import DeviceInfo
11 from homeassistant.helpers.entity_platform import AddEntitiesCallback
13  CoordinatorEntity,
14  DataUpdateCoordinator,
15 )
16 
17 from .const import DOMAIN
18 
19 BINARY_SENSORS = (
21  key="mullvad_exit_ip",
22  translation_key="exit_ip",
23  device_class=BinarySensorDeviceClass.CONNECTIVITY,
24  ),
25 )
26 
27 
29  hass: HomeAssistant,
30  config_entry: ConfigEntry,
31  async_add_entities: AddEntitiesCallback,
32 ) -> None:
33  """Defer sensor setup to the shared sensor module."""
34  coordinator = hass.data[DOMAIN]
35 
37  MullvadBinarySensor(coordinator, entity_description, config_entry)
38  for entity_description in BINARY_SENSORS
39  )
40 
41 
43  """Represents a Mullvad binary sensor."""
44 
45  _attr_has_entity_name = True
46 
47  def __init__(
48  self,
49  coordinator: DataUpdateCoordinator,
50  entity_description: BinarySensorEntityDescription,
51  config_entry: ConfigEntry,
52  ) -> None:
53  """Initialize the Mullvad binary sensor."""
54  super().__init__(coordinator)
55  self.entity_descriptionentity_description = entity_description
56  self._attr_unique_id_attr_unique_id = f"{config_entry.entry_id}_{entity_description.key}"
57  self._attr_device_info_attr_device_info = DeviceInfo(
58  identifiers={(DOMAIN, config_entry.entry_id)},
59  name="Mullvad VPN",
60  manufacturer="Mullvad",
61  )
62 
63  @property
64  def is_on(self) -> bool:
65  """Return the state for this binary sensor."""
66  return self.coordinator.data[self.entity_descriptionentity_description.key]
None __init__(self, DataUpdateCoordinator coordinator, BinarySensorEntityDescription entity_description, ConfigEntry config_entry)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)