Home Assistant Unofficial Reference 2024.12.1
binary_sensor.py
Go to the documentation of this file.
1 """Tracks the latency of a host by sending ICMP echo requests (ping)."""
2 
3 from __future__ import annotations
4 
6  BinarySensorDeviceClass,
7  BinarySensorEntity,
8 )
9 from homeassistant.config_entries import ConfigEntry
10 from homeassistant.core import HomeAssistant
11 from homeassistant.helpers.entity_platform import AddEntitiesCallback
12 
13 from . import PingConfigEntry
14 from .const import CONF_IMPORTED_BY
15 from .coordinator import PingUpdateCoordinator
16 from .entity import PingEntity
17 
18 
20  hass: HomeAssistant, entry: PingConfigEntry, async_add_entities: AddEntitiesCallback
21 ) -> None:
22  """Set up a Ping config entry."""
23  async_add_entities([PingBinarySensor(entry, entry.runtime_data)])
24 
25 
27  """Representation of a Ping Binary sensor."""
28 
29  _attr_device_class = BinarySensorDeviceClass.CONNECTIVITY
30  _attr_available = False
31  _attr_name = None
32 
33  def __init__(
34  self, config_entry: ConfigEntry, coordinator: PingUpdateCoordinator
35  ) -> None:
36  """Initialize the Ping Binary sensor."""
37  super().__init__(config_entry, coordinator, config_entry.entry_id)
38 
39  # if this was imported just enable it when it was enabled before
40  if CONF_IMPORTED_BY in config_entry.data:
41  self._attr_entity_registry_enabled_default_attr_entity_registry_enabled_default = bool(
42  config_entry.data[CONF_IMPORTED_BY] == "binary_sensor"
43  )
44 
45  @property
46  def is_on(self) -> bool:
47  """Return true if the binary sensor is on."""
48  return self.coordinator.data.is_alive
None __init__(self, ConfigEntry config_entry, PingUpdateCoordinator coordinator)
None async_setup_entry(HomeAssistant hass, PingConfigEntry entry, AddEntitiesCallback async_add_entities)