__LIGHT_SYSTEM_CODE_SECTION__ TAL_MSG_RET_E tal_zcl_specific_msg_recv_callback(TAL_ZCL_MSG_T *msg)
{
	eRecvMsgMode = msg->mode;
	LIGHT_PRINTF_DEBUG("---> Test");
	LIGHT_PRINTF_DEBUG("mode = %d, Cluster = 0x%04X\n\n\n\n", msg->mode, msg->cluster);
	switch(msg->cluster) {
	case CLUSTER_ON_OFF_CLUSTER_ID: {
        if(OPRT_OK != light_cluster_onoff_handler(msg)) {
            return ZCL_MSG_RET_FAILED;
        }
		}
		break;
	case CLUSTER_LEVEL_CONTROL_CLUSTER_ID: {
        if(OPRT_OK != light_cluster_level_handler(msg)) {
            return ZCL_MSG_RET_FAILED;
        }
		}
		break;
	case CLUSTER_COLOR_CONTROL_CLUSTER_ID: {
        if(OPRT_OK != light_cluster_color_control_handler(msg)) {
            return ZCL_MSG_RET_FAILED;
        }
		}
		break;
	case CLUSTER_PRIVATE_TUYA_CLUSTER_ID: {
		UINT8_T len = msg->length;
		UINT8_T *data = msg->payload;
		LIGHT_PRINTF_DEBUG("command = 0x%04X\n\n\n\n", msg->command);
		// if(msg->command == 0x04) {
			light_system_ty_private_app_cmd_set_handler(data, len);
		// }
		}
		break;
	default:
		return ZCL_MSG_RET_FAILED;
	}

	eRecvMsgMode = ZG_UNICAST_MODE;
	return ZCL_MSG_RET_SUCCESS;
}