24 lines
646 B
Python
24 lines
646 B
Python
from fastapi import APIRouter, Depends
|
|
from sqlmodel import Session, func, select
|
|
|
|
from app.database import get_session
|
|
from app.ha_client import ha_client
|
|
from app.models import EntityCache
|
|
from app.scan_state import scan_state
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.get("/health")
|
|
async def health(session: Session = Depends(get_session)):
|
|
connected, message = await ha_client.check_connection()
|
|
count = session.exec(select(func.count()).select_from(EntityCache)).one()
|
|
|
|
return {
|
|
"status": "ok",
|
|
"ha_connected": connected,
|
|
"ha_message": message,
|
|
"entity_count": count,
|
|
**scan_state.to_dict(),
|
|
}
|