专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏

deconzcommunity/deconz Docker 镜像 - 轩辕镜像

deconz
deconzcommunity/deconz
deCONZ Docker镜像用于容器化Dresden Elektronik的deCONZ软件,通过Conbee USB或RaspBee GPIO串口接口控制ZigBee网络,支持WebUI("Wireless Light Control"和"Phoscon")、REST API、Websockets及可选VNC服务器,适用于amd64、armhf/armv7和aarch64/arm64架构。
50 收藏0 次下载activedeconzcommunity镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

迁移说明

此镜像正在替代marthoc/deconz镜像。

如果要将现有marthoc/deconz安装迁移到deconzcommunity/deconz,必须稍微修改配置。请仔细按照以下步骤操作:

  1. 确保已从Phoscon获取最新备份。
  2. 将镜像从marthoc/deconz更改为deconzcommunity/deconz。可用标签见此处。
  3. 将现有deCONZ卷的容器挂载点从/root/.local/share/dresden-elektronik/deCONZ更改为/opt/deCONZ。

拉取新镜像并启动。


deCONZ Docker镜像

此Docker镜像容器化了Dresden Elektronik的deCONZ软件,该软件通过Conbee USB或RaspBee GPIO串口接口控制ZigBee网络。此镜像以"最小"模式运行deCONZ,支持通过WebUI("Wireless Light Control"和"Phoscon")、REST API和Websockets控制ZigBee网络,还可选择运行VNC服务器,用于通过deCONZ UI查看和交互ZigBee网格。

Conbee支持amd64、armhf/armv7和aarch64/arm64(如RaspberryPi 2/3B/3B+及其他arm64板)架构;RaspBee支持armhf/armv7和aarch64/arm64(有关配置Raspbian以允许访问RaspBee串口硬件的说明,请参见下文"为RaspBee配置Raspbian"部分)。

此镜像的构建版本可从Docker Hub或Github Container Registry拉取,标签如下:

标签描述
latestdeCONZ的最新版本(稳定版或测试版)
stable仅deCONZ的稳定版
beta仅deCONZ的测试版
versiondeCONZ的特定版本(如2.13.02,仅在需要固定版本时使用)

"latest"、"stable"和"version"标签支持amd64、armv7和arm64的多架构,因此指定这些标签将拉取对应架构的正确版本。

请查阅Docker Hub或Github Container Registry获取此镜像的最新可用版本。

注册表
  • Docker Hub: docker pull deconzcommunity/deconz:latest
  • Github Container Registry: docker pull ghcr.io/deconz-community/deconz-docker:latest,更多信息见官方文档
运行deCONZ容器
前提条件

在运行创建deconz Docker容器的命令之前,可能需要将Linux用户添加到dialout组,以允许用户访问串口设备(如Conbee/Conbee II/RaspBee/RaspBeeII):

bash
sudo usermod -a -G dialout $USER

对于Raspberry PI 4B上的RaspBee/Raspbee 2安装:确保Wiring Pi已更新到最新版本!

bash
sudo apt install wiringpi
命令行
bash
docker run -d \
    --name=deconz \
    --restart=always \
    -p 80:80 \
    -p 443:443 \
    -v /etc/localtime:/etc/localtime:ro \
    -v /opt/deconz:/opt/deCONZ \
    --device=/dev/ttyUSB0 \
    deconzcommunity/deconz
命令行选项
参数描述
--name=deconz将容器命名为"deconz"。
--net=host使用主机网络模式以实现正确的uPNP功能;默认情况下,Web UI和REST API监听80端口,Websockets服务监听443端口。若这些端口与主机上其他服务冲突,可通过下文环境变量DECONZ_WEB_PORT和DECONZ_WS_PORT更改。
--restart=alwaysDocker启动时(如开机/重启时)启动容器。
-v /etc/localtime:/etc/localtime:ro确保容器具有正确的本地时间(也可使用下文TZ环境变量)。
-v /opt/deconz:/opt/deCONZ将/opt/deconz(或您选择的目录)绑定挂载到容器中以实现持久存储。
--device=/dev/ttyUSB0将ttyUSB0串口设备传递到容器供deCONZ使用(若同时使用其他USB串口设备,可能需要确认设备名称;默认ConBee=/dev/ttyUSB0,Conbee II=/dev/ttyACM0,RaspBee=/dev/ttyAMA0或/dev/ttyS0)。
deconzcommunity/deconz此镜像使用多架构清单列表;指定deconzcommunity/deconz:latest或deconzcommunity/deconz:stable将拉取对应架构的正确版本。
环境变量

使用以下环境变量可更改容器的默认行为。

