Home Assistant 可视化自动化编辑器上手
自动化是 Home Assistant 的灵魂
Home Assistant 的自动化引擎让设备自己会运转。不是你手动开灯,而是"日落时客厅灯自动打开"、"离家后车库门没关就推送提醒"、"晚上 11 点自动关灯锁门"——这些全部由自动化定义。
自动化的三个核心概念:
- 触发器(Trigger):什么时候启动自动化(传感器状态变化、时间到了、设备事件…)
- 条件(Condition):触发时哪些前提必须满足(如果没满足就跳过本次执行)
- 动作(Action):触发且条件满足后执行什么(开关设备、发送通知、调用服务…)
打开自动化编辑器
Settings → Automations & scenes → 右下角 + Create automation
编辑器分两种视图:
- Editor(可视化视图):拖拽点击,零代码。推荐新手
- YAML(代码视图):直接写 YAML,适合需要模板的复杂场景。两种视图随时切换
创建你的第一个自动化
场景:日落时客厅灯自动打开
- 点击 + Create automation → Create new automation
- 触发器:点击 + Add trigger → 选 Sun
- Trigger type: Sun
- Event: Sunset
- Offset: 留空(日落瞬间触发)或
-00:15:00(日落前 15 分钟)
- 条件(可选,这里加一个避免白天误触发):点击 + Add condition → State
- Entity:
sun.sun - State:
below_horizon
- 动作:点击 + Add action → Call Service
- Service:
light.turn_on - Target → Entity:
light.living_room - Data: 可选设置
brightness_step_pct: 10或颜色
- 点击右上角 Save → 给自动化取个名字:
日落自动开客厅灯 - 保存后自动化立即生效
自动化的"执行模式"
Home Assistant 的自动化有 4 种执行模式,决定同一个触发器在触发时如何排队:
| 模式 | 行为 | 适用场景 |
|---|---|---|
| Single | 上一次没执行完,新触发直接忽略(默认) | 多数场景 |
| Restart | 上一次没执行完,取消后重新开始 | 流程类自动化(如分步播放的消息) |
| Queued | 排队依次执行 | 不能丢但也不能中断的场景 |
| Parallel | 并行执行多个实例 | 几乎不用,容易导致并发冲突 |
在编辑器底部的 Execution mode 下拉框可以切换。
临时开关(Toggle)
每个自动化都有一个开关状态(类似实体)。你可以:
- 在 Lovelace 用 Switch Card 控制某个自动化的开/关
- 用另一个自动化来临时禁用/启用某个自动化(服务
automation.turn_on/automation.turn_off) - 手动执行:自动化详情页 → 右上角 Execute 按钮立即跑一次(测试好用)
触发器 ID(Trigger IDs)
2026.10 版本引入的强大功能——可以给每个触发器起一个名字,之后在动作里根据哪个触发器命中了来做不同的事。
triggers:
- trigger: state
entity_id: sensor.motion_living_room
from: "off"
to: "on"
id: motion_detected
- trigger: time
at: "18:00:00"
id: evening
actions:
- if:
condition: trigger
id: motion_detected
then:
- service: light.turn_on
target:
entity_id: light.living_room
- if:
condition: trigger
id: evening
then:
- service: light.turn_on
target:
entity_id: group.all_lights
调试自动化
- 调试追踪:自动化详情页 → 右上角 Traces 按钮 → 可以看到最近几次执行的完整日志(哪个触发器命中了、条件是否满足、哪个动作执行了、哪步报错了)
- Developer Tools → States:看自动化实体的状态(
automation.automation_name显示 on/off 表示是否启用)