# plugins/homeassistant/__init__.py from __future__ import annotations from typing import TYPE_CHECKING if TYPE_CHECKING: from quart import Quart _app: "Quart | None" = None def setup(app: "Quart") -> None: global _app _app = app from .models import HomeAssistantConnection, HomeAssistantUpdate # noqa: F401 — registers the tables from .timeline import register register() def get_scheduled_tasks() -> list: from .scheduler import make_tick_task return [make_tick_task(_app)] def get_blueprint(): from .routes import homeassistant_bp return homeassistant_bp def get_nav() -> list[dict]: return [{"label": "Home Assistant", "href": "/plugins/homeassistant/"}] def get_alert_metrics() -> dict[str, list[str]]: """What the poll records, all under the resource "homeassistant".""" return {"homeassistant": ["is_up", "backup_age_hours", "updates_waiting"]} def register_mcp_tools(register) -> None: from .mcp_tools import register_tools register_tools(register) async def mcp_overview(db) -> list[dict]: from .mcp_tools import mcp_overview as findings return await findings(db)