【已解决】TuyaOS网络自恢复问题

Zigbee 子设备开发


Post Reply
Jaoki
Posts: 77

使用的SDK版本是TuyaOS-3.10.0,已配网的设备,使用接口重新开启配网:tal_zg_join_start(30 * 1000); 等待配网超时后自动重启回到原来的网络,网络状态接口给的当前的状态为:TAL_ZG_NWK_POWER_ON_ONLINE,这时候发现上报数据返回状态:SEND_ST_ERR. 请问这是什么原因导致的呢

Last edited by Jaoki on 2024年 Dec 30日 19:43, edited 1 time in total.
User avatar
huanghuan
Posts: 257

Re: 【求助】TuyaOS网络自恢复问题

1.你好,如果你发送数据 send_data.qos 为QOS_0或者是QOS_VIP_0,则 SEND_ST_ERR 表示发送时失败,比如当前背景噪声过高导致发送退避;如果 send_data.qos 为QOS_1或者是QOS_VIP_1,则 SEND_ST_ERR 表示发送次数耗尽,没有收到对方的default respond。
2.请附带上你发送的具体的代码,以及ubiqua 抓包方便我们分析。
3.请确认你上电多久进行的发送,如果增加一点延时是否有效,规避协议栈上电路由没有建立起来时发送数据失败的问题。

Jaoki
Posts: 77

Re: 【求助】TuyaOS网络自恢复问题

Code: Select all

TAL_ZG_SEND_DATA_T send_data;
	UINT8_T i = 0;

memset(&send_data, 0x00, SIZEOF(TAL_ZG_SEND_DATA_T));

send_data.qos = QOS_1;
send_data.delay_time = u16DelayTime;
send_data.random_time = 0;
send_data.zcl_id = 101;
send_data.frame_type = ZG_ZCL_FRAME_TYPE_GLOBAL;
send_data.command_id = CMD_REPORT_ATTRIBUTES_COMMAND_ID;
send_data.addr.mode = SEND_MODE_DEV;

send_data.direction = ZG_ZCL_DATA_SERVER_TO_CLIENT;

send_data.addr.type.dev.dst_addr = TUYA_GATEWAY_ADDRESS;
send_data.addr.type.dev.cluster_id = CLUSTER_ON_OFF_CLUSTER_ID;
send_data.addr.type.dev.src_ep = 0x01;
send_data.addr.type.dev.dst_ep = TUYA_PRIMARY_ENDPOINT;

send_data.data.zg.attr_sum = 1;
send_data.data.zg.attr[i].attr_id = ATTR_ON_OFF_ATTRIBUTE_ID;
send_data.data.zg.attr[i].type = ATTR_BOOLEAN_ATTRIBUTE_TYPE;

send_data.data.zg.attr[i].size = 1;
send_data.data.zg.attr[i].value[0] = 1;

tal_zg_clear_send_data(ZG_CLEAR_ALL_ZCL_ID, &send_data.zcl_id);
tal_zg_send_data(&send_data, device_report_switch_state_callback, REPORT_DEFAULT_TIMEOUT_TIME);[attachment=0]00-配网超时自动回连.rar[/attachment]

上电延时了15000 + tal_system_get_random(2500) 的时间去上报数据

Attachments
00-配网超时自动回连.rar
(4.72 KiB) Downloaded 18 times
User avatar
huanghuan
Posts: 257

Re: 【求助】TuyaOS网络自恢复问题

1.从抓包来看,网关不回复设备的路由请求,请抓一下这个设备在这个网关下,从配网成功然后开启自恢复后设备异常的整个抓包。
2.请用3.11.0 light demo进行测试,确认是否有相同问题。

Jaoki
Posts: 77

Re: 【求助】TuyaOS网络自恢复问题

测试了下载SDK时里面的LightDemo, 没有这个情况(同一个网关)。这个产品的配网参数, 节点参数这些都是参考的light demo 的代码写的。

00-组网-自回连.rar
(17.34 KiB) Downloaded 22 times
User avatar
huanghuan
Posts: 257

Re: 【求助】TuyaOS网络自恢复问题

请提供下工程代码,或者是自行比较与light demo的区别进行增删改查

Jaoki
Posts: 77

Re: 【求助】TuyaOS网络自恢复问题

辛苦帮忙看下。

tuyaos_switch.rar
(15.41 KiB) Downloaded 21 times
User avatar
huanghuan
Posts: 257

Re: 【求助】TuyaOS网络自恢复问题

1.你好,我这边用你的固件,复现并解决了这个问题,你需要和light demo一样,在second init中使用定时器延时调用join start,如附图所示。
2.直接调用可能由于协议栈没有完全起来导致运行异常。

Attachments
延时调用join start.png
Post Reply