Add Reticulum/LXMF integration for Home Assistant
Custom integration connecting Home Assistant to a Reticulum network over a TCPClientInterface and exchanging LXMF messages, with an Assist conversation bridge, notify entity, sensors (incl. interface telemetry), buttons, services, bus events and device triggers. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
40
custom_components/reticulum/binary_sensor.py
Normal file
40
custom_components/reticulum/binary_sensor.py
Normal file
@@ -0,0 +1,40 @@
|
||||
"""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
|
||||
Reference in New Issue
Block a user