Docker 玩法

飞牛NAS Docker部署智能家居中枢:Home Assistant与MQTT保姆级教程

痛点:智能家居设备各自为政,手机装了一堆App

你是否也面临这样的困境:灯泡用A品牌App控制,插座用B品牌App,摄像头用C品牌App……每个设备都要单独下载App、注册账号、切换界面,不仅麻烦,而且这些设备之间根本无法联动。更糟的是,很多智能设备依赖云端,一旦厂商服务器出问题,你的设备就变成“砖头”。

其实,你完全可以把飞牛NAS变成智能家居的本地中枢,通过Docker部署Home Assistant和Mosquitto MQTT Broker,将所有设备统一接入,实现离线本地化控制与自动化联动。本文将手把手教你完成部署,即使你是Docker小白也能轻松上手。

为什么选择飞牛NAS作为智能家居中枢

飞牛NAS基于Debian系统,自带Docker环境,性能稳定,功耗低,非常适合7x24小时运行。相比树莓派,飞牛NAS拥有更大的存储空间和更成熟的文件管理能力;相比云服务器,数据完全本地化,隐私安全有保障。

更重要的是,飞牛NAS的Docker管理界面简洁直观,支持图形化操作,无需SSH命令行即可完成容器部署。对于家庭用户来说,这大大降低了技术门槛。

第一步:在飞牛NAS上部署Mosquitto MQTT Broker

MQTT是智能家居设备通信的“交通枢纽”,所有设备通过它来传递消息。我们首先部署Mosquitto。

  1. 打开飞牛NAS的Docker应用,进入“镜像”页面,搜索eclipse-mosquitto,选择最新版本(如2.0.18)下载。
  2. 下载完成后,点击“创建容器”,进行以下配置:
  3. 端口映射:将容器的1883端口映射到NAS的1883端口(TCP),用于MQTT通信;将9001端口映射到NAS的9001端口(TCP),用于WebSocket通信。
  4. 存储映射:创建本地文件夹如/vol1/docker/mosquitto/config,映射到容器的/mosquitto/config;创建/vol1/docker/mosquitto/data映射到/mosquitto/data;创建/vol1/docker/mosquitto/log映射到/mosquitto/log
  5. 在NAS的文件管理器中,进入/vol1/docker/mosquitto/config,创建mosquitto.conf文件,内容如下: conf persistence true persistence_location /mosquitto/data/ log_dest file /mosquitto/log/mosquitto.log listener 1883 allow_anonymous false password_file /mosquitto/config/passwd
  6. 使用SSH工具(如Termius)连接NAS,执行以下命令创建用户密码文件(将youruseryourpassword替换为你的设置): bash docker exec -it <容器ID> mosquitto_passwd -c /mosquitto/config/passwd youruser 按提示输入两次密码即可。
  7. 重启容器,Mosquitto即配置完成。

第二步:部署Home Assistant容器

Home Assistant是智能家居的“大脑”,负责统一管理和自动化控制。

  1. 在Docker“镜像”页面搜索ghcr.io/home-assistant/home-assistant:stable(如果搜索不到,可以尝试homeassistant/home-assistant),下载最新稳定版。
  2. 创建容器,配置如下:
  3. 端口映射:将容器的8123端口映射到NAS的8123端口(TCP),这是Home Assistant的Web界面端口。
  4. 存储映射:创建本地文件夹如/vol1/docker/homeassistant/config,映射到容器的/config
  5. 网络:建议选择“host”模式(与宿主机共享网络),这样Home Assistant能更容易发现局域网内的智能设备。
  6. 启动容器后,在浏览器访问http://<你的NAS IP>:8123,首次访问会进入初始化向导。
  7. 按照向导创建管理员账户,设置家庭名称和位置(这会影响日出日落时间等自动化判断)。

第三步:配置Home Assistant连接MQTT并添加设备

  1. 在Home Assistant界面中,点击左下角的“配置”,选择“设备与服务”,点击“添加集成”,搜索“MQTT”。
  2. 输入MQTT Broker的IP地址(即NAS的IP)、端口1883、用户名和密码(之前设置的),点击“提交”。
  3. 添加成功后,Home Assistant会自动创建MQTT集成。现在你可以通过编写configuration.yaml来定义设备实体。
  4. 在NAS的文件管理器中,编辑/vol1/docker/homeassistant/config/configuration.yaml,添加如下示例(以温湿度传感器为例): ```yaml sensor:
    • platform: mqtt name: "Living Room Temp" state_topic: "home/livingroom/temperature" unit_of_measurement: "°C"
    • platform: mqtt name: "Living Room Humidity" state_topic: "home/livingroom/humidity" unit_of_measurement: "%" ```
  5. 保存文件后,在Home Assistant界面点击“配置”->“服务器控制”->“重新启动”,使配置生效。

第四步:实现自动化联动(示例)

有了Home Assistant和MQTT,你可以轻松创建自动化。例如,当温度超过30度时,自动打开风扇:

  1. 在Home Assistant“配置”->“自动化”中,点击“创建自动化”。
  2. 设置触发条件:选择“状态”触发,实体选择传感器.客厅温度,状态设为“高于”,值填30
  3. 设置执行动作:选择“调用服务”,服务选择switch.turn_on,目标实体选择你的风扇开关(需提前通过MQTT接入)。
  4. 保存即可。

总结

通过飞牛NAS部署Home Assistant和Mosquitto,你不仅摆脱了各品牌App的束缚,还拥有了一个完全本地化、可定制的智能家居中枢。所有数据都在你的掌控之中,即使断网也能正常联动。后续你还可以接入更多设备,如智能门锁、窗帘电机、传感器等,打造真正的全屋智能。

如果你在部署中遇到问题,欢迎在评论区留言,我们一起探讨解决方案。

💬 评论区
发表评论

暂无评论,来说两句吧