在 Home Assistant 里搭一条自动化,最难的往往不是想清楚要做什么,而是猜传感器到底报什么值:门磁触发时返回的是 on 还是 detected?门锁上锁后是 locked,还是随集成不同换个说法?还得防着它偶尔冒出一个 unavailable。

XDA 撰稿人 Samir Makwana 说,他早年照着论坛帖子拼出来的几条自动化确实能跑,但他也说不清为什么能跑,于是定下规矩:只要不坏就绝不去碰。这种「不敢碰」的状态,在 2026 年 7 月 1 日发布的 Home Assistant 2026.7 之后有了改变——目的化触发器和条件(purpose-specific triggers and conditions)从 Labs 实验区毕业,成为所有人的默认选项。它此前已在 Labs 里打磨了半年多。
区别在于起点:过去要先想「该用状态触发器、数值状态触发器还是设备触发器」,现在直接从「想让家里发生什么」选起。
一、把数值触发器换成场景触发器
以温度为例,过去要用数值状态触发器盯着一个原始读数,还得自己定阈值。现在新建自动化时直接选「Temperature crossed threshold(温度越过阈值)」,填上数字即可,比如卧室低于 18°C 就开暖气。
电池同理。以前得知道每个设备是按百分比、电压还是布尔值上报电量,撰稿人干脆随便挑了个数字凑合。现在选「Battery low(电量低)」并指向传感器,阈值由 Home Assistant 按传感器类型自行判断。前提是设备要正确声明自己是电池传感器——自己搭的节点需要先配置好,否则识别不到。
二、把自动化绑到区域,而不是单个设备
撰稿人客厅的灯光自动化原先绑定一个 PIR 人体传感器的实体名。后来为补盲区加了第二个传感器,就得回自动化里手动往触发器列表添加,每换一个设备都要重来一遍。
新触发器支持直接指向整个区域。把条件改成「客厅有移动」之后,自动化不再关心房间里有几个传感器,后续增加、更换或删掉某个都不用再改动它。
三、修那条躲了一年的自动化
他还有一条「回家观影模式」:夜里回到家就把灯调暖调暗、打开电视。它靠手机定位从 not_home 变为 home 来触发,可信号一抖就先变成 unavailable 再落回 home,结果不是漏触发,就是拿旧值提前触发。当时他靠加一堆额外条件勉强绕过去,从此不敢再动。
新的到家触发器内部已处理 unknown 与 unavailable 这类中间状态,换上之后那些补丁式条件全部删掉,运行至今没再出过问题。
注意事项
- 已有的自动化不会被改动,照常运行,旧的触发器类型也继续保留。
- 习惯写 YAML 的人不必担心,目的化触发器同样能对应写进 YAML,不是只有界面才能用。
- 集成可以自带触发器,例如洗衣机集成提供「洗衣完成」,电价集成提供「今天电价最低时」,不用再去解读它们各自的状态码。
同版本还顺带把日志本改名为 Activity 并重做成时间线,更新页面则按系统、集成、应用、设备分组,每组带一个 Update All 按钮,核心系统更新单独留在外面手动确认。
来源:XDA Developers







