"""Binary sensor platform for Reticulum.""" from __future__ import annotations from homeassistant.components.binary_sensor import ( BinarySensorDeviceClass, BinarySensorEntity, ) from homeassistant.config_entries import ConfigEntry from homeassistant.core import HomeAssistant from homeassistant.helpers.entity_platform import AddEntitiesCallback from .const import DOMAIN from .entity import ReticulumEntity from .reticulum_client import ReticulumManager async def async_setup_entry( hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback, ) -> None: """Set up the Reticulum connectivity binary sensor.""" manager: ReticulumManager = hass.data[DOMAIN][entry.entry_id].manager async_add_entities([ReticulumConnectivity(manager, entry.entry_id)]) class ReticulumConnectivity(ReticulumEntity, BinarySensorEntity): """Reports whether the outbound Reticulum interface is online.""" _attr_translation_key = "connected" _attr_device_class = BinarySensorDeviceClass.CONNECTIVITY def __init__(self, manager: ReticulumManager, entry_id: str) -> None: super().__init__(manager, entry_id) self._attr_unique_id = f"{entry_id}_connected" @property def is_on(self) -> bool: return self._manager.state.interface_online