【已解决】zigbee怎么接收来自网关的数据

Zigbee 子设备开发


547176052@qq.com
Posts: 59

zigbee怎么接收来自网关的数据
查看文档接收消息回调有2个函数
Image

Code: Select all

TAL_MSG_RET_E tal_zcl_specific_msg_recv_callback(TAL_ZCL_MSG_T *msg)
{
    TAL_PR_TRACE("app spec msg cb: cluster 0x%02x, cmd 0x%02x\r\n", msg->cluster, msg->command);

    ZIGBEE_CMD_E app_cmd_type = ZIGBEE_CMD_SINGLE;
    if (msg->mode == ZG_UNICAST_MODE)
    {
        app_cmd_type = ZIGBEE_CMD_SINGLE;
        TAL_PR_TRACE("receive single message");
    }
    else
    {
        app_cmd_type = ZIGBEE_CMD_GROUP;
        TAL_PR_TRACE("receive group message");
    }
    TAL_PR_TRACE("app command type %d", app_cmd_type);

    switch (msg->cluster)
    {
        case CLUSTER_ON_OFF_CLUSTER_ID:
        {
            //handle on/off cluster command
            // app_onoff_cluster_handler(msg->command, msg->payload, msg->length, app_cmd_type);
            TAL_PR_TRACE("开关回调\r\n");
        }

        default:
        {
            break;
        }
    }
 



    return ZCL_MSG_RET_SUCCESS;
}

上面是我的处理代码
运行流程 编译--->原厂固件烧录--->网关添加子设备---->打开子设备---->点击开关
Image
串口调试工具没有看到输出信息
Image
框架:EFR32MG21A020_3.6.1
例子使用:tuyaos_demo_zg_door_sensor
配置:appconfig.json

Code: Select all

{
	"firmwareInfo": {
		"description": "this is a demon project",
		"dev_role":"sleep_end_dev",
		"image_type":"0x1602",
		"manufacture_id":"0x1002",
		"model_id":"TS0203",
		"pid": "******",
		"manufacture_name": "_TZ3000_",
		"module_name":"ZSU",
		"chip_id":"efr32mg21a020f768im32"
	}
}
zeso
Posts: 132

Re: zigbee怎么接收来自网关的数据

您好,休眠设备需要触发设备主动去poll,父节点才会下发数据。

我的栈溢不出。

547176052@qq.com
Posts: 59

Re: zigbee怎么接收来自网关的数据

zeso 2022年 Dec 22日 18:01

您好,休眠设备需要触发设备主动去poll,父节点才会下发数据。

有 poll 相关的文档吗

547176052@qq.com
Posts: 59

Re: zigbee怎么接收来自网关的数据

547176052@qq.com 2022年 Dec 22日 18:06
zeso 2022年 Dec 22日 18:01

您好,休眠设备需要触发设备主动去poll,父节点才会下发数据。

有 poll 相关的文档吗

改一下 "model_id":"TS0002",
现在能成功接收到数据了
但是串口每3秒会输出一次

Code: Select all

[0000000041 TUYA T][tuya_sdk_callback.c:289] 消息回调app gen msg cb: cluster 0x00, cmd 0

这个正常吗

zeso
Posts: 132

Re: zigbee怎么接收来自网关的数据

休眠设备主动调用tal_zg_send_data发数据时,SDK会自动根据初始化设备(tal_zg_node_config)的参数去poll的。

我的栈溢不出。

547176052@qq.com
Posts: 59

Re: zigbee怎么接收来自网关的数据

zeso 2022年 Dec 22日 19:54

休眠设备主动调用tal_zg_send_data发数据时,SDK会自动根据初始化设备(tal_zg_node_config)的参数去poll的。

我应该如何回复给网关
有没有例子

zeso
Posts: 132

Re: zigbee怎么接收来自网关的数据

demo里有的。

我的栈溢不出。

547176052@qq.com
Posts: 59

Re: zigbee怎么接收来自网关的数据

zeso 2022年 Dec 26日 09:44

demo里有的。

Image
我这样回复数据 app的开关不会变为开 这个是什么原因

zeso
Posts: 132

Re: zigbee怎么接收来自网关的数据

1.有没有抓包环境,看下是否已经发出开关上报报文;
2.tal_zg_send_data接口第二个参数可以注册发送结果回调,在回调中获取上报结果。QoS_1发送,是需要收到ZCL的response才判断上报成功。

我的栈溢不出。

547176052@qq.com
Posts: 59

Re: zigbee怎么接收来自网关的数据

zeso 2023年 Jan 12日 15:59

1.有没有抓包环境,看下是否已经发出开关上报报文;
2.tal_zg_send_data接口第二个参数可以注册发送结果回调,在回调中获取上报结果。QoS_1发送,是需要收到ZCL的response才判断上报成功。

回调应该不会影响app上显示 开关状态把

Post Reply