家里的智能设备一多,最烦的事情往往不是设备本身不好用,而是每个硬件都逼你先装一个App。灯泡一个App、空调一个App、摄像头再一个App,晚上回家在门口掏出手机点半天,还不如直接伸手去摸墙上开关痛快。去年我把手里的绿联NAS从单纯的“电影仓库”改造成了全屋智能中枢,再配合vivo手机上的Jovi负一屏、语音助手和PWA桌面链接,终于让“智能家居”四个字在我家像样了。
这套方案的核心思路其实很简单:用一台24小时开机的绿联NAS跑Home Assistant,负责所有智能设备的接入和自动化逻辑,vivo手机只是前面那块屏幕和麦克风,负责接收指令和展示状态。今天就把我从架构到部署、再到手机联动踩过的坑一次性整理出来,给想把手头杂七杂八智能设备统一管理起来的朋友做个参考。
1. 思路拆解:为什么“NAS+手机”是我最终选定的全屋智能方案
1.1 NAS才是真正意义上的“家庭中枢”
先说说为什么要用NAS当智能家居中枢,而不是继续依赖某个厂商的云平台,或者干脆买一个智能音箱来当核心。智能家居中枢本质上需要三样东西:7×24小时在线、能在本地跑自动化逻辑、有足够多的接口去兼容不同品牌。大多数智能音箱只能控制它自己生态里的设备,云平台一旦抽风,整个家就变成“局域网废墟”。绿联NAS这类x86设备不一样,它有独立的CPU和内存,能通过Docker起一个Home Assistant容器,所有自动化规则都在家庭局域网内执行,不依赖外网。我实测过,家里宽带走丢的那段时间,灯照样按日落时间自动亮,空调照样跟着温湿度探头走,这种体验上的差距非常明显。
顺带提一下资源开销:一套HA跑起来大概占用1到2GB内存,如果不额外扩展蓝牙、USB等乱七八糟的东西,绿联NAS本身的性能冗余完全够用。对比单独买一台树莓派或者软路由去折腾,NAS更像是“顺便把活干了”,而且绿联Docker管理器的图形界面做得还算直观,复制一份compose脚本就能把容器拉起来。我用的这台DXP4800 Pro在同时跑着HA、下载服务和几个调试容器的情况下,日常CPU占用率基本不超20%,稳定性比之前用的树莓派强了不止一个档次。
1.2 “手机原生”的真实含义:控制面板长在系统里
很多人听到“手机原生控制”,第一反应是把厂商App全部装一遍,其实不是这个意思。vivo手机里的Jovi智慧生活、负一屏卡片、快捷指令、语音助手,这些系统级入口才是真正的原生控制。把Home Assistant的页面做成PWA加入桌面以后,打开速度和全屏体验几乎和本地App一模一样,不需要额外下载客户端。更重要的是,vivo的语音助手支持自定义指令,比如我说一句“我回来了”,它会通过URL请求触发HA里的“回家模式”自动化,整套流程全程都不需要碰第三方App的界面。
这里可以打个比方:NAS就好比家里的配电箱,所有控制逻辑都装在箱子里,vivo手机就是贴在门口的那块情景面板。你按哪个按钮、说什么话,都只是去触发配电箱里的动作,根本不用关心灯泡是哪个牌子的。这种“控制系统归NAS,交互界面归手机”的架构,正好把绿联的24小时运行能力和vivo的系统级入口结合了起来。
1.3 一个方案解决“全家桶互不搭理”
说实话我也用过米家全家桶一段时间,单独看每个设备都不错,但一旦你买了别的牌子,比如zigbee的自发电无线开关、涂鸦系的风扇、甚至自己用ESP32焊的温湿度传感器,米家App就只剩干瞪眼了。Home Assistant的核心价值就是“聚合”,对外提供统一控制,对内同时接米家、HomeKit、MQTT、蓝牙这些协议。对vivo用户更友好的一点是,HA还能通过Webhook或REST API把场景暴露成普通URL,vivo负一屏只需要把它当成一个网页来打开,因此不存在品牌绑定问题。
也有人问“vivo接入米家”到底是什么意思。其实vivo手机本身就能装米家App,但那种接入只是“手机里又多了一个应用”。而通过HA把米家设备接入之后,vivo负一屏就能直接显示HA的卡片,执行“离家模式”时顺手关掉所有灯和窗帘,等于vivo系统入口与米家生态通过HA间接打穿了。
2. 绿联NAS部署Home Assistant:从零到稳定的实操记录
2.1 环境准备:先给NAS一个“固定身份”
在部署HA之前,建议先把NAS的网络和存储规划好。第一件事是给NAS设置静态IP,或者在路由器里做DHCP保留地址。家用路由器重启后NAS地址一旦变了,HA里所有按IP引用的设备、自动化脚本排查起来会非常头疼。第二件事,在NAS上单独建一个文件夹,比如/volume1/docker/homeassistant,专门放HA的配置和数据,后面备份、迁移都方便。如果绿联系统版本较新,卷路径可能显示为/volume2之类的,按你自己的实际存储空间调整。
然后去绿联应用商店里找到Docker应用并打开。如果你在桌面上找不到Docker入口,大概率是需要先安装应用中心里的“Docker”工具。安装完成后先在Docker管理器里观察一下当前资源占用,尽量停掉那些不常用的容器,给HA留出足够的内存和CPU余量。有一个小坑是:8123端口偶尔会被某个下载容器或者调试服务占用,遇到这种情况先检查端口,再决定要不要改HA的监听端口。
2.2 Docker Compose脚本:按这个配置直接抄
下面这份compose.yml是我在DXP4800 Pro上验证过可用的,加了详细的注释,请根据实际存储路径和时区调整。
version: "3.8" services: homeassistant: image: ghcr.io/home-assistant/home-assistant:stable container_name: homeassistant restart: unless-stopped network_mode: host volumes: - /volume1/docker/homeassistant/config:/config - /run/dbus:/run/dbus:ro environment: - TZ=Asia/Shanghai logging: driver: "json-file" options: max-size: "10m" max-file: "3" # 如果后续要接USB蓝牙适配器,取消下面三行注释 # devices: # - /dev/ttyUSB0:/dev/ttyUSB0这里的关键是network_mode: host。HA要发现局域网里的智能设备,需要监听mDNS和UDP广播,如果使用Docker默认的bridge网络,很多发现协议会失效,米家集成、HomeKit桥接设备可能扫不到。挂载/run/dbus是为了让HA能读取系统总线的蓝牙信息,后续接蓝牙网关或智能门锁时,能少踩几个坑。我全程没有开privileged模式,HA本体不需要特权容器,给太多权限反而会增加被攻击的风险。
2.3 初始化HA:后台到底在忙什么
先在浏览器里输入http://NAS的IP:8123,等一分钟左右,创建第一个管理员账号。这里多说一句:HA的管理员账号密码千万别用太简单的,后面如果暴露到外网,这套自带登录逻辑相对薄弱,安全问题一定要提前重视。
第一次进主界面会问你是否加入数据统计、是否开启日志,按自己喜好选。之后我建议立刻去“设置 → 系统 → 存储”,确认备份路径是否指向/config/backups,这样后面可以利用HA自带的备份功能定期打包,省得出问题才后悔。如果想装社区组件商店HACS,需要从GitHub下载hacs.zip,手动解压到/config/custom_components目录,然后重启HA。HACS不是必须的,但它可以帮你很轻松地安装大量第三方集成,比如米家、小米云等,对国内用户尤其是刚入门的人来说,装上之后扩展设备的效率会高很多。
2.4 接入第一批设备:米家设备怎么通过HA控制
打开HA的“设置 → 设备与服务 → 添加集成”,搜索“Xiaomi Miot Auto”或“Mi Home”。添加时会让你选择连接方式,我的建议是优先选“局域网模式(miio)”。这需要你在设备上获取Token,不同固件的获取方式不太一样,网上已经有很多教程。如果实在不愿意折腾Token,也可以选“云账号模式”,把小米账号授权给HA,但坏处是依赖云端,一旦外网断了控制也就跟着断了。我自己的做法是常用设备走miio密钥局域网接入,备用的设备走云接入,两者互补。
第一次添加设备时,HA会自动扫描局域网并列出可发现的设备。如果你有一台vivo手机,也可以顺手在手机上装一个“米家”App,授权给HA云接入用,后面在负一屏设置快捷卡片时,可以直接看到所有米家场景,这条链路就打通了。
3. 手机端整合:vivo成为全屋智能的“仪表盘”
3.1 用PWA把HA“装成”原生App
vivo手机打开系统浏览器(Chrome、Edge也都可以),访问http://NAS_IP:8123,登录后点浏览器菜单里的“添加到主屏幕”选项。HA的页面是响应式设计,能自动适配手机屏幕,全屏模式加载后,底部的浏览器工具条和状态栏都被隐藏,用起来和真正的App感受差不多。我个人喜欢把桌面图标换成一张自己做的“家”字图片,这样看起来完全不像网页链接。
这个PWA入口有一个隐性好处:以后HA升级了,你不需要给手机装新版本,只要刷新一下页面就能看到新界面;平时在局域网内打开基本都是秒开,甚至断外网时也能看到仪表盘缓存。唯一要注意的是vivo省电策略可能会限制后台WebView活动,如果发现PWA从后台切回来经常白屏,去“设置 → 应用 → 系统浏览器 → 耗电管理”改为“不限制”。
3.2 vivo负一屏卡片和语音指令:让系统原生能力都用起来
vivo的负一屏支持添加快捷工具卡片。我的做法是先把HA里的常用场景做成自动化或脚本,然后在“Jovi智慧生活”里添加自定义服务,服务地址填对应脚本的URL。举个例子,HA的脚本会生成一个类似http://192.168.1.100:8123/api/script/xxxx的地址,把这个地址绑定到负一屏卡片上,点击卡片就相当于触发了场景,连登录步骤都省了。
语音指令更直接。在vivo的“Jovi语音”设置里创建自定义指令,比如对手机说“芝麻开门”,Jovi就会打开上面那个URL,HA收到请求后执行回家场景。我甚至把“晚安”指令绑定了“全屋熄灯+空调进入睡眠模式”,实测下来识别率虽然不到100%,但肯定比半夜爬起来掏手机找App强得多。
3.3 深度改造有风险,我用旧手机试过发声
很多人在搜索“vivo无线调试怎么打开”“LSPatch版本多少”这类词,说明确实有人想对手机系统或App做更深层的改造。这里统一回复一次:vivo的无线调试在“设置 → 系统管理 → 开发者选项 → 无线调试”,打开后用电脑ADB连接,就可以执行一些系统级操作。LSPatch是一个非官方的App修改框架,通过它给米家App打补丁,确实可以让米家App支持本地通信甚至导出Token,从而方便HA接入部分设备。
但我的切身体会是,这种方案只适合拿淘汰下来的旧vivo做实验,千万别在主力机上折腾。原因很简单:第一,米家App每升级一次,补丁大概率失效;第二,vivo系统OTA之后无线调试可能被默认关闭;第三,用非官方工具做系统级Hook,遇到兼容性问题时,你连账号数据可能都要受影响。更稳妥的路子还是优先用官方集成,个别设备实在拿不到Token,再考虑这些“野路子”。
4. 常见问题与排查实录:这些坑我已经替你踩过了
4.1 米家设备频繁离线,问题往往在路由器而不是HA
我遇到过最典型的坑是,HA界面显示某个智能插座“不可用”,但插座本身的指示灯是正常亮的。折腾半天,最后发现是路由器的“多AP统一SSID”功能让设备自动漫游到了另一个信号较弱的节点,而且这种智能插座只支持2.4G频段,漫游之后就经常失联。解决方法很简单:把智能设备单独分到一个2.4G专用SSID,并关闭这个频段的“SmartConnect”或无痕漫游功能。如果家里只有一个路由器,也要检查“5G优先”选项有没有打开,智能设备被踢到5G频段后很容易变得不稳定。
排查顺序应该永远是这样:先看设备在原厂App里是否在线。如果原厂App在线而HA离线,问题多半出在HA集成配置或Token;如果原厂App也不在线,那就老老实实查路由器和设备供电,别在HA里瞎找原因。
4.2 容器自动停了/重启后设备全丢
如果你设置了restart: unless-stopped,容器理论上会在NAS重启后自动拉起来,但很多“设备全丢”的情况其实是配置文件损坏或者容器没有成功启动。绿联NAS的系统更新偶尔会调整Docker的存储路径,导致compose里映射的宿主机路径失效,容器找不到老配置。我的解决方案是,部署之前把卷路径写得尽量固定,系统更新后手动检查一下挂载点是否存在。另一个建议是用Watchtower让容器自动更新,但HA大版本升级时偶尔会破坏旧配置,所以我没给HA开自动更新,宁可手动备份、手动升级。
排查命令无非是这几条:
docker ps -a docker logs homeassistant --tail 50如果看到数据库之类的报错,先把HA停掉,把config目录下的.storage备份后删除,再启动让HA重建。
4.3 远程访问怎么搞:优先官方功能,别裸奔
出门在外想用手机看设备状态,绿联NAS自带的“远程访问”功能(不同机型叫法可能不一样,有的叫“UGREEN Link”,有的叫“异地访问”)可以直接用,不需要自己搞端口映射和DDNS。如果你的绿联机型没有这个功能,也可以尝试在自己路由器上设置“端口转发+DDNS”,只转发8123端口,并在HA里打开“双因素认证”和IP访问白名单。有条件的话,在HA前面再套一层Nginx反向代理并配置HTTPS证书,证书配置好之后,密码千万别用弱口令。
这里多提醒一句:任何远程访问都相当于给家里开了门,门开得越宽,被陌生人敲门的风险就越大。普通用户能用官方远程访问就用官方,别自己折腾那些安全性不明的第三方中继。
4.4 手机端白屏/响应慢,看看这三点
PWA在vivo手机上偶尔白屏,我总结了三个原因:第一种是系统浏览器缓存问题,清掉浏览器缓存后重新登录就好;第二种是HA的SSL证书和PWA不兼容,纯HTTP时一切正常,一换自签名HTTPS就容易反复白屏;第三种是vivo后台限制了浏览器活动,按前面说的把浏览器耗电策略改为“不限制”。
还有更常见的响应慢问题。比如点开卡片后页面转好几秒,多半是HA数据库体积太大,或者NAS的CPU被下载任务占满。顺带说一句,绿联NAS上的夸克网盘下载如果速度慢,原因可能不在NAS本身,而是服务端限速,不过有一点倒是很有体验关联:如果你一边下载一边觉得智能设备响应变慢,那就是带宽被下载任务吃满了,这时候给下载工具限速,HA的响应速度立刻就能恢复。
以上就是我搭建绿联NAS+vivo全屋智能中枢的完整过程。从架构选型到容器部署,再到手机端PWA和语音入口的联动,每一步都尽量走了稳妥路线。这套环境我稳定跑了大半年,中间只重启过两次,一次是小区停电,另一次是绿联系统大版本更新。日常维护成本其实不高,关键还是把底层架构想清楚:NAS负责稳定和数据,手机负责交互和方便。如果你手头正好有一台绿联NAS和vivo手机,不妨照着这个思路试试,说不定你家也会变得真正“智能”一点。