智能家居
回家即亮灯、离家自动布防:用 Home Assistant 把场景自动化串起来
2026年8月17日
用 Home Assistant 把地理围栏与门磁串成回家/离家自动化场景。
回家即亮灯、离家自动布防:用 Home Assistant 把场景自动化串起来
摘要: 智能家居最爽的不是单个设备多聪明,而是"人回来了灯自己亮"。本文用 Home Assistant 把地理围栏、门磁、光照传感器串成回家/离家场景,并讲清如何避免误触发和半夜被自动化吵醒。
场景自动化到底解决什么问题
买智能家居的人,最后大多卡在"每个设备还得自己点"。真正省心的是场景:你一推门,玄关灯亮、空调打开、音箱播报"欢迎回家";你一出门,灯全关、摄像头布防、门锁落下。这种"无感"体验的关键不在硬件多贵,而在把多个设备的触发条件接成一条自动化。Home Assistant(下文 HA)因为它设备全、逻辑自由,是最适合干这事的中枢。
先备齐三类"触发器":人、门、光
一个靠谱的回家/离家场景,通常要三类信号:
- 人在哪:HA 手机 App 自带 GPS 地理围栏(zone),能判断"进入家附近"和"离开家";也可以用路由器的设备在线状态做补充。
- 门的状态:Zigbee 门磁贴在入户门上,开门即触发,比 GPS 更准更快。
- 环境光:一个光照传感器放在窗边,避免大白天回家也开灯。
建议至少同时有"人"和"门"两种信号,单靠 GPS 在地下车库常漂,单靠门磁又分不清是进门还是出门。
回家场景:从开门到灯亮的三步
在 HA 的「自动化」里新建一条,核心三段:
- 触发(trigger):门磁状态变「开」,或某人 zone 变「home」;
- 条件(condition):当前时间在天黑后到睡前,且光照低于阈值(避免白天开灯);
- 动作(action):开玄关灯 → 延迟后开客厅灯 → 空调设到 26℃ → 音箱 TTS 播报。
写成 YAML 大致是 trigger: platform: state entity_id: binary_sensor.door 加 condition: 光照+时间,action 里依次 service: light.turn_on。条件里加「仅当家里没人时」能防止家人都在家、你开门又全亮一遍。
离家场景:一键布防与断电
离家的触发更稳的是"所有人都不在家":HA 里建一个 group 把全家手机都加进去,当这个 group 状态从 home 变 not_home,就执行:
- 关掉所有灯和多余插座;
- 空调、热水器按需关;
- 摄像头切到"布防"、智能门锁落锁;
- 推送一条"已离家布防"到手机。
也可以在大门旁放个无线按钮,出门顺手按一下强制触发,给 GPS 不准留个后路。
用"人员实体"避免误触发
HA 的 person 实体把一个人的手机、GPS、门磁归到一个身份上。判断"是否有人在家"用 person 比用单个设备稳——手机没电时还有别的信号兜底。多人家庭一定要用「所有人都不在家」这种聚合判断,否则一个人出门、另一个人还在,灯就全灭了。
给场景加个"总开关"
新手最容易翻车的是:半夜你起来喝水,门磁一动,回家场景又把灯全打开、音箱开始播报。解决办法是在自动化里加一个 input_boolean.scene_homeaway 总闸,睡觉前关掉它,所有回家/离家自动化先判断这个开关是开才执行;或者给动作加时间窗(如 7:00–23:00)。想要更细,还能设"夜晚模式"只用小夜灯、不播报。
排错与稳定性
自动化不触发先三步走:看 HA 的「跟踪」(Trace)面板,哪一步卡了清清楚楚;查设备是否离线(Zigbee 中继够不够);再看条件是不是永远不满足(比如光照阈值设太高)。断网时本地 Zigbee 设备照常联动,这是本地优先最大的底气。
小结
回家亮灯、离家布防不是炫技,而是智能家居真正的"用了就回不去"。先把人和门的信号接稳,再用条件和总开关兜住误触发,最后用 Trace 排错。等这条跑顺了,再叠加"观影模式""睡眠模式",家就真的开始"懂你"了。