Docker 部署 Zigbee2MQTT

通过 Docker 部署 Zigbee2MQTT,连接 MQTT 服务与 Zigbee 协调器。

安装命令

使用 Docker 部署,重启策略为 unless-stopped:

1
2
3
4
5
6
7
docker run -d \
  --name zigbee2mqtt \
  --restart unless-stopped \
  -p 8080:8080 \
  -e TZ=Asia/Shanghai \
  -v ~/zigbee2mqtt/data:/app/data \
  koenkk/zigbee2mqtt:latest

后台地址为 http://IP:8080/。配置文件位于 ~/zigbee2mqtt/data/configuration.yaml;MQTT 和网络协调器地址按自己的实际地址填写。

2.x 及后续版本配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://192.168.1.10:1883
  user: admin
  password: public
serial:
  port: tcp://192.168.1.20:8888
  adapter: zstack
advanced:
  channel: 15
frontend:
  enabled: true
  port: 8080
homeassistant:
  enabled: true

192.168.1.10:1883 是 MQTT 服务地址,192.168.1.20:8888 是网络协调器地址,均需替换为实际地址。账号和密码使用自己的 MQTT 凭据;adapter: zstack 对应 TI Z-Stack 协调器,其他类型使用对应的 adapter。

通过命令开启配对

2.0 起移除了配置文件中的 permit_join 和永久允许加入功能。可通过 MQTT 命令开启配对,无需手工点页面。安装了 mosquitto_pub 的机器上执行:

1
2
mosquitto_pub -h 192.168.1.10 -p 1883 -u admin -P public \
  -t zigbee2mqtt/bridge/request/permit_join -m '{"time":254}'

将地址和凭据替换为配置中的实际值;新版单次配对窗口最多 254 秒,时间到了可再次执行。也可在前端开启配对。

1.x 配置格式

使用 1.x 镜像的环境采用下面的格式。上面的 latest 部署使用新版格式,两组配置按镜像版本选择,不要合并:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
homeassistant: true
permit_join: true
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://192.168.1.10:1883
  user: admin
  password: public
serial:
  port: tcp://192.168.1.20:8888
advanced:
  channel: 15
frontend: true

USB 协调器

使用 USB 时,将 serial.port 改成容器内设备路径,例如 /dev/ttyUSB0,并在创建容器时加入实际设备映射:

1
2
--device=/dev/serial/by-id/实际设备ID:/dev/ttyUSB0
-v /run/udev:/run/udev:ro

参考:Docker 部署、2.0 配置迁移、MQTT 配对命令。

延伸阅读

使用 Hugo 构建
主题 Stack 由 Jimmy 设计