安装Mqtt Broker与ESPHOME
项目地址
最新脚本与其他容器启动参数更新地址:
https://gitee.com/norep/script_tools/tree/master/rundocker
安装前说明
EMQX
hass系统接入mqtt设备需要依赖MQTT服务器。这里使用docker安装一个mqtt服务器,供mqtt设备连接。
本章使用EMQX方案搭建MQTT Broker
开放端口 | 备注 |
---|---|
1883 | TCP |
8083 | WebSocket 端口 |
8084 | SSL 端口 |
8883 | TLS |
18083 | WEB Dashboard |
默认Dashboard地址 http://IP:18083
默认用户名:admin
默认密码:public
ESPHOME
esphome web主页默认路径为 http://IP:6052 ,如果无法访问,请检查防火墙是否放行该端口
docker容器网络设置为host模式时,端口直接暴露,推荐开启防火墙。
开始安装EMQX
拉取docker镜像
MQTT容器镜像
docker pull emqx
ESPHOME容器镜像
docker pull esphome/esphome
创建MQTT容器
编写docker运行脚本rundocker_mqtt.sh
#!/bin/bash
set -e
NAME=emqx
DATA_PATH=/docker/${NAME}
mkdir -p $DATA_PATH
chmod 777 -R $DATA_PATH
docker run -d \
--name=${NAME} \
--hostname ${NAME} \
--restart unless-stopped \
-p 1883:1883 \
-p 18083:18083 \
-v ${DATA_PATH}:/opt/emqx/data:rw \
emqx:latest
# ufw allow 1883 comment "mqtt"
# ufw allow 18083 comment "mqtt dashboard"
给脚本添加可执行权限
chmod 755 rundocker_mqtt.sh
运行rundocker_mqtt.sh脚本,启动emqx容器
./rundocker_mqtt.sh
安装ESP-HOME
编写docker运行脚本rundocker_esphome.sh
#!/bin/bash
set -e
NAME=esphome
DATA_PATH=/docker/${NAME}
docker run -d \
--name=${NAME} \
--hostname ${NAME} \
--restart unless-stopped \
--net=host \
-e TZ=Asia/Shanghai \
-v ${DATA_PATH}:/config:rw \
esphome/esphome:2023.12.5
# 通过以下命令给容器挂代理,加速环境安装速度
# -e https_proxy=http://192.168.3.99:7890 \
# -e http_proxy=http://192.168.3.99:7890 \
# -e all_proxy=socks5://192.168.3.99:7890 \
# -e no_proxy=localhost,127.0.0.1,.example.com \
# ufw allow from 192.168.0.0/16 to any port 6052 comment esphome
给脚本添加可执行权限
chmod 755 rundocker_esphome.sh
运行rundocker_esphome.sh脚本,启动esphome容器
脚本中DATA_PATH对应主机中保存esphome数据的地址,根据实际修改
./rundocker_esphome.sh