飞牛NAS搭建智能家居中枢:Home Assistant
飞牛NAS的定位从来不止是影音存储,它的Docker容器能力让它可以成为家庭的边缘计算节点。今天,我们将把飞牛NAS变成一套完整的智能家居中枢,通过部署Home Assistant来统一管理米家、HomeKit、涂鸦等生态的设备。
在开始之前,请确认你的飞牛NAS已开启SSH(控制面板→终端机→启用SSH),且系统版本在0.8.1以上。我们采用Docker Compose方式部署,便于后续维护升级。
一、创建目录结构与基础配置
首先,通过SSH登录飞牛NAS,创建Home Assistant的持久化目录。建议将配置放在存储池中,避免系统盘故障导致丢失。
sudo mkdir -p /vol1/docker/homeassistant/config
sudo chown -R 1000:1000 /vol1/docker/homeassistant
这里的1000:1000是Home Assistant容器内默认的用户UID/GID,确保容器能正常读写配置目录。如果你的飞牛NAS启用了不同存储路径,请替换/vol1为实际挂载点。
二、编写docker-compose.yml
在/vol1/docker/homeassistant目录下创建docker-compose.yml文件:
version: '3.8'
services:
homeassistant:
image: ghcr.io/home-assistant/home-assistant:stable
container_name: hass
restart: unless-stopped
network_mode: host
privileged: true
volumes:
- ./config:/config
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
environment:
- TZ=Asia/Shanghai
- LANG=C.UTF-8
关键点说明:
network_mode: host让Home Assistant直接使用宿主机网络,方便发现局域网内的智能设备(如Yeelight、Sonoff等),避免端口映射的麻烦。privileged: true并非必须,但如果你打算通过USB连接Zigbee适配器(如CC2652P),则需要此权限来访问串口设备。如果只用WiFi设备,可以删除这行。- 挂载
/run/dbus是为了让容器与宿主机系统总线通信,在后续接入蓝牙或某些需要系统蓝牙的设备时非常有用。
三、启动并初始化Home Assistant
在/vol1/docker/homeassistant目录下执行:
sudo docker-compose up -d
首次启动需要下载镜像,等待约2-5分钟。启动后,通过浏览器访问http://你的NAS_IP:8123。Home Assistant会进行首次初始化,创建管理员账户。整个过程大约需要3-10分钟,期间界面会显示进度条。
初始化完成后,你会看到Home Assistant的主界面。此时建议先进行基础设置:
- 点击左下角“用户”图标,设置所在时区(Asia/Shanghai)和单位制(公制)。
- 进入“配置→设备与服务”,系统会自动扫描局域网内的兼容设备。米家设备不会自动发现,需要后续安装HACS组件。
四、安装HACS扩展商店(进阶必备)
HACS是Home Assistant的第三方组件商店,能让你轻松安装米家、HomeKit等集成。通过SSH安装:
sudo docker exec -it hass bash
进入容器后,执行:
wget -O - https://get.hacs.xyz | bash -
安装完成后,退出容器并重启Home Assistant:
exit
sudo docker restart hass
再次打开Home Assistant,在“配置→设备与服务”页面底部会出现“HACS”入口。点击进入,按提示注册GitHub账号授权即可。之后你就能在HACS中搜索“Xiaomi Miot Auto”或“HomeKit Controller”等集成。
五、接入米家设备实战
以最常见的米家智能插座为例。在HACS中搜索并安装“Xiaomi Miot Auto”,安装后重启Home Assistant。然后:
- 在“设备与服务”中点击“添加集成”,搜索“Xiaomi Miot Auto”。
- 选择“账号集成”方式,输入你的米家账号密码(建议使用小米账号而非手机号)。
- 系统会拉取该账号下的所有设备,勾选你需要的设备即可。
对于不支持云端接入的本地设备(如蓝牙mesh设备),可以在“配置→设备与服务”中添加“小米网关”集成,通过网关的局域网密钥(从米家App获取)直接连接,响应速度更快。
六、创建自动化场景
现在我们可以设置一个简单的自动化:当阳台温度高于30度时,自动打开风扇插座。
在Home Assistant的“配置→自动化”中点击“创建自动化”,选择“从空自动化开始”:
alias: 高温自动开风扇
trigger:
- platform: numeric_state
entity_id: sensor.yangtai_temperature
above: 30
condition: []
action:
- service: switch.turn_on
target:
entity_id: switch.fengshan
mode: single
这里的entity_id需要根据你实际设备导入后的名称调整。在“开发者工具→状态”中可以查看所有可用实体ID。
七、与飞牛NAS的深度联动
Home Assistant也可以通过shell_command调用飞牛NAS的API,实现如“当有人回家时,自动播放NAS上的音乐”这样的场景。在configuration.yaml中添加:
shell_command:
fnos_play_music: 'curl -X POST "http://127.0.0.1:5666/api/v1/media/play" -H "Content-Type: application/json" -d "{\"path\": \"/music/relax.mp3\"}"'
注意这里的API端口和路径需要查阅飞牛NAS的开发者文档,不同版本可能有差异。你也可以通过rest_command调用飞牛NAS的API,但需要提前在飞牛NAS中创建API令牌。
八、备份与恢复
Home Assistant的配置全部存放在/vol1/docker/homeassistant/config中。建议在飞牛NAS的“定时任务”中创建一个每日打包备份的脚本:
tar -czf /vol1/backup/ha_$(date +%Y%m%d).tar.gz -C /vol1/docker/homeassistant config
恢复时,只需要将备份解压回原目录,重启容器即可。
总结
通过以上步骤,你的飞牛NAS已经成功化身为一套完整的智能家居中枢。它不仅能够统一管理不同品牌的智能设备,还能借助HACS生态实现更多高级玩法。最关键的是,所有数据都存储在本地,不依赖任何云服务,响应速度和隐私安全性都得到了保障。后续你可以继续探索Node-RED可视化流编排、ESPHome自制传感器等进阶功能,让NAS真正成为家庭数字化的核心节点。
暂无评论,来说两句吧