子设备连HA,能正常连接,但无法report数据

Zigbee 子设备开发


jafil10
Posts: 114

Code: Select all

// onoff attribute
CONST TAL_ATTR_T g_onoff_attr_list[] = {
    { 0x0000, ATTR_BOOLEAN_ATTRIBUTE_TYPE, 1, (ATTR_MASK_READABLE|ATTR_MASK_WRITABLE), 1, (UINT8_T *)0x00 }, /* on/off*/
    { 0xFFFD, ATTR_INT16U_ATTRIBUTE_TYPE, 2, (ATTR_MASK_READABLE), 0, (UINT8_T *)0x0002 }, /* cluster revision*/
};

onoff属性的attributes mask,需要做额外的设置吗?

User avatar
huanghuan
Posts: 324

Re: 子设备连HA,能正常连接,但无法report数据

你先试试看远程写这个on off属性会不会触发report

jafil10
Posts: 114

Re: 子设备连HA,能正常连接,但无法report数据

3.png

从抓包来看,是不会触发上报

User avatar
huanghuan
Posts: 324

Re: 子设备连HA,能正常连接,但无法report数据

1.你好,我这边实测是正常可以report的,附件为demo以供参考,output中有测试抓包

Attachments
tuyaos_demo_zg_light2.7z
(3.49 MiB) Downloaded 16 times
jafil10
Posts: 114

Re: 子设备连HA,能正常连接,但无法report数据

huanghuan 2025年 Nov 20日 19:46

1.你好,我这边实测是正常可以report的,附件为demo以供参考,output中有测试抓包

我看了下附件中的代码,也只是增加配置了report table,然后按键后取反写ON_OFF这个attribute,没有其他什么不同之处。
但我这边确实还是不行,我看了telink原生SDK,是有定时器定时处理的,理论上只要修改了attribute就会自动上报,有没有什么方式来分析这个问题?

配网后,网关有配置ONOFF相关配置,见下图,对这个有影响吗?

3.png
User avatar
huanghuan
Posts: 324

Re: 子设备连HA,能正常连接,但无法report数据

1.请先用我们的demo测试在你的板子上有没有问题
2.请按照提供的抓包步骤,使用相同交互数据进行测试
3.请自行对比函数区别,包括report table init使用的时机等是否相同

User avatar
huanghuan
Posts: 324

Re: 子设备连HA,能正常连接,但无法report数据

实测config report没有影响

Attachments
企业微信截图_17637088597181.png
jafil10
Posts: 114

Re: 子设备连HA,能正常连接,但无法report数据

2.png

我这边编译了demo code。配合HomeAssistant及Zigbee 3.0通用的Dongle网关,一直无法入网成功。

jafil10
Posts: 114

Re: 子设备连HA,能正常连接,但无法report数据

Code: Select all

device_role: "sleep_end_dev"   # router/sleep_end_dev

TAL_PR_DEBUG("key pressed\n");
val_u8 = !val_u8;
tal_zg_write_attribute(0x01,
CLUSTER_ON_OFF_CLUSTER_ID,
ATTR_ON_OFF_ATTRIBUTE_ID,
&val_u8, ATTR_BOOLEAN_ATTRIBUTE_TYPE);

4.png

我把设备类型从router改为end device就可以正常入网成功。同时在按键的地方增加了一个日志,实测是只上报了一次,绝大部分都没有触发上报。

Attachments
tuyaos_demo_zg_light2_end_device.rar
(25.44 KiB) Downloaded 6 times
jafil10
Posts: 114

Re: 子设备连HA,能正常连接,但无法report数据

补充一下,route设备也是能正常添加的,我把网关重启了下就可以了。
确实作为router,是可以正常report出来的,但作为end device,还是不行。

Post Reply