前面几章零星用过「自动化」这个词,这一篇正式把米家自动化编辑器拆开讲。理解了「触发、条件、执行」这三要素,你就能把家里任何设备连成自己想要的样子,而不是照背别人的模板。
入口在哪
米家 App 的自动化入口有两层:
- 全局入口:App 首页底部「场景」标签页(旧版叫「自动化」),这里列出你建的所有自动化与手动场景,点右上角「+」新建。
- 设备快捷入口:进入任一设备页 → 右上角「⋯」→「智能/场景」,可以直接为该设备新建自动化,设备会被预选进去,适合「我就想让这台设备怎样」的场景。
「自动化」与「手动场景」的区别:自动化是「满足条件自动跑」,手动场景是「你点一下/喊一句才跑」(可以在小爱里用「执行场景」或语音口令触发)。两者的编辑界面几乎一样,区别只在要不要触发器。
三要素:触发、条件、执行
一个自动化就是一句话:当……(触发),如果……(条件),就……(执行)。
1. 触发(When):事情发生的时刻
触发是「开始箭头」,没有它自动化永远不跑。米家的触发器分成几类:
| 触发类型 | 典型例子 | 使用要点 |
|---|---|---|
| 状态变化 | 门窗开/合、人体移动、灯被打开 | 是「变化」而非「状态」,「人体移动」只在有人经过那一下触发 |
| 指定时间 | 每天 7:00、工作日 8:30、日出/日落前后 | 日出日落跟随城市,家庭管理里城市填对 |
| 温湿度/数值越界 | 温度 > 28℃、湿度 < 40% | 支持自定义阈值与「高于/低于」方向 |
| 设备控制事件 | 门锁被打开、洗衣机工作结束、净水器滤芯到期 | 以设备的「事件型触发」能力为准,不是每台设备都有 |
| 小爱语音/无线开关 | 「小爱同学,我回来了」、开关按一下 | 语音触发器实际是交由小爱处理,见训练计划篇 |
| 手动/其他自动化调用 | 被另一个自动化「执行场景」 | 用于自动化之间的嵌套串联 |
最重要的一条认知:触发只看「变化那一刻」。比如「门打开」触发后,哪怕门一直开着,自动化也不会再跑;想让「门开超过 5 分钟」报警,要用「延时」执行 + 条件配合(下文有示例)。
2. 条件(If):满足才往下走
条件是过滤器,可加可不加,但一旦加了必须全部满足才执行。米家的「条件」还要分清两种:
- 满足条件:判断一次,真就执行、假就跳过。适合「只在晚上」「只有家里有人」「只有周末」。
- 满足条件并持续(部分版本):状态保持一段时间才执行,用来防抖。用来做「回家确认」「门窗长时间未关提醒」。
常用条件:
| 条件 | 场景 |
|---|---|
| 时间段 | 只在 22:00–次日 7:00 之间生效 |
| 星期/工作日 | 只周末、只工作日 |
| 设备状态 | 只有「客厅灯开着」才执行 |
| 家里有没有人 | 基于人体感应「N 分钟无人移动」判断 |
| 温湿度数值 | 只有「温度 > 26℃」才开空调 |
触发与条件的经典混淆:「时间 22:00」当触发 vs 当条件,结果完全不同。当触发:每天 22:00 准时执行一次;当条件:22:00 这个瞬间没有别的触发发生,它永远等不到。时间一般做触发,设备状态一般做条件——这是新手最常见的逻辑错误。
3. 执行(Then):让设备动起来
执行项可以是单台设备动作、多台设备动作、场景、或延时等待。
| 执行类型 | 例子 |
|---|---|
| 设备控制 | 开灯/关灯、调亮度温度、空调开 26℃、净化器切强力 |
| 运行场景 | 运行另一个手动场景(实现「子程序」) |
| 延时等待 | 等 10 分钟再做下一步 |
| 发消息通知 | App 推送「洗衣机洗完了」 |
| 小爱播报 | 音箱语音播报自定义文案 |
| 通用动作 | 米家协议下的第三方设备动作 |
多执行项是顺序执行:一个自动化里可以放多条执行,按从上到下顺序跑,中间可插入「延时」。比如:开灯 → 延时 5 分钟 → 关灯,就是一个自带延时的「渐灭灯」。
三要素串起来看
graph TD
A[触发: 当…] -->|发生了变化| B{条件: 如果…}
B -->|满足| C[执行: 就…]
B -->|不满足| D[什么都不做]
C --> C2[延时/下一动作]
C2 --> C3[发通知/播报]
对应到自然语言,三段都能讲清楚,自动化就不会建错:
触发:门锁「上锁」 → 条件:工作日 8:00–10:00 → 执行:扫地机开始清扫 + 热水器关。
这句话读得通,逻辑就对;读不通,就是三要素配错了。
五个立刻能用的小例子
以下五个都是单条自动化能完成的,用来练手最合适:
1. 门铃响,音箱报信 触发:智能门铃/门锁「按下门铃」 → 执行:小爱音箱播报「有人按门铃」。
2. 夜晚回家自动开灯 触发:门锁「开门」 → 条件:时间段 19:00–次日 7:00 → 执行:玄关灯开 80%。
3. 卫生间有人自动照明 触发:人体传感器「有人移动」 → 条件:时间段 22:00–7:00(或全天)→ 执行:卫生间灯开 → 延时 3 分钟 → 灯关。 人体感应灯的核心在于延时关灯的时间要大于人在里面静止的时间,不然你蹲着不动灯就灭了。洗澡、如厕场景把它设到 5~10 分钟为宜。
4. 门窗 10 分钟没关提醒 触发:门窗传感器「打开」 → 执行:延时 10 分钟 → 条件若仍打开 → 发通知「窗户还开着」。 米家的实现细节:部分版本里「延时后是否继续」要靠条件再判断一次,路径为执行项里插入「条件判断」。最稳的做法是:门窗开 → 延时 10 分钟 → 条件「门窗仍是打开状态」 → 发送通知。如果条件不支持,也可以让延时结束后直接发通知(关窗后在通知里看到也没关系,不吵就行)。
5. 空调电费兜底 触发:温度 > 28℃ → 条件:家里有人 → 执行:空调开 26℃;触发:温度 < 24℃ → 执行:空调关。用温度做开关,比定时更贴合天气。
建自动化时的五个习惯
- 先想清楚人话,再动手填。一句话讲不通的逻辑,填进编辑器一样跑不通。
- 给自动化起可读名字。建多了你就知道,「回家模式_工作日」比「自动化 3」好找一百倍。
- 建完立刻测。当场触发一次(开门、按开关、改时间),确认每一步都跑,别等明天才发现没生效。
- 善用「时会跳过未执行」类的容错选项。部分自动化在条件不满足时可以选择「不再执行后续」,逻辑出问题时先来这里检查。
- 复杂需求拆成多条。米家单条自动化不宜塞太多执行项和分支,能用「运行场景」串起来的就拆成子场景,排障和修改都方便。
管理与排障
- 总开关:场景页每个自动化后面有开关,临时停用不必删除。长期出差或装修时,一键停用相关自动化避免误触发。
- 排序与分组:场景列表可以按房间/名称排序,常用的置顶。
- 执行日志:自动化异常时,看场景页右上角的日志/记录入口(不同版本入口略有差异),能查到最近哪条触发、哪条被条件挡掉。
- 数量上限:单个家庭的自动化总数有上限(通常在数十条量级),场景多了优先合并同类规则——比如「回家模式」别建 5 条,合成 1 条多执行项。
常见问题速查
问:为什么我的自动化从来不触发? 按顺序查:① 自动化开关有没有打开;② 触发器选的是「状态」还是「变化」,如果选了「等于打开」但门本来就开着,它永远不会触发;③ 条件的时间段/星期是否覆盖了当前时间;④ 网关/设备在线状态;⑤ 日志里看有没有触发记录,被条件挡掉了日志里也有痕迹。
问:灯自动化老是关不掉/开了又关? 多半是「延时关灯」和「手动开灯」打架:你手动开了灯,延时计时器到点照样把它关了。解决办法:在延时动作前加条件「灯仍是打开状态」,或者接受规律(传感器模式下手动干预只管当下)。
问:一个自动化能把别的自动化当触发吗? 不能直接,但可以「执行场景」——把 B 建成手动场景,A 的执行项里选「运行场景 B」,变相实现串联。
问:日出日落在你那里不灵? 家庭管理里的城市/位置填错了。路径:首页家庭名称 → 家庭管理 → 当前家庭 → 省份城市改对,重新打开自动化里的日出日落选项刷新一次。
问:条件「持续满足」是所有设备都支持吗? 不是,取决于 App 版本和触发类型。人体传感器类一般支持「N 分钟无人」作为触发条件;「持续满足 X 秒」的通用条件在较新版本 App 中提供,找不到就用「延时 + 再判断条件」的组合曲线实现。
