孙亮亮
返回 智能家居

智能家居

全屋智能场景模式中枢实战:用 input_select + scene 编排离家/回家/睡眠/就餐一键模式

2026年10月26日

用 input_select 状态机加 scene 快照,把离家回家睡眠就餐做成一键协同模式。

Home Assistant场景模式input_selectscene全屋智能

全屋智能场景模式中枢实战:用 input_select + scene 编排离家/回家/睡眠/就餐一键模式

零散的"开门亮灯""到点关灯"只是自动化雏形。真正好用的全屋智能,是一套"模式中枢"——离家、回家、睡眠、就餐一键切换,所有设备按预设快照协同。本文用 Home Assistant 的 input_select + scene + script 搭一套可复用的模式引擎。

一、为什么需要"模式"而不是零散自动化

你肯定遇到过:自动化的灯和手动的灯打架、离家后扫地机触发了"有人"误报、夜里上厕所被全亮模式闪瞎。根因是每个动作彼此孤立,没有"当前处于什么状态"这个全局认知。模式(Mode)就是给全屋一个状态机:同一时刻只有一个主导模式,所有自动化围绕它决策。

二、中枢设计:input_select 作为状态机

在 configuration.yaml 里定义:

input_select:
  home_mode:
    name: 全屋模式
    options:
      - 居家
      - 离家
      - 睡眠
      - 就餐
      - 影院
    initial: 居家

这个实体就是中枢的"当前状态"。前端放一个卡片,点一下就能切换;语音助手说"我回家了"也调用同一个 service。所有其他自动化都先读 states('input_select.home_mode') 再决定动作。

三、用 scene 定义每个模式的设备快照

scene 是"某一刻设备该有的样子"。为"睡眠"模式建一个场景:主灯关、夜灯开 10%、空调 26℃、窗帘合、摄像头布防。

scene:
  - name: 睡眠模式
    entities:
      light.主灯: off
      light.夜灯: {brightness_pct: 10}
      climate.客厅: {temperature: 26}
      cover.窗帘: closed

同理建"就餐""影院""离家"各自的 scene。注意 scene 只记录你列出来的实体,没列的保持原状——这正是它比"一键全关"灵活的地方。

四、触发与编排:script 顺序执行

切换模式不要直接 call scene,而是包一层 script,保证顺序与延迟可控:

script:
  切换离家:
    sequence:
      - service: scene.turn_on
        target: {entity_id: scene.离家模式}
      - delay: 3
      - service: lock.lock
        target: {entity_id: lock.大门}
      - service: notify.wechat
        data: {message: "已离家布防"}

把五个模式的切换都做成 script,再在 input_select 的自动化里根据新值调用对应 script。这样切换逻辑集中、好改。

五、条件自动化:回家模式只在"离家"后触发

防止误触:地理围栏"某人到家"只在当前模式是"离家"时才执行回家 script,否则忽略。HA 用 condition: state 卡住。同样,"睡眠"模式下的入户人体感应只开夜灯,绝不触发"回家"全亮。

六、防冲突与恢复

冲突来源主要是"手动改了某个设备"和"模式快照"不一致。解法是:模式切换优先于手动,任何手动操作 30 秒后若仍属该模式应有状态,由一条 automation 周期性校正(仅在校验开关开启时)。断电复位:HA 重启后 input_select 会回到 initial"居家",若你其实离家了,地理围栏会在手机重连时自动纠正——所以离家/回家一定要绑可信的位置源,别只靠按钮。

七、进阶:三入口统一

把"模式切换"暴露成三个入口并且指向同一底层:① 墙面智能开关的一个按键(用 MQTT/Zigbee 绑定 script);② 语音助手意图;③ HA 前端卡片。三地调同一个 service,状态天然一致。再叠加毫米波存在感应做"微模式":人在沙发区→"休闲",人离开客厅→回到"居家",模式之间形成层级。

八、小结

模式中枢把"一堆开关"升级为"一个会思考的家":input_select 当状态机,scene 存快照,script 管编排,condition 防误触。离家/回家/睡眠/就餐一键切换,所有设备协同而不打架。搭好这套骨架,后续加任何新设备,只要补进对应 scene 即可,扩展成本极低。

本模块其他文章

智能家居温控自动化实战:空调伴侣与地暖接入 HA、基于人在感应做节能控温智能家居照明控制实战:零火/单火智能开关选型、灯带接入 Home Assistant 与情景模式联动智能家居空气质量监测实战:ESPHome + PMS5003/ENS160 监测 PM2.5、CO₂ 与 TVOC 并联动新风净化把米家/涂鸦设备接入 Apple HomeKit:Homebridge 桥接与本地控制实战Home Assistant 蓝牙代理实战:ESP32 蓝牙中继扩展米家/涂鸦 BLE 设备覆盖Home Assistant 接入 Matter 设备实战:Thread 边界路由、多生态互通与本地自动化ESPHome 智能插座能耗监测实战:待机功耗摸底、定时断电与 Home Assistant 电费看板用 ESPHome 红外万能遥控把传统空调电视纳入 Home Assistant:码值学习与场景联动实战智能家居窗帘光照联动实战:ESPHome 电机 + 光照传感器 + HA 日出日落自动化智能门锁与门禁接入 Home Assistant:指纹锁状态同步、临时密码与回家离家自动化智能家居漏水与燃气安全监测实战:ESPHome 传感器接入 Home Assistant 并自动关阀告警毫米波雷达存在检测接入 Home Assistant:LD2410 + ESPHome 解决人体感应误触发与无人区漏检Home Assistant 离线语音助手搭建:Whisper 语音识别 + Piper 中文 TTS 本地控制全屋把 Aqara/米家 Zigbee 设备接入 Home Assistant:ZHA 网关配置与回家离家自动化实战ESPHome 从零打造 WiFi 温湿度传感器并接入 Home Assistant:固件编译、配网与自动化联动Home Assistant 本地部署与 MQTT 设备接入实战:从 Docker 安装到自动化规则家庭能耗监测实战:用智能插座 + Home Assistant 把每月电费拆到每个电器毫米波人体存在传感器实战:彻底解决智能灯"人不动就关"的尴尬回家即亮灯、离家自动布防:用 Home Assistant 把场景自动化串起来Zigbee 还是 Matter?智能家居协议选型Home Assistant 本地优先实践
全屋智能场景模式中枢实战:用 input_select + scene 编排离家/回家/睡眠/就餐一键模式 · 孙亮亮