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:
claude
2026-07-22 18:08:12 +03:00
parent 22408c2bd5
commit b40c527515
19 changed files with 2727 additions and 1 deletions

View 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