参数描述
-e DECONZ_WEB_PORT=8080默认情况下,Web UI("Wireless Light Control"和"Phoscon")和REST API监听80端口;仅在需要更改监听端口时设置此环境变量。
-e DECONZ_WS_PORT=8443默认情况下,Websockets服务监听443端口;仅在需要更改监听端口时设置此环境变量。
-e DEBUG_INFO=1设置deCONZ命令行标志--dbg-info的级别(默认1)。
-e DEBUG_APS=0设置deCONZ命令行标志--dbg-aps的级别(默认0)。
-e DEBUG_ZCL=0设置deCONZ命令行标志--dbg-zcl的级别(默认0)。
-e DEBUG_ZDP=0设置deCONZ命令行标志--dbg-zdp的级别(默认0)。
-e DEBUG_OTAU=0设置deCONZ命令行标志--dbg-otau的级别(默认0)。
-e DEBUG_ERROR=0设置deCONZ命令行标志--dbg-error的级别(默认0)。
-e DECONZ_DEVICE=/dev/ttyUSB1默认情况下,deCONZ在/dev/ttyAMA0搜索RaspBee,在/dev/ttyUSB0搜索Conbee;当使用其他USB设备(如Z-Wave棒)时,deCONZ可能无法正确找到RaspBee/Conbee。将此环境变量设置为与--device传递的字符串相同,以强制deCONZ使用特定USB设备。
-e TZ=America/Toronto设置本地时区,使deCONZ具有正确时间。
-e DECONZ_VNC_MODE=1设置此选项以启用对容器的VNC访问,用于查看deCONZ ZigBee网格。
-e DECONZ_VNC_PORT=5900VNC模式的默认端口为5900;此选项可用于更改此端口。
-e DECONZ_VNC_PASSWORD=changemeVNC模式的默认密码为'changeme';此选项可(应)用于更改默认密码。
-e DECONZ_VNC_PASSWORD_FILE=/var/secrets/my_secret默认禁用,使用DECONZ_VNC_PASSWORD。有关为Docker容器创建密钥的详细信息,见官方文档对应部分
-e DECONZ_NOVNC_PORT=6080noVNC的默认端口为6080;此选项可用于更改此端口;将端口设置为0将禁用noVNC功能。
-e DECONZ_UPNP=0设置此选项为0以禁用uPNP,详见:[***]
-e DECONZ_UID=1000设置deCONZ卷的用户ID。
-e DECONZ_GID=1000设置deCONZ卷的组ID。
-e DECONZ_START_VERBOSE=0设置此选项为0以禁用启动脚本的详细输出,设置为1以启用set -x日志记录。
Docker-Compose

此镜像GitHub仓库的根目录提供了完整的docker-compose.yml文件。您也可将以下内容复制粘贴到现有docker-compose.yml中,根据需要修改选项(省略version和services行,因为您的docker-compose.yml已包含这些)。

yaml
version: "2"
services:
  deconz:
    image: deconzcommunity/deconz
    container_name: deconz
    restart: always
    ports: 
      - 80:80
      - 443:443
    volumes:
      - /opt/deconz:/opt/deCONZ
    devices:
      - /dev/ttyUSB0
    environment:
      - DECONZ_WEB_PORT=80
      - DECONZ_WS_PORT=443
      - DEBUG_INFO=1
      - DEBUG_APS=0
      - DEBUG_ZCL=0
      - DEBUG_ZDP=0
      - DEBUG_OTAU=0

然后,可执行docker-compose pull拉取最新的deconzcommunity/deconz镜像,docker-compose up -d启动deconz容器服务,docker-compose down停止deconz服务并删除容器。注意,这些命令也会拉取、启动和停止docker-compose.yml中定义的其他服务。

在Docker for Mac / Docker for Windows上运行

Mac/Windows尚不支持--net=host选项。要在这些平台上运行此容器,请在run命令中显式指定端口并省略--net=host:

bash
docker run -d \
    --name=deconz \
    -p 80:80 \
    -p 443:443 \
    --restart=always \
    -v /opt/deconz:/opt/deCONZ \
    --device=/dev/ttyUSB0 \
    -e DECONZ_WEB_PORT=80 \
    -e DECONZ_WS_PORT=443 \
    deconzcommunity/deconz
为RaspBee配置Raspbian

Raspbian默认将蓝牙分配给/dev/ttyAMA0,并通过串口(tty)配置登录shell。必须禁用tty登录shell并启用串口硬件,同时将蓝牙交换到/dev/S0,以允许RaspBee在Docker下正常工作。

禁用串口登录shell并启用串口硬件:

  1. sudo raspi-config
  2. 选择Interfacing Options(接口选项)
  3. 选择Serial(串口)
  4. “是否希望通过串口访问登录shell?”选择No(否)
  5. “是否希望启用串口硬件?”选择Yes(是)
  6. 退出raspi-config并重启

将蓝牙交换到/dev/S0(将RaspBee移至/dev/ttyAMA0),运行以下命令并重启:

bash
echo 'dtoverlay=pi3-miniuart-bt' | sudo tee -a /boot/config.txt

运行上述命令并重启后,RaspBee应可在/dev/ttyAMA0访问。

