HomeAssistant的Docker配置
【通用账号】:能修改的使用root,不能修改的一般为admin
一、配置Portainer
Portainer 是一个用于 Docker 容器管理的可视化界面工具。方便管理容器和卷。
- 创建 Portainer 数据卷:
1 | docker volume create portainer_data |
- 运行 Portainer 容器:
1 | docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce |
指令的解释:
-d:表示在后台模式运行容器。
-p 9000:9000:这将宿主机的 9000 端口映射到容器的 9000 端口。
–name portainer:为容器指定一个名称。
–restart always:确保容器在任何情况下都会重新启动。
-v /var/run/docker.sock:/var/run/docker.sock:这允许 Portainer 直接访问 Docker API。
-v portainer_data:/data:将前面创建的数据卷挂载到容器内。
完成上述步骤后,你可以通过浏览器访问 http://<你的服务器IP>:9000 来使用 Portainer 界面进行 Docker 容器的管理。
- 配置
访问http://<你的服务器IP>:9000,进行账密配置。
二、配置HA的docker
要在 Docker 中安装 Home Assistant,你可以使用官方的 Home Assistant Docker 映像。
- 创建一个数据卷 (用于存储 Home Assistant 的配置和数据):
1 | docker volume create homeassistant_data |
- 运行 Home Assistant 容器:
1 | docker run -d --name="home-assistant" -v homeassistant_data:/config -e "TZ=Asia/Shanghai" --net=host homeassistant/home-assistant:stable |
指令的解释:
-d:表示在后台模式运行容器。
–name=“home-assistant”:为容器指定一个名称。
-v homeassistant_data:/config:将前面创建的数据卷挂载到容器内,用于存储 Home Assistant 的配置。
-e “TZ=Asia/Shanghai”:设置时区为上海 (你可以根据需要修改为其他时区)。
–net=host:这允许 Home Assistant 使用宿主机的网络,有助于自动发现和控制本地网络上的设备。
homeassistant/home-assistant:stable:使用稳定版的 Home Assistant 映像。
完成上述步骤后,你应该可以通过浏览器访问 http://<你的服务器IP>:8123 来访问 Home Assistant 的界面,并进行初始设置。
- 配置
访问http://<你的服务器IP>:8123 ,进行账密配置。其他配置在后续说明
三、配置MQTT服务器(Eclipse Mosquitto)
对于 MQTT 服务器,经常推荐使用的是 Eclipse Mosquitto。Mosquitto 是一个开源的 MQTT 代理,非常轻量级且可靠,可以很好地与 Home Assistant 和 Node-RED 配合使用。
额外参考:https://zhuanlan.zhihu.com/p/452896841
- 创建 Mosquitto 数据卷:
1 | docker volume create mosquitto_config |
- 配置 mosquitto.conf 文件:
在mosquitto_config
下创建文件mosquitto.conf
,特别注意,由于使用docker volume创建,应该是在mosquitto_config的_data文件夹下。实际路径如下:
1 | cd /opt/docker/volumes/mosquitto_config/_data |
写入以下内容:
1 | persistence true |
- 运行 Mosquitto 容器:
1 | docker run -d \ |
三、配置MariaDB数据库
Home Assistant 默认使用 SQLite 数据库,但在大型设置或长时间使用后,使用 MariaDB 或 PostgreSQL 可能更高效。
为了长时间运行的稳定,那还是设置吧
- 创建一个持久化存储数据的 Docker 卷:
MariaDB 将其数据存储在 /var/lib/mysql,所以为了确保数据的持久性,我们应该为这个路径创建一个 Docker 卷。
1 | docker volume create mariadb_data |
- 启动 MariaDB 容器:
使用以下命令运行 MariaDB 容器,注意替换 password 为您自己的值。
1 | docker run -d \ |
- 配置 Home Assistant 使用 MariaDB:
如之前所述,您需要更新 Home Assistant 的 configuration.yaml 文件,指向这个新的 MariaDB 实例。修改password。
1 | recorder: |
- 之后重启HA
使用数据库工具DBeaver,连接这个数据库进行查看,可以看到正常。
四、配置Node-RED
Node-RED 是一个基于流的开发工具,用于连接硬件设备、API 和在线服务。
- 创建 Node-RED 数据卷 (用于存储 Node-RED 的配置和数据):
1 | docker volume create nodered_data |
- 运行 Node-RED 容器:
1 | docker run -d --name nodered -p 1880:1880 -v nodered_data:/data --user node-red --restart always nodered/node-red:latest |
指令的解释:
-d: 表示在后台模式运行容器。
–name nodered: 为容器指定一个名称。
-p 1880:1880: 这将宿主机的 1880 端口映射到容器的 1880 端口。
-v nodered_data:/data: 将前面创建的数据卷挂载到容器内,用于存储 Node-RED 的配置。
–user node-red: 以 node-red 用户身份运行 Node-RED,增加安全性。
–restart always: 确保容器在任何情况下都会重新启动。
nodered/node-red:latest: 使用最新版本的 Node-RED Docker 映像。
完成上述步骤后,你应该可以通过浏览器访问 http://<你的服务器IP>:1880 来访问 Node-RED 的界面并开始构建你的流。
五、配置ESPHome
ESPHome 是一个很好的选择,尤其是如果你计划使用 ESP8266 或 ESP32 微控制器来扩展你的 Home Assistant 设置。
- 创建 ESPHome 数据卷 (用于存储 ESPHome 的配置和数据):
1 | docker volume create esphome_data |
- 运行 ESPHome 容器:
1 | docker run -d \ |
完成上述步骤后,你应该可以通过浏览器访问 http://<你的服务器IP>:6052 来访问 ESPHome 的界面,并开始创建和管理你的设备配置。
必须使用host和privileged ,否则esphome无法发现设备。
六、配置Duplicati
Duplicati 是一个备份软件,用于存储加密的、增量的、压缩的备份到云或本地存储。下面是在 Docker 中安装 Duplicati 的步骤:
- 创建 Duplicati 的数据卷 (用于存储配置和备份数据):
1 | docker volume create duplicati_backups |
- 运行 Duplicati 容器:
注意替换/opt/docker/volumes为你需要备份的文件夹。
1 | docker run -d \ |
- 配置
首先在设置中设置密码。
随后创建备份,使用onedrive或其他进行备份。
七、配置HA的HACS
- 打开HA的bash,输入如下指令即可
1 | wget -O - https://get.hacs.xyz | bash - |
- 打开HA中的高级模式
- 添加集成HACS,并进行相应配置,即可显示HACS内容
八、配置HA的Node-Red
- HACS安装Node-Red
- 添加集成Node-Red
- HA导航栏添加Node-Red
配置configuration.yaml,添加如下内容后重启HA。(顺带把ESPhome的也添加进来)
1 | panel_iframe: |
九、配置Node-Red
- 在Node-Red中添加节点node-red-contrib-home-assistant-websocket,并安装
- 拖入一个HA节点,随后进行HA的配置,如下:
- 其中的令牌在HA中创建并复制
- 测试一下,获取IP并显示
十、配置MQTT
HA添加集成MQTT,并配置如下:
进行测试
使用MQTT发布一个传感器给HA的教程,请参考另外一个博客。
十一、配置彩云天气
- HACS搜索彩云天气,安装组件和卡片
- 添加集成Colorfuclouds,并进行相应配置
- 在主页中添加卡片,为了高级使用,要学会使用编辑器。
十二、配置mini-graph-card
可以在主页显示好看的时序数据,比如温湿度、流量、等等
HACS搜索并安装
添加如下卡片:
手动添加卡片到资源中
可能会出现卡片无法检索到,需要手动添加。
首先在HACS的该卡片,打开源获得该卡片路径:http://192.168.5.1:8123/hacsfiles/mini-graph-card/mini-graph-card-bundle.js
其次,在配置-仪表盘-资源(右上角选择),添加如下资源。可以看到,这里还包括的彩云天气得到资源
相关链接(侵删)
欢迎到公众号来唠嗑: