首页
/ deCONZ-REST-Plugin项目中的Sonoff ZBMINIR2设备支持分析

deCONZ-REST-Plugin项目中的Sonoff ZBMINIR2设备支持分析

2025-07-06 10:09:42作者:凤尚柏Louis

设备概述

Sonoff ZBMINIR2是一款基于Zigbee协议的智能继电器开关设备,由知名智能家居品牌Sonoff推出。作为ZBMINI系列的最新产品,ZBMINIR2相比前代产品具有路由器功能(Router),而ZBMINIL2则是终端设备(End Device)。该设备需要中性线连接,支持多种工作模式和配置选项。

技术特性分析

硬件架构

ZBMINIR2采用了标准的Zigbee 3.0协议栈,主要技术参数包括:

  • 工作频率:2.4GHz
  • 传输距离:室内约30米
  • 支持IEEE 802.15.4标准
  • 最大负载电流:10A

功能特点

设备具备以下核心功能:

  1. 基本开关控制功能
  2. 外部开关模式配置(边缘触发、脉冲触发等)
  3. 继电器分离模式(Detach Relay Mode)
  4. 上电状态记忆功能
  5. 延迟上电功能(防止多设备同时上电冲击电网)

设备集成挑战

在将ZBMINIR2集成到deCONZ-REST-Plugin项目过程中,开发团队遇到了几个关键技术挑战:

1. 特殊功能集群实现

设备使用了厂商特定的FC11集群(0xfc11)来实现高级功能,包括:

  • 0x0012:无线电功率增强模式
  • 0x0014:上电状态配置
  • 0x0015:上电延迟时间设置
  • 0x0016:外部开关模式
  • 0x0017:继电器分离模式

这些特殊属性需要通过自定义DDF(Device Description File)文件进行映射和实现。

2. 状态同步问题

在继电器分离模式下,设备需要正确处理物理开关操作产生的事件,并确保状态同步。开发过程中发现:

  • 物理开关操作产生的事件需要特殊处理
  • 状态更新机制需要优化以确保实时性
  • 需要建立可靠的事件上报机制

3. 配置项实现

设备特有的配置项需要与REST API集成,包括:

  • 延迟上电功能
  • 启动状态配置
  • 无线电功率模式
  • 外部开关行为模式

解决方案与技术实现

DDF文件设计

针对ZBMINIR2设备,开发了专门的DDF文件,主要包含以下关键部分:

  1. 基本设备信息
{
  "manufacturername": "SONOFF",
  "modelid": "ZBMINIR2",
  "vendor": "Sonoff",
  "product": "Mini Relay (ZBMINIR2)",
  "sleeper": false
}
  1. 子设备定义
  • 开关输出设备(On/Off output)
  • 传感器设备(ZHASwitch)
  1. 绑定与报告配置
{
  "bind": "unicast",
  "src.ep": 1,
  "cl": "0x0006",
  "report": [
    {
      "at": "0x0000",
      "dt": "0x10",
      "min": 5,
      "max": 1800
    }
  ]
}

特殊功能实现

对于设备的特殊功能,采用了以下实现方式:

  1. 继电器分离模式
{
  "name": "config/detachrelaymode",
  "read": {
    "at": "0x0017",
    "cl": "0xfc11",
    "ep": 1,
    "fn": "zcl:attr"
  },
  "write": {
    "at": "0x0017",
    "cl": "0xfc11",
    "dt": "0x10",
    "ep": 1,
    "eval": "if (Item.val == 'disabled') { 0 } else { 1 }"
  }
}
  1. 外部开关模式
{
  "name": "config/clickmode",
  "read": {
    "at": "0x0016",
    "cl": "0xfc11",
    "ep": 1,
    "fn": "zcl:attr"
  },
  "write": {
    "at": "0x0016",
    "cl": "0xfc11",
    "dt": "0x20",
    "ep": 1,
    "eval": "if (Item.val == 'edge') { 0 } else if (Item.val == 'pulse') { 1 } else if (Item.val == 'following_off') { 2 } else { 130 }"
  }
}

按钮事件处理

针对物理开关操作,实现了专门的事件处理机制:

  1. 按钮映射配置
[1, "0x01", "ONOFF", "TOGGLE", "0", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "short"]
  1. 事件上报处理
  • 在继电器分离模式下处理TOGGLE命令
  • 在普通模式下处理ATTRIBUTE_REPORT事件

遗留问题与未来改进

当前实现中仍存在一些待解决的问题:

  1. 延迟上电功能
  • 需要新增config/on/delayedpoweron配置项
  • 需要实现时间延迟设置功能
  1. 状态同步优化
  • 提高状态更新的实时性
  • 优化事件上报机制
  1. 无线电功率模式
  • 完善功率模式切换功能
  • 确保模式切换后的稳定性

总结

Sonoff ZBMINIR2设备的集成展示了deCONZ-REST-Plugin项目处理复杂Zigbee设备的能力。通过自定义DDF文件和特殊功能实现,成功地将这款功能丰富的智能继电器开关接入系统。未来随着相关功能的进一步完善,ZBMINIR2将成为智能家居系统中一个可靠的Zigbee路由节点和开关控制设备。

该案例也为其他复杂Zigbee设备的集成提供了参考,特别是在处理厂商特定集群和设备特殊功能方面积累了宝贵经验。

登录后查看全文
热门项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
203
2.18 K
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
208
285
pytorchpytorch
Ascend Extension for PyTorch
Python
62
94
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
977
575
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
9
1
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
550
84
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.02 K
399
communitycommunity
本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息
393
27
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
1.2 K
133