Home Assistant Supervisor API参考手册:完整接口说明与实战案例
Home Assistant Supervisor API是管理智能家居系统的核心接口,提供了全面的设备控制、服务管理和系统监控功能。本文将详细介绍API的结构设计、核心功能模块及实战应用案例,帮助开发者快速上手并构建自定义智能家居解决方案。
API架构概览:模块化设计与RESTful规范
Home Assistant Supervisor采用模块化API设计,每个功能模块对应独立的接口文件,确保系统扩展灵活性。核心API实现位于supervisor/api/目录,包含20+功能模块,覆盖从设备管理到系统监控的全场景需求。
核心功能模块
| 模块文件 | 主要功能 | 典型应用场景 |
|---|---|---|
| supervisor/api/os.py | 操作系统管理 | 系统更新、重启控制 |
| supervisor/api/backups.py | 备份管理 | 自动备份、恢复系统 |
| supervisor/api/homeassistant.py | 核心服务控制 | 启动/停止Home Assistant |
| supervisor/api/addons.py | 插件管理 | 安装/配置第三方插件 |
| supervisor/api/network.py | 网络配置 | IP管理、DNS设置 |
认证机制:安全访问的第一道防线
所有API请求需通过认证机制验证,确保系统安全性。认证实现位于supervisor/api/auth.py,支持多种认证方式:
- 令牌认证:通过
Authorization: Bearer <token>头传递访问令牌 - 会话认证:基于Cookie的会话管理
- 权限控制:细粒度的操作权限划分
获取访问令牌
# 通过CLI获取长期访问令牌
ha auth token generate --name "API访问令牌"
核心接口实战:常用功能示例
1. 系统状态监控
接口路径:/api/supervisor/info
实现文件:supervisor/api/supervisor.py
功能描述:获取系统当前运行状态,包括CPU使用率、内存占用和服务状态
请求示例:
GET /api/supervisor/info
Authorization: Bearer YOUR_TOKEN
响应示例:
{
"data": {
"version": "2023.11.3",
"healthy": true,
"supported": true,
"hostname": "homeassistant",
"machine": "raspberrypi4-64",
"operating_system": "Home Assistant OS 10.1",
"disk_usage": 34,
"memory_usage": 42
}
}
2. 备份管理
接口路径:/api/backups/new
实现文件:supervisor/api/backups.py
功能描述:创建系统备份,支持全量备份和选择性备份
请求示例:
POST /api/backups/new
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json
{
"name": "周末自动备份",
"password": "your_secure_password",
"addons": ["core_ssh", "core_mosquitto"],
"folders": ["config", "media"]
}
3. 插件管理
接口路径:/api/addons/{addon_slug}/start
实现文件:supervisor/api/addons.py
功能描述:启动指定插件,支持传递启动参数
请求示例:
POST /api/addons/core_ssh/start
Authorization: Bearer YOUR_TOKEN
高级应用:事件流与实时监控
Home Assistant Supervisor API支持SSE(Server-Sent Events)实时事件流,可用于构建实时监控仪表盘。核心实现位于supervisor/api/proxy.py,主要事件流接口:
/api/stream:系统事件总流/api/websocket:双向通信WebSocket接口
事件流订阅示例:
const eventSource = new EventSource('/api/stream', {
headers: { 'Authorization': 'Bearer YOUR_TOKEN' }
});
eventSource.addEventListener('supervisor', (event) => {
const data = JSON.parse(event.data);
console.log('系统状态更新:', data);
});
错误处理与调试
API错误处理遵循统一规范,所有错误响应包含code和message字段:
{
"error": {
"code": "addon_not_running",
"message": "插件未运行"
}
}
调试工具推荐:
- supervisor/api/utils.py:提供API请求日志和错误追踪功能
- Home Assistant日志面板:查看详细API请求记录
接口扩展:自定义API开发
开发者可通过插件系统扩展API功能,实现步骤:
- 创建插件目录结构
- 在插件中实现API路由
- 注册自定义API端点
详细开发指南参见supervisor/addons/目录下的插件开发示例。
总结:构建智能生态的强大接口
Home Assistant Supervisor API为智能家居系统提供了全面的编程接口,无论是简单的状态查询还是复杂的自动化控制,都能通过API轻松实现。通过本文介绍的核心接口和实战案例,开发者可以快速构建个性化的智能家居解决方案,丰富Home Assistant生态系统。
后续开发建议:
- 探索supervisor/api/services.py中的服务集成接口
- 研究supervisor/api/resolution.py的系统问题诊断功能
- 参与社区API扩展讨论,贡献自定义接口实现
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



