Home Assistant 自动化调试助手
纯前端:粘贴 automation YAML 做静态体检,或生成 trigger/condition/action 片段。数据不出浏览器,适合排查自动化「不触发」「动作没执行」这类问题。
自动化 YAML 静态体检
把你的 automation YAML(可整段 automations: 子项或单条 automation)粘进来,工具做以下启发式检查,不联网、不上传:
- 缺 trigger:没有
trigger/triggers,自动化永不触发 - action 为空:有 trigger 却无
action/actions,触发后什么都没做 - trigger / condition / action 类型合法性:枚举是否写对(如 trigger 类型写成了 sensor)
- 模板大括号未闭合:
{{ }}/{% %}是否成对 - tab 缩进:YAML 禁用 tab,标出含 tab 的行
- condition 引用了不存在的 trigger 变量(提示性,非报错)
生成 trigger / condition / action 片段
选一个场景,生成标准 YAML 写法(可直接粘进 automation 对应位置):
常见陷阱速查
| 现象 | 原因 | 怎么改 |
|---|---|---|
| 自动化完全不触发 | 缺 trigger,或 trigger 类型/实体写错 |
补 trigger;entity_id 必须是已存在的实体 |
| 触发了但没动作 | action 为空或实体写错 |
补 action;action: 后的实体名拼写核对 |
| 动作有时执行有时不执行 | 加了 condition 但条件常不满足 |
用 HA 日志过滤该 automation,看 condition 哪条没过 |
| 传感器抖动连发 | trigger 没加 for |
加 for: 00:00:10 等 10 秒才触发 |
模板报 TemplateError |
{{ }} 未闭合或变量名错 |
对照体检行号;变量名与实体属性严格一致 |
| YAML 整段解析失败 | 混入 tab、缩进不齐、冒号后没空格 | 体检会标出含 tab 的行;冒号后必须有空格 |
⚠️ 诚实说明:本工具是静态启发式检查,只查 YAML 结构与常见拼写/逻辑坑,不模拟 Home Assistant 运行时(不会真去查实体是否在线、condition 实际值)。最终以 HA「设置 → 自动化 → 自动化校验器」与
home-assistant.log为准。
相关教程
- 自动化入门 — trigger / condition / action 三件套概念
- 触发器 vs 条件:何时用哪个 — 二者最常混用的地方
- 自动化 YAML 速查表 — 全部 trigger/condition/action 写法速查
- MQTT 接入与自动化 — MQTT 触发自动化的前置配置