NAS能当全屋智能的大脑吗?我把Home Assistant装进飞牛,拔了外网自动化照样跑

家里智能设备滚到四十九台那年,我媳妇说了句扎心的:「开个灯划三个App,看个温度再划一个,这叫哪门子智能。」设备清单我数过一回,写在那篇四十九台的盘点里,WiFi的、蓝牙的、Zigbee的凑成一锅。真正让我下决心动手术的,是三件米家App越来越接不住的事。
家里三件事,米家App接不住了
第一件,条件一嵌套就死机。我想要玄关灯「日落后自动开,但家里没人的话别开」——判断人在不在家得看手机连没连上家里WiFi,这条件在米家App里点到第二层嵌套就转不动了,它那个「同时满足」塞不下「日落后」加「任意一部手机在线」的组合。第二件,历史曲线翻不出来。客厅那支蓝牙温湿度计,米家里只有即时读数和一份粗得看不清的周报,我想确认「过去一周凌晨客厅温度有没有掉到十六度」来决定电暖器要不要上定时,翻半天翻不到原始数据。
第三件最气人。我姐出差小半年,阳台那台涂鸦方案的浇花器托管给我,我手机上从此装着米家和涂鸦两个App,每天切换着看。加湿器该加水了这种提醒,米家只会推到米家App自己家里,我想推到媳妇手机锁屏上,它做不到。
三件事指向同一个答案:家里得有个自己的大脑,把四十九台设备拢到一块儿,逻辑我自己写。这台大脑最合适的落点,就是角落里7×24开着的飞牛NAS——本来就在转,加个容器的事。
装进飞牛:一个容器,参数就四样
Home Assistant官方镜像在Docker Hub上就叫homeassistant/home-assistant,飞牛的应用中心或者Docker图形界面里都能装,镜像和容器是什么关系之前写Docker入门时讲过,这里不重复。参数记住四样就够:
| 参数 | 填什么 | 为什么 |
| 网络模式 | host(和NAS共用网络) | HA要靠mDNS广播发现局域网设备,bridge网络里广播出不去,装完会一个设备都搜不到 |
| 特权模式 | 开启(privileged) | 官方推荐,为了以后插蓝牙或Zigbee接收器能直通,暂时用不上也留着 |
| 端口 | 8123 | 装完浏览器敲http://NAS的IP:8123就是后台 |
| 目录挂载 | /config映射出去 | 配置落盘,容器删了重装配置还在 |
起容器后等两分钟,浏览器进8123,向导走完:起个家庭名、建个账号、把定位填上——这一步别跳过,后面「日落开灯」靠它算你家的太阳几点落。全程五分钟,比我当年装Jellyfin还快。想系统学Docker的可以翻那篇从硬件选型到应用部署的入门,这里只当它是其中一个容器。
把米家搬进来:官方下场了,不用再抓token
以前把米家设备接进Home Assistant是件脏活:得用第三方集成,登录小米账号抓token,token还会过期,过期了设备集体变灰。2025年2月小米官方下场发了开源集成,GitHub上叫Xiaomi Home,这一页彻底翻过去了。
操作路径:8123后台左下角设置→设备与服务→添加集成,搜Xiaomi Home,弹出小米账号登录页,手机上米家App一扫码授权,设备列表整页刷进来。我家四十九台一次到位,连「客厅灯」「玄关灯」这些中文名都原样带过来,不用重配。有一点留意:这个官方集成更新挺勤,大版本升级后个别设备的实体ID会变,自动化里引用的实体名字跟着失效,去它的配置页点一下「更新设备列表」再核对一遍自动化就好,别急着怀疑设备坏了。
有一个技术分界要心里有数:支持局域网控制的WiFi设备(灯、插座这类),HA在局域网里直接跟设备说话;蓝牙子设备(温湿度计、挂在音箱Pro网关下的那批)还是走网关上云再绕回来。这个分界决定了后面断网实测里谁能活谁会瘫。
小爱音箱别退役。它继续当语音入口和蓝牙网关,米家App继续当遥控器,HA是额外加的大脑不是替换——三套东西各干各的,谁也不耽误谁。
三条自动化跑起来,先看逻辑再看断网
HA的自动化编辑器是三段式:触发器、条件、动作。「且」「或」随便嵌套,我被米家卡了两年的那条规则十分钟配完:触发器选太阳落山(本地天文算法算的,不用联网查),条件加「任意一部手机连着家里WiFi」,动作开玄关灯。家里没人的傍晚,灯老老实实黑着。
第二条,晚上23:30全屋灯自动关,时间触发,图省心。第三条是给加湿器兜底:客厅湿度低于40%就开插座,同时往我手机锁屏推一条通知——通知走的还是上回给NAS配告警用的Bark通道,一行curl的事,全家谁的手机都能白捡推送。
三条跑了一礼拜,最解气的还是日落那条:太阳每天落点在变,开灯时间自己跟着挪,不用我像在米家里那样每月手动改一次时间表。
拔外网实测,和NAS侧的三笔账
周六早上我把光猫的皮线拔了半小时,专门看这三条自动化的成色。结论分两档,老实记下来:
| 还活着 | 瘫了 |
| 日落开灯19:04准时亮(天文算法在本地算) | 蓝牙温湿度计读数冻在拔线那一刻,湿度兜底那条用的是旧数 |
| 23:30全屋关灯(时间在本地,灯走局域网) | 人在外面远程看家里状态,转圈 |
| 手机在屋里开关灯(局域网直连WiFi设备) | 小爱语音,回「网络服务不可达」——跟音箱那篇断网实测一个口径 |
这个结果和扫地机器人断网那篇的道理是通的:逻辑在本地、执行在局域网的就活,任何一端要上云端绕一圈的就停。扫地机的地图存在本机芯片所以断网照扫,HA的太阳角度自己算所以照开灯,是同一回事。
NAS这边还有三笔账要算。内存:HA稳态吃四百多MB,加上Jellyfin和qBittorrent,我这台8G的飞牛稳稳的,4G内存的机器就得先掂量掂量了。电费最省心:NAS本来就7×24开着,一年电费账早就算过,HA吃的是内存不是电,边际成本约等于零。
写盘这笔最阴。HA有个叫recorder的组件,默认把每个实体的每次状态变化都记进一个SQLite数据库——四十九台设备,信号强度、电量百分比这种高频实体一晚上能把库写大几十MB。我装完第三天用查休眠被谁吵醒的老办法一看,机械盘刚睡下就被叫醒,又回到没治之前的样子。三招收拾它:配置里exclude把信号强度这类高频实体排除掉、commit_interval调大让落盘别那么勤、数据库文件挪到那块旧SSD下载盘上——下载盘本来就不睡,写就写吧。三招下去,机械盘一晚上安安稳稳。
什么人别折腾:对号入座
| 你家的情况 | 建议 |
| 设备不到二十台,清一色米家 | 米家App够了,别折腾 |
| 跨品牌设备多,或者要历史曲线、自由推送 | 上HA,这些它全管 |
| NAS只有4G内存 | 先掂量,容器加起来内存会顶 |
| 全家都靠语音过日子 | 小爱留着当入口,HA只管背后的逻辑 |
真要装,顺序照这个来:先确认NAS内存和Docker环境,起容器把网络选成host,进8123走完向导,再扫码接米家,配第一条自动化先用时间触发的试试水(最简单也最不会骗人),跑顺了再玩日落和条件嵌套。recorder的写盘问题我建议装机当天就顺手治了,别等硬盘天天被吵醒才想起来——NAS上多一个常驻容器,每一个都得对得起那块盘。

发表评论