secubox-openwrt/DOCS-zh/embedded/zigbee2mqtt-docker.md
CyberMind-FR ccfb58124c docs: Add trilingual documentation (French and Chinese translations)
Add complete French (fr) and Chinese (zh) translations for all documentation:

- Root files: README, CHANGELOG, SECURITY, BETA-RELEASE
- docs/: All 16 core documentation files
- DOCS/: All 19 deep-dive documents including embedded/ and archive/
- package/secubox/: All 123+ package READMEs
- Misc: secubox-tools/, scripts/, EXAMPLES/, config-backups/, streamlit-apps/

Total: 346 translation files created

Each file includes language switcher links for easy navigation between
English, French, and Chinese versions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-20 10:00:18 +01:00

4.5 KiB
Raw Blame History

OpenWrt ARM64 上的 Docker Zigbee2MQTT

Languages: English | Francais | 中文

版本: 1.0.0 最后更新: 2025-12-28 状态: 活跃

本指南说明如何在 OpenWrt ARM64 目标上部署 SecuBox Zigbee2MQTT "应用"(基于 Docker。它使用 secubox-app-zigbee2mqtt 软件包安装程序、CLI、procd 服务)以及 LuCI 前端(luci-app-zigbee2mqtt)。


前提条件

  1. OpenWrt 24.10.x ARM64ESPRESSObin、MOCHAbin、RPi4 等),具有 >= 256 MB 可用存储空间Docker 镜像 + 数据目录)。
  2. 内核功能cgroups/sys/fs/cgroup、USB CDC ACMkmod-usb-acm)。
  3. 硬件Zigbee 协调器呈现为 /dev/ttyACM0(例如 SONOFF ZBDongle-E/MG21
  4. 网络:可访问的 MQTT 代理(本地 Mosquitto 或远程 mqtt://host:1883)。
  5. 软件包源dockerdockerdcontainerd 可用(opkg update)。

安装步骤

opkg update
opkg install secubox-app-zigbee2mqtt luci-app-zigbee2mqtt
  1. 运行前提条件安装程序检查存储、cgroups、USB安装 Docker拉取镜像启用服务
    zigbee2mqttctl install
    
  2. 启动服务
    /etc/init.d/zigbee2mqtt start   # 通过安装程序自动启用
    
  3. LuCI 配置(可选的界面流程):服务 -> SecuBox -> Zigbee2MQTT。调整串口、MQTT 主机/凭据、基础主题等,然后点击"应用"。

安装程序将持久化数据写入 /srv/zigbee2mqtt/data(配置 + 数据库),并默认在端口 8080 上暴露 Zigbee2MQTT Web 界面。


命令行参考(/usr/sbin/zigbee2mqttctl

命令 描述
install 完整的前提条件设置Docker 软件包、数据目录、镜像拉取、启用服务)。
check 重新运行前提条件检查存储、cgroups、USB 模块、串口设备)。
update 拉取最新的 Zigbee2MQTT 镜像并重启已启用的服务。
status 显示 Docker 容器状态(docker ps 过滤)。
logs [-f] 流式输出容器的 Docker 日志。
service-run / service-stop procd init 脚本使用的内部命令;不用于手动调用。

所有命令必须以 root 身份运行。


UCI 配置(/etc/config/zigbee2mqtt

config zigbee2mqtt 'main'
	option enabled '1'
	option serial_port '/dev/ttyACM0'
	option mqtt_host 'mqtt://127.0.0.1:1883'
	option mqtt_username ''
	option mqtt_password ''
	option base_topic 'zigbee2mqtt'
	option frontend_port '8080'
	option channel '11'
	option image 'ghcr.io/koenkk/zigbee2mqtt:latest'
	option data_path '/srv/zigbee2mqtt'
	option timezone 'UTC'

通过 uci 或 LuCI 表单编辑;提交更改后自动重启:

uci set zigbee2mqtt.main.mqtt_host='mqtt://192.168.1.10:1883'
uci commit zigbee2mqtt
/etc/init.d/zigbee2mqtt restart

验证和冒烟测试

  • 快速前提条件检查:
    zigbee2mqttctl check
    
  • 仓库冒烟测试(运行服务启动/停止 + 可选的 MQTT 发布/订阅):
    ./scripts/smoke_test.sh
    
  • 诊断包(通用 SecuBox
    ./scripts/diagnose.sh
    

故障排除

症状 解决方案
zigbee2mqttctl install 报告 "/sys/fs/cgroup missing" 在内核配置中启用 cgroups 或升级到支持 cgroup 的构建版本。
USB 协调器未检测到 确保已安装 kmod-usb-acmcdc_acm 模块已加载(`lsmod
Docker 无法启动 检查 /etc/init.d/dockerd status。如果 docker info 失败,检查 /var/log/messages 中的存储驱动错误。
MQTT 认证失败 通过 UCI 或 LuCI 设置 mqtt_username/mqtt_password 并重启服务。
端口 8080 已被使用 在 UCI 中更改 frontend_port,提交,重启服务。相应更新 vhost 映射。

卸载/清理

/etc/init.d/zigbee2mqtt stop
/etc/init.d/zigbee2mqtt disable
docker rm -f secbx-zigbee2mqtt 2>/dev/null
opkg remove luci-app-zigbee2mqtt secubox-app-zigbee2mqtt
rm -rf /srv/zigbee2mqtt

后续步骤

  • 使用 luci-app-vhost-manager 在 HTTPS 下发布 Zigbee2MQTT 界面(参见 luci-app-vhost-manager/README.md)。
  • 通过添加引用此安装程序的清单条目与即将推出的 SecuBox App Store 集成。
  • 根据项目路线图,在引入这些组件后与配置文件/向导结合使用。