Docker部署Zigbee2MQTT
AI-摘要
Tianli GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
之前有大佬送我了一套Zigbee套件,一直稳定使用,最近从PVE换到ESXI后,又重新部署一遍,顺便写个教程。
1、直通Zigbee控制器
这里使用的ESXI8.0U2b,PVE同理,只需要添加USB设备,然后选择Zigbee控制器即可。
登陆虚拟机查看直通的控制器ID
ls /dev/tty
后补全后发现有一个ttyUSB0,也有可能会是ttyACM0,如果你有多个USB那就需要使用dmesg
命令自行查找并对应了。
输入ls /dev/serial/by-id/按tab键补全得到Zigbee控制器ID,复制下来这个很重要
2、安装EMQX
docker run \
--name emqx \
-p 1883:1883 -p 8083:8083 \
-p 8084:8084 -p 8883:8883 \
-p 18083:18083 \
-v $PWD/EMQX:/opt/emqx/data \
-v $PWD/EMQX/log:/opt/emqx/log \
emqx/emqx:5.6.1
安装后docker ps查看
3、安装Zigbee2MQTT
docker run \
--name Zigbee2MQTT \
--restart=unless-stopped \
--device=/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0:/dev/ttyACM0 \
-p 8080:8080 \
-v $(pwd)/Zigbee2MQTT:/app/data \
-v /run/udev:/run/udev:ro \
-e TZ=Asia/Shanghai \
koenkk/zigbee2mqtt
注意
--device=/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0:/dev/ttyACM0 \
其中usb-1a86_USB_Serial-if00-port0
是我的Zigbee控制器ID,不是你的
只需要把usb-1a86_USB_Serial-if00-port0
换成你的控制器ID即可,ID在第一步里有讲!
4、配置Zigbee2MQTT
上一步执行完后,Zigbee2MQTT会报错并停止运行,原因在于我偷懒没有提前下载所需的配置文件,因为部署完成后会自动下载,只需要在它下载的配置文件中修改EMQX地址即可。
上一步中我把Zigbee2MQTT的目录映射到当前目录下的Zigbee2MQTT
目录,我是在root目录下运行,所以我映射的目录是/root/Zigbee2MQTT/
目录下会有一个configuration.yaml
文件,我们使用vim工具或者nano修改第五行的
server: mqtt://docker容器的网关
例如我的我docker容器网段位172.18.0.0,所以我输入的是172.18.0.1
保存后退出,重启容器。
5、登陆Zigee2MQTT
第三步中我们映射的端口为8080,所以在浏览器中输入宿主机IP:8080即可访问
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果