Docker搭建HomeAssistant平台

木易
原创
发布时间: 2025-06-09 22:44:37 | 阅读数 0收藏数 0评论数 0
封面
本文介绍如何在云服务器上使用Docker搭建Home Assistant平台,并与MQTT服务建立通讯。涵盖创建配置目录、运行Home Assistant和EMQ X Broker容器,开放必要端口,及在Home Assistant集成MQTT的步骤,助您轻松构建智能家居系统。
1

准备工作

首先,你需要准备一台云服务器。如果你已经有了云服务器,那就可以直接进行下一步。如果没有的话,你可以选择一个云服务提供商(比如阿里云、腾讯云等)来购买和设置你的云服务器。

接下来,在你常用的电脑上安装Xshell这个软件。Xshell是一个非常好用的工具,专门用来远程连接到服务器上的。安装完成后,通过它你可以方便地登录并操作你的云服务器,就像直接在服务器前操作一样。

然后,在你的云服务器上安装Docker。Docker是一种容器化技术,可以让你更轻松地部署应用程序和服务。安装Docker的过程相对直接,网上有很多教程可以帮助你完成这一步骤,例如DOOOOIT社区提供的Linux系统下安装Docker的指南就非常实用。

总结一下,整个过程包括:获取云服务器 -> 在本地电脑安装Xshell -> 通过Xshell连接到云服务器 -> 在云服务器上安装Docker。每一步都有很多资源和工具可以帮助你顺利完成,所以即使你是新手也不用太担心。

2

拉取镜像

你需要从Docker的镜像仓库中拉取Home Assistant的最新镜像到你的服务器上。可以通过执行以下命令来完成这一步骤:

docker pull homeassistant/home-assistant:latest

这个命令会下载最新的Home Assistant镜像。由于网络状况不同,下载时间可能会有所不同,请耐心等待直到下载完成。

下载完成后,如果你想确认镜像是否已经成功安装在你的系统上,你可以使用下面的命令查看所有已下载的Docker镜像。这将列出包括刚刚下载的Home Assistant在内的所有镜像:

docker images

执行上述命令后,你应该能看到一个列表,其中包含你之前拉取的homeassistant/home-assistant镜像的信息,如镜像ID、创建时间以及大小等。这样你就知道镜像已经成功下载并存储在你的系统上了。

通过这些步骤,你就可以确保Home Assistant的镜像已经被正确地拉取到你的机器上,并为接下来的容器部署做好了准备。

3

创建启动容器

创建目录

首先,在你的服务器上创建一个新的目录用于存放Home Assistant的配置文件。

mkdir -p /home/根目录用户名/homeassistant-config/

注意将"根目录用户名"替换为相应的用户名(例如root或其他你正在使用的用户名)。使用`-p`参数是为了防止目录已经存在时报错。

使用Docker命令创建容器

接下来,使用Docker命令基于之前拉取的Home Assistant镜像创建并运行一个容器。同时将主机的`/home/根目录用户名/homeassistant-config/`目录挂载到容器内的`/config`路径,这样做的好处是可以方便地在宿主机上管理和修改Home Assistant的配置文件。

执行以下命令来创建并运行容器:

docker run -d --name="homeassistant" -v /home/根目录用户名/homeassistant-config:/config -p 8123:8123 homeassistant/home-assistant:latest

请确保将命令中的"根目录用户名"替换为你实际使用的用户名或路径。

检查容器创建是否成功

创建完成后,你可以通过查看挂载的配置目录是否有内容来确认容器是否创建成功。输入以下命令检查:

ll /home/根目录用户名/homeassistant-config/

如果目录中有文件或文件夹出现,这通常意味着容器已经被正确创建,并且已经开始生成配置文件了。

查看运行中的容器

最后,要验证容器是否正在运行:

docker ps

你应该能看到名为`homeassistant`的容器正在运行,以及它的状态、端口映射等信息。如果有显示,说明一切正常,Home Assistant已经在你的服务器上运行起来了。

4

放开端口

在服务上放开端口

在你的服务上使用以下命令永久放开8123端口:

firewall-cmd --add-port=8123/tcp --permanent

需要使用重新加载防火墙配置使配置生效

firewall-cmd --reload

最后确认8123端口是否添加到防火墙规则中,使用一下指令可以查看以放开端口:

firewall-cmd --list-ports
5

访问HomeAssistant服务


6

搭建EMQX服务

开放端口

首先,你需要在服务器的防火墙中开放以下端口,以便外部可以访问EMQ X Broker的不同服务端口:

firewall-cmd --add-port=18083/tcp --permanent
firewall-cmd --add-port=1883/tcp --permanent

这里,1883是MQTT协议的标准端口,而18083是EMQ X Broker的Dashboard管理界面端口。

添加完规则后,需要重新加载Firewalld以使更改生效:

firewall-cmd --reload

运行EMQ X Broker容器

接下来,使用Docker运行EMQ X Broker容器。

docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:latest

这条命令做了以下几件事:

-d 参数表示容器将在后台运行。

--name emqx 为容器指定了一个易于记忆的名字emqx。

-p 参数用于将主机的端口映射到容器内部的端口。例如,1883:1883 表示将主机的1883端口映射到容器内的1883端口。

最后的emqx/emqx:latest 指定了要使用的镜像及其标签。

验证容器状态

为了确保容器已正确启动并正在运行,你可以使用以下命令查看所有正在运行的容器:

docker ps

你应该能看到名为emqx的容器在列表中,同时也能看到它映射的端口以及状态是否为“Up”。

在云控制平台放开端口

别忘了在你的云服务提供商的控制台上也放开相应的端口(如1883和18083),因为云服务商通常会在虚拟机外部提供一层额外的安全组或防火墙设置。具体操作步骤根据不同的云服务商可能略有不同,但大体流程类似:找到安全组配置,添加入站规则允许TCP流量通过上述端口。

7

访问EMQX

ip+端口访问服务。前提是已经放开了对应的端口。

进入页面后输入用户名和密码。

默认用户名:admin 密码:public

8

创建智能家居

在智能家居系统中添加MQTT服务

  1. 创建我的智能家居:首先,你需要完成一部分认证信息来创建或进入你的智能家居系统。
  2. 进入首页并选择设置:在成功登录后,导航到系统的首页,然后找到并点击“设置”选项。这通常位于界面的顶部菜单栏或侧边栏中。
  3. 选择“设备与服务”:在设置菜单中,找到并选中“设备与服务”选项。这里列出了所有已连接到你智能家居系统的设备和服务。
  4. 点击“添加集成”按钮:在“设备与服务”页面的右下角,你应该能看到一个“添加集成”按钮。点击这个按钮开始添加新的服务或设备集成。
  5. 搜索并选择MQTT:点击“添加集成”后会弹出一个输入框,在这个框中输入“mqtt”进行搜索。从搜索结果中选择MQTT选项以继续。
  6. 提交MQTT集成配置:根据提示填写必要的MQTT配置信息(如服务器地址、端口等),这些信息可以从你的EMQ X平台获取。完成后提交配置。

验证EMQ X平台上的客户端

  1. 查看客户端列表:一旦你在智能家居系统中成功添加了MQTT服务,你可以回到EMQ X平台,检查客户端列表,确认新添加的服务或设备是否已经显示。通常,这可以在EMQ X Dashboard中的“WebSocket Clients”或“Connections”部分找到。
阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载