【zigbee】TuyaOS接入100以上DP处理方法

Zigbee 子设备开发


Post Reply
shiliang
Posts: 29

确认接入方式为TuyaOS

注意:本文档不适用于MCU SDK接入方式。
若为全新设备,请参考IDE上拉取的开放框架中的TuyaOS/docs内的【产品创建】。

若存在已知开发设备,请先确认开发类型,若为MCU SDK,为通用对接接入方式,设备与网关及云端对接协议已固定,客户只需要完成MCU端代码以及MCU和模组通信,请参考串口对接协议。
Image

若为TuyaOS接入方式,请继续,若为MCU SDK方式,请参考MCU SDK接入文档。

请确认在IOT平台【功能定义】页面已经添加100以上DP如下:
Image

修改能力值
对TuyaOS接入方式来说,需要将已有DP转换为私有DP数据发送,DP信息参考,manufacture name为接入tuya网关能力值,固定开头为_TZ,由四个Byte决定。

注意:若需支持100以上DP,请务必把Byte2中bit0置为1。

具体值参考如下表格:
Image

注册私有cluster 0xEF00
网关和模组私有zigbee协议:
描述 值
Cluster ID 0xEF00
Profile ID 0x0104
Source Endpoint 0x01
Destination Endpoint 0x01

首先改造tuyaOS Demo中属性的注册,若已经注册了0xEF00私有属性,忽略注册步骤。
Image

Image

Image

Image

增加私有cluster command处理
增加私有cluster 0xEF00相关command的接收和处理,在tal_zcl_specific_msg_recv_callback中增加私有cluster 0xEF00命令接收和处理:
Image

解析接收到的command payload里的DP数据并处理;
所有相关命令如下:

  • 0x04 网关向模组下发DP透传数据

  • 0x05 模组回复网关下发的DP透传数据

  • 0x06 模组主动上报DP数据

  • Command 0x04

Image

  • Command 0x05

Image

  • Command 0x06

Image

设备需要解析的网关数据仅有Command 0x04,网关向模组透传DP数据,解析如下:

Image

Image

设备收到网关的DP透传数据后,需要回复网关Command 0x05,内容为网关透传的DP数据:
Image

业务数据格式如下:
Image

在air_dp_cmd_parse处理下发的DP数据:
Image

增加主动上报DP数据能力,Command 0x06
若设备需要主动上报DP数据,则调用下图接口:
Image

示例:
如果在IOT界面设置了一条大于100的DP如下:
Image

上图中DP ID为104,type为bool 0x01,布尔数据为1即0x01,我们假设seq为5,则上报的数据为:
0x00 0x05 0x68 0x01 0x01

dnvwf
Posts: 5

Re: 【zigbee】TuyaOS接入100以上DP处理方法

上面的代码哪儿有?我的是3.7.0 和 3.7.1版本,里面没有找到有呢?

dnvwf
Posts: 5

Re: 【zigbee】TuyaOS接入100以上DP处理方法

ZCL_ID_DP_REPORT值是多少?
还胆response_cmd_send这个方法能贴出来一下吗?

Post Reply