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

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

2025-07-06 20:51:56作者:凤尚柏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设备的集成提供了参考,特别是在处理厂商特定集群和设备特殊功能方面积累了宝贵经验。

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