更新Conbee/RaspBee固件

Web UI中的固件更新将静默失败。此Docker镜像提供了一个交互式实用脚本,可用于刷新设备固件。该脚本已在amd64 Debian Linux、armhf Raspbian Stretch(Conbee)和armhf Raspbian Stretch(RaspBee)上测试并验证可用。

但请注意,此固件刷新方式不保证一定有效。若有效,将加快整个过程;若无效,则需按照以下链接手动更新固件:

[***]

这可能需要将设备插入未运行Docker的其他系统(如Windows)。

该脚本调用刷新工具GCFFlasher_internal,将输出任何失败信息。在某些情况下,刷新工具运行成功但之后无法启动deCONZ(显示"disconnected device")。此时,可多次尝试该过程或调整retries和timeout参数。

使用脚本更新固件,请按照以下说明操作:

1. 检查deCONZ容器日志中的更新固件文件名:

输入docker logs [容器名称],查找日志开头附近如下行,记录列出的.GCF文件名(后续需要):

GW update firmware found: /usr/share/deCONZ/firmware/deCONZ_Rpi_0x261e0500.bin.GCF
GW firmware version: 0x261c0500
GW firmware version shall be updated to: 0x261e0500

2. 停止运行中的deCONZ容器。必须执行此步骤,否则固件更新将失败:

bash
docker stop [容器名称]

或

bash
docker-compose down

3. 调用固件更新脚本:

bash
docker run -it --rm --entrypoint "/firmware-update.sh" --privileged --cap-add=ALL -v /dev:/dev -v /lib/modules:/lib/modules -v /sys:/sys deconzcommunity/deconz

若有多个USB设备,可映射对应Conbee/Raspbee的/dev/...卷以避免错误路径映射:

bash
docker run -it --rm --entrypoint "/firmware-update.sh" --privileged --cap-add=ALL -v /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DExxxxxxx-if00:/dev/ttyACM0  -v /lib/modules:/lib/modules -v /sys:/sys deconzcommunity/deconz

也可在调用末尾添加其他选项:

bash
docker run ... deconzcommunity/deconz [option1] [value1] [option2] [value2] ...

若这些是刷新工具的有效选项,将添加到调用中:

选项描述默认值(如有)
-f [firmware]刷新固件文件路径-
-d [device]使用的设备编号或路径,如0、/dev/ttyUSB0或RaspBeeDECONZ_DEVICE的值
-t [timeout]重试直到超时(秒)60
-R [retries]最大重试次数-
-x [loglevel]调试日志级别0、1、3-

请注意,脚本仍会询问设备和固件文件的值,但您的选项将作为默认值。

4. 按照提示操作:

  • 输入列表中对应设备的路径(如/dev/ttyUSB0)。
  • 输入或粘贴在步骤1中从deCONZ容器日志找到的完整文件名(或选择其他文件名,但需有充分理由)。 若有比Docker中包含的更新的固件文件(可在此处找到),可指定文件名,脚本将尝试下载。按照提示操作即可。
  • 若设备/路径、文件名和列出的选项看起来正确,输入Y开始刷新!

5. 重启deCONZ容器:

bash
docker start [容器名称]

或

bash
docker-compose up
固件刷新脚本常见问题

问:为什么脚本提示无法卸载ftdi_sio和usbserial模块,或无法重置设备?

答:要刷新设备,系统上不能有其他程序或设备使用这些内核模块或设备。停止任何可能使用模块或设备的程序/容器(可能是deCONZ),然后再次调用脚本。若错误持续,可能需要暂时移除其他USB串口设备以允许脚本完全卸载内核模块。

问:为什么即使指定了更长的超时,刷新运行仍在几秒后失败?

答:设置超时允许刷新工具在超时时间内多次尝试运行,单次运行的超时时间无法通过参数更改。

通过VNC查看deCONZ ZigBee网格

将环境变量DECONZ_VNC_MODE设置为1可启用容器中的VNC服务器;使用VNC客户端连接到此VNC服务器以查看deCONZ ZigBee网格。环境变量DECONZ_VNC_PORT可控制VNC服务器监听的端口(默认5900);环境

查看更多 deconz 相关镜像 →
homeassistant/amd64-addon-deconz logo
homeassistant/amd64-addon-deconz
by homeassistant
暂无描述
3500K+ pulls
上次更新:1 个月前
homeassistant/armhf-addon-deconz logo
homeassistant/armhf-addon-deconz
by homeassistant
暂无描述
1100K+ pulls
上次更新:1 个月前
homeassistant/aarch64-addon-deconz logo
homeassistant/aarch64-addon-deconz
by homeassistant
暂无描述
1500K+ pulls
上次更新:1 个月前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
deconzcommunity/deconz
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
免费获取在线技术支持请 提交工单,官方QQ群:13763429 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
免费获取在线技术支持请提交工单,官方QQ群: 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像
交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429