核心用法
Home Assistant Control 是一套基于 Bash 脚本的技能工具集,通过调用 Home Assistant REST API 实现对智能家居设备的远程操控。用户需预先配置 HA_TOKEN(长期访问令牌)和 HA_URL_PUBLIC(公共访问地址)作为基础凭证。核心工作流包括:解析用户指令→查询命名别名→验证实体存在→执行服务调用→回查状态并报告结果。
主要功能覆盖六大领域:
- 实体状态查询:支持列出全部设备状态或查询单个实体
- 设备控制:开关灯、调节亮度色温、设置温度、解锁门锁等
- 服务调用:直接调用任意 domain/service 组合
- 场景/脚本/自动化触发:一键激活预设场景
- 智能搜索:通过部分实体ID或友好名称快速定位设备
- 安全执行:高敏感操作(门锁、警报、车库门)需二次确认
显著优点
1. 轻量依赖:仅需 bash/curl/jq,无需 Python 运行时
2. 灵活配置:支持环境变量、外部 env 文件、本地/公网 URL 自动降级
3. 安全设计:敏感操作强制确认、令牌值防泄露、env 文件解析禁用 source/eval
4. 可维护性:内置实体清单生成、命名上下文持久化、连接自检脚本
5. 扩展友好:模块化脚本设计,便于二次开发
潜在局限
- 令牌安全风险:长期访问令牌泄露即等同于账号泄露,需严格保管
- 网络依赖:完全依赖 HTTP(S) 连接,公网暴露需配合 HTTPS + 反向代理
- 无内置加密:令牌明文传输,依赖 TLS 保障传输安全
- 手动配置门槛:需用户自行创建 HA 令牌、配置 URL,对非技术用户不够友好
- 无权限细分:单一令牌权限覆盖全部 API,无法限制到特定设备
适合人群
- 已有 Home Assistant 部署的技术用户
- 希望通过 CLI/脚本自动化家居场景的进阶玩家
- 需要将 HA 控制集成到第三方工作流(如 AI 助手)的开发者
常规风险
- 令牌泄露:长期令牌一旦泄露,攻击者可远程控制全部设备
- 误操作风险:批量执行或模糊匹配可能导致非预期设备动作
- 公网暴露:若 HA 实例直接暴露公网且无额外防护,易受扫描攻击
- 依赖可用性:Home Assistant 离线或网络中断时功能完全失效