【Zigbee】复合场景开关设备接入介绍

Zigbee 子设备开发


Post Reply
docker22docker
Posts: 9

1、zigbee设备开发快速入门
https://www.tuyaos.com/viewtopic.php?t=258
该文详细介绍了

​ a)环境安装

​ b)TuyaOS subdev-zg 开发包介绍

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

​ d)编译与烧录

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

2、复合场景开关介绍

步骤c)开发框架与产品开发包获取,我们同样可以获取到产品开发包:复合场景开关demo。demo提供的是两路的复合场景开关,第一路是场景/开关(场景、开关可以通过面板切换);第二路是场景开关。

​ 以两路复合场景开关为例,设备总共有两个通道,根据程序配置文件配置,我们可以配置出4钟不同的产品形态。

​ 形态1:第一路是场景开关,第二路是场景开关;---两路场景

​ 形态2:第一路是场景开关,第二路是场景/开关(场景、开关面板可切换);---一路场景,一路场景/开关可切换

​ 形态3:第一路是场景/开关(场景、开关面板可切换),第二路是场景开关;---一路场景/开关可切换,一路场景

​ 形态4:第一路是场景/开关(场景、开关面板可切换),第二路是场景/开关(场景、开关面板可切换);--两路场景/开关可切换

显然,如果根据产品功能,正确配置程序的app_configuration.h文件,配置出我们想要的设备形态是关键一步。
Image
上图CHANNEL_MODE_CFG就是设备形态选择配置项,当前配置,第一个通道配置为0,第二个通道配置为1。表示,选择的是形态2:第一路是场景开关,第二路是场景/开关(场景、开关面板可切换);---一路场景,一路场景/开关可切换。

3、复合场景开关配置文件修改
那么基于复合场景开关demo(两路),如何开发4路复合场景开关呢?
Image
a)修改最大支持通道数为4通道(最大通道数,目前最大支持6路),修改当前通道数为4。(当前通道数不能超过最大通道数,设备为几路就配置成几)

b)CHANNEL_MODE_CFG配置,增加到4个通道的配置,每个通道有0和1两个配置选项,设备形态就有24=16种。上图配置,我们的设备形态为:第一路是场景/开关(场景、开关面板可切换),第二路、第三路和第四路是场景开关。修改配置,可以得到其他的设备形态。

c)复合场景开关,当配置成场景/开关,支持面板下发模式切换命令,在场景和开关之前进行切换。因此需要对该模式切换进行存储,CHANNEL_MODE_FLASH_CFG配置,为每个通道模式切换存储在flash中分配的flash id。

d)该通道为场景开关时,面板创建场景,面板会下发group id和scene id,设备需要对group id和scene id进行本地存储,因此需要分配flash id进行存储。CHANNEL_SG_FLASH_CFG配置,为每个通道存储的group id和scene id在flash中分配的flash id。

e)该通道为开关时,涉及到开关上电状态,如果定义(使能)SUB_RELAY_UNIT_ENABLE,同时需要为每个通道分配flash id存储通道开关上电状态。SUB_RELAY_ONOFF_FLASH_ID配置,为每个通道存储的开关上电状态在flash中分配的flash id。

4、PID申请和更换

PID的申请可参考链接https://developer.tuya.com/cn/docs/iot/ ... kj3vy3ym9r

更换PID,替换appconfig.json文件中pid为你自己申请的4路复合场景开关的PID。
若涉及到后续的烧录授权:可以参考链接:https://developer.tuya.com/cn/docs/iot- ... 0ymclrhau7

Post Reply