Page 1 of 1

【Zigbee】涂鸦Zigbee场景遥控器开发分享

Posted: 2024年 Apr 2日 11:32
by doufu

1、Zigbee设备开发快速入门

https://www.tuyaos.com/viewtopic.php?t=258

该文详细介绍了

a)环境安装

b)TuyaOS subdev-zg 开发包介绍

c)开发框架与产品开发包获取

d)编译与烧录

以上步骤,可以快速的搭建环境,编译固件,固件烧录,程序就可以在板子上跑起来了。

2、Zigbee场景遥控器必需基本信息

遥控器分类Profile IDDevice ID能力值Model ID
Color Dimmer Switch0x01040x0105TZ3000TS1002

2.1支持的Cluster

Server ClusterClient Cluster
Basic (0x0000)Identify (0x0003)
Power Configuration (0x0001)Groups (0x0004)
Identify (0x0003)Scenes (0x0005)
Groups (0x0004)On/Off (0x0006)
Touchlink Commissioning (0x1000)Level Control (0x0008)
Color Control (0x0300)
Touchlink Commissioning (0x1000)
OTA Upgrade(0x0019)

2.2 Zigbee遥控器标准照明指令

​ Zigbee标准照明指令详见ZCL文档,遥控器与灯具建立连接后可以使用标准Zigbee开关,调光调色指令控制灯具。

2.3 Zigbee照明调光遥控器接入标准

​ 具体接入标准及协议请参考涂鸦IOT开发平台:Zigbee照明调光遥控器接入标准

3、涂鸦场景遥控器特色功能

DP协议

DP ID功能点名称标识符传输类型数据类型功能点属性
6开关遥控switch_controller只下发(wr)布尔(bool){"type":"bool"}
7模式控制mode_controller只下发(wr)枚举(enum){"range":["white","colour","scene"],"type":"enum"}
8亮度遥控bright_controller只下发(wr)数值(value){"min":10,"max":1000,"step":1,"unit":null,"scale":0,"type":"value"}
9色温遥控temp_controller只下发(wr)数值(value){"min":0,"max":1000,"step":1,"unit":null,"scale":0,"type":"value"}
10彩光遥控color_controller只下发(wr)字符串(string){"maxlen":255,"type":"string"}
30场景scene_data只下发(wr)字符串(string){"maxlen":255,"type":"string"}
21按键1模式button_mode_1可下发可上报(rw)枚举(enum){"range":["no_initialize","remote_control","wireless_switch"],"type":"enum"}
22按键2模式button_mode_2可下发可上报(rw)枚举(enum){"range":["no_initialize","remote_control","wireless_switch"],"type":"enum"}
23按键3模式button_mode_3可下发可上报(rw)枚举(enum){"range":["no_initialize","remote_control","wireless_switch"],"type":"enum"}
24按键4模式button_mode_4可下发可上报(rw)枚举(enum){"range":["no_initialize","remote_control","wireless_switch"],"type":"enum"}
25按键5模式button_mode_5可下发可上报(rw)枚举(enum){"range":["no_initialize","remote_control","wireless_switch"],"type":"enum"}
26按键6模式button_mode_6可下发可上报(rw)枚举(enum){"range":["no_initialize","remote_control","wireless_switch"],"type":"enum"}
27按键7模式button_mode_7可下发可上报(rw)枚举(enum){"range":["no_initialize","remote_control","wireless_switch"],"type":"enum"}
28按键8模式button_mode_8可下发可上报(rw)枚举(enum){"range":["no_initialize","remote_control","wireless_switch"],"type":"enum"}
52按键选择scene_switch可下发可上报(rw)枚举(enum){"range":["switch_1","switch_2","switch_3","switch_4","switch_5","switch_6","switch_7","switch_8"],"type":"enum"}

DP说明:DP6-DP10,DP30是场景遥控器面板必须用到的在创建产品时不可删除。DP21-DP28,根据你开发的遥控器需要支持群组控制和场景控制的按键个数决定。DP52是在入网后,云端通过网关给遥控器下发群组号和按键号的绑定关系时使用的。

Zigbee私有协议

DP52对应私有协议,入网时云端给遥控器按键分配群组ID

下发:

Cluster IDCommand ID数据备注
0x00040xF0按键个数+群组ID+按键ID+群组ID+按键ID...

上报:

Cluster IDCommand ID数据备注
0xE0020xD0110 / 10表示成功,1表示失败

遥控器按键触发键值上报给网关:

Cluster IDCommand ID数据备注
0x00060xFD群组ID+按键ID

入网时给按键分配群组ID的抓包截图:

Image

遥控器按键触发键值上报的抓包截图:

Image

备注:

涂鸦场景遥控器共有三种模式。

第一种是通过touchlink与灯直接配对,这种模式下,仅支持遥控器通过Zigbee3.0标准控制指令去控制灯具。

第二种和第三种都是加入到涂鸦网关后去和灯进行关联,分别是群组控制模式和联动控制模式。

在群组控制模式时,点击遥控器面板选择对应的灯具,APP会给添加到这个按键的灯具发送添加群组的指令,然后将遥控器的DP点6,7,8,9,10的联动规则添加到云端,实体ID是遥控器。此时点击遥控器的群组按键时,遥控器上报键值,网关会去查对应的联动规则将遥控器联动规则里面的DP点6,7,8,9,10转换为开关,模式,亮度,色温,彩光的涂鸦私有zigbee指令通过组播发出,达到控制灯的效果(此时与灯的DPID是多少无关)。若遥控器还有单独的控制按键,点击遥控器开关亮度色温彩光按键控制时,下发的是就是这个群组ID的组播zigbee3.0标准步进指令。

在联动控制模式下,点击进入面板选择对应的灯具,创建联动规则,点击遥控器对应的按键时,会触发对应的联动去控制灯。