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

131 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# OpenWrt ARM64 上的 Docker Zigbee2MQTT
> **Languages:** [English](../../DOCS/embedded/zigbee2mqtt-docker.md) | [Francais](../../DOCS-fr/embedded/zigbee2mqtt-docker.md) | 中文
**版本:** 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 ARM64**ESPRESSObin、MOCHAbin、RPi4 等),具有 >= 256 MB 可用存储空间Docker 镜像 + 数据目录)。
2. **内核功能**cgroups`/sys/fs/cgroup`、USB CDC ACM`kmod-usb-acm`)。
3. **硬件**Zigbee 协调器呈现为 `/dev/ttyACM0`(例如 SONOFF ZBDongle-E/MG21
4. **网络**:可访问的 MQTT 代理(本地 Mosquitto 或远程 `mqtt://host:1883`)。
5. **软件包源**`docker`、`dockerd`、`containerd` 可用(`opkg update`)。
---
## 安装步骤
```sh
opkg update
opkg install secubox-app-zigbee2mqtt luci-app-zigbee2mqtt
```
1. **运行前提条件安装程序**检查存储、cgroups、USB安装 Docker拉取镜像启用服务
```sh
zigbee2mqttctl install
```
2. **启动服务**
```sh
/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`
```uci
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 表单编辑;提交更改后自动重启:
```sh
uci set zigbee2mqtt.main.mqtt_host='mqtt://192.168.1.10:1883'
uci commit zigbee2mqtt
/etc/init.d/zigbee2mqtt restart
```
---
## 验证和冒烟测试
- 快速前提条件检查:
```sh
zigbee2mqttctl check
```
- 仓库冒烟测试(运行服务启动/停止 + 可选的 MQTT 发布/订阅):
```sh
./scripts/smoke_test.sh
```
- 诊断包(通用 SecuBox
```sh
./scripts/diagnose.sh
```
---
## 故障排除
| 症状 | 解决方案 |
|------|----------|
| `zigbee2mqttctl install` 报告 "/sys/fs/cgroup missing" | 在内核配置中启用 cgroups 或升级到支持 cgroup 的构建版本。 |
| USB 协调器未检测到 | 确保已安装 `kmod-usb-acm``cdc_acm` 模块已加载(`lsmod | grep cdc_acm`),设备出现在 `/dev/ttyACM*` 下。重新插入 dongle。 |
| Docker 无法启动 | 检查 `/etc/init.d/dockerd status`。如果 `docker info` 失败,检查 `/var/log/messages` 中的存储驱动错误。 |
| MQTT 认证失败 | 通过 UCI 或 LuCI 设置 `mqtt_username`/`mqtt_password` 并重启服务。 |
| 端口 8080 已被使用 | 在 UCI 中更改 `frontend_port`,提交,重启服务。相应更新 vhost 映射。 |
---
## 卸载/清理
```sh
/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 集成。
- 根据项目路线图,在引入这些组件后与配置文件/向导结合使